詳細な説明
本願明細書において記載される多くの実施の形態は、テキストフィールドへの文字のタイピングを伴う、コンピューティングデバイス上でのさまざまなアクティビティの間に、エモティコンを識別および提案するシステムおよび方法に関する。さまざまなシステムおよび方法が、テキストフィールドに存在するセグメントのコンテキストを分析するとともにそのコンテキストに基づいてテキストフィールドへのエントリに利用可能な1つ以上の候補のエモティコンを識別することにより、エモティコンを識別し得る。その後、ユーザは候補のエモティコンから1つ以上のエモティコンを選択し得、選択されるエモティコンは、テキストフィールドに入力され得る。随意では、ユーザは、エモティコンの提案を完全に無視するよう選択し、コンピューティングデバイス上の自身のアクティビティを継続し得る。この記載において使用されるように、「セグメント」は、単語、句、文の断片、文または節を示す1つ以上の文字を含み得る。
実施の形態によっては、テキストフィールドに存在するセグメントのコンテキストの分析は、それらのセグメントに関するサブテキストまたは意味を決定することを伴う可能性もあり、それらのセグメントの意味解析が必要となる可能性もある。さらに、本願明細書に記載されるように、特定の候補のエモティコンと特定のサブテキストまたは意味との間の関連性は、特定のサブテキストまたは意味を持つ特定の候補のエモティコンの(過去の)統計的な使用に基づき得る。さまざまな実施の形態では、このようなエモティコンの使用は、特定のサブテキストもしくは意味(たとえば特定のサブテキストもしくは意味における提案されるエモティコンのユーザの選択)との特定のエモティコンのユーザの個人的
な使用に基づき得るか、または特定のサブテキストもしくは意味を持つ特定のエモティコンのコミュニティの使用(たとえばユーザのコミュニティによるソーシャルネットワーク上の投稿において観察されたいくつかのエモティコンの使用)に基づき得る。
図1は、さまざまな実施の形態が用いられ得る環境100の例を示す。環境100は、タブレットコンピューティングデバイス104と、タブレットコンピューティングデバイス104に結合されたローカルのエモティコンデータストア102と、スマートフォンコンピューティングデバイス108と、スマートフォンコンピューティングデバイス108に結合されたローカルのエモティコンデータストア106と、デスクトップコンピューティングデバイス112と、デスクトップコンピューティングデバイス112に結合されたローカルのエモティコンデータストア114と、エモティコン提案サーバ116と、エモティコン提案サーバ116に結合されたローカルのエモティコンデータストア118とを含む。環境100はさらに通信ネットワーク110を含む。通信ネットワーク110上で、タブレットコンピューティングデバイス104、スマートフォンコンピューティングデバイス108、デスクトップコンピューティングデバイス112およびエモティコン提案サーバ116が通信する。タブレットコンピューティングデバイス104、スマートフォンコンピューティングデバイス108、デスクトップコンピューティングデバイス112、およびエモティコン提案サーバ116は、プロセッサおよびメモリを有するデジタルデバイスの例である。さまざまな実施の形態が用いられ得る他の例示的なデジタルデバイスは、ラップトップ、ネットブック、ノートブック、メディアデバイス、音楽デバイス、携帯情報端末(personal digital assistant:PDA)などを含む。例示的なデジタルデバイスが、図7にさらに記載される。
いくつかの実施の形態に従うと、タブレットコンピューティングデバイス104、スマートフォンコンピューティングデバイス108、およびデスクトップコンピューティングデバイス112は、入力のためのエモティコンを識別および提案するためのシステムおよび方法を利用する例示的なデジタルデバイスであり得る。たとえば、このようなコンピューティングデバイスは、ユーザがこのようなコンピューティングデバイス上でインスタントメッセージングアプリケーションを使用している場合、またはユーザがこのようなコンピューティングデバイスを通じてウェブサイトフォーラムにメッセージを投稿している場合に、ある実施の形態を用いてエモティコンを識別および提案し得る。本願明細書において記載されるさまざまな実施の形態に関連して他のデジタルデバイスが用いられ得ることが当業者には理解されるであろう。
いくつかの実施の形態では、エモティコン提案サーバ116は、デジタルデバイスにてユーザのためにエモティコンの識別および提案を促進し得る。本願明細書において後述されるように、エモティコン提案サーバ116は、セグメントのコンテキストを決定し得るか、決定されたコンテキストに基づいて1つ以上の候補のエモティコンを識別し得るか、デジタルデバイスに1つ以上の候補のエモティコンを提案し得るか、またはそれらの何らかの組合せを行い得る。さまざまな実施の形態の場合、エモティコン提案サーバ116は、エモティコン提案サーバ116がインターネットサービスにエモティコンの提案機能性を提供する場合、インターネットサービスをホストするサーバ上で動作するサービスであり得る。たとえば、エモティコン提案サーバ116は、エモティコン提案サーバ116によってサービスが提供されている(すなわちエモティコン提案サーバ116によってエモティコンの提案が提供されている)ウェブサイト(たとえばウェブサイトフォーラムまたはソーシャルネットワーキングウェブサイト)をホストしているウェブサーバ上で動作するサービスであり得る。
実施の形態に応じて、エモティコンを識別および提案するためのさまざまな動作およびコンポーネントは、エモティコンの提案を利用するデジタルデバイスに分離されてもよく
、または2つ以上のデジタルデバイスの間で変動するレベルで分散されてもよい。たとえば、スマートフォンコンピューティングデバイス108上で電子メールを作成する際にエモティコンを識別、提案、および入力するためのシステムまたは方法は、スマートフォンコンピューティングデバイス108上に格納および動作される電子メールアプリケーションに完全に埋め込まれ得る。代替的な例においては、ウェブサイトフォーラムのためにメッセージ投稿を準備するようタブレットコンピューティングデバイス104を使用している間、エモティコンを識別、提案、および入力するためのシステムまたは方法は、タブレットコンピューティングデバイス104を利用して、現在準備されるメッセージのコンテキストを決定し、エモティコン提案サーバ116を利用して、現在準備されるメッセージにおいて使用される1つ以上の候補のエモティコンを識別し、次いで、タブレットコンピューティングデバイス104を利用して、提案されるエモティコンとして候補のエモティコンを提示し得る。
エモティコン提案サーバ116は、デジタルデバイスへのエモティコンの識別および提案の間、リモートのエモティコンデータストア118を利用し得る。ある実施の形態の場合、リモートのエモティコンデータストア118は、エモティコン提案サーバ116による提案に利用可能なエモティコンのライブラリと、当該ライブラリにおけるエモティコンとコンテキスト(たとえばサブテキストおよび意味)との間の関連性とを含み得る。たとえば、リモートのエモティコンデータストア118は、「幸せな顔」のエモティコンのライブラリと、「幸せな顔」のエモティコンと幸福なコンテキストとの間の関連性とを含み得る。別の例では、リモートのエモティコンデータストア118は、「サンフランシスコ」のエモティコンのライブラリと、「サンフランシスコ」のエモティコンとサンフランシスコの町を明示的または暗黙的に指すコンテキストとの間の関連性とを含み得る。いくつかの実施の形態の場合、リモートのエモティコンデータストア118は、所与のエモティコンと所与のコンテキスト(たとえばサブテキストまたは意味)との間の2つ以上の関連性を含み得る。たとえば、リモートのエモティコンデータストア118は、「しかめっ面」のエモティコンのライブラリと、「しかめっ面」のエモティコンと悲しいコンテキストとの間の関連性と、「しかめっ面」のエモティコンと不快なコンテキストとの間の関連性とを含み得る。さまざまなエモティコンライブラリおよびエモティコンとコンテキストとの間のさまざまな関連性が、リモートのエモティコンデータストア118上に格納され得るということを当業者であれば理解するであろう。
実施の形態に応じて、エモティコンのライブラリは、任意のユーザによってアクセス可能なエモティコンか、(たとえば、プレミアムに基づくか、またはあるグループにのみアクセス可能であるといった)アクセスが制限された限定されたグループのユーザによってアクセス可能なエモティコンか、ユーザがカスタマイズしたエモティコンもしくはユーザがアップロードしたエモティコンか、または、ユーザのお気に入りであるエモティコンを含んでもよい。著者の気分または感情を伝える文字エモティコンおよびグラフィカルエモティコンに加えて、さまざまな実施の形態において使用されるエモティコンは、関心事、趣味、地理的な位置、イベント、休日、季節および天候などに関するエモティコンを含み得る。エモティコン提案データストア118上に格納されたエモティコンは、文字エモティコン、グラフィカルエモティコン、グラフィカルにアニメーション化されたエモティコン、および音を伴ったエモティコンを含み得る。いくつかの実施の形態の場合、リモートのエモティコンデータストア118はさらに、提案に好適なエモティコンを識別する際に実施の形態において利用され得るユーザプレファレンス、ユーザ情報または受信者情報を含み得る。たとえば、リモートのエモティコンデータストア118は、任意のユーザに一般に利用可能なエモティコンを提案する前に、ユーザ規定のエモティコンまたはユーザがアップロードしたエモティコンを実施の形態に提案させるユーザプレファレンスを格納し得る。別の例では、リモートのエモティコンデータストア118は、実施の形態によってユーザに提案された第1のエモティコンを実施の形態に自動的に挿入させるか、または所
与のコンテキストにおいてもっとも使用頻度が高い提案されたエモティコンを実施の形態に自動的に挿入させるユーザプレファレンスを格納し得る。
いくつかの実施の形態では、タブレットコンピューティングデバイス104、スマートフォンコンピューティングデバイス108およびデスクトップコンピューティングデバイス112は各々、別個のローカルのエモティコンデータストアに結合され得る。別個のローカルのエモティコンデータストアは、ユーザがカスタマイズしたエモティコン、ユーザのお気に入りもしくはユーザが好むエモティコン、ローカルのエモティコンデータストア上に格納されたエモティコンとコンテキスト(たとえばサブテキストまたは意味)との間の関連性、エモティコンの識別および提案に関してのユーザプレファレンス、ユーザに関連する情報、または受信者に関連する情報を格納可能である。たとえば、タブレットコンピューティングデバイス104は、ローカルのエモティコンデータストア102に結合され得、スマートフォンコンピューティングデバイス108は、ローカルのエモティコンデータストア106に結合され得、デスクトップコンピューティングデバイス112は、ローカルのエモティコンデータストア114に結合され得る。
さらに、ローカルのエモティコンデータストア102、106および114の各々は、それらのそれぞれのコンピューティングデバイスによって用いられて、以前に提案されたエモティコンまたは以前にユーザによって選択された提案されたエモティコンをローカルにキャッシュし得る。その際、いくつかの実施の形態は、当該提案されたエモティコンについてエモティコン提案サーバ116がクエリを受ける回数を制限しつつ、共通して発生するコンテキストについて同じエモティコンを繰り返し提案し得る。いくつかの実施の形態の場合、ローカルのエモティコンデータストア102、106および114にキャッシュされたエモティコンは、失効時間を有し得る。当該失効時間の後、キャッシュされたエモティコンは無効化またはパージされる。ひとたびキャッシュ中のエモティコンアイテムが失効すると、いくつかの実施の形態は、提案されるエモティコンについてエモティコン提案サーバ116にクエリを送ることを再開する。
図2は、いくつかの実施の形態に従った例示的なエモティコン提案システム200のブロック図である。エモティコン提案システム200は、表示モジュール202、入力モジュール204、セグメント分析モジュール206、エモティコン検索モジュール208、エモティコン提案モジュール210、エモティコン選択モジュール212、およびエモティコンデータストア214を含み得る。いくつかの実施の形態では、エモティコン提案システム200はさらに、エモティコン提案システム200に含まれるさまざまなモジュールの動作を促進するメモリおよび少なくとも1つのプロセッサを含み得る。
表示モジュール202は、テキストフィールドまたはテキストボックスのような入力フィールドを表示し得る。入力フィールドに、ユーザは入力モジュール204を使用して、1つ以上のセグメント、文字エモティコンまたはグラフィカルエモティコンを入力し得る。典型的に、セグメントおよびエモティコンは、入力フィールドに入力されると、入力フィールドに現われる。本願明細書において示されるように、「セグメント」は、単語、句、文の断片、文または節を示す1つ以上の文字を含み得る。入力フィールドの一部として、表示モジュール202は、ユーザの文字入力が次にどこに入力されるか、またはエモティコンが次にどこに入力されるかを示す入力カーソルを表示し得る。
本願明細書において示されるように、さまざまな実施の形態は、入力フィールド内の入力カーソルの現在位置、入力の現在のセグメント内容、ユーザに関連する情報、受信者に関連する情報、ユーザプレファレンスまたはそれらの何らかの組合せに基づき、エモティコンを提案し得る。一般に、ひとたび1つ以上の候補のエモティコンがユーザへの提案のために(たとえば、入力フィールドのセグメント内容に基づいて)識別されると、候補の
エモティコンは表示モジュール202を介してユーザに提案され得る。具体的には、表示モジュール202は、ユーザの選択のために、入力フィールドにおける入力カーソルの現在位置または当該現在位置の近くに、候補のエモティコンを表示し得る。実施の形態に応じて、表示モジュール202は、コールアウトボックスを介して、入力フィールドまたはその入力フィールドの近くに、候補のエモティコンを表示してもよい。
いくつかの実施の形態の場合、表示モジュール202は、デジタルデバイス(たとえばビデオディスプレイまたはビデオプロジェクタ)の一部を形成し得る。当該デジタルデバイスは、デジタルデバイスからのグラフィカル出力をすべて表示することを担い得る。いくつかの実施の形態では、表示モジュール202は、グラフィカルユーザインターフェイス(graphical user interface:GUI)の一部として、入力フィールドを表示し得る。たとえば、入力フィールドは、デジタルデバイス上で動作するアプリケーションのグラフィカルコンポーネントであり得る(たとえば電子メールクライアントもしくはインスタントメッセージングアプリケーション)か、またはデジタルデバイス上で動作するアプリケーションを通じて閲覧可能もしくは編集可能である文書のグラフィカル表示であり得る(たとえば、ウェブブラウザを通じて示されるウェブページのテキストフィールドもしくはワードプロセッサを通じて示される文書)。当業者であれば、実施の形態同士の間で入力フィールドのタイプとサイズが多様になり得るということを理解するであろう。
入力モジュール204は、ユーザから文字入力を受け取り得るとともに、このような文字入力を受け取られたとおりに入力フィールドに入力し得る。文字入力が入力フィールドに入力されると、表示モジュール202は、当該文字入力で入力フィールドを更新し得る。さらに、さまざまな実施の形態に従うと、入力モジュール204は、提案されるエモティコンについてのエントリ選択を受け取り得る。一般に、選択に際して、選択されるエモティコンは、入力フィールドにおける入力カーソルの現在位置に挿入され得る。実施の形態に応じて、入力モジュールは、デジタルデバイスに外部的に結合されるかまたはデジタルデバイスに物理的に埋め込まれる物理的な入力装置を含んでもよい。物理的な入力装置の例は、キーボード、トラックパッドまたはコンピュータマウスを含み得るが、これらに限定されない。いくつかの実施の形態では、入力モジュールは、レーザ投射されたキーボードまたはオンスクリーンキーボードのような仮想入力装置を含み得る。仮想入力装置は、表示モジュール202を通じてユーザに提供され得る(すなわち表示され得る)。さまざまな実施の形態において、仮想入力装置が使用される際には、このような仮想入力装置は、セグメントが入力される入力フィールドまたはその入力フィールドの近くに表示され得る。
図6にさらに記載されるように、いくつかの実施の形態において、提案されるエモティコンは、入力モジュール204を通じてユーザに提示され得る。たとえば、入力モジュール204が物理的なキーボードを含む場合、物理的なキーボードは、提案されるエモティコンを当該物理的なキーボードを通じて表示するように構成され得る。いくつかの実施の形態の場合、物理的なキーボードは、埋め込まれたディスプレイ(たとえばLCDボタン)を含むキーもしくはボタンによって、または物理的なキーボードの表面上(たとえばキーボードの頂部)に埋め込まれたディスプレイによって、提案されるエモティコンを表示し得る。実施の形態に応じて、提案されるエモティコンは、物理的なキーボードを通じてカラーまたはグレイスケールで表示されてもよい。提案されるエモティコンが物理的なキーボードを通じて表示される際、ユーザは、物理的なキーボードのキーまたはボタンを通じて、当該提案されるエモティコンの1つ以上を選択し得る。
別の例では、入力モジュール204が、(何らかのタブレットコンピューティングデバイスおよびスマートフォンコンピューティングデバイス上に存在するもののような)オンスクリーンキーボードを含む場合、オンスクリーンキーボードの外観は、オンスクリーン
キーボードを通じて、提案されるエモティコンを表示するよう再構成され得る。いくつかの実施の形態の場合、オンスクリーンキーボードの外観は、オンスクリーンキーボードのいくつかのボタンが、提案されるエモティコンボタンに置換されるように再構成され得るか、またはオンスクリーンキーボードが、付加的な提案されるエモティコンボタンで強化されるように再構成され得る。提案されるエモティコンボタンは、ひとたびオンスクリーンキーボードを通じて提示されると、1つ以上の提案されるエモティコンから選択するようユーザによって使用され得る。
セグメント分析モジュール206は、入力フィールドに存在する1つ以上のセグメントを分析し、分析されたセグメントについてコンテキストを決定し得る。本願明細書に記載されるように、セグメント分析モジュール206によって決定されたコンテキストはその後、ユーザに提案されるべき候補のエモティコンを識別する際に利用され得る。さまざまな実施の形態では、セグメント分析モジュール206は、入力フィールドにおけるセグメントのコンテキストを決定する際に、入力フィールドから対象のセグメントのみを分析し得る。
いくつかの実施の形態では、セグメント分析モジュール206はまず、入力フィールドにおける対象のセグメントを識別し、次いで、コンテキストを決定するよう対象のそれらのセグメントを分析する。一般に、対象のセグメントは、入力フィールドにおける入力カーソルの現在位置に関連して識別される。さらにいくつかの実施の形態の場合、セグメント分析モジュール206は、対象のセグメントを識別する際に、入力フィールドに現在存在するセグメントの構文分析を行ない得る。
実施の形態に応じて、セグメント分析モジュール206は、対象のセグメント識別プロセスをガイドする条件付きまたは非条件付きのルールに基づいて、対象のセグメントを識別してもよい。対象のセグメントを識別するための例示的なルールは、対象のセグメントとして、入力フィールドにおける入力カーソルの現在位置の直前の文の断片または文を識別することを含み得る。対象のセグメントを識別するための別の例示的なルールは、対象のセグメントとして、入力フィールドにおける入力カーソルの現在位置の直後の文の断片または文を識別することを含み得る。いくつかの実施の形態の場合、ルールは、対象のセグメントを決定するよう、セグメント分析モジュール206によって行なわれた構文分析に関連して利用され得る。
対象の2つ以上のセグメントが識別される場合、セグメント分析モジュール206は、対象のセグメントの各々のコンテキストを分析し得るか、または(たとえば、対象のあるセグメントが他のセグメントより重要性が高くなる重み付けシステムに基づいて)もっとも重要でない対象のセグメント以外のコンテキストを分析し得る。さらに1つ以上のルールは、対象の2つ以上のセグメントが識別される場合、対象のセグメントのうちどれを分析すべきかを決定し得る。
セグメント分析モジュール206は、対象のセグメントからの2つ以上のコンテキストを決定し得る。このような場合、エモティコン提案システム200は、決定されたコンテキストのすべてに関連付けられる候補のエモティコンを検索し得るか、または(たとえばルールに基づいて決定された)もっとも重要なコンテキストのうち1つ以上にマッチする候補のエモティコンのみを検索し得る。
対象の1つ以上のセグメントのコンテキストを決定するために、セグメント分析モジュール206は、入力フィールドに存在する対象のセグメントを意味分析し得る。当業者であれば、このセグメントの意味分析は、当該技術において公知の1つ以上の技術に従って行なわれ得るということを理解するであろう。対象の1つ以上のセグメントのコンテキス
トを分析する場合、セグメント分析モジュール206は、対象のセグメントについてのサブテキストまたは意味を決定し得る。対象のセグメントについて識別されたサブテキストまたは意味に基づいて、エモティコン提案システム200は、提案のために1つ以上の候補のエモティコンを識別し得る。対象のセグメントのサブテキストは、当該対象のセグメントについて気分または感情を識別し得る。対象のセグメントについての例示的なサブテキストは、幸福、悲しみ、無関心、怒り、憤慨、悔恨または興奮を含み得るがこれらに限定されない。対象のセグメントについての意味は、対象のセグメントについての明示的な意味を識別し得る。たとえば、対象のセグメントが「新しい仕事をゲットした!」と記載する場合、セグメント分析モジュール206は対象のセグメントについての意味を「新しい仕事」として識別し得る。
なお、いくつかの実施の形態の場合、セグメント分析モジュール206は、入力モジュール204を使用してユーザが文字またはエモティコンを加えるかまたは入力フィールドから文字またはエモティコンを取り除く際に、リアルタイムまたはほぼリアルタイムで対象のセグメントを識別および分析し得る。
エモティコン検索モジュール208は、対象のセグメントの識別されたコンテキスト(たとえばサブテキストまたは意味)に基づいて、1つ以上の候補のエモティコンを検索し得る。いくつかの実施の形態では、エモティコン検索モジュール208は、エモティコン提案システム200によって識別された1つ以上のコンテキストに関連したエモティコンを求めて、エモティコンデータストア214を検索し得る。本願明細書に記載されるように、エモティコンデータストア214は、入力フィールドへの入力に利用可能なエモティコンと、エモティコンと1つ以上のコンテキストとの間の関連性とを含み得る。
本願明細書において示されるように、所与のエモティコンと所与のコンテキストとの間の関連性は、当該所与のコンテキストとの所与のエモティコンの統計的な使用を含み得る。所与のエモティコンと所与のコンテキストとの間の関連性の強さは、このような統計的な使用に基づき得る。さらに、統計的な使用は、所与の内容との所与のエモティコンのユーザ自身の使用に基づき得るか、またはユーザのコミュニティによる所与の内容との所与のエモティコンの使用(たとえばソーシャルネットワーキングウェブサイト上の所与のコンテキストにおける所与のエモティコンの使用)に基づき得る。
一般に、所与のコンテキストとの所与のエモティコンの使用が多くなるほど、当該所与のエモティコンと所与のコンテキストとの間の関連性が強くなる。いくつかの実施の形態の場合、エモティコンとコンテキストとの間の関連性の強さは、当該コンテキストについてのエモティコンを提案することにおける信頼性を示し得る。関連性の強さも、もっとも高い強さからもっとも低い強さまで1つ以上の候補のエモティコンに優先順位を付けて提示するよう使用され得る。
いくつかの実施の形態では、エモティコン検索エンジンモジュール208による1つ以上の候補のエモティコンの検索は、エモティコンとコンテキストとの間の関連性の強さを考慮し得る。たとえば、エモティコン検索エンジンモジュール208は、エモティコンと目標コンテキストとの間の関連性の強さが所定のしきい値に合致または超える場合、単にエモティコンを候補のエモティコンとして識別し得る。さらに、エモティコン検索エンジンモジュール208は、あるエモティコンと目標コンテキストとの間の関連性の強さが、他の潜在的な候補のエモティコンに対するしきい値に合致または越える場合に、単に当該エモティコンを候補のエモティコンとして識別し得る。
本願明細書において示されたように、さまざまな実施の形態において、エモティコン検索モジュール208は、ユーザプレファレンス、ユーザに関連する情報、受信者に関連す
る情報、またはそれらの何らかの組合せを用いることによって、候補のエモティコンの検索をさらに狭め得る。ユーザプレファレンスの例は、他のタイプのエモティコンの前に、ユーザがカスタマイズしたエモティコンを提案するプレファレンスと、あるカテゴリのエモティコンを無視するプレファレンス(たとえば、ユーザに関して年齢が適切であるエモティコンのみを提案する)とを含み得るがこれらに限定されない。受信者に関連する情報の例は、ユーザの興味、ユーザの民族性、ユーザの宗教、ユーザの地理的位置、ユーザの年齢、ユーザの関係ステータス、およびユーザの職業を含み得るがこれらに限定されない。ユーザに関連する情報の例は、ユーザに対する受信者の関係と、受信者の興味と、受信者の民族性と、受信者の宗教と、受信者の地理的位置と、受信者の年齢と、受信者の関係ステータスと、受信者の職業とを含み得るがこれらに限定されない。ある実施の形態では、1つ以上の候補のエモティコンを検索する際、エモティコン検索モジュール208は、さらに、文字エモティコンまたはグラフィカルエモティコンを受け取る際に入力フィールドの制限を考慮し、それにしたがって候補のエモティコンを検索し得る。
エモティコン提案モジュール210は、対象のセグメントの識別されたコンテキストに基づいて位置特定された1つ以上の候補のエモティコンを受け取り、選択のためにユーザに当該1つ以上の候補のエモティコンを提示し得る。本願明細書に示されるように、いくつかの実施の形態において、エモティコン提案モジュール210は、エントリ選択のために1つ以上の候補のエモティコンを入力フィールドにおける入力カーソルの現在位置またはその現在位置の近くに表示するよう表示モジュール202を使用し得る。さらに本願明細書において示されるように、さまざまな実施の形態において、エモティコン提案モジュール210は、物理的な入力装置または仮想入力装置を通じて、エントリ選択のために1つ以上の候補のエモティコンを表示するよう入力モジュール202を使用し得る。
エモティコン選択モジュール212は、ユーザに提案される1つ以上の候補のエモティコンについてエントリ選択をユーザから受け取り得る。特定の実施の形態において、エモティコン選択モジュール212は、入力モジュール204を通じて1つ以上の候補のエモティコンについてエントリ選択を受け取り得、エモティコン選択モジュール212は、入力フィールドに1つ以上の選択されるエモティコンを入力し得る。本願明細書において示されるように、エモティコン選択モジュール212は、入力カーソルの現在位置に、1つ以上の選択されるエモティコンを入力し得る。いくつかの実施の形態の場合、エモティコン選択モジュール212は、入力フィールド内のセグメントまたは対象のセグメントを1つ以上の選択されるエモティコンに置換することによって、入力フィールドに1つ以上の選択されるエモティコンを入力し得る。さらに、いくつかの実施の形態は、エモティコン選択モジュール212が何らかのガイドラインに基づいて、提案されるエモティコンを自動選択するように(たとえばユーザプレファレンスを使用して)ユーザがエモティコン選択モジュール212を設定することを可能にし得る。たとえばユーザは、エモティコンの提案がなされると、第1の提案されたエモティコンが選択されるように、エモティコン選択モジュール212を構成し得る。
いくつかの実施の形態では、エモティコンとコンテキストとの間の関連性がこのようなコンテキストとのこのようなエモティコンの統計的な使用を含む場合、エモティコン選択モジュール212は、ユーザから受け取られたエントリ選択に基づいて、統計的使用情報を更新し得る。特に、エモティコン選択モジュール212は、所与のコンテキストについての1つ以上の候補のエモティコンのエントリ選択を受け取り、選択された候補のエモティコンとそれらの使用のそれぞれのコンテキストとの間で、格納された統計的使用情報を更新し得る。実施の形態に応じて、エモティコン選択モジュール212は、エモティコンデータストア214上の統計的使用情報を更新してもよい。
エモティコンデータストア214は、エモティコン提案システム200による提案に利
用可能なエモティコンのライブラリと、ライブラリにおけるエモティコンとコンテキスト(たとえばサブテキストおよび意味)との間の関連性とを含み得る。エモティコン検索モジュール208は、1つ以上の特定のコンテキストに関連付けられる1つ以上の候補のエモティコンを検索する場合、エモティコンデータストア214にアクセスし得る。本願明細書において示されるように、いくつかの実施の形態の場合、エモティコンデータストア214は、所与のエモティコンと所与のコンテキスト(たとえばサブテキストまたは意味)との間の2つ以上の関連性を含み得る。さらに、所与のエモティコンと所与のコンテキストとの間の関連性は、所与のコンテキストとの所与のエモティコンの統計的な使用を含み得る。このような統計的な使用は、エモティコンとコンテキストとの間の関連性の強さを反映し得る。
エモティコンデータストア214上に格納されたエモティコンは、文字エモティコン、グラフィカルエモティコン、グラフィカルにアニメーション化されたエモティコン、および音を伴ったエモティコンを含み得る。いくつかの実施の形態の場合、エモティコンデータストア214はさらに、提案に好適なエモティコンを識別する際に、実施の形態によって用いられ得るユーザプレファレンス、ユーザ情報、または受信者情報を含み得る。たとえば、エモティコンデータストア214は、任意のユーザに一般に利用可能なエモティコンを提案する前に、ユーザ規定のエモティコンまたはユーザがアップロードしたエモティコンを実施の形態に提案させるユーザプレファレンスを格納し得る。別の例では、エモティコンデータストア214は、実施の形態によってユーザに提案された第1のエモティコンを実施の形態に自動的に挿入させるユーザプレファレンスか、または所与のコンテキストにおいてもっとも高い使用頻度を有する提案されるエモティコンを実施の形態に自動的に挿入させるユーザプレファレンスを格納し得る。
当業者は、さまざまなエモティコンライブラリおよびエモティコンとコンテキストとの間のさまざまな関連性が、エモティコンデータストア214上に格納され得るということを理解するであろう。
「モジュール」は、ソフトウェア、ハードウェア、ファームウェアおよび/または回路網を含み得るということが理解されるであろう。一例では、プロセッサによって実行可能な命令を含む1つ以上のソフトウェアプログラムが、本願明細書において記載されたモジュールの機能の1つ以上を実行し得る。別の例では、回路網が、同じまたは同様の機能を実行し得る。代替的な実施の形態は、より多い、より少ない、または機能的に等価なモジュールを含み得るとともに、これも本実施の形態の範囲内にあり得る。たとえば、さまざまなモジュールの機能は、異なって組み合わせられ得るかまたは分割され得る。たとえば、さまざまなモジュールの機能は、エモティコン提案サーバに存在する1つ以上のモジュールの間で分散され得、1つ以上のモジュールがエモティコン提案クライアントに存在する。
図3は、いくつかの実施の形態に従った、エモティコンを識別および提案するための例示的な方法300のフローチャートである。ステップ302において、セグメント分析モジュール206は、表示モジュール202を通じて表示され得る入力フィールドから1つ以上のセグメントを受け取り得る。本願明細書において示されるように、1つ以上のセグメントを受け取る際、セグメント分析モジュール206は、コンテキスト分析の目的のために、対象のセグメントを識別し得る。
ステップ304では、セグメント分析モジュール206は、セグメントの1つ以上の目標サブテキストまたは1つ以上の目標意味を決定するよう1つ以上のセグメントを分析し得る。セグメントの目標サブテキストおよび目標意味は、セグメントに関連した1つ以上のコンテキストを提供する。実施の形態に応じて、セグメント分析モジュール206は、
セグメント分析モジュール206によって対象のセグメントとして識別されたセグメントのみを分析してもよい。
ステップ306では、エモティコン検索モジュール208は、1つ以上の目標コンテキストとの関連性を有する1つ以上の候補のエモティコンか、またはセグメント分析モジュール206によって決定され得た1つ以上の目標意味を識別し得る。いくつかの実施の形態では、エモティコン検索モジュール208は、目標サブテキストまたは目標意味と関連性とを有する、エモティコンデータストア214中の1つ以上の候補のエモティコンを識別し得る。本願明細書において示されるように、各関連性の強さは、所与のコンテキストとの所与のエモティコンの統計的な使用に基づき得るとともに、エモティコン検索モジュール208が1つ以上の候補のエモティコンを識別する際には、このような強さが考慮に入れられ得る。
ステップ308では、エモティコン提案モジュール210は、入力フィールドにおける入力カーソルの現在位置に、エントリ選択のためにユーザに1つ以上の候補のエモティコンを提示し得る。本願明細書に記載されるように、入力フィールドおよびその中の入力カーソルは、表示モジュール202を通じてユーザに表示され得る。いくつかの実施の形態の場合、エモティコン提案モジュール210は、表示モジュール202を使用して、エントリ選択のためにユーザに1つ以上の候補のエモティコンを提示し得、入力フィールドにおける入力カーソルの現在位置またはその現在位置の近くに候補のエモティコンを表示し得る。さらに、エモティコン提案モジュール210は、入力モジュール204の1つ以上の入力装置を通じてエントリ選択のためにユーザに1つ以上の候補のエモティコンを提示し得る。たとえば、エモティコン提案モジュール210は、ディスプレイを有する物理的なキーボードのような物理的な入力装置を通じてまたはオンスクリーンキーボードのような仮想入力装置を通じて、ユーザに1つ以上の候補のエモティコンを提示し得る。
ステップ310では、エモティコン選択モジュール212は、1つ以上の候補のエモティコンからの1つ以上の選択したエモティコンについて、ユーザからエントリ選択を受け取り得る。いくつかの実施の形態の場合、エモティコン選択モジュール212は、入力モジュール204からエントリ選択を受け取り得る。さらに、エントリ選択を受け取る際に、エモティコン選択モジュール212は、1つ以上の候補のエモティコンについて、エントリ選択に基づき、エモティコンデータストア214上で統計的使用情報を更新し得、これにより、候補のエモティコンと特定のコンテキストとの間の関連性を強くし得るかまたは弱くし得る。
ステップ312では、エントリ選択に基づき、エモティコン選択モジュール212は、テキストフィールドにおける入力カーソルの現在位置に、エモティコン選択モジュール212によって受け取られた1つ以上の候補のエモティコンを挿入し得る。本願明細書において示されるように、いくつかの実施の形態において、入力フィールドへの候補のエモティコンのエントリは、入力フィールドにおける1つ以上のセグメントを、選択されるエモティコンに置換することを伴い得る。
図4は、いくつかの実施の形態に従った、クライアントサーバアーキテクチャを使用する例示的なエモティコン提案システム400のブロック図である。エモティコン提案システム400は、エモティコン提案クライアント402およびエモティコン提案サーバ420を含み得る。いくつかの実施の形態では、エモティコン提案クライアント402は、図7に記載されるデジタルデバイスまたは図1に記載されるコンピューティングデバイス(すなわちタブレットコンピューティングデバイス104、スマートフォンコンピューティングデバイス108およびデスクトップコンピューティングデバイス112)と同様であり得、エモティコン提案サーバ420は、図7に記載されるデジタルデバイスまたは図1
に記載されたエモティコン提案サーバ116と同様であり得る。エモティコン提案クライアント402およびエモティコン提案サーバ420は、通信ネットワーク418上で互いに通信し得る。
エモティコン提案クライアント402は、表示モジュール404、入力モジュール406、セグメント分析モジュール408、エモティコン検索モジュール410、ローカルのエモティコンデータストア412、エモティコン提案モジュール414、およびエモティコン選択モジュール416を含み得る。エモティコン提案サーバ420は、エモティコン検索エンジン422と、リモートのエモティコンデータストア424とを含み得る。
エモティコン提案クライアント402では、表示モジュール404は、ユーザが入力モジュール406を使用して、1つ以上のセグメント、文字エモティコンまたはグラフィカルエモティコンを入力し得る入力フィールドを表示し得る。典型的には、セグメントおよびエモティコンは、入力フィールドに入力されると、入力フィールドに現われる。当該入力フィールドにより、表示モジュール404は、入力フィールドに入力カーソルを表示し得る。入力フィールドでは、入力カーソルは、ユーザの文字入力が次にどこに入力されるか、またはエモティコンが次にどこに入力され得るかを示す。
さまざまな実施の形態は、たとえば、入力フィールドにおける入力カーソルの現在位置、入力の現在のセグメント内容、ユーザに関連する情報、受信者に関連する情報、ユーザプレファレンス、またはそれらの何らかの組合せを含む多くの要因に基づき、エモティコンを提案し得る。候補のエモティコンは、ひとたび識別されると、表示モジュール404を介してユーザに提案され得る。具体的には、表示モジュール404は、ユーザの選択のために、入力フィールドにおける入力カーソルの現在位置またはその現在位置の近くに候補のエモティコンを表示し得る。実施の形態に応じて、表示モジュール404は、コールアウトボックスを介して、入力フィールドまたはその入力フィールドの近くに候補のエモティコンを表示してもよい。
表示モジュール404によって、デジタルデバイスは、デジタルデバイスからのすべてのグラフィカル出力を表示し得る。いくつかの実施の形態では、表示モジュール404は、グラフィカルユーザインターフェイス(GUI)の一部として、入力フィールドを表示し得る。実施の形態に応じて、入力フィールドは、デジタルデバイス上で動作するアプリケーションのグラフィカルコンポーネントか、またはデジタルデバイス上で動作するアプリケーションを通じて閲覧可能もしくは編集可能である文書のグラフィカル表現であってもよい。入力フィールドは、実施の形態ごとに、タイプおよびサイズがさまざまに異なり得るということが当業者によって理解されるであろう。
入力モジュール406は、ユーザから文字入力を受け取り、このような文字入力を受け取られたとおりに入力フィールドに入力し得る。文字入力が入力フィールドに入力されると、表示モジュール404は、当該文字入力で入力フィールドを更新し得る。さらに、入力モジュール406は、さまざまな実施の形態に従って提案されるエモティコンについてのエントリ選択をさらに受け取り得る。一般に、選択の際、選択されるエモティコンは、入力フィールドにおける入力カーソルの現在位置に挿入され得る。本願明細書において示されるように、入力モジュールは、デジタルデバイスに外部から結合されるかもしくはデジタルデバイスに物理的に埋め込まれた物理的な入力装置か、または表示モジュール404によってユーザに提供され得るオンスクリーンキーボードのような仮想入力装置を含み得る。さまざまな実施の形態において、仮想入力装置が使用される場合、このような仮想入力装置は、セグメントが入力される入力フィールドまたはその入力フィールドの近くに表示され得る。
いくつかの実施の形態の場合、提案されるエモティコンは、入力モジュール406を通じてユーザに提示され得る。たとえば、入力モジュール406が物理的なキーボードを含む場合、物理的なキーボードは、物理的なキーボードを通じて、提案されるエモティコンを表示するように構成され得る。いくつかの実施の形態の場合、物理的なキーボードは、埋め込まれたディスプレイ(たとえばLCDボタン)を含むキーまたはボタンによって、または物理的なキーボードの表面(たとえばキーボードの頂部)上に埋め込まれたディスプレイによって、提案されるエモティコンを表示し得る。提案されるエモティコンは、物理的なキーボードを通じてカラーまたはグレイスケールで表示され得る。提案されるエモティコンが物理的なキーボードを通じて表示される際、ユーザは、物理的なキーボードのキーまたはボタンを通じて、それらの提案されるエモティコンの1つ以上を選択し得る。
いくつかの実施の形態では、入力モジュール406がオンスクリーンキーボードを含む場合、オンスクリーンキーボードの外観は、提案されるエモティコンをオンスクリーンキーボードを通じて表示するよう再構成され得る。たとえば、オンスクリーンキーボードの外観は、オンスクリーンキーボードの何らかのボタンが提案されるエモティコンボタンに置換されるように、またはオンスクリーンキーボードが付加的な提案されるエモティコンボタンで増強されるように、再構成され得る。提案されるエモティコンボタンは、ひとたびオンスクリーンキーボードを通じて提示されると、1つ以上の提案されるエモティコンから選択するようユーザによって使用され得る。
セグメント分析モジュール408は、入力フィールドに存在する1つ以上のセグメントを分析し得、分析されたセグメントについてコンテキストを決定し得る。本願明細書に記載されるように、セグメント分析モジュール408によって決定されたコンテキストは、ユーザに提案される候補のエモティコンを識別する際に、その後用いられてもよい。さまざまな実施の形態では、入力フィールドにおけるセグメントのコンテキストを決定する際に、セグメント分析モジュール408はまず、入力フィールドにおける対象のセグメントを識別し、その後、それらの対象のセグメントのみを分析し得る。
いくつかの実施の形態では、セグメント分析モジュール408は、対象のセグメントを識別する際、入力フィールドに現在存在するセグメントの構文分析を行ない得る。さらに、セグメント分析モジュール408は、対象のセグメント識別プロセスをガイドする条件付きまたは非条件付きルールに基づき、対象のセグメントを識別し得る。
対象の1つ以上のセグメントのコンテキストを決定するよう、セグメント分析モジュール408は、入力フィールドに存在する対象のセグメントを意味分析し得る。対象の1つ以上のセグメントのコンテキストを分析する際、セグメント分析モジュール408は、対象のセグメントのサブテキストまたは意味を決定し得る。対象のセグメントのサブテキストは、当該対象のセグメントについて気分または感情を識別し得る。対象のセグメントについて識別されたサブテキストまたは意味に基づき、エモティコン提案システム400は、提案のために1つ以上の候補のエモティコンを識別し得る。
なお、いくつかの実施の形態の場合、セグメント分析モジュール408は、ユーザが入力モジュール408を使用して文字またはエモティコンを入力フィールドに加えるか、または入力フィールドから文字またはエモティコンを取り除く際に、リアルタイムもしくはほぼリアルタイムで、対象のセグメントを識別および分析し得る。
エモティコン検索モジュール410は、対象のセグメントの識別されたコンテキスト(たとえばサブテキストまたは意味)に基づき、1つ以上の候補のエモティコンを検索し得る。いくつかの実施の形態では、1つ以上の特定のコンテキストに関連付けられる1つ以上の候補のエモティコンを検索する際、エモティコン検索モジュール410は、ローカル
のエモティコンデータストア412にアクセスし得る。
実施の形態に応じて、ローカルのエモティコンデータストア412は、ユーザがカスタマイズしたエモティコン、ユーザのお気に入りもしくはユーザが好むエモティコン、ローカルのエモティコン上に格納されたエモティコンとコンテキスト(たとえばサブテキストまたは意味)との間の関連性、エモティコンの識別および提案に関してのユーザプレファレンス、ユーザに関連する情報、または受信者に関連する情報を格納してもよい。さらに、ローカルのエモティコンデータストア412は、以前に提案されるエモティコンまたは以前にユーザが選択した提案されるエモティコンをローカルにキャッシュするよう用いられ得る。
いくつかの実施の形態では、エモティコン検索モジュール410は、エモティコン提案サーバ420を用いて、候補のエモティコンを検索してエモティコン提案クライアント402に提供し得る。たとえば、エモティコン提案サーバ420は、リモートのエモティコンデータストア424上の候補のエモティコンを検索し、得られた候補のエモティコンをエモティコン提案クライアント402上のエモティコン検索モジュール410に提供し得る。エモティコン提案サーバ420は、エモティコン検索エンジン422を使用して、リモートのエモティコンデータストア424上の候補のエモティコンを検索すること、リモートのエモティコンデータストア424から候補のエモティコンを抽出すること、およびエモティコン検索モジュール410に候補のエモティコンを提供することとを行う。
リモートのエモティコンデータストア424は、エモティコン提案クライアント402への提案に利用可能であるエモティコンのライブラリを含み得る。リモートのエモティコンデータストア424はさらに、ライブラリにおけるエモティコンとコンテキストとの間の関連性を含み得る。ある実施の形態の場合、上記関連性は、コンテキストとの、ライブラリにおけるエモティコンのうち所与のエモティコンの統計的な使用を含む。一般に、このような統計的な使用は、エモティコンとコンテキストとの間の関連性の強さを反映し得る。
本願明細書に示されるように、リモートのエモティコンデータストア424上に格納されたエモティコンは、文字エモティコン、グラフィカルエモティコン、グラフィカルにアニメーション化されたエモティコン、および音を伴ったエモティコンを含み得る。いくつかの実施の形態の場合、リモートのエモティコンデータストア424はさらに、提案に好適なエモティコンを識別する際に、実施の形態において用いられ得るユーザプレファレンス、ユーザ情報、または受信者情報を含み得る。当業者は、さまざまなエモティコンライブラリおよびエモティコンとコンテキストとの間のさまざまな関連性がリモートのエモティコンデータストア424上に格納され得るということを理解するであろう。
エモティコン提案モジュール414は、対象のセグメントの識別されたコンテキストに基づいて位置特定された1つ以上の候補のエモティコンを受け取り、選択のためにユーザに当該1つ以上の候補のエモティコンを提示し得る。本願明細書に示されるように、いくつかの実施の形態において、エモティコン提案モジュール414は、エントリ選択のために1つ以上の候補のエモティコンを、入力フィールドにおける入力カーソルの現在位置またはその現在位置の近くに表示するよう表示モジュール414を使用し得る。本願明細書において示されるように、さまざまな実施の形態では、エモティコン提案モジュール414は、物理的な入力装置または仮想入力装置を通じて、エントリ選択のために1つ以上の候補のエモティコンを表示するよう入力モジュール406を使用し得る。
エモティコン選択モジュール416は、ユーザに提案された1つ以上の候補のエモティコンについてエントリ選択をユーザから受け取り得る。特定の実施の形態において、エモ
ティコン選択モジュール416は、入力モジュール404を通じて1つ以上の候補のエモティコンについてエントリ選択を受け取り得、エモティコン選択モジュール416は、入力フィールドに1つ以上の選択されるエモティコンを入力し得る。エモティコン選択モジュール416は、入力カーソルの現在位置に、1つ以上の選択されるエモティコンを入力し得る。さらに、エモティコン選択モジュール416は、入力フィールド内のセグメントまたは対象のセグメントを1つ以上の選択されるエモティコンに置換することによって、入力フィールドに1つ以上の選択されるエモティコンを入力し得る。いくつかの実施の形態では、エモティコン選択モジュール416が何らかのガイドラインに基づいて、提案されるエモティコンを自動選択するように、エモティコン選択モジュール416を(たとえばユーザプレファレンスを使用して)ユーザが設定することを可能にし得る。たとえば、ユーザは、エモティコンの提案がなされると、第1の提案されたエモティコンが選択されるように、エモティコン選択モジュール416を構成し得る。
いくつかの実施の形態では、エモティコンとコンテキストとの間の関連性がこのようなコンテキストとのこのようなエモティコンの統計的な使用を含む場合、エモティコン選択モジュール416は、ユーザから受け取られたエントリ選択に基づいて、統計的使用情報を更新し得る。特に、エモティコン選択モジュール416は、所与のコンテキストについての1つ以上の候補のエモティコンのエントリ選択を受け取り、選択された候補のエモティコンとそれらの使用のそれぞれのコンテキストとの間で、格納された統計的使用情報を更新し得る。
実施の形態に応じて、エモティコン選択モジュール416は、ローカルのエモティコンデータストア412上またはリモートのエモティコンデータストア424上の統計的使用情報を更新してもよい。たとえば、エモティコン選択モジュール416を通じて選択された1つ以上の候補のエモティコンがエモティコン提案サーバ420から提供された場合、それらの候補のエモティコンについての統計的使用情報は、リモートのエモティコンデータストア424上で更新されることになる。別の例では、エモティコン選択モジュール416を通じて選択された1つ以上の候補のエモティコンがローカルのエモティコンデータストア412から提供された場合、それらの候補のエモティコンについての統計的使用情報は、ローカルのエモティコンデータストア412上で更新されることになる。
図5は、メッセージングアプリケーションのユーザインターフェイス500を示す。当該メッセージングアプリケーションはある実施の形態を利用する。いくつかの実施の形態では、ユーザは、ユーザインターフェイス500を用いて、オンラインチャット上で他のユーザから受け取られたメッセージを受け取ってレビューするとともに、オンラインチャット上で他のユーザへのメッセージを作成および送信し得る。メッセージングアプリケーションは、インスタントメッセージングシステム上のクライアントであり得るかまたは当該クライアントを含み得る。メッセージングアプリケーションは、スマートフォンコンピューティングデバイスまたはラップトップといった、ユーザにローカルなデジタルデバイス上で動作している。インスタントメッセージングシステムは、サーバのような別のデジタルデバイス上で動作し得、メッセージングアプリケーションはインスタントメッセージングシステムとインターフェイス接続する。実施の形態に応じて、メッセージングアプリケーションは、スタンドアロンアプリケーションとして、またはウェブブラウザを通じて動作するアプレット、プラグインもしくはスクリプトとしてデジタルデバイス上で動作してもよい。
メッセージングアプリケーションのユーザインターフェイス500は、会話ペイン502、メッセージ入力フィールド504、および送信ボタン514を含み得る。いくつかの実施の形態については、会話ペイン502は、オンラインチャットに提出されたメッセージを含み得る。そのため、会話ペイン502は、他人からオンラインチャットに提出され
たメッセージと、ユーザインターフェイス500を通じてユーザによって提出されたメッセージとを含み得る。ユーザは、メッセージ入力フィールド504を使用して、オンラインチャットへメッセージを提出し得る。特に、ユーザは、オンラインチャットにメッセージを提出することをユーザが所望がする場合に、メッセージ入力フィールド504へメッセージを入力し、送信ボタン514を押し得る。
メッセージ入力フィールド504は、オンラインチャットへの提出のためにユーザによって準備されたメッセージを含み得、当該メッセージを受け取るように構成され得る。メッセージ入力フィールド504は、ユーザから1つ以上のセグメントを受け取り得るか、または、いくつかの実施の形態に従って入力された1つ以上のエモティコンを受け取り得る。メッセージ入力フィールド504はさらに入力カーソル516を含み得る。
ユーザがメッセージ入力フィールド504におけるメッセージを準備する際、さまざまな実施の形態は、入力カーソル516の現在位置での入力のためにエモティコンを提案し得る。たとえば、ユーザがメッセージ入力フィールド504に「とても楽しかった」と書込んだ場合、実施の形態は、「とても楽し」を記載する対象のセグメント512の実施の形態の分析に基づき、入力フィールド504へのエントリのために「笑顔」のグラフィカルエモティコン510を提案し得る。実施の形態は、「笑顔」のグラフィカルエモティコン510と、対象のセグメント512のコンテキストとの間の関連性に基づいて、「笑顔」のグラフィカルエモティコン510を提案し得る。ひとたびユーザが「笑顔」のグラフィカルエモティコン510を選択すると、実施の形態は、メッセージ入力フィールド504に「笑顔」のグラフィカルエモティコン510を入力し得る。
同様に、ユーザが「ありがとう、あなたの町を案内してくれて」とメッセージ入力フィールド504に書込む場合、実施の形態は、対象のセグメント514のコンテキスト分析に基づいて、複数のグラフィカルエモティコン506を提案し得る。本願明細書において示されるように、実施の形態は、入力カーソル516の現在位置またはその現在位置の近くに位置決めされたコールアウトボックス508にグラフィカルエモティコン506を表示することによって、提案されたグラフィカルエモティコン506を提示し得る。「あなたの町」と記載する対象のセグメント514の分析に基づいて、実施の形態は、町に関するグラフィカルエモティコン506を提案し得る。
図6は、メッセージングアプリケーションのユーザインターフェイス600を示す。当該メッセージングアプリケーションはある実施の形態を利用する。図5と同様に、ユーザは、ユーザインターフェイス600を用いて、オンラインチャット上で他のユーザから受け取られたメッセージを受け取ってレビューするとともに、オンラインチャット上で他のユーザへのメッセージを作成および送信し得る。メッセージングアプリケーションは、インスタントメッセージングシステム上のクライアントであり得るかまたは当該クライアントを含み得る。メッセージングアプリケーションは、スマートフォンコンピューティングデバイスまたはラップトップといった、ユーザにローカルなデジタルデバイス上で動作している。インスタントメッセージングシステムは、サーバのような別のデジタルデバイス上で動作し得、メッセージングアプリケーションはインスタントメッセージングシステムとインターフェイス接続する。実施の形態に応じて、メッセージングアプリケーションは、スタンドアロンアプリケーションとして、またはウェブブラウザを通じて動作するアプレット、プラグインもしくはスクリプトとして、デジタルデバイス上で動作してもよい。
メッセージングアプリケーションのユーザインターフェイス600は、会話ペイン602、メッセージ入力フィールド604、オンスクリーンキーボード606、および送信ボタン616を含み得る。いくつかの実施の形態の場合、会話ペイン602は、ユーザインターフェイス600を通じてユーザによって提出されたメッセージを含む、オンラインチ
ャットに提出されたメッセージを含み得る。ユーザは、メッセージ入力フィールド604を使用して、オンラインチャットへメッセージを提出し得る。具体的には、ユーザは、オンラインチャットにメッセージを提出することをユーザが所望がする場合に、オンスクリーンキーボード606を用いてメッセージ入力フィールド604へメッセージを入力し、送信ボタン616を押し得る。
メッセージ入力フィールド604は、オンラインチャットへの提出のためにユーザによって準備されたメッセージを含み得、当該メッセージを受け取るように構成され得る。メッセージ入力フィールド604は、ユーザからオンスクリーンキーボード606を通じて1つ以上のセグメントを受け取り得るか、またはオンスクリーンキーボード606を通じて選択される1つ以上のエモティコンを受け取り得る。メッセージ入力フィールド604はさらに入力カーソル610を含み得る。
オンスクリーンキーボード606は、QWERTYキーボードと、(たとえば使用されていない場合に)視界からオンスクリーンキーボード606を隠すボタン624と、エモティコンメニュー622とを含み得る。エモティコンメニュー622を通じて、ユーザは、入力カーソル610の現在位置にて、メッセージ入力フィールド604へのエントリのために1つ以上のエモティコンを選択し得る。エモティコンメニュー622は、デフォルトのエモティコンライブラリまたは実施の形態によって提案されるエモティコンのセレクションからのエモティコンを含み得る。左の選択ボタン618および右の選択ボタン620により、ユーザは、エモティコンメニュー622を通じてエントリ選択に利用可能であるエモティコンをスクロールおよびブラウズすることが可能になる。
ユーザがメッセージ入力フィールド604においてメッセージを準備する際、さまざまな実施の形態が、入力カーソル610の現在位置へのエントリのためにエモティコンを提案し得る。たとえば、ユーザがメッセージ入力フィールド604に「思いもしなかった、あのフットボール」と書込んだ場合、実施の形態は、「フットボール」を記載する対象のセグメント612の実施の形態の分析に基づき、入力フィールド604へのエントリのために「フットボール」のグラフィカルエモティコン614を提案し得る。実施の形態は、「フットボール」のグラフィカルエモティコン614と、対象のセグメント612のコンテキストとの間の関連性に基づいて、「フットボール」のグラフィカルエモティコン614を提案し得る。ひとたびユーザが「フットボール」のグラフィカルエモティコン614を選択すると、実施の形態は、メッセージ入力フィールド604に「フットボール」のグラフィカルエモティコン614を入力し得る。
同様に、ユーザがメッセージ入力フィールド604に「50ヤードのフィールドゴール」と書くと、実施の形態は、対象のセグメント608のコンテキスト分析に基づき、複数の「フィールドゴール」のグラフィカルエモティコンを提案し得る。特に、実施の形態は、オンスクリーンキーボード606の一部として表示され得るエモティコンメニュー622にグラフィカルエモティコンを表示することによって、エントリ選択のために「フィールドゴール」のグラフィカルエモティコンを提示し得る。
図7は、例示的なデジタルデバイス700のブロック図である。デジタルデバイス700は、通信可能にバス714に結合されたプロセッサ702、メモリシステム704、ストレージシステム706、通信ネットワークインターフェイス708、I/Oインターフェイス710、および表示インターフェイス712を含む。プロセッサ702は、実行可能な命令(たとえばプログラム)を実行するように構成される。いくつかの実施の形態では、プロセッサ702は、実行可能な命令を処理することができる回路網または任意のプロセッサを含む。
メモリシステム704は、データを格納するように構成される任意のメモリである。メモリシステム704のいくつかの例は、RAMまたはROMのようなストレージデバイスである。メモリシステム704は、RAMキャッシュを含み得る。さまざまな実施の形態では、データはメモリシステム704内に格納される。メモリシステム704内のデータは、消去されるかまたはストレージシステム706に最終的に転送され得る。
ストレージシステム706は、データを抽出および格納するように構成された任意の非一時的なストレージである。ストレージシステム706のいくつかの例は、フラッシュドライブ、ハードドライブ、光学ドライブおよび/または磁気テープである。いくつかの実施の形態では、デジタルデバイス700は、RAMの形態であるメモリシステム704と、フラッシュデータの形態であるストレージシステム706とを含む。メモリシステム704およびストレージシステム706はともに、プロセッサ702を含むコンピュータプロセッサによって実行可能である命令またはプログラムを格納し得るコンピュータ可読媒体を含む。
通信ネットワークインターフェイス(com.ネットワークインターフェイス)708は、リンク716を介してネットワーク(たとえば通信ネットワーク110)に結合され得る。通信ネットワークインターフェイス708は、たとえばイーサネット(登録商標)接続、シリアル接続、パラレル接続、またはATA接続上の通信をサポートし得る。通信ネットワークインターフェイス708はさらに、無線通信(たとえば802.11 alb/gin、WiMax)をサポートし得る。通信ネットワークインターフェイス708が多くの有線規格および無線規格をサポートし得るということは当業者に明らかであろう。
随意の入出力(I/O)インターフェイス710は、ユーザから入力を受け取るとともにデータを出力する任意の装置である。随意の表示インターフェイス712は、ディスプレイにグラフィックスおよびデータを出力するように構成される任意の装置である。一例では、表示インターフェイス712は、グラフィックスアダプタである。すべてのデジタルデバイス700が、I/Oインターフェイス710または表示インターフェイス712のいずれかを含むわけではないということが理解されるであろう。
デジタルデバイス700のハードウェア要素は、図7に示されたものに限定されないということが当業者によって理解されるであろう。デジタルデバイス700は、示されたものよりも多いまたは少ないハードウェア要素を含んでもよい。さらに、ハードウェア要素は、機能性を共有し得るが、依然として、本願明細書で記載されるさまざまな実施の形態の範囲内にあり得る。一例では、エンコーディングおよび/またはデコーディングが、プロセッサ702および/またはGPU(Le., Nvidia)に配置されるコプロセッサによっ
て行なわれてもよい。
上記の機能およびコンポーネントは、コンピュータ可読媒体のような記憶媒体上に格納される命令で構成され得る。命令は、プロセッサによって抽出および実行され得る。命令のいくつかの例は、ソフトウェア、プログラムコードおよびファームウェアである。記憶媒体のいくつかの例は、メモリデバイス、テープ、ディスク、集積回路およびサーバである。命令は、プロセッサによって実行された際には、プロセッサに指示していくつかの実施の形態に従って動作させるように実施可能である。当業者は、命令、プロセッサおよび記憶媒体に精通している。
再び図2を参照すると、さまざまな実現例においては、エモティコン提案システム200は、ユーザによって生成されたテキストにおける検出された感情に基づいてユーザにエモティコンを提案する。たとえば、セグメント分析モジュール206は、入力フィールド
に存在する1つ以上のセグメントを分析し、分析されたセグメントについての感情を判断し得る。一般に、感情は、事実ではなくユーザの主観的印象(たとえば気分、態度、感情および/または見解)に関連している場合がある。たとえば、ユーザは、或るもの(たとえば製品または政治的見解)に賛成であるかまたは反対である可能性があり、或るものを好むかまたは嫌う可能性があり、或るものが他のものよりも優れていると考える可能性等がある。エモティコン提案システム200は、このようなユーザ感情を検出して、このような感情に少なくとも部分的に基づいてユーザについての候補のエモティコンを識別し得る。
場合によっては、セグメント分析モジュール206は、入力フィールドにおける対象のセグメントを識別し、次いで、感情を判断するために対象のそれらセグメントを分析する。概して、対象のセグメントは、入力フィールドにおける入力カーソルの現在位置に関連付けて識別される。加えて、いくつかの実現例の場合、セグメント分析モジュール206は、対象のセグメントを識別する際に、入力フィールドに現在存在しているセグメントの構文分析を行ない得る。
対象の2つ以上のセグメントが識別される場合、セグメント分析モジュール206は、対象のセグメントのうち各セグメントのコンテキストを分析し得るか、または(たとえば、対象のいくつかのセグメントが他のセグメントより重要性が高い場合には重み付けシステムに基づいて)もっとも重要性の低い対象のセグメント以外の感情を分析し得る。さらに1つ以上のルールは、対象の2つ以上のセグメントが識別される場合、対象のセグメントのうちどれを分析すべきかを決定し得る。
セグメント分析モジュール206は、対象のセグメントから2つ以上の感情(たとえば、「怒り」および「悲しみ」)を判断し得る。このような場合、エモティコン提案システム200は、決定された感情のすべてに関連付けられた候補のエモティコンを検索し得るか、または(たとえばルールに基づいて決定された)もっとも重要な感情のうち1つ以上にマッチする候補のエモティコンのみを検索し得る。
対象の1つ以上のセグメントの感情を決定するために、セグメント分析モジュール206は、入力フィールドに存在する対象のセグメントを意味分析し得る。当業者であれば、このセグメントの意味分析は、当該技術において公知の1つ以上の技術に従って行なわれ得るということを理解するであろう。対象の1つ以上のセグメントの感情を分析する場合、セグメント分析モジュール206は、対象のセグメントについての気分または感情を決定し得る。対象のセグメントについての例示的な感情は、幸福、悲しみ、無関心、怒り、憤慨、悔恨、興奮、賛成、不賛成、合意、および不同意を含み得るが、これらに限定されない。
対象の1つ以上のセグメントの感情を判断するために、セグメント分析モジュールは感情分析または見解調査を実行してもよい。一般に、感情分析は、対象の1つ以上のセグメントにおける主観的情報の位置を特定して分析するために、テキスト分析、統計、コンピューテーション言語学および/または自然言語処理を使用することを指している。感情分析の目的は、たとえば対象のセグメントにある何か(たとえばトピックまたは問題)に関する書き手またはユーザの態度を識別することである。この態度は、ユーザの感情状態もしくは情動状態、ユーザの意図した感情的効果、またはトピックもしくは問題についてのユーザの判断もしくは評価であり得る。
いくつかの場合、感情分析は、テキストセグメントの対立性(polarity)(すなわち、テキスト内の表明された見解が肯定的か、否定的かまたは中立的であるかどうか)を識別するために用いられる。感情分析は、中立のクラスを利用する可能性もあるし利用しない
可能性もある最大エントロピーおよび/またはサポートベクトルマシン(support vector
machine:SVM)などの選別器を利用してもよい。
さまざまな実現例においては、セグメント分析モジュール206は、テキストセグメントがユーザによって入力されてユーザの感情がリアルタイムまたはほぼリアルタイムで評価される際に、テキストセグメントを監視およびレビューする。単純な例として、「今日は幸せな気分だ」という句を含むメッセージをユーザが入力すると、セグメント分析モジュール206は、ユーザが幸せである可能性が高いことを認識して、適切なエモティコン(たとえば笑顔)をテキストに挿入するようにユーザに提案し得る。同様に、「動揺している」という句を含むメッセージが入力されると、セグメント分析モジュール206は、ユーザが悲しんでいるかまたは怒っていることを認識し、適切なエモティコン(たとえば悲しい顔または怒り顔)をテキストに挿入するようユーザに提案し得る。
さらに、ユーザがメッセージを入力したときに、単語およびセグメントが、メッセージの指定受信者によって用いられる1つ以上の言語に翻訳されてもよい。(たとえばリアルタイムで)メッセージが翻訳されると、メッセージの感情分析が容易になり得る。たとえば、セグメント分析モジュール206は、ある1つの言語(たとえば英語)では、別の言語(たとえばロシア語)よりも感情をより容易に評価することができるかもしれない。
感情分析のいくつかの実現例ではスケーリングシステムを利用する。スケーリングシステムでは、否定的感情、中立的感情または肯定的感情に一般的に関連付けられているセグメントまたは言葉が、最も否定的から最も肯定的までの範囲にわたるスケール(たとえば−10〜+10)の数に関連付けられている。たとえば、セグメント分析モジュール206は、感情に関連付けられた言葉のライブラリにアクセスし得るかまたは当該ライブラリを含み得る。各々の言葉には、このスケール上の数値が割当てられている。ユーザが高い正の値を有する言葉(たとえば「愛」)を入力すると、セグメント分析モジュール206は、ユーザの感情が肯定的である可能性あると認識するだろう。同様に、ユーザが負の数(たとえば、「憎悪」)または中立の値(たとえば、「無関心」)を有する言葉を入力すると、セグメント分析モジュール206は、ユーザの感情がそれぞれ否定的であるかまたは中立的である可能性があると認識するだろう。いくつかの場合、セグメントにおいて2つ以上の感情が検出される場合、セグメント分析モジュール206は、セグメントについての合計数値を得るためにセグメントにおける言葉についての数値を合計し得る。合計数値を用いて、セグメントが、たとえば否定的であるか中立的であるかまたは肯定的であると分類し得る。場合によっては、セグメントについてのスコアが非常に否定的であるかまたは非常に肯定的である場合、セグメント分析モジュール206は、セグメントにおけるユーザ感情が極端であることを認識し得るとともに、極端な感情に関連付けられた候補のエモティコンを、ユーザが挿入できるように識別し得る。
さまざまな実施の形態においては、自然言語処理を用いて対象のセグメントを分析する場合、セグメント分析モジュール206は、テキストセグメントをレビューして、ユーザ感情に関連付けられた概念または主題を識別し得る。たとえば、感情が肯定的であることを示す1つ以上の単語をユーザが挿入したとき、セグメント分析モジュール206は、ユーザの感情がなぜ肯定的であるかを判断するために、(たとえば、感情的な単語の前または後にある)テキストの他の部分を探索してもよい。セグメント分析モジュール206は、たとえば、肯定的なユーザ感情がテキストセグメントのどこか他のところに記載されている特定の概念(たとえば人または物体)に関連付けられていることを識別してもよい。このような場合、セグメント分析モジュール206はユーザ感情を概念に関連付けてもよい。概念には、ユーザ感情と概念との関係を示すスコアが付与されてもよい。
いくつかの状況においては、対象の1つ以上のセグメントの主観性/客観性が識別され
る。この場合、所与のテキスト(たとえば、対象のセグメント)を、客観的または主観的なものであると分類することを含み得る。セグメントの主観性がコンテキストに依存する可能性があり、かつ、客観的作用が主観的な文(たとえば別の人の見解の挿入)を含む可能性があるので、このタスクはよりその対立性の分類をより困難なものにする可能性がある。いくつかの実施の形態においては、客観的なセグメントは、残りのテキストの対立性または感情が分類される前には無視されている。
セグメント分析モジュール206のいくつかの実現例は、特徴/局面ベースの感情分析を利用している。この場合、実体(たとえば自動車、ビジネスまたは電子製品)のさまざまな局面または特徴についての見解または感情が判断される。このような分析は、実体を識別すること、実体についての特徴/局面を抽出すること、特徴/局面についてのいずれかの感情を肯定的、否定的または中立的なものであると分類すること等の、いくつかの副次的問題を伴う可能性がある。
図8を参照すると、いくつかの実現例においては、テキストメッセージにおいて検出された感情に対応するエモティコンを提案および挿入するための方法800が提供される。当該方法は、たとえば、ユーザがテキストフィールドにテキストを入力している際にテキストフィールドにおけるテキストの感情を判断するステップ(ステップ802)を含む。好ましくはテキストフィールドにおける入力カーソルの現在位置に近いテキスト(たとえばセグメント、文の断片またはテキストの他の部分)がテキストフィールドから選択される(ステップ804)。1つ以上の候補のエモティコンが識別される(ステップ806)。候補のエモティコンは各々、テキストおよび感情に対する候補のエモティコンの関連性を示すそれぞれのスコア(たとえば数値)に関連付けられている。候補のエモティコンは、それぞれの感情を有する(選択されたテキストと同じであり得るかまたは異なり得る)他のテキストの近くに挿入するために、少なくともエモティコンの履歴ユーザ選択に基づいて、識別される。たとえば、当該方法は、ユーザによって選択されたエモティコンの履歴をレビューし、選択されたテキストと同様のテキストおよび/または感情とともに使用するために、ユーザによって以前に選択されたエモティコンに基づいて、候補のエモティコンを識別するステップを含み得る。以前に選択されたこのようなエモティコンは、以前には選択されていなかった他のエモティコンよりも高いそれぞれのスコアを有する可能性がある。次いで、それぞれの最高スコアを有する1つ以上の候補のエモティコンがユーザ選択のために提供される(ステップ808)。場合によっては、最高スコアを有する候補のエモティコンは、選択されたテキストの感情に関連付けられてもよく、および/または、同様の感情を有するテキストに挿入するために予め選択されていてもよい。エモティコンは、より高いスコアを有するエモティコンが(たとえばリストにおいて)最初に提示されるように、各々のエモティコンについてのそれぞれのスコアに従ってユーザに提供(たとえば表示)されてもよい。次いで、提供されたエモティコンのうち1つ以上のエモティコンについてのユーザによる選択が受け取られ(ステップ810)、1つ以上の選択されたエモティコンが、入力カーソルの現在位置にあるかまたは現在位置の近くにあるテキストフィールドに挿入される。
いくつかの実現例においては、候補のエモティコンは、選択されたテキストの自然言語と候補のエモティコンについての先のユーザ選択に関連付けられたテキストの自然言語との差に少なくとも部分的に基づいているスコアを計算することによって判断される。たとえば、自然言語が同じである場合、候補のエモティコンにはより高いスコアを付与することができる。同様に、選択されたテキストと候補のエモティコンの先のユーザの選択に関連付けられたテキストとが同じ単語を同じ順序で含んでいる場合、候補のエモティコンにはより高いスコアを付与することができる。
一般に、選択されたテキストと先のテキストセグメントまたはメッセージとの差を判断
するためにいくつかの技術が用いられる可能性がある。たとえば、場合によっては、選択されたテキストおよび先のテキストセグメントについてハミング距離が計算される。一般に、ハミング距離は、選択されたテキストを先のテキストセグメントに変換するのに必要な最少数の変更を示すものである。各々の変更は、たとえば、文字置換、文字消去および/または文字追加を含み得る。長さが等しいストリングの場合、ハミング距離は対応する文字または記号が異なっている箇所の数に相当し得る。一般に、選択されたテキストと先のテキストセグメントとの差がわずかである場合、先のテキストセグメントまたはメッセージにおいて用いられるエモティコンに関連付けられたスコアは高くなるかもしれない。高スコアは、ユーザが現在の選択されたテキストまたはメッセージに挿入すべきエモティコンを検討することを所望する可能性があるだろうことを示している。
いくつかの実現例においては、候補のエモティコンについてのスコアは、重み付けされ得る1つ以上の個々のスコアの組合せに基づいている。たとえば、スコアは、感情類似度、テキスト類似度(たとえばハミング距離)、言語類似度などについての別個のスコアの組合せ(たとえば重み付けされた合計)に基づいていてもよい。このようなアプローチは、スコアを計算する際にテキストセグメントまたはメッセージの2つ以上の特徴を考慮に入れることを可能にする。当該アプローチはまた、スコアを計算する際に、いくつかの特徴(たとえば感情)を他の特徴(たとえばテキスト類似度)よりも重く重み付けすることを可能にし得る。特徴についての重みは、たとえば、この明細書中に記載されるシステムおよび方法のユーザおよび/またはプロバイダによって選択されてもよい。これにより、ユーザが、他の特徴(たとえばテキスト類似度)以外の何らかの特徴(たとえば感情)により大きく基づいたエモティコン提案を受け取ることが可能になり得る。一例においては、候補のエモティコンについてのスコアは、候補のエモティコンが所与のテキストセグメントまたはメッセージ(たとえば所与の単語または一連の単語)のために用いられた回数に少なくとも部分的に基づいている。特定の候補のエモティコンが所与のテキストのために(たとえばユーザ、ユーザのグループまたはすべてのユーザによって)他のエモティコンよりも頻繁に用いられていた場合、候補のエモティコンについてのスコアは高くなる可能性がある。
さまざまな場合においては、エモティコン提案システム200は、ユーザのプレファレンス、ユーザに関連する情報、および/または受信者に関連する情報に少なくとも部分的に基づいて候補のエモティコンを識別する。たとえば、ユーザは、彼または彼女が以前に用いたエモティコン、または何らかのタイプ(たとえば顔の表情)であるエモティコンを用いるためにプレファレンスを指定し得る。ユーザについての情報(たとえば年齢、性別、学歴、キャリア、趣味など)を用いることによっても、ユーザの何らかの局面と一致するものであってこのためにユーザが用いる可能性が高くなるであろう候補のエモティコンを識別することができる。たとえば、医師は、医療行為に関するエモティコンを用いる傾向がより高くなるだろう。さらなる検討例として、エモティコン提案システム200は、ユーザのメッセージについての標的視聴者を考慮に入れて、視聴者が有する可能性のある予想されるいずれかのプレファレンスに基づいて候補のエモティコンを識別し得る。たとえば、メッセージが何らかの色(たとえばピンク)のエモティコンを好む人に向けられる場合、システムおよび方法はその特定の色を含む候補のエモティコンを識別し得る。
図9を参照すると、いくつかの実施の形態においては、ユーザ規定エモティコンシステム900が提供される。ユーザ規定エモティコンシステム900は、ユーザが、エモティコンを規定する(たとえば描く)こと、ユーザ規定のエモティコンを他のユーザと共有すること、ユーザ規定のエモティコンを共有するためのクレジットを受け取ること、および、他者によるユーザ規定のエモティコンの使用に関する情報を受け取ることを可能にする。ユーザ規定のエモティコンは、視覚的表現(たとえばグラフィックイメージ)を含み得るものであって、それぞれの自然言語および/またはそれぞれのテキストに関連付けられ
得る。
ユーザ規定エモティコンシステム900は、ユーザ規定のエモティコンをユーザが提出することを可能にするエモティコン提出モジュール902を含む。エモティコン提出モジュール902は、ユーザがエモティコンについての画像を描くかまたは作成することを可能にする描画ツールを含み得る。ユーザは、エモティコンについての自然言語の意味および/または(たとえば、空腹に関連付けて使用するための)エモティコンについての示唆された使用を提案し得る。場合によっては、ユーザは、エモティコンを作成し得るが、他のユーザが使用するためのエモティコンを提出するのではなく、エモティコンを個人使用に制限することを選択してもよい。ユーザ規定エモティコンシステム900は、ユーザが、ユーザ規定のエモティコンが個人使用のためにのみ保存されるべき(すなわち私的なエモティコン)であるか、または、他のユーザと共有されるべき(すなわち公的なエモティコン)であるかどうかを指定することを可能にし得る。
ユーザ規定エモティコンシステム900はまた、エモティコンクレジットモジュール904を含む。エモティコンクレジットモジュール904は、複数のユーザが、彼らのユーザ規定のエモティコンを他のユーザと共有するためのクレジットを受け取ることを可能にする。たとえば、ユーザ規定エモティコンシステム900および/またはエモティコンクレジットモジュール904は、電子ゲームまたはビデオゲーム(たとえば多人数同時参加型のオンラインゲーム)と対話してもよく、および/または、当該電子ゲームまたはビデオゲームからアクセス可能であってもよい。ユーザが新しいエモティコンを作成し、そのエモティコンを他のユーザが使用できるように提出すると、エモティコンクレジットモジュール904はユーザのアカウントにクレジットを提供し得る。たとえば、ユーザ規定のエモティコンを提出するのと引換えに、ユーザは、ビデオゲームで使用されるポイント、仮想貨幣および/または他の仮想グッズを受け取り得る。
ユーザ規定のエモティコンがユーザによって提出された後、統計モジュール906は、ユーザが他者によるエモティコンの使用を追跡することを可能にする。統計モジュール906は、エモティコンが用いられた回数、エモティコンが用いられた最後の時間、およびエモティコンを使用するのに用いられたさまざまな言語について、ユーザに通知し得る。他者によるエモティコンの使用の程度に基づいて、ユーザのアカウントは追加のクレジットを受け取り得る。このようなクレジットは、他者が複数回使用することを所望するであろう高品質のエモティコンを作成して共有するようにユーザを奨励するものとなり得る。
ユーザ規定エモティコンシステム900はまた、ソフトウェア開発キットモジュール908を利用し得るかまたは含み得る。ソフトウェア開発キットモジュール908は、この明細書中に記載されるように、ユーザ規定のエモティコンを生成して提出し、ユーザアカウントに課金し、統計を提供し、かつエモティコンを提案するためのアプリケーションの作成を容易にする。たとえば、ソフトウェア開発キットモジュール908は、候補のエモティコンの識別を開始するためのアプリケーションプログラミングインターフェイスを提供し得る。
有利には、ユーザ規定エモティコンシステム900は、クラウドソーシングによってエモティコンの作成および分布を容易にする。ユーザが新しいユーザ規定のエモティコンを作成して提出すると、利用可能なエモティコンのライブラリのサイズが大きくなり、その特異性が増す。これにより、エモティコン提案システム200が、ユーザの個人的プレファレンスをより容易に満足させるとともに特定の環境で使用するのにより適した多種多様なエモティコンを、ユーザに対して提供することが可能となる。たとえば、ユーザが「赤色の家」というテキストを入力すると、このユーザは、異なる色の家のエモティコンではなく、赤色の家のエモティコンを挿入することを所望する可能性がある。
クラウドソーシングによってエモティコンを作成して分布することにより、ユーザ規定のエモティコンおよび他のエモティコンをユーザがテストすることも可能となり、これにより、より人気があるかまたはより高品質であり、このため使用される可能性のより高いエモティコンを識別することが可能となる。いくつかの場合、人気のあるエモティコンが、テキストメッセージに挿入されるようにユーザに提案される可能性がより高くなる。たとえば、ユーザがテキストメッセージを入力しているときに、この明細書中に記載されるシステムおよび方法は、他のユーザによって人気のあることが判明したエモティコンを当該ユーザに提案してもよい。
当該システムおよび方法は、特定の単語および言語に従ってエモティコンの人気度を追跡し得る。たとえば、ユーザがメッセージに特定の単語を入力すると、ユーザ規定エモティコンシステム900は、その特定の単語に関して人気のあるエモティコンを識別して、それらのエモティコンをユーザに提案し得る。同じ単語を異なる言語に翻訳した場合、人気のあるエモティコンは違うものになる可能性がある。したがって、ユーザに対して提案された人気のあるエモティコンのセットは、メッセージのユーザおよび/または受信者によって用いられている特定の言語に依存する可能性がある。
一実施の形態においては、ユーザは、たとえば、クラウドソーシングによって開発された他のエモティコンよりも頻繁にユーザに提案される可能性のある好ましいエモティコンについての個人専用のバンクを有する。好ましいエモティコンの個人専用のバンクは、ユーザによって1つ以上の前の事例において用いられたエモティコンを含み得る。好ましいエモティコンの個人専用のバンクは、メッセージに挿入すべきエモティコンをユーザが選択するたびに、自動的に生成および/または増大させてもよい。いくつかの実現例においては、ユーザは、彼らの好ましいエモティコンの個人専用のバンクに含めるようにエモティコンを手動で選択してもよい。
いくつかの実現例においては、当該システムおよび方法は、会社、ブランド、製品および/またはサービスに関連付けられたエモティコンの作成、提出および使用を容易にする。たとえば、会社は、会社の商標、サービスマークおよび/またはロゴを用いるかまたは含むエモティコンを作成して提出し得る。ユーザが会社の名前または会社の製品もしくはサービスをメッセージに入力すると、エモティコン提案システム200は、会社のエモティコンのうち1つ以上をメッセージに挿入するようにユーザに自動的に提案し得る。たとえば、ユーザが単語「iPhone」(登録商標)を含むメッセージを入力すると、エモティコン提案システム200は、IPHONEの画像またはIPHONEの製造業者であるアップル社(Apple Inc.,)についてのロゴもしくは商標を示すエモティコンをユーザ
に提案し得る。ユーザがメッセージに挿入するための会社のエモティコンを選択すると、エモティコンクレジットモジュール904はユーザのアカウントに課金し得る。代替的には、または、付加的には、会社のエモティコンを挿入および/または提出することにより、エモティコンクレジットモジュール904に、会社からエモティコン提案システム200の所有者またはオペレータへの資金を転送を実行させてもよい。このような場合、資金は、メッセージに会社のエモティコンを提示させるための広告料金を意味する可能性もある。場合によっては、たとえば、ユーザが会社の名前、製品、サービス、商標またはサービスマークに言及しているメッセージを作成するたびに、会社のエモティコンの挿入が自動的に行なわれてもよい。
この明細書中に記載されるシステムおよび方法を用いるかまたは相互に影響を受ける会社は、ユーザが挿入するのに利用可能なエモティコンを少なくとも部分的に制御し得る。たとえば、ユーザがメッセージに会社の名前を入力すると、エモティコン提案システム200は、会社によって承認されたエモティコンだけをユーザに提示し得る。いくつかの場
合には、ユーザは、会社の名前の隣に、または会社の製品およびサービスの名前の隣に、承認された会社のロゴまたは商標だけを挿入することができるだろう。一般に、ユーザメッセージに挿入されて提出されたエモティコンは、小さい(たとえばメッセージにおけるテキストとほぼ同じサイズ)かまたは大きい(たとえば、テキストのうち何行か以上を占める)場合があり、アニメーション化されている可能性もあれば、アニメーション化されていない可能性もある。
さまざまな実施の形態が、例として本願明細書において記載されている。さまざまな変更例が実施され得るとともに、他の実施の形態が本発明のより広い範囲から逸脱することなく使用され得ることは当業者にとって明らかであろう。したがって、例示的な実施の形態に対するこれらおよび他の変形例は、本発明によってカバーされるように意図されている。