以下、実施形態について、添付の図面を参照しながら詳しく説明する。
本発明の実施形態に係るインタラクション方法は、以下で説明する電子機器やサーバのようなコンピュータ装置によって実現されてよい。このとき、コンピュータ装置においては、本発明の一実施形態に係るコンピュータプログラムがインストールされて実行されてよく、コンピュータ装置は、実行されるコンピュータプログラムの制御にしたがって本発明の実施形態に係るインタラクション方法を実行してよい。上述したコンピュータプログラムは、コンピュータ装置と結合してインタラクション方法をコンピュータに実行させるためにコンピュータ読み取り可能な記録媒体に格納されてよい。
図1は、本発明の一実施形態における、ネットワーク環境の例を示した図である。図1のネットワーク環境は、複数の電子機器110、120、130、140、複数のサーバ150、160、およびネットワーク170を含む例を示している。このような図1は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が図1のように限定されることはない。
複数の電子機器110、120、130、140は、コンピュータ装置によって実現される固定端末や移動端末であってよい。複数の電子機器110、120、130、140の例としては、スマートフォン、携帯電話、ナビゲーション、PC(personal computer)、ノート型PC、デジタル放送用端末、PDA(Personal Digital Assistant)、PMP(Portable Multimedia Player)、タブレットなどがある。一例として、図1では、電子機器1(110)の例としてスマートフォンを示しているが、本発明の実施形態において、電子機器1(110)は、実質的に無線または有線通信方式を利用し、ネットワーク170を介して他の電子機器120、130、140および/またはサーバ150、160と通信することのできる多様な物理的なコンピュータ装置のうちの1つを意味してよい。
通信方式が限定されることはなく、ネットワーク170が含むことのできる通信網(一例として、移動通信網、有線インターネット、無線インターネット、放送網)を利用する通信方式だけではなく、機器間の近距離無線通信が含まれてもよい。例えば、ネットワーク170は、PAN(personal area network)、LAN(local area network)、CAN(campus area network)、MAN(metropolitan area network)、WAN(wide area network)、BBN(broadband network)、インターネットなどのネットワークのうちの1つ以上の任意のネットワークを含んでよい。さらに、ネットワーク170は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター-バスネットワーク、ツリーまたは階層的ネットワークなどを含むネットワークトポロジのうちの任意の1つ以上を含んでもよいが、これらに限定されることはない。
サーバ150、160それぞれは、複数の電子機器110、120、130、140とネットワーク170を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供する1つ以上のコンピュータ装置によって実現されてよい。例えば、サーバ150は、ネットワーク170を介して接続した複数の電子機器110、120、130、140に第1サービスを提供するシステムであってよく、サーバ160も、ネットワーク170を介して接続した複数の電子機器110、120、130、140に第2サービスを提供するシステムであってよい。より具体的な例として、第1サービスとしてソーシャルネットワークサービスが挙げられてよい。この場合、サーバ150は、サービスと連携するアプリケーションがインストールされた複数の電子機器110、120、130、140にアプリケーションを通じてメッセージングサービス、タイムラインサービスなどのようなソーシャルネットワークサービスとして提供可能な多様なサービスを提供してよい。また、サーバ160は、上述したアプリケーションのインストールのためのインストールファイルを複数の電子機器110、120、130、140に配布するためのサービスを第2サービスとして提供してよい。
図2は、本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。上述した複数の電子機器110、120、130、140それぞれやサーバ150、160それぞれは、図2に示したコンピュータ装置200によって実現されてよい。例えば、コンピュータ装置200においては、一実施形態に係るコンピュータプログラムがインストールされて実行されてよく、コンピュータ装置200は、実行されるコンピュータプログラムの制御にしたがって本発明の実施形態に係るインタラクション方法を実行してよい。
このようなコンピュータ装置200は、図2に示すように、メモリ210、プロセッサ220、通信インタフェース230、および入力/出力インタフェース240を含んでよい。メモリ210は、コンピュータ読み取り可能な記録媒体であって、RAM(random access memory)、ROM(read only memory)、およびディスクドライブのような永続的大容量記録装置を含んでよい。ここで、ROMやディスクドライブのような永続的大容量記録装置は、メモリ210とは区分される別の永続的記録装置としてコンピュータ装置200に含まれてもよい。また、メモリ210には、オペレーティングシステムと、少なくとも1つのプログラムコードが記録されてよい。このようなソフトウェア構成要素は、メモリ210とは別のコンピュータ読み取り可能な記録媒体からメモリ210にロードされてよい。このような別のコンピュータ読み取り可能な記録媒体は、フロッピー(登録商標)ドライブ、ディスク、テープ、DVD/CD-ROMドライブ、メモリカードなどのコンピュータ読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータ読み取り可能な記録媒体ではない通信インタフェース230を通じてメモリ210にロードされてもよい。例えば、ソフトウェア構成要素は、ネットワーク170を介して受信されるファイルによってインストールされるコンピュータプログラムに基づいてコンピュータ装置200のメモリ210にロードされてよい。
プロセッサ220は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ210または通信インタフェース230によって、プロセッサ212、222に提供されてよい。例えば、プロセッサ220は、メモリ210のような記録装置に記録されたプログラムコードにしたがって受信される命令を実行するように構成されてよい。
通信モジュール230は、ネットワーク170を介してコンピュータ装置200が他の装置(一例として、上述した記録装置)と互いに通信するための機能を提供してよい。一例として、コンピュータ装置200のプロセッサ220がメモリ210のような記録装置に記録されたプログラムコードにしたがって生成した要求や命令、データ、ファイルなどが、通信インタフェース230の制御にしたがってネットワーク170を介して他の装置に伝達されてよい。これとは逆に、他の装置からの信号や命令、データファイルなどが、ネットワーク170を経てコンピュータ装置200の通信モジュール230を通じてコンピュータ装置200に受信されてよい。通信インタフェース230を通じて受信された信号や命令、データなどは、プロセッサ220やメモリ210に伝達されてよく、ファイルなどは、コンピュータ装置200がさらに含むことのできる記録媒体(上述した永続的記録装置)に記録されてよい。
入力/出力インタフェース240は、入力/出力装置250とのインタフェースのための手段であってよい。例えば、入力装置は、マイク、キーボード、またはマウスなどの装置を、出力装置は、ディスプレイやスピーカのような装置を含んでよい。他の例として、入力/出力インタフェース240は、タッチスクリーンのように入力と出力のための機能が1つに統合された装置とのインタフェースのための手段であってもよい。入力/出力装置250は、コンピュータ装置200と1つの装置で構成されてもよい。
また、他の実施形態において、コンピュータ装置200は、図2の構成要素よりも少ないか多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、コンピュータ装置200は、上述した入力/出力装置250のうちの少なくとも一部を含むように実現されてもよいし、トランシーバやデータベースなどのような他の構成要素をさらに含んでもよい。
図3は、本発明の一実施形態における、ユーザの状況を感知する過程の例を示した図である。図3は、第1過程310~第7過程370を示している。
第1過程310は、ユーザがモバイル機器を持っている手を感知するための過程の例であってよく、モバイル機器は、加速度センサとジャイロセンサを利用してモバイル機器を持っているユーザの手の情報を提供してよい。例えば、「左手」、「右手」、「両手」、および「載置」のうちの1つの状態に関する情報が提供されてよい。「左手」はユーザが左の手でモバイル機器を持って使用中であることを、「右手」はユーザが右の手でモバイル機器を持って使用中であることを、「両手」はユーザが両方の手でモバイル機器を持って使用中であることを、「載置」はユーザがモバイル機器を手にしていない状態で使用中であることを、それぞれ意味してよい。例えば、片手で機器を操作してタイピングをする場合、加速度センサおよび/またはジャイロセンサにより、機器の中央軸を基準としてどちらか一方向への揺れまたは振動が目立つか、および/または機器の方向(orientation、すなわち、横であるか縦であるか)を把握してよく、これを片手の機器使用パターンと関連して予め記録されたデータ群(dataset)と比較することにより、どちらの手で機器が使用されているか、または両手で使用されているかを決定してよい。
第2過程320は、片手使用モードの利用の可否を感知するための過程の例であってよい。片手使用モードとは、特定のモバイル機器や特定のアプリケーションにおいて、ユーザが片手でモバイル機器を制御することのできる機能を提供するためのモードであって、モバイル機器は、このような片手使用モードがオン(On)状態であるかオフ(Off)状態であるかに関する情報を提供してよい。このとき、モバイル機器が片手使用モードを提供しない場合にはオフ(Off)状態に含まれてよい。
第3過程330は、ユーザの移動状態を感知するための過程の例であってよい。モバイル機器は、第3過程330において、ユーザが現在どのような移動状態に位置するかに関する情報を提供してよい。移動状態の例としては、「停止」、「歩く」、「走る」、「バス」、「地下鉄」、「乗用車」、および「自転車」のうちのいずれか1つを含んでよい。また、第3過程330は、ユーザの移動速度に関する情報をさらに提供してよい。一例として、モバイル機器は、GPSおよび周辺の無線電話網の基地局、あるいはWi-Fi AP(Access Point)の情報によって提供されるモバイル機器の地理的位置(一例として、緯度/硬度の座標)の変化、またはモバイル機器が含む加速度センサの測定値などから、モバイル機器の移動速度に関する情報を取得してよい。また、モバイル機器は、取得した移動速度、および/またはモバイル機器が含む加速度センサおよび/またはジャイロセンサを利用して測定されるモバイル機器の揺れや振動のパターンに基づき、ユーザの移動状態に関する情報を取得してよい。このような移動速度や移動状態に関する情報を取得するための技術の一例として、「Google Activity Recognition API」(行動認識API)ような周知の技術に基づき、当業者によって容易に理解されることができるであろう。
第4過程340は、モバイル機器の状態情報を感知するための過程の例であってよい。モバイル機器は、LCDのオン(On)またはオフ(Off)に関する情報、アプリケーションがユーザによって現在使用されているかに関する情報(使用されている場合、どのようなアプリケーションがユーザによって使用されているかに関する情報、または特定のアプリケーションがフォアグラウンドまたはバックグラウンドで起動されているかに関する情報)、およびスクリーンロックの解除の可否に関する情報のうちの少なくとも1つを提供してよい。
第5過程350は、モバイル機器の位置情報を感知するための過程の例であってよい。ここで、位置情報は、地理的位置ではなく、ユーザが身に着けている衣類のポケットの中、ユーザが所持しているカバンの中、または外部露出などのような位置情報を含んでよい。例えば、モバイル機器は、加速度センサ、照度センサ、マイク、および近距離センサなどを活用してモバイル機器の位置情報を感知して提供してよい。
第6過程360は、モバイル機器の地理的位置情報を感知するための過程の例であってよい。モバイル機器は、GPS、Wi-Fiポジショニング、基地局などのような多様な情報を活用することで、モバイル機器の現在の緯度/硬度位置情報のような地理的位置情報を取得して提供してよい。また、第6過程360は、地理的位置情報の使用の可否に関する情報を提供してよい。例えば、ユーザがナビゲーションアプリを使用する場合は、地理的位置情報を使用しているものと決定されてよい。
上述した第1過程310~第6過程360のための具体的な技術は、当業者であれば周知の技術から容易に理解することができるであろう。例えば、第3過程330によってユーザの移動状態を感知する技術は、上述したように、「Google Activity Recognition API」に基づき、当業者が容易に理解することができるであろう。本発明の実施形態は、このような個別の情報をどのように取得できるかに関するものでなく、取得した情報をどのように活用すればユーザの状況を自動で感知および活用できるかに関するものである。また、実施形態によれば、第1過程310~第6過程360の一部の過程だけが実行されてもよいし、他の情報を取得するための新たな過程が追加されてもよいことは、当業者であれば容易に理解することができるであろう。
第7過程370は、第1過程310~第6過程360によって提供される情報に基づいてユーザ状況を決定する過程の例であってよい。第7過程370は、モバイル機器によって実行されてよく、実施形態によれば、モバイル機器が第1過程310~第6過程360によって提供する情報を受信したサーバ(一例として、サーバ150)によって実行されてもよい。ユーザ状況の決定は、機械学習を利用した分類方法として、確率を使用する分類モデルや非確率的分類モデルが活用されてよい。
例えば、確率を使用する分類モデルとして単純ベイズ分類(Naive Bayes Classification)が活用されてよい。単純ベイズ分類は、特性間の独立を仮定するベイズ定理を適用した確率分類の一種である。
単純ベイズは条件付き確率モデルであり、分類されるインスタンスはN個の特性(従属変数)を示すベクター(又はベクトル)で表現されるが、単純ベイズ分類は、このベクターを利用してk個の可能な確率的結果(クラス)を次の数式(1)のように割り当てる。
このような数式(1)は、特性Nの数が多い場合や、1つの特性が多くの数の値を有する場合に、確率テーブルにベイジアンモデルをそのまま適用するのが困難となる。このため、上記の数式は、ベイズ定理と条件付き確率を利用して次の数式(2)のように整理することが可能である。
ベイジアン確率用語を使用することにより、上記の数式は次の数式(3)のようにも表現することが可能である。
ここで、「posterior」は事後確率を、「prior」は事前確率を、「likelihood」は尤度を、「evidence」は観察値を、それぞれ意味してよい。
実際に、上記の数式(3)では分子部分だけに意味がある。分母部分は与えられたC値に依存せず、特性の値Fiの場合に分母の値が常数となるように与えられるためである。分子部分は、次の数式(4)のような結合確率モデルである。
このとき、数式(4)は、条件付き確率を繰り返し適用した連鎖法則を利用して次の数式(5)のように再帰的に表現することができる。
単純ベイズにおける条件付き独立性は、次の数式(6)のように表現されてよい。
このとき、カテゴリ種類Cが与えられる場合、ある特性F
iの場合には、すべてのF
j(j≠i)に対して条件付き独立となる。すなわち、数式(6)は、j≠iであるk,lに対して成立するようになり、これに基づき、結合モデルは、次の数式(7)のように表現されてよい。
数式(7)は、独立性の過程下において、クラス変数Cの条件付き分布は、次の数式(8)のように表現されてよい。
ここで、Z=p(x)は、特性値が与えられた場合に常数となる、すなわち、x
1、・・・、x
nだけに依存するスケーリングファクタである。
単純ベイズ分類は、このような確率モデルと決定規則とを組み合わせたものであって、共通する1つの規則は、最も可能性の高い仮説を選択するという点である。これは、事後またはMAP決定規則の最大値を選択することを意味する。すなわち、単純ベイズ分類ではクラスk、すなわち、Ckに対して次の数式(9)を利用しながら最大確率を有するクラスkを探索する。
一例として、第7過程370で、コンピュータ装置200は、第1過程310~第6過程360によって提供される情報による状況が独立事件であると仮定し、それぞれの状況に対するイベント発生回数を収集してよい。また、コンピュータ装置200は、このようなイベント発生回数に基づく発生確率を計算してよく、所望する結果値に対して個別状況がどのような確率を有するかを計算してイベントモデルを生成してよい。以後、テストのための状況イベントを入力し、生成されたイベントモデルに基づいて結果値を推定してよい。
一方、非確率的分類モデルとしては、サポートベクターマシン(Support Vector Machine:SVM)が活用されてよい。サポートベクターマシンは機械学習の分野の1つであって、パターン認識、資料分析のための指導学習モデルであり、分類と回帰分析のために主に使用される。2つのカテゴリのうちのいずれか1つに属するデータの集合が与えられたとき、SVMアルゴリズムは、与えられたデータ集合に基づき、新たなデータがどちらのカテゴリに属するかを判断する非確率的二値線形分類モデルを生成する。生成された分類モデルは、データが投影された空間で境界として表現されるが、SVMアルゴリズムは、そのうちの最大幅を有する境界を探索するアルゴリズムである。SVMは、線形分類とともに非線形分類でも使用可能である。非線形分類を行うために与えられたデータを高次元特徴空間に投影する作業が必要となるが、これを効率的に行うためにカーネルトリックを利用したりもする。
一例として、第7過程370で、コンピュータ装置200は、第1過程310~第6過程360によって提供される情報というデータの集合(データのベクター)がどのカテゴリに属するかを連続的に分類することにより、データの集合に対応するユーザの状況(カテゴリ)を決定してよい。
このような第7過程370は、イベントモデルを含むコンピュータ装置200によって実行されてよい。このようなコンピュータ装置200は、ユーザのモバイル機器であってもよいし、モバイル機器からネットワーク170を介して情報を受信したサーバ150であってもよい。例えば、コンピュータ装置200は、第1過程310~第6過程360によって提供される個別状況を組み合わせることで、ユーザの総合的な状況に関する情報や、以下で説明する自由度のような情報を提供してよい。例えば、コンピュータ装置200は、第7過程370でイベントモデルを利用してユーザの機器アクセスの可否、機器操作の可否、テキスト入力の可否などを分類し、結果値の例として自由度を提供してよい。以下の表1は、ユーザの状況に応じて4段階の自由度を決定する例を示している。
例えば、ユーザが出勤中にバスの内で立っており、モバイル機器がカバンの中に入っている第1状況例が考えられる。モバイル機器は、第3過程330によってユーザの移動状態(一例として、「バスの中」、移動速度は時速50km)に関する情報を提供してよく、第4過程340によってユーザが30分間いずれのアプリケーションも使用しなかったことに関する情報を提供してよく、第5過程によってモバイル機器の位置情報が「カバン」であることを把握して提供してよい。この場合、イベントモデルは、上述した第1状況例に対し、機器アクセスの可否、機器操作の可否、およびテキスト入力の可否をそれぞれ決定してよく、このような決定および表1で上述した第1状況例の自由度を「1」として決定してよい。
第2状況例として、ユーザが自転車に乗りながら、自転車に装着したモバイル機器をナビゲーションの用途で使用している状況が考えられる。このとき、モバイル機器で提供する情報は、「自転車」、「外部露出」、「中速移動中」、「LCDオン(On)」、「載置中」、「ナビゲーションアプリケーション使用中」などのような情報を含んでよい。この場合、イベントモデルは、ユーザが、機器アクセスは可能であり、機器操作は困難であり、テキスト入力も困難であるという決定により、第2状況例の自由度を「2」として決定してよい。
第3状況例として、ユーザが片手でモバイル機器を持った状態で道路を歩いている状況が考えられる。このとき、モバイル機器で提供する情報は、「歩く」、「外部露出」、「低速移動中」、「LCDオフ(Off)」、「10分以内のアプリケーションの使用記録が存在」、「片手」などのような情報を含んでよい。この場合、イベントモデルは、ユーザが、機器アクセスと機器操作は可能であるがテキスト入力は困難であると決定してよく、このような決定により、第3状況例の自由度を「3」として決定してよい。
第4状況例として、ユーザが会社で席に座ってモバイル機器を使用している状況が考えられる。このとき、モバイル機器で提供する情報は、「停止」、「LCDオン(On)」、「両手」、「アプリケーション使用中」、「位置情報未使用」のような情報を含んでよい。この場合、イベントモデルは、ユーザが、機器アクセス、機器操作、およびテキスト入力のすべてが可能であると判断し、第4状況例の自由度を「4」として決定してよい。
表1では、機器アクセスの可否、機器操作の可否、およびテキスト入力の可否に応じて自由度を4段階に分類した例を示しているが、条件や自由度の段階は実施形態によって多様に設定可能であることは、当業者であれば容易に理解することができるであろう。
図4~8は、本発明の実施形態における、自由度に応じて互いに異なるユーザインタフェースを提供する例を示した図である。
図4の実施形態では、メッセージが届いてユーザに通知ウィンドウを提供するときに、自由度を活用する1つの例を説明している。図4は、モバイル機器410がメッセージングサービスにメッセージを受信した場合に、ユーザの現在の自由度に応じて互いに異なるユーザインタフェースを提供する例を示している。
このとき、自由度1(420)の場合、ユーザは、機器アクセス、機器操作、およびテキスト入力のすべてが困難な状態であるため、画面に通知ウィンドウを表示しても特別な意味がない。この場合、モバイル機器410は、通知ウィンドウを表示しなくてもよい。図5は、メッセージは受信したが通知ウィンドウは表示しない電子機器1(110)の画面510の例を示している。
自由度2(430)の場合、ユーザは、機器アクセスは可能であるが、機器操作とテキスト入力は困難な状態である。この場合、機器アクセスが可能であるということは、機器画面に表示される情報は確認可能であることを意味するため、モバイル機器410は、メッセージの内容を含む通知ウィンドウを表示してよい。図6は、メッセージの受信にともない、電子機器1(110)の画面610に通知ウィンドウ620が表示された例を示している。このとき、ユーザの機器操作は困難であるため、図6では、通知ウィンドウ620に特別なユーザインタフェースを提供する必要がなく、メッセージの発信者に関する情報630とメッセージ内容640だけが通知ウィンドウ620に表示された例を示している。
自由度3(440)の場合、ユーザは、機器アクセスと機器操作は可能であるが、テキスト入力が困難な状態である。この場合、ユーザが少なくとも片手でモバイル機器410を操作することは可能であるため、モバイル機器410は、メッセージの内容を画面に表示するだけでなく、簡単な入力で操作可能な機能を提供するためのユーザインタフェースをともに提供してよい。図7は、メッセージの受信にともない、電子機器1(110)の画面710に通知ウィンドウ720が表示された例を示している。このとき、ユーザが簡単な機器操作は可能であるため、図7の通知ウィンドウ720は、メッセージの発信者に関する情報730とメッセージ内容740だけを表示するのではなく、メッセンジャーのチャットルームを通じてメッセージを確認するためのユーザインタフェース750と、通知ウィンドウ720を閉めるためのユーザインタフェース760をさらに含んで構成されている。これに加え、通知ウィンドウ720は、予め設定された定型句(「いま忙しい」、「後で電話する」)を送信するためのユーザインタフェース770、780をさらに含んで構成されている。ユーザがユーザインタフェース770、780のうちのいずれか1つを選択(一例として、タッチスクリーン環境で該当のユーザインタフェースが表示された領域をタッチ)する場合、電子機器1(110)は、選択されたユーザインタフェースに対応する定型句を含むメッセージを、発信者に関する情報730に対応する受信者に送信してよい。また、GPSおよび周辺の無線電話網の基地局、または照度センサなどからの情報により、ユーザが運転中であるとか携帯端末がカバンの中にある場合などのようにユーザの現在状態が定型句を選択することのできない場合であると判定される場合、ユーザの選択を受けずに自動で該当の定型句を送信してもよい。
自由度4(450)の場合、ユーザは、機器アクセス、機器操作、およびテキスト入力がすべて可能な状態である。この場合、ユーザは、受信したメッセージ内容を確認し、希望する場合には返答を直接入力して送信することができるため、モバイル機器は、返答を直接入力するためのユーザインタフェースを通知ウィンドウでさらに提供してよい。図8は、メッセージの受信にともない、電子機器1(110)の画面810に通知ウィンドウ820が表示された例を示している。上述したように、ユーザは、機器アクセスと機器操作だけでなく、テキストの入力も可能な状況であるため、図8の通知ウィンドウ820は、メッセージの発信者に関する情報830とメッセージの内容840とを表示し、簡単なユーザインタフェース850、860、870、880を提供するだけでなく、点線枠890に示すように、メッセージに対する返答を入力することのできる文字入力インタフェースをユーザにさらに提供してよい。例えば、ユーザが点線枠890に表示された領域を選択する場合、文字を入力するための機能がユーザに提供されてよい。
このように、本実施形態によれば、メッセージングサービスと連関する1つの機能を提供する場合にも、ユーザの状況によって決定された自由度に応じて多様なユーザインタフェースを提供することができる。このような自由度の活用が、メッセージングサービスと連関する多様な機能に活用可能であることは、当業者であれば、上述した実施形態に基づいて容易に理解することができるであろう。
以下では、ユーザの状況を活用する多様な実施形態について説明する。
図9は、本発明の一実施形態における、他のユーザの状態情報を表示する例を示した図である。上述したように、ユーザのモバイル機器だけでなく、メッセージングサービスを提供するサーバ150も、メッセージングサービスを利用するユーザの状況を具体的に取得可能である。図9は、電子機器1(110)の画面910にユーザと人的関係が設定された他のユーザのリストを提供する例を示している。このとき、少なくとも1つの他のユーザに対し、他のユーザの状況に関する情報が表示されてよい。図9では、第1点線枠920のように他のユーザBBBが「会議中」であることを、第2点線枠930のように他のユーザCCCが「自転車運転中」であることを、第3点線枠940のように他のユーザEEEが「メッセンジャー使用中」であることを知らせることで、他のユーザの状況に関する情報を提供している。
このために、サーバ150は、メッセージングサービスを利用したユーザのモバイル機器から、図3を参照しながら上述した第1過程310~第6過程360によって収集される情報をネットワーク170を介して受信し、第7過程370を実行してユーザの状況を分類してよい。また、ユーザのモバイル機器それぞれで第1過程310~第6過程360によってユーザの状況が分類された後、サーバ150は、分類されたユーザの状況に関する情報を受信して活用してもよい。
このように、サーバ150は、メッセージングサービスでユーザと人的関係が設定された他のユーザのリストを提供するにあたり、少なくとも1つの他のユーザの状況情報をともに提供してよく、モバイル機器は、モバイル機器においてインストールされて実行されたメッセンジャーアプリケーションの制御にしたがい、少なくとも1つの他のユーザの状況情報が該当の他のユーザの情報とともに表示されたリストを画面に表示してよい。このとき、表示される状況情報は、他のユーザに対して収集されたすべての状況情報を含む必要はない。サーバ150は、他のユーザに対して収集された状況情報のうちから代表的な状況情報を選別して提供してよい。
また、モバイル機器は、メッセンジャーアプリケーションで、ユーザの状況情報を表示する他のユーザを設定することのできるユーザインタフェースを提供してよい。例えば、図9の実施形態は、少なくとも他のユーザBBB、CCC、EEEの状況情報が電子機器1(110)のユーザに提供されるように設定した場合を意味してよい。
このような状況情報の表示により、ユーザがメッセージングサービスを利用して会話を行わなくても、人的関係が設定された他のユーザと状況情報を通じて情報提供を共感することができるようになる。
また他の実施形態として、サーバ150は、チャットルーム(会話セッション)リストに、各チャットルームの会話参加可能点数(Joinability score)を表示してよい。例えば、サーバ150は、特定の会話セッションの参加者それぞれの状況情報に基づき、該当の会話セッションでユーザが会話に参加することのできる確率が高い程度を会話参加可能点数として数値化して提供してよい。
図10は、本発明の一実施形態における、会話参加可能点数を提供する例を示した図である。図10は、電子機器1(110)の画面1010に、ユーザを参加者とする会話セッション(チャットルーム)のリストを表示した例を示している。このとき、点線枠1020は、会話セッションそれぞれの会話参加可能点数を示している。図10の実施形態は、会話参加可能点数が0~100までの数で決定された例を示しており、会話参加可能点数の高いほど、ユーザが該当のチャットルームで会話に参加できる確率が高いことを意味してよい。例えば、チャットルームの参加者全員が忙しい状況であれば、ユーザが該当のチャットルームに入ってメッセージを送信したとしても返答を受けることのできる確率は低いため、会話参加可能点数は低く設定されてよい。実施形態によれば、会話参加可能点数は、点数ではなく、色(一例として、赤色、黄色、緑色)やレベル(一例として、High、Mid、Lowの3段階のレベル)などで表示されてもよい。
このような会話参加可能点数は、会話セッションに参加した参加者それぞれの自由度と、参加者それぞれがチャットルームでメッセージを送受信した記録に基づいて決定されてよい。例えば、サーバ150は、会話セッションに参加した参加者の自由度が高いほど、さらにここ最近の予め設定された時間内のメッセージ送信および/または受信回数が多いほど、会話参加可能点数を高く設定してよい。
また、サーバ150は、チャットルーム(会話セッション)リストに含まれたチャットルームを、会話参加可能点数順に整列して提供してもよい。言い換えれば、できるだけ多くの人が今すぐ会話に参加することのできるチャットルームの順にチャットルームを表示したリストがユーザに提供されてよい。また、サーバ150は、会話参加可能点数順に整列されたチャットルームのうち、会話参加可能点数が予め設定された値以上のチャットルームだけをリストに含ませて提供してもよいし、会話参加可能点数順に整列されたチャットルームのうち、会話参加可能点数が高い順に予め設定された数のチャットルームだけをリストに含ませて提供してもよい。
一方、このような会話参加可能点数は、ユーザ別に設定されてもよい。例えば、図9で、人的関係が設定された他のユーザの状況情報を表示する代わりに、ユーザ別の会話参加可能点数を計算して表示してもよい。この場合、ユーザの会話参加可能点数は、該当のユーザの自由度と、該当のユーザがメッセージを送受信した記録に基づいて決定されてよい。例えば、サーバ150は、ユーザの自由度が高いほど、さらにユーザがここ最近の予め設定された時間内にメッセージを送信および/または受信した回数が多いほど、会話参加可能点数を高く設定してよい。より具体的な例として、会話セッションAの参加者Bに対し、会話セッションAで予め設定された時間内に送信されたメッセージの全体数に対してユーザBが送信したメッセージの数が高いほど、ユーザBの会話参加可能点数が高く設定されてよい。
また、サーバ150は、このようなユーザ別の会話参加可能点数を、チャットルーム内の参加者のそれぞれの会話集中度として提供してもよい。例えば、チャットルームAにユーザA、ユーザB、ユーザCが参加していると仮定するとき、サーバ150は、ユーザA、ユーザB、ユーザCの会話集中度を該当のユーザと連携させてチャットルーム内に表示してよい。これとは逆に、チャットルーム内で参加者の状況情報(一例として、走る、会議中、バス、自転車)を提供してもよい。
また、サーバ150は、メッセンジャーアプリケーションにおいて、個別のユーザそれぞれが自身の友達(メッセージングサービスで人的関係が設定された他のユーザ)それぞれに対して状況情報の表示や会話集中度(会話参加可能点数)の表示などを設定することのできるユーザインタフェースを提供してよい。
一方、サーバ150は、状況情報に基づいてチャットルームの生成をサポートするための機能を、メッセンジャーアプリケーションを通じてユーザに提供してもよい。例えば、サーバ150は、会話セッションの生成時に、ユーザの状況に基づき、会話セッションの参加者を、メッセンジャーアプリケーションを通じてユーザに推奨してよい。例えば、サーバ150は、ユーザと同じ状況またはユーザが予め設定した状況にある友達をユーザに推奨してよい。他の例として、サーバ150は、会話集中度が高い友達をユーザに推奨してもよい。このとき、サーバ150は、推奨された友達のうちからユーザが選択した友達との新たなチャットルームを生成して提供してよい。
他の実施形態として、サーバ150は、状況情報に基づき、匿名によるインスタントオープンチャットルームを生成してもよい。例えば、サーバ150は、特定の地域で同じ状況にある人を参加者とする匿名によるチャットルームを生成し、生成されたチャットルームへの参加を該当のユーザに推奨してよい。また、サーバ150は、ユーザが地域および/または状況を設定する場合、設定された地域および/または状況に合うチャットルームを検索し、検索されたチャットルームリストを提供してもよい。このような匿名によるチャットルームでも、ユーザは、自身の状況情報や会話集中度(会話参加可能点数)の表示の可否を設定してよい。
このような機能は、特定の状況で匿名のユーザ同士が情報を交換したり、または特殊なイベントと連関するユーザ同士を簡単に集めて意見を交換したりする機会を提供することを可能にする。具体的な例として、ゲーム展示会で各ブース別にゲームを体験するために集まっている人が、ブース別の待機時間に関する情報や特定の道路の車の混雑具合に関する情報を、遊園地の乗り物の機器状況や、同じ公演を見に来た人同士の感性や関連情報を、匿名によるチャットルームで交換することが可能となる。言い換えれば、サーバ150は、特定の状況にある匿名のユーザが匿名によるチャットルームに参加して情報を交換するように誘導することが可能となる。
図11は、本発明の一実施形態における、インタラクション方法の例を示したフローチャートである。本実施形態に係るインタラクション方法は、上述したコンピュータ装置200によって実行されてよい。本実施形態に係るコンピュータ装置200は、上述したモバイル機器や電子機器1(110)に対応してよく、メッセージングサービスを提供するサーバ150からネットワーク170を介してメッセージングサービスが提供されてよい。例えば、コンピュータ装置200のプロセッサ220は、メモリ210が含むオペレーティングシステムのコードと、少なくとも1つのプログラムのコードとによる制御命令(instruction)を実行するように実現されてよい。ここで、プロセッサ220は、コンピュータ装置200に記録されたコードが提供する制御命令にしたがってコンピュータ装置200が図11のインタラクション方法に含まれる段階1110~1150を実行するようにコンピュータ装置200を制御してよい。
段階1110で、コンピュータ装置200は、メッセージングサービスと連関してモバイル機器においてインストールされて実行されたアプリケーションの制御にしたがい、モバイル機器またはモバイル機器のユーザのうちの少なくとも1つの状況に関する情報を取得してよい。ユーザの状況に関する情報については、図3の第1過程310~第6過程360を参照しながら詳しく説明したとおりである。
段階1120で、コンピュータ装置200は、取得された情報に基づいてユーザの状況を決定してよい。例えば、コンピュータ装置200は、段階1120で、入力される情報に基づき、予め設定された状況のうちから1つの状況を決定するように機械学習された分類モデルに取得された情報を入力して決定される状況を、ユーザの状況として決定してよい。このような機械学習された分類モデルについては、確率を使用する分類モデルである単純ベイズ分類と、非確率的分類モデルであるサポートベクターマシン(SVM)を参照しながら詳しく説明したとおりである。
段階1130で、コンピュータ装置200は、決定されたユーザの状況に基づき、メッセージングサービスを通じてユーザに提供するための機能を確認してよい。上述した図4~8の実施形態では、メッセージの受信にともない、通知ウィンドウをユーザに提供する機能について詳しく説明した。例えば、機能は、メッセージングサービスを通じてユーザに受信されたメッセージに対する通知を提供するための機能を含んでよく、ユーザインタフェースは、通知ウィンドウを表示しない構成、通知ウィンドウにメッセージの内容を表示する構成、通知ウィンドウにメッセージの内容および選択インタフェースを提供する構成、および通知ウィンドウにメッセージの内容、選択インタフェース、およびテキスト入力インタフェースを提供する構成を含んでよい。この場合、コンピュータ装置200は、段階1130で、ユーザの機器アクセスの可否、ユーザの機器操作の可否、およびユーザのテキスト入力の可否それぞれに対する組み合わせにより、複数のレベルのうちから1つのレベルを決定してよい。レベルは、実施形態によれば、コンピュータ装置200と、ネットワーク170を介して連結してコンピュータ装置200にメッセージングサービスを提供するサーバ150が、コンピュータ装置200から受信される情報に基づいて決定してもよい。
段階1140で、コンピュータ装置200は、機能の提供のために提供されるユーザインタフェースの構成を、決定されたユーザの状況に応じて動的に決定してよい。例えば、レベル別に提供されるユーザインタフェースの構成が予め設定されてよく、コンピュータ装置200は、段階1130で決定されたレベル以下のレベルによって提供される構成が含まれたユーザインタフェースにより、機能の提供のためのユーザインタフェースの構成をユーザの状況に応じて動的に決定してよい。
段階1150で、コンピュータ装置200は、動的に決定された構成のユーザインタフェースで機能を提供してよい。したがって、ユーザには、自身の状況に応じて互いに異なる構成を含むユーザインタフェースが提供され、状況別のユーザインタフェースを利用してメッセージングサービスとインタラクションすることが可能となる。
図12は、本発明の一実施形態における、インタラクション方法の他の例を示した図である。本実施形態に係るインタラクション方法は、上述したコンピュータ装置200によって実行されてよい。本実施形態に係るコンピュータ装置200は、メッセージングサービスを提供するサーバ150に対応してよい。例えば、コンピュータ装置200のプロセッサ220は、メモリ210が含むオペレーティングシステムのコードと、少なくとも1つのプログラムのコードとによる制御命令を実行するように実現されてよい。ここで、プロセッサ220は、コンピュータ装置200に記録されたコードが提供する制御命令にしたがってコンピュータ装置200が図12のインタラクション方法に含まれる段階1210~1250を実行するようにコンピュータ装置200を制御してよい。
段階1210で、コンピュータ装置200は、メッセージングサービスを利用する複数の会員それぞれに対し、人的関係が設定された他の会員に対する情報を記録して管理してよい。コンピュータ装置200は、メッセージングサービスを提供する主体であってよく、したがって、メッセージングサービスで会員同士の人的関係に関する情報を管理してよい。
段階1220で、コンピュータ装置200は、複数の会員それぞれの状況情報を持続的に収集してよい。例えば、メッセージングサービスの会員のモバイル機器それぞれで図3の第1過程310~第6過程360によって提供される情報が、ネットワーク170を介してコンピュータ装置200に収集されてよい。この場合、コンピュータ装置200は、第7過程370を実行することで、収集される情報から会員の状況情報、および/またはレベル(一例として、表1を参照しながら説明した自由度)を決定してよい。実施形態によれば、会員のモバイル機器それぞれで第1過程310~第7過程370がすべて実行されてもよい。この場合、コンピュータ装置200は、モバイル機器それぞれから状況情報および/またはレベルを収集してもよい
段階1230で、コンピュータ装置200は、収集された状況情報を、対応する会員と連携させてデータベースに記録して更新してよい。コンピュータ装置200は、モバイル機器から状況情報を周期的に収集してデータベースを更新し続けてよい。
段階1240で、コンピュータ装置200は、複数の会員のうちの第1会員と人的関係が設定された第2会員に関する情報を第1会員に提供する場合、第2会員の状況情報をデータベースから抽出してよい。第1会員と人的関係が設定された他の会員のリストを提供する場合に、コンピュータ装置200は、他の会員それぞれの状況情報をデータベースから抽出してよい。
段階1250で、コンピュータ装置200は、抽出された状況情報を、第2会員に関する情報とともに第1会員に提供してよい。上述したように、第1会員と人的関係が設定された他の会員のリストを提供する場合には、コンピュータ装置200は、抽出された他の会員それぞれの状況情報と対応する他の会員の情報とが連携されたリストを第1会員に提供してよい。
実施形態によれば、コンピュータ装置200は、状況情報とともに、または状況情報の代わりに、会話参加可能点数を計算して提供してもよい。例えば、コンピュータ装置200は、データベースから抽出された状況情報に基づいて第2会員の会話参加可能点数を計算し、計算された会話参加可能点数を、第2会員に関する情報とともに第1会員に提供してよい。上述したように、会話参加可能点数は、第2会員の状況のレベルの値が高いほど、さらに会話セッションを通じて第2会員が送受信したメッセージの数が多いほど、高く計算されてよい。
他の実施形態として、コンピュータ装置200は、チャットルームに対する会話参加可能点数を提供してもよい。例えば、コンピュータ装置200は、第1会員が参加した会話セッションに関する情報を提供する場合、会話セッションに参加した会員それぞれの状況情報をデータベースから抽出し、会話セッションに参加した会員それぞれの状況情報に基づき、会話セッションに対する会話参加可能点数を計算してよい。この場合、コンピュータ装置200は、計算された会話参加可能点数を、会話セッションに関する情報とともに第1会員に提供してよい。会話参加可能点数は、会話セッションに参加した会員それぞれの状況情報によるレベルが高いほど、さらに会話セッションを通じて送信および/または受信されたメッセージの数が多いほど、高く計算されてよい。また、コンピュータ装置200は、第1会員が参加した会話セッションそれぞれに対する会話参加可能点数順に第1会員が参加した会話セッションのリストを整列し、整列されたリストを第1会員に提供してもよい。
また他の実施形態として、コンピュータ装置200は、メッセージングサービスと連関して第1会員のモバイル機器においてインストールされて実行されるアプリケーションにより、第1会員が第1会員と人的関係が設定された他の会員に状況情報を提供するか否かを、他の会員それぞれに対して設定できるユーザインタフェースを提供してよい。言い換えれば、メッセージングサービスの会員それぞれは、自身の状況情報を友達に表示するか否かを友達それぞれに対して設定してよい。実施形態によれば、状況情報だけでなく、会話参加可能点数を表示するか否かを友達それぞれに対して設定するためのユーザインタフェースが提供されてもよい。
また他の実施形態として、コンピュータ装置200は、他の会員のうちの第1会員の状況情報と同じ状況情報を有しているか、または第1会員が予め設定した状況情報を有している第3会員を決定し、第3会員を第1会員に推奨し、推奨された第3会員が選択される場合、第1会員と第3会員とを参加者とする会話セッションを生成してよい。言い換えれば、コンピュータ装置200は、それぞれの会員に、同じ状況を有する友達や会員が設定した状況を有する友達を推奨してよく、推奨した友達とともにチャットルームを生成する機能を会員に提供してよい。
さらに他の実施形態として、コンピュータ装置200は、複数の会員のうちから同じ状況情報を有している会員を選択し、選択された会員同士の匿名の会話セッションを生成してよい。また、コンピュータ装置200は、第1会員によって設定される状況情報に対応する匿名の会話セッションを検索し、検索された匿名の会話セッションに関する情報を第1会員に提供してよい。このとき、会員の選択や検索には地理的位置がさらに活用されてよい。例えば、同じ地域で同じ状況を有する人同士の匿名チャットルームが生成、検索、および提供されることが可能となる。
以上のように、本発明の実施形態によれば、モバイル機器によって取得可能な現在情報とここ最近の記録を利用してユーザの現在状況を推定し、推定されたユーザの状況に基づく機器アクセスの可否、機器操作の可否、およびテキスト入力の可否によってユーザの自由度レベルを決定し、決定された自由度レベルによってメッセージングサービスとのインタラクション方式を決定することにより、同じ機能(一例として、通知の提供)を提供する場合であっても、ユーザの状況に応じて互いに異なるユーザインタフェースを提供することができる。
また、メッセージングサービスでユーザの状況に関する情報をまとめて管理することにより、特定のユーザと人的関係が設定された他のユーザの状態情報を該当の特定のユーザに提供することができる。
また、メッセージングサービスでユーザの状況に関する情報をまとめて管理することにより、メッセージングサービスで設定された会話セッションそれぞれの会話参加可能点数に関する情報を提供、および/または表示することができる。
また、メッセージングサービスでユーザの状況に関する情報をまとめて管理することにより、メッセージングサービスにおける会話セッションの参加者の会話集中度に関する情報を提供、および/または表示することができる。
また、メッセージングサービスでユーザの状況に関する情報をまとめて管理することにより、会話セッションの生成時に、ユーザの状況に基づいて会話セッションの参加者を推奨することができる。
さらに、メッセージングサービスでユーザの状況に関する情報をまとめて管理することにより、匿名による会話セッションをユーザの状況に合わせて検索、生成、および参加することのできる機能を提供することができる。
上述したシステムまたは装置は、ハードウェア構成要素、ソフトウェア構成要素、またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)およびOS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを記録、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置、コンピュータ記録媒体または装置に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で記録されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータ読み取り可能な記録媒体に記録されてよい。
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。コンピュータ読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独または組み合わせて含んでよい。媒体に記録されるプログラム命令は、実施形態のために特別に設計されたものであってもよいし、コンピュータソフトウェアの当業者に公知された使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例には、ハードディスク、フロッピーディスク、および磁気テープのような磁気媒体、CD-ROMおよびDVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどのようなプログラム命令を記録して実行するように特別に構成されたハードウェア装置が含まれる。このような記録媒体は、単一または複数のハードウェアが結合した形態の多様な記録手段また格納手段であってよく、あるコンピュータシステムに直接接続される媒体に限定されるものではなく、ネットワーク上に分散して存在するものであってもよい。プログラム命令の例には、コンパイラによって生成されるもののような機械語コードだけでなく、インタプリタなどを使用してコンピュータによって実行されることのできる高級言語コードが含まれる。
以上のように、実施形態を、限定された実施形態および図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。