(57)【要約】  本開示の実装形態は、テキストまたはその他のコンテンツを有する通信文に挿入するための絵文字を提案する方法、システム、および物品を対象とする。通信文に対応する複数の特徴量が得られて、複数の絵文字判定モジュールに提供される。絵文字セットおよび第１の信頼スコアが、各絵文字判定モジュールから受信され、少なくとも１つの分類器に提供される。提案された絵文字候補セットおよび第２の信頼スコアは、少なくとも１つの分類器から受信される。絵文字候補は、通信文に挿入される。
2019504413.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにより実現される、絵文字を提案する方法であって、前記方法は、
ユーザからの通信文に対応する複数の特徴量を取得するステップと、
前記特徴量を複数の絵文字判定モジュールに提供するステップと、
前記絵文字判定モジュールの各々から、絵文字セットおよび第１の信頼スコアからなる出力を受信するステップとを含み、前記第１の信頼スコアの各々は、前記セットに含まれる異なる絵文字に関連付けられ、前記関連付けられた絵文字を前記ユーザが前記通信文に挿入したいであろう尤度を表し、さらに、
前記絵文字判定モジュールからの出力を、少なくとも１つの分類器に提供するステップと、
前記少なくとも１つの分類器から、提案された絵文字候補セットおよび第２の信頼スコアを受信するステップとを含み、第２の信頼スコアの各々は、前記提案されたセットに含まれる異なる絵文字候補に関連付けられ、前記関連付けられた絵文字候補を前記ユーザが前記通信文に挿入したいであろう尤度を表し、さらに、
前記絵文字候補のうちの少なくとも１つを前記通信文に挿入するステップを含む、方法。
【請求項２】
前記複数の特徴量は、前記通信文における現在のカーソル位置、前記通信文からの１つ以上の単語、前の通信文からの１つ以上の単語、ユーザ嗜好、およびデモグラフィック情報のうちの少なくとも１つを含む、請求項１に記載の方法。
【請求項３】
前記絵文字判定モジュールは、文法誤り訂正モジュール、統計的機械翻訳モジュール、辞書ベースのモジュール、品詞タグ付けモジュール、情報抽出モジュール、自然言語処理モジュール、キーワードマッチングモジュール、および有限状態トランスデューサ・モジュールのうちの少なくとも１つを含む、請求項１に記載の方法。
【請求項４】
前記辞書ベースのモジュールは、前記通信文に含まれる単語の少なくとも一部を、少なくとも１つの対応する絵文字にマッピングするように構成される、請求項３に記載の方法。
【請求項５】
前記自然言語処理モジュールは、
前記辞書ベースのモジュールによって提供された単語と絵文字とのマッピングを拡張するために、パーサ、形態素解析部、および意味解析部のうちの少なくとも１つを備える、請求項３に記載の方法。
【請求項６】
前記キーワードマッチングモジュールは、前記通信文に含まれる少なくとも１つのキーワードを探索し、前記少なくとも１つのキーワードを、絵文字に関連付けられた少なくとも１つのタグにマッチングさせるように構成される、請求項３に記載の方法。
【請求項７】
前記第１の信頼スコアおよび前記第２の信頼スコアのうちの少なくとも一方は、（ｉ）ユーザ嗜好、（ｉｉ）言語分野、（ｉｉｉ）デモグラフィック情報、（ｉｖ）前記ユーザおよびユーザコミュニティのうちの少なくとも一方による絵文字の前の使用、および（ｖ）前記通信文と共通する単語、句、文脈、および感情のうちの少なくとも１つを有する前の通信文における絵文字の前の使用、のうちの少なくとも１つに基づく、請求項１に記載の方法。
【請求項８】
前記少なくとも１つの分類器は、教師あり学習モデル、部分教師あり学習モデル、教師なし学習モデル、および補間モデルのうちの少なくとも１つを備える、請求項１に記載の方法。
【請求項９】
前記絵文字候補のうちの少なくとも１つは、前記現在のカーソル位置に挿入され、前記通信文に含まれる少なくとも１つの単語を置き換える、請求項１に記載の方法。
【請求項１０】
前記絵文字候補のうちの少なくとも１つを挿入するステップは、
前記提案された絵文字候補セットにおいて、最も高い第２の信頼スコアを有する最適な絵文字を識別するステップを含む、請求項１に記載の方法。
【請求項１１】
前記提案された絵文字候補セットからの前記絵文字候補のうちの少なくとも１つのユーザ選択を受信するステップと、
前記ユーザ選択に基づいて、利用履歴をビルドするステップとをさらに含む、請求項１に記載の方法。
【請求項１２】
前記ユーザ嗜好および前記デモグラフィック情報のうちの少なくとも一方に基づいて、前記少なくとも１つの分類器を選択するステップをさらに含む、請求項１に記載の方法。
【請求項１３】
動作を実行するようにプログラムされた１つ以上のプロセッサを備え、前記動作は、
ユーザからの通信文に対応する複数の特徴量を取得する動作と、
前記特徴量を複数の絵文字判定モジュールに提供する動作と、
前記絵文字判定モジュールの各々から、絵文字セットおよび第１の信頼スコアからなる出力を受信する動作とを含み、前記第１の信頼スコアの各々は、前記セットに含まれる異なる絵文字に関連付けられ、前記関連付けられた絵文字を前記ユーザが前記通信文に挿入したいであろう尤度を表し、さらに、
前記絵文字判定モジュールからの出力を、少なくとも１つの分類器に提供する動作と、
前記少なくとも１つの分類器から、提案された絵文字候補セットおよび第２の信頼スコアを受信する動作とを含み、第２の信頼スコアの各々は、前記提案されたセットに含まれる異なる絵文字候補に関連付けられ、前記関連付けられた絵文字候補を前記ユーザが前記通信文に挿入したいであろう尤度を表し、さらに、
前記絵文字候補のうちの少なくとも１つを前記通信文に挿入する動作を含む、システム。
【請求項１４】
前記複数の特徴量は、前記通信文における現在のカーソル位置、前記通信文からの１つ以上の単語、前の通信文からの１つ以上の単語、ユーザ嗜好、およびデモグラフィック情報のうちの少なくとも１つを含む、請求項１３に記載のシステム。
【請求項１５】
前記絵文字判定モジュールは、文法誤り訂正モジュール、統計的機械翻訳モジュール、辞書ベースのモジュール、情報抽出モジュール、自然言語処理モジュール、キーワードマッチングモジュール、および有限状態トランスデューサ・モジュールのうちの少なくとも１つを含む、請求項１３に記載のシステム。
【請求項１６】
前記第１の信頼スコアおよび前記第２の信頼スコアのうちの少なくとも一方は、（ｉ）ユーザ嗜好、（ｉｉ）言語分野、（ｉｉｉ）デモグラフィック情報、（ｉｖ）前記ユーザおよびユーザコミュニティのうちの少なくとも一方による絵文字の前の使用、および（ｖ）前記通信文と共通する単語、句、文脈、および感情のうちの少なくとも１つを有する前の通信文における絵文字の前の使用、のうちの少なくとも１つに基づく、請求項１３に記載のシステム。
【請求項１７】
前記少なくとも１つの分類器は、教師あり学習モデル、部分教師あり学習モデル、教師なし学習モデル、および補間モデルのうちの少なくとも１つを備える、請求項１３に記載のシステム。
【請求項１８】
前記絵文字候補のうちの少なくとも１つは、前記現在のカーソル位置に挿入され、前記通信文に含まれる少なくとも１つの単語を置き換える、請求項１３に記載のシステム。
【請求項１９】
前記絵文字候補のうちの少なくとも１つを挿入する動作は、
前記提案された絵文字候補セットにおいて、最も高い第２の信頼スコアを有する最適な絵文字を識別する動作を含む、請求項１３に記載のシステム。
【請求項２０】
実行可能な命令を含む非一時的なコンピュータ読み取り可能な媒体を備え、前記実行可能な命令は、動作を行うための１つ以上のプロセッサによって実行可能であり、前記動作は、
ユーザからの通信文に対応する複数の特徴量を取得する動作と、
前記特徴量を複数の絵文字判定モジュールに提供する動作と、
前記絵文字判定モジュールの各々から、絵文字セットおよび第１の信頼スコアからなる出力を受信する動作とを含み、前記第１の信頼スコアの各々は、前記セットに含まれる異なる絵文字に関連付けられ、前記関連付けられた絵文字を前記ユーザが前記通信文に挿入したいであろう尤度を表し、さらに、
前記絵文字判定モジュールからの出力を、少なくとも１つの分類器に提供する動作と、
前記少なくとも１つの分類器から、提案された絵文字候補セットおよび第２の信頼スコアを受信する動作とを含み、第２の信頼スコアの各々は、前記提案されたセットに含まれる異なる絵文字候補に関連付けられ、前記関連付けられた絵文字候補を前記ユーザが前記通信文に挿入したいであろう尤度を表し、さらに、
前記絵文字候補のうちの少なくとも１つを前記通信文に挿入する動作を含む、物品。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、２０１５年１２月２９日に出願された米国仮出願第６２／２７２，３２４号の優先権を主張するものであり、そのすべての記載内容を、引用により本明細書に援用する。
【背景技術】
【０００２】
背景
本開示は、言語判断に関し、特に、絵文字を提案するためのシステムおよび方法に関する。
【０００３】
一般に、絵文字は、通常、情動、考え、または観念を伝えるために電子メッセージおよび通信文で使用される画像、図記号、または表意文字である。絵文字は、いろいろなデジタル装置（たとえば、携帯通信デバイスおよびタブレット・コンピューティング・デバイス）を通じて利用することができ、個人の電子メールを書くとき、インターネット上に（たとえば、ソーシャルネットワーキングサイトまたはウェブフォーラム上に）メッセージを投稿するとき、およびモバイル機器間でメッセージを送るときに使用されることが多い。
【０００４】
近年、ユーザが選択できる絵文字の数は、非常に増えている。考えられるほとんどすべての内容に対して絵文字が利用可能である。絵文字の数、使用、利用可能性、および多様性の拡大によって、ユーザが絵文字を適用できるコンピューティングアクティビティに参加しているときに、ある文脈にふさわしい絵文字を検索して選択することは、時間がかかり、時に、手に負えないだろう。
【発明の概要】
【課題を解決するための手段】
【０００５】
概要
本明細書に記載のシステムおよび方法の実装形態は、文書および電子通信文に挿入するまたはコンテンツを置き換えるための１つ以上の絵文字をユーザに提案するために使用され得る。コンテンツは、テキスト（たとえば、単語、句、略語、文字、および／または記号）、絵文字、画像、音声、映像、およびそれらの組み合わせを含み得る。これに代えて、本明細書に記載のシステムおよび方法の実装形態は、ユーザ入力を必要としないで、自動的に絵文字をコンテンツに挿入するまたはコンテンツの一部を絵文字に置き換えるために使用され得る。たとえば、コンテンツは、ユーザによってキー入力または入力されると、システムによって分析され得、この分析に基づいて、システムは、リアルタイムまたはほとんどリアルタイムでユーザに絵文字提案を提供できる。ある絵文字提案は、選択された場合にコンテンツに挿入されるまたはコンテンツの一部を置き換える１つ以上の絵文字を含み得る。次に、ユーザは、絵文字提案のうちの１つを選択してもよく、この提案の絵文字は、コンテンツでのふさわしい位置（たとえば、現在の入力カーソル位置またはその近く）に挿入され得る、またはコンテンツの一部を置き換え得る。
【０００６】
さまざまな例において、システムおよび方法は、絵文字の確率または信頼スコアを判断するために、１つ以上の絵文字判定方法および分類器を使用する。信頼スコアは、ユーザが絵文字を特定のコンテンツに挿入したい、または特定のコンテンツ（または、その一部）を絵文字に置き換えたい尤度を表す。たとえば、最も高い信頼スコアを有する絵文字が、テキストメッセージへの挿入の可能性のために、ユーザに提案され得る。いくつかの場合において、各絵文字判定方法は、可能性のある絵文字に関連付けられた確率のセットまたはベクトルを出力する。分類器は、コンテンツに対する提案セットを判断するために、絵文字判定方法からの出力を組み合わせることができる。各提案は、１つ以上の絵文字を含み得る。メッセージ用に選ばれる特定の絵文字判定方法（複数可）および分類器（複数可）は、予測される正確さ、信頼スコア、ユーザ嗜好、メッセージの言語分野、および／またはその他の適する要因によって異なり得る。検出方法（複数可）および／または分類器（複数可）の他の選択方法も可能である。
【０００７】
いくつかの例において、本明細書に記載のシステムおよび方法は、コンテンツをリアルタイムで絵文字に変換する。このプロセスを、「絵文字化」と称する。ユーザがコンテンツを入力すると、たとえば、コンテンツは、絵文字提案を識別および提供するために、分析され得る。ユーザは、メッセージを入力またはキー入力する際に絵文字提案を提供されながら、テキストと絵文字との組み合わせを通して互いにコミュニケーションを取ってもよい。テキストと絵文字との組み合わせによって、さまざまなクライアントで使用するためのメッセージングプラットフォームとして機能でき、且つ、ゲーム、テキストメッセージング、およびチャットルームコミュニケーションを含むさまざまな用途のための、新しいコミュニケーションの基本的な枠組みがもたらされる。
【０００８】
ユーザは、絵文字付きメッセージと絵文字なしメッセージとの間で切替えるオプションを持つことができる。たとえば、ユーザは、プレーンテキストと絵文字付きテキスト文字（つまり、「絵文字化された」バージョンのテキスト）との間で切替える「絵文字化」コマンドを、テキストメッセージングシステムにおいて選択できる。切替え機能は、ユーザ嗜好に順応し得、これによって、プレーンテキストと絵文字付きテキストとのいずれかをより簡単に選べるようになる。また、この機能は、より大部分のコンテンツ（たとえば、全テキストメッセージ会話）において、コンテンツを絵文字に変換する（つまり、絵文字化する）ためにも使用され得る。これは、コンテンツのより小さい部分（たとえば、個々の単語または文）が絵文字に変換される場合に生成される出力とは異なる出力を生成する（たとえば、会話のトピックについてのより多くの情報を与える）可能性がある。また、絵文字は、翻訳することが難しいメッセージに対する言語翻訳の代わりとして、または、特定のメッセージについての翻訳品質が受け入れられるものではなかった場合にも使用され得る。
【０００９】
絵文字の挿入または使用は、ゲーム環境に特に適し得る。特定のゲームにとって、チャットコミュニケーションは、プレーヤをつなぎ留めておく重要な機能である。絵文字をコミュニケーションプロトコルとして使用することによって、ゲーム体験を高め、プレーヤを、ゲームおよび他のプレーヤとのコミュニケーションにより引き込むことができる。
【００１０】
一態様において、本明細書に記載の主題は、絵文字を提案する方法で実施される。方法は、１つ以上のコンピュータによって実行される、ユーザからの通信文に対応する複数の特徴量を取得するステップと、特徴量を複数の絵文字判定モジュールに提供するステップと、絵文字判定モジュールの各々から、絵文字セットおよび第１の信頼スコアからなる出力を受信するステップとを含み、第１の信頼スコアの各々は、セットに含まれる異なる絵文字に関連付けられ、関連付けられた絵文字をユーザが通信文に挿入したいであろう尤度を表し、さらに、絵文字判定モジュールからの出力を、少なくとも１つの分類器に提供するステップと、少なくとも１つの分類器から、提案された絵文字候補セットおよび第２の信頼スコアを受信するステップとを含み、第２の信頼スコアの各々は、提案されたセットに含まれる異なる絵文字候補に関連付けられ、関連付けられた絵文字候補をユーザが通信文に挿入したいであろう尤度を表し、さらに、絵文字候補のうちの少なくとも１つを通信文に挿入するステップを含む。
【００１１】
いくつかの例において、複数の特徴量は、通信文における現在のカーソル位置、通信文からの１つ以上の単語、前の通信文からの１つ以上の単語、ユーザ嗜好、および／またはデモグラフィック情報を含む。絵文字判定モジュールは、文法誤り訂正モジュール、統計的機械翻訳モジュール、辞書ベースのモジュール、情報抽出モジュール、自然言語処理モジュール、キーワードマッチングモジュール、および／または有限状態トランスデューサ・モジュールを含み得る。一例において、辞書ベースのモジュールは、通信文に含まれる単語の少なくとも一部を、少なくとも１つの対応する絵文字にマッピングするように構成される。
【００１２】
いくつかの実装形態において、自然言語処理モジュールは、辞書ベースのモジュールによって提供された単語と絵文字とのマッピングを拡張するために、パーサ、形態素解析部、および／または意味解析部を備える。これに代えて、または、これに加えて、キーワードマッチングモジュールは、通信文に含まれる少なくとも１つのキーワードを探索し、少なくとも１つのキーワードを、絵文字に関連付けられた少なくとも１つのタグにマッチングさせるように構成され得る。いくつかの例において、第１の信頼スコアおよび／または第２の信頼スコアは、ユーザ嗜好、言語分野、デモグラフィック情報、ユーザおよびユーザコミュニティのうちの少なくとも一方による絵文字の前の使用、および／または通信文と共通する単語、句、文脈、および感情のうちの少なくとも１つを有する前の通信文における絵文字の前の使用に基づき得る。
【００１３】
いくつかの実装形態において、少なくとも１つの分類器は、教師あり学習モデル、部分教師あり学習モデル、教師なし学習モデル、および／または補間モデルを備える。絵文字候補のうちの少なくとも１つは、現在のカーソル位置に挿入され得、通信文に含まれる少なくとも１つの単語を置き換え得る。いくつかの場合において、絵文字候補のうちの少なくとも１つを挿入するステップは、提案された絵文字候補セットにおいて、最も高い第２の信頼スコアを有する最適な絵文字を識別するステップを含む。また、方法は、提案された絵文字候補セットからの絵文字候補のうちの少なくとも１つのユーザ選択を受信するステップと、ユーザ選択に基づいて、利用履歴をビルドするステップとを含み得る。また、いくつかの例において、方法は、ユーザ嗜好および／またはデモグラフィック情報に基づいて、少なくとも１つの分類器を選択するステップも含み得る。複数の絵文字判定モジュールは、動作を同時に行うことができる。
【００１４】
方法は、２つ以上の単語ベクトル表現間のコサイン類似度を計算することによって、辞書ベースのモジュール用の辞書を拡張するステップを含み得る。たとえば、方法は、２つ以上の単語についてのベクトル表現を取得するステップと、ベクトル表現についてのコサイン類似度を計算するステップと、単語および／または句間のコサイン類似度に基づいて、辞書（たとえば、辞書ベースのモジュール用の）を拡張するステップとを含み得る。
【００１５】
別の態様において、本明細書に記載の主題は、動作を実行するようにプログラムされた１つ以上のプロセッサを備えるシステムに具体化され得、当該動作は、ユーザからの通信文に対応する複数の特徴量を取得する動作と、特徴量を複数の絵文字判定モジュールに提供する動作と、絵文字判定モジュールの各々から、絵文字セットおよび第１の信頼スコアからなる出力を受信する動作とを含み、第１の信頼スコアの各々は、セットに含まれる異なる絵文字に関連付けられ、関連付けられた絵文字をユーザが通信文に挿入したいであろう尤度を表し、さらに、絵文字判定モジュールからの出力を、少なくとも１つの分類器に提供する動作と、少なくとも１つの分類器から、提案された絵文字候補セットおよび第２の信頼スコアを受信する動作とを含み、第２の信頼スコアの各々は、提案されたセットに含まれる異なる絵文字候補に関連付けられ、関連付けられた絵文字候補をユーザが通信文に挿入したいであろう尤度を表し、さらに、絵文字候補のうちの少なくとも１つを通信文に挿入する動作を含む。
【００１６】
いくつかの例において、複数の特徴量は、通信文における現在のカーソル位置、通信文からの１つ以上の単語、前の通信文からの１つ以上の単語、ユーザ嗜好、および／またはデモグラフィック情報を含む。絵文字判定モジュールは、文法誤り訂正モジュール、統計的機械翻訳モジュール、辞書ベースのモジュール、情報抽出モジュール、自然言語処理モジュール、キーワードマッチングモジュール、および／または有限状態トランスデューサ・モジュールを含み得る。一例において、辞書ベースのモジュールは、通信文に含まれる単語の少なくとも一部を、少なくとも１つの対応する絵文字にマッピングするように構成される。
【００１７】
いくつかの実装形態において、自然言語処理モジュールは、辞書ベースのモジュールによって提供された単語と絵文字とのマッピングを拡張するために、パーサ、形態素解析部、および／または意味解析部を備える。これに代えて、または、これに加えて、キーワードマッチングモジュールは、通信文に含まれる少なくとも１つのキーワードを探索し、少なくとも１つのキーワードを、絵文字に関連付けられた少なくとも１つのタグにマッチングさせるように構成され得る。いくつかの例において、第１の信頼スコアおよび／または第２の信頼スコアは、ユーザ嗜好、言語分野、デモグラフィック情報、ユーザおよびユーザコミュニティのうちの少なくとも一方による絵文字の前の使用、および／または通信文と共通する単語、句、文脈、および感情のうちの少なくとも１つを有する前の通信文における絵文字の前の使用に基づき得る。
【００１８】
いくつかの実装形態において、少なくとも１つの分類器は、教師あり学習モデル、部分教師あり学習モデル、教師なし学習モデル、および／または補間モデルを備える。絵文字候補のうちの少なくとも１つは、現在のカーソル位置に挿入され得、通信文に含まれる少なくとも１つの単語を置き換え得る。いくつかの場合において、絵文字候補のうちの少なくとも１つを挿入する動作は、提案された絵文字候補セットにおいて、最も高い第２の信頼スコアを有する最適な絵文字を識別する動作を含む。また、方法は、提案された絵文字候補セットからの絵文字候補のうちの少なくとも１つのユーザ選択を受信する動作と、ユーザ選択に基づいて、利用履歴をビルドする動作とを含み得る。また、いくつかの例において、方法は、ユーザ嗜好および／またはデモグラフィック情報に基づいて、少なくとも１つの分類器を選択する動作も含み得る。複数の絵文字判定モジュールは、動作を同時に行うことができる。
【００１９】
別の態様において、本明細書に記載の主題は、物品に具体化され得る。物品は、実行可能な命令を含む非一時的なコンピュータ読み取り可能な媒体を備える。実行可能な命令は、動作を行うようにプログラムされた１つ以上のプロセッサによって実行可能であり、当該動作は、ユーザからの通信文に対応する複数の特徴量を取得する動作と、特徴量を複数の絵文字判定モジュールに提供する動作と、絵文字判定モジュールの各々から、絵文字セットおよび第１の信頼スコアからなる出力を受信する動作とを含み、第１の信頼スコアの各々は、セットに含まれる異なる絵文字に関連付けられ、関連付けられた絵文字をユーザが通信文に挿入したいであろう尤度を表し、さらに、絵文字判定モジュールからの出力を、少なくとも１つの分類器に提供する動作と、少なくとも１つの分類器から、提案された絵文字候補セットおよび第２の信頼スコアを受信する動作とを含み、第２の信頼スコアの各々は、提案されたセットに含まれる異なる絵文字候補に関連付けられ、関連付けられた絵文字候補をユーザが通信文に挿入したいであろう尤度を表し、さらに、絵文字候補のうちの少なくとも１つを通信文に挿入する動作を含む。
【００２０】
いくつかの例において、複数の特徴量は、通信文における現在のカーソル位置、通信文からの１つ以上の単語、前の通信文からの１つ以上の単語、ユーザ嗜好、および／またはデモグラフィック情報を含む。絵文字判定モジュールは、文法誤り訂正モジュール、統計的機械翻訳モジュール、辞書ベースのモジュール、情報抽出モジュール、自然言語処理モジュール、キーワードマッチングモジュール、および／または有限状態トランスデューサ・モジュールを含み得る。一例において、辞書ベースのモジュールは、通信文に含まれる単語の少なくとも一部を、少なくとも１つの対応する絵文字にマッピングするように構成される。
【００２１】
いくつかの実装形態において、自然言語処理モジュールは、辞書ベースのモジュールによって提供された単語と絵文字とのマッピングを拡張するために、パーサ、形態素解析部、および／または意味解析部を備える。これに代えて、または、これに加えて、キーワードマッチングモジュールは、通信文に含まれる少なくとも１つのキーワードを探索し、少なくとも１つのキーワードを、絵文字に関連付けられた少なくとも１つのタグにマッチングさせるように構成され得る。いくつかの例において、第１の信頼スコアおよび／または第２の信頼スコアは、ユーザ嗜好、言語分野、デモグラフィック情報、ユーザおよび／またはユーザコミュニティによる絵文字の前の使用、および／または通信文と共通する単語、句、文脈、および／または感情を有する前の通信文における絵文字の前の使用に基づき得る。
【００２２】
いくつかの実装形態において、少なくとも１つの分類器は、教師あり学習モデル、部分教師あり学習モデル、教師なし学習モデル、および／または補間モデルを備える。絵文字候補のうちの少なくとも１つは、現在のカーソル位置に挿入され得、通信文に含まれる少なくとも１つの単語を置き換え得る。いくつかの場合において、絵文字候補のうちの少なくとも１つを挿入する動作は、提案された絵文字候補セットにおいて、最も高い第２の信頼スコアを有する最適な絵文字を識別する動作を含む。また、方法は、提案された絵文字候補セットからの絵文字候補のうちの少なくとも１つのユーザ選択を受信する動作と、ユーザ選択に基づいて、利用履歴をビルドする動作とを含み得る。また、いくつかの例において、方法は、ユーザ嗜好および／またはデモグラフィック情報に基づいて、少なくとも１つの分類器を選択する動作も含み得る。複数の絵文字判定モジュールは、動作を同時に行うことができる。
【００２３】
本発明のある態様について説明する実施形態の要素は、本発明の別の態様のさまざまな実施形態において使用され得る。たとえば、ある独立請求項に従属する従属請求項の特徴は、その他の独立請求項のうちのいずれかに記載の装置、システム、および／または方法において使用され得ると考えられる。
【図面の簡単な説明】
【００２４】
【図１】ユーザの通信文に挿入するための絵文字を提案するための例示的なシステムの概略図である。
【図２】ユーザの通信文に挿入するための絵文字を提案する例示的な方法のフロー図である。
【図３】例示的な絵文字判定モジュールの概略図である。
【図４】例示的な絵文字分類器モジュールの概略図である。
【図５】絵文字提案システムアーキテクチャの概略図である。
【発明を実施するための形態】
【００２５】
詳細な説明
一般に、本明細書に記載のシステムおよび方法は、コンテンツに挿入するまたはコンテンツの１つ以上の部分を置き換えるための絵文字をユーザに提案するために使用され得る。あるコンテンツは、電子文書、電子メッセージ、または他の電子通信文内にあり得る。通信文は、テキストコンテンツおよび、必要であれば、たとえば、画像、絵文字、音声記録、マルチメディア、ＧＩＦ、映像、および／またはコンピュータ命令など、ほかの種類のコンテンツを含み得る。
【００２６】
図１は、あるコンテンツについての絵文字を識別するための例示的なシステム１００を示す図である。サーバシステム１１２は、メッセージ分析機能および絵文字提案機能を提供する。サーバシステム１１２は、たとえば、１つ以上の地理的位置における１つ以上のデータセンター１１４でデプロイできるソフトウェアコンポーネントおよびデータベースを備える。サーバシステム１１２のソフトウェアコンポーネントは、絵文字判定モジュール１１６と、絵文字分類器モジュール１１８と、マネージャモジュール１２０とを含み得る。ソフトウェアコンポーネントは、同じまたは個々のデータ処理装置上で実行できるサブコンポーネントを含み得る。サーバシステム１１２のデータベースは、訓練データ１２２と、辞書１２４と、チャット履歴１２６と、ユーザ情報１２８とを含み得る。データベースは、１つ以上の物理的な格納システムに存在し得る。ソフトウェアコンポーネントおよびデータについては、以下でさらに説明する。
【００２７】
ユーザがサーバシステム１１２とやりとりできるように、エンドユーザ・アプリケーションとして、ウェブベースのアプリケーションなどのアプリケーションが提供され得る。エンドユーザ・アプリケーションは、パーソナルコンピュータ１３４、スマートフォン１３６、タブレットコンピュータ１３８、およびラップトップコンピュータ１４０などのクライアントデバイスのユーザによって、ネットワーク１３２（たとえば、インターネット）を通じてアクセスされ得る。他のクライアントデバイスも可能である。代替的な例において、辞書１２４、チャット履歴１２６、および／またはユーザ情報１２８、またはそれらの一部は、１つ以上のクライアントデバイス上に格納され得る。これに加えて、または、これに代えて、システム１００のソフトウェアコンポーネント（たとえば、絵文字判定モジュール１１６、絵文字分類器モジュール１１８、および／またはマネージャモジュール１２０）またはそれらの一部は、１つ以上のクライアントデバイス上に存在し得る、または１つ以上のクライアントデバイス上で動作を実行するために使用され得る。
【００２８】
図１は、データベース（たとえば、訓練データ１２２、辞書１２４、チャット履歴１２６、およびユーザ情報１２８）と通信できるものとして、絵文字分類器モジュール１１８およびマネージャモジュール１２０を示す。訓練データ１２２のデータベースは、一般に、１つ以上の絵文字判定方法および／または分類器を訓練するために使用され得る訓練データを含む。訓練データは、たとえば、単語または句（または、その他のコンテンツ）のセットを、この単語または句を置き換え得る、および／またはこの単語または句に挿入され得る好ましい絵文字と合わせて含み得る。訓練データは、たとえば、ユーザが生成した絵文字を、このような絵文字のための記述タグと合わせて含み得る。さらに、これらの絵文字とタグとの組み合わせは、特定の組み合わせが他と比べて関連性があるまたは世間に広まっていると評価するかもしれないユーザからのユーザ定義の重みを含み得る。辞書１２４のデータベースは、単語、句、またはそれらの一部を、１つ以上の絵文字に結びつける辞書を含んでもよい。辞書は、２つ以上の言語を網羅してもよく、および／または、複数の言語（たとえば、言語ごとに別々の辞書）を網羅するために、複数の辞書が辞書１２４のデータベースに含まれてもよい。チャット履歴１２６のデータベースは、ユーザ間でやり取りされた前の通信文（たとえば、テキストメッセージ）を格納してもよい。これに代えて、または、これに加えて、チャット履歴１２６のデータベースは、たとえば、自動システム１１２によって提案された１つ以上の絵文字提案および／または結果として生じた絵文字をユーザが選択したかどうかを含む、ユーザによる絵文字の過去の使用についての情報を含み得る。絵文字提案のランク順位に基づいた選択に関係する情報が格納されてもよい。ユーザ情報１２８のデータベースは、送信者および受信者の両方を含むユーザのデモグラフィック情報（たとえば、年齢、人種、民族性、性別、収入、居住地など）を含んでもよい。ユーザ情報１２８のデータベースは、絵文字が使用されるまたは使用されない場合を定める設定、自動絵文字挿入についての好み、および／またはユーザが持てる好ましい絵文字の種類（たとえば、顔の表情や動物）など、ユーザの絵文字の特定の好みを含んでもよい。一般に、絵文字分類器モジュール１１８は、絵文字判定モジュール１１６から入力を受信し、および／またはマネージャモジュール１２０は、絵文字分類器モジュール１１８から入力を受信する。
【００２９】
図２は、通信文に挿入するための絵文字を提案するためにシステム１００を利用する、例示的な方法２００を示す。方法２００は、ユーザの通信文（たとえば、電子メッセージ）と関連する特徴量を取得するステップ（ステップ２０２）から始まる。特徴量は、たとえば、コンテンツにおけるカーソル位置、通信文からの１つ以上の単語、前の通信文からの１つ以上の単語、ユーザ嗜好（たとえば、絵文字が使用される好みの場合、好みの特定の絵文字、絵文字の好みの種類、または絵文字の好みのカテゴリ）、および／またはデモグラフィック情報（たとえば、ユーザおよび／または受信者の年齢、性別、民族性、収入、または市民権）を含み得る。他の適する特徴量も可能である。特徴量は、絵文字判定モジュール１１６に提供される（ステップ２０４）。絵文字判定モジュール１１６は、通信文にふさわしいと思われる絵文字候補を識別するために、複数の絵文字判定方法を採用することが好ましい。絵文字判定モジュール１１６からの出力は、絵文字分類器モジュール１１８に提供される（ステップ２０６）。絵文字分類器モジュール１１８では、１つ以上の分類器が絵文字判定モジュールからの出力を処理し、通信文に対して提案された絵文字を提供する（ステップ２０８）。提案された絵文字は、マネージャモジュール１２０の支援で識別され得る。マネージャモジュール１２０は、たとえば、言語分野（たとえば、ゲーム、ニュース、議会議事録、政治、健康、旅行、ウェブページ、新聞記事、およびミニブログメッセージ）、通信文に使用される言語、１つ以上のユーザ嗜好など、さまざまな要因に基づいて、使用する特定の絵文字判定方法および／または分類器を選択できる。言語分野は、たとえば、特定の種類の主題および／または特定のコミュニケーションシステムのユーザに特有または共通の単語、句、文構造、または文体を定義または含んでもよい。たとえば、ゲーマーは、ゲーム環境において互いにコミュニケーションをとるときに、特有の専門用語、俗語、または文構造を使用する一方、新聞記事または議会議事録は、構成がしっかりした文および／または別の専門用語を用いたよりフォーマルな口調であるだろう。最後に、提案された絵文字のうちの少なくとも１つが通信文に挿入される（ステップ２１０）。絵文字は、通信文に自動的に挿入され得、および／または挿入するためにユーザによって選択され得る。挿入された絵文字は、通信文の１つ以上の単語または句を置き換え得る。
【００３０】
いくつかの実装形態において、１つ以上の分類器から提案された絵文字は、演算された信頼スコアに応じて、マネージャモジュール１２０によって選択され得る。たとえば、分類器は、提案された絵文字または絵文字セットごとに信頼スコアを演算できる。信頼スコアは、提案のうちの少なくとも１つをユーザが通信文に挿入したいという予測尤度を示し得る。これに加えて、または、これに代えて、特定の分類器の出力は、ユーザまたはコンテンツに関連する言語分野に応じて選択され得る。たとえば、ユーザメッセージがコンピュータゲーム環境で始まった場合、最も正確な絵文字提案を与えるものとして、特定の分類器の出力が選択され得る。同様に、メッセージがスポーツを背景に始まった（たとえば、スポーツ競技に関する）場合、スポーツの言語分野によりふさわしいとして、別の分類器の出力が選択され得る。他のあり得る言語分野は、たとえば、ニュース、議会議事録、政治、健康、旅行、ウェブページ、新聞記事、ミニブログメッセージ、および他の適する言語分野を含み得る。一般に、特定の絵文字判定方法、または絵文字判定方法の組み合わせ（たとえば、分類器からの）は、他の言語分野と比べて、特定の言語分野について正確であり得る。いくつかの実装形態において、言語分野は、メッセージにおける、分野固有の語彙からの単語の存在に基づいて判断され得る。たとえば、コンピュータゲームについての分野固有の語彙は、ゲーマーによって使用される共通の俗語を含むだろう。いくつかの場合において、特定の言語分野において、ある単語列または文字列が出現する可能性が高い場合、この言語分野が選択されるように、言語分野のプロファイルを作成するために単語列または文字列が形作られる。これに代えて、または、これに加えて、言語分野は、コミュニケーションシステムが使用されている環境（たとえば、ゲーム、スポーツ、ニュースなど）に応じて判断されてもよい。
【００３１】
図３を参照すると、絵文字判定モジュール１１６は、絵文字提案を識別するためのさまざまな方法を行う複数のモジュールを含み得る、または利用できる。絵文字判定モジュールは、たとえば、文法誤り訂正モジュール３０２、統計的機械翻訳モジュール３０４、辞書ベースのモジュール３０６、品詞（ＰＯＳ：Ｐａｒｔ−Ｏｆ−Ｓｐｅｅｃｈ）タグ付けモジュール３０８、情報抽出モジュール３１０、自然言語処理モジュール３１２、キーワードマッチングモジュール３１４、および／または有限状態トランスデューサ（ＦＳＴ：Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｔｒａｎｓｄｕｃｅｒ）モジュール３１６を含めることができる。
【００３２】
【数１】
2019504413.tif 000003
【００３３】
いくつかの実装形態において、文法誤り訂正モジュール３０２は、複数の分類器を採用できる。一例において、文法誤り訂正モジュール３０２は、注釈付き訓練データを使用して訓練される教師あり分類器を使用できる。分類器をさらに訓練するために、クラウドソーシングから得たデータが使用され得る。例として、ユーザは、クラウドソーシングに参加して訓練データを提供することで、インセンティブ（たとえば、オンラインゲームで使用するための仮想アイテムまたは仮想通貨）が与えられ得る。絵文字に変換され得るまたは「絵文字化」され得るコンテンツは、考慮されるべきである。または、この訓練プロセスについて優先されるべきである。たとえば、「Ｉ  ａｍ  ｇｏｏｄ」は、訓練には役立たないかもしれないが、「Ｉ  ａｍ  ｇｏｏｄ  ｌｏｌ」は、訓練に役立つ可能性があり、優先されるべきである。
【００３４】
【数２】
2019504413.tif 000004
【００３５】
【数３】
2019504413.tif 000005
【００３６】
【数４】
2019504413.tif 000006
【００３７】
いくつかの例において、たとえば、クライアントデバイスのユーザによって単語がキー入力されていると、単語列または他の文の断片をクライアントデバイスからサーバに提供するために、同期型パイプラインが確立および構成され得る。パイプラインは、クライアントデバイスとサーバとの間のデータ転送のためのセキュアで効率のよい機構を提供できる。最適なデータ転送を行うために、サーバのｐｉｎｇの頻度が限定され得る。一例において、句テーブルがクライアントデバイスにダウンロードされ得、絵文字化を行うために、格子復号化が使用され得る。クライアント側でのメモリ最適化および／または復号化最適化は、このような場合に役立つだろう。
【００３８】
ＳＭＴモジュール３０４は、プレーンテキストを一端に、絵文字化されたテキストを他端に有するパラレルコーパスを用いて訓練され得る。このように作られた句テーブルは、単語／句と絵文字とのペアを抽出するため、および／または（たとえば、辞書ベースのモジュール３０６で使用するための）絵文字提案用の１つ以上の辞書を強化するために使用され得る。ある場合において、この手法は、絵文字提案についてのＦ１スコアを１３％改善させた。
【００３９】
【数５】
2019504413.tif 000007
【００４０】
いくつかの例において、単語間、句間、および絵文字間の関係を判断または識別するために、深層学習ベースのアルゴリズム（たとえば、ＷＯＲＤ２ＶＥＣまたはその他の適するアルゴリズム）が使用され得る。深層学習ベースのアルゴリズムは、単語をベクトル空間にマッピングできる。ベクトル空間では、各単語がベクトルによって表される。ベクトルの長さは、任意の適した長さが可能であるが、たとえば、約４０、約５０、または約６０であり得る。単語間の関係を判断するために、これらの単語を表すベクトルのドット積が計算され得る。２つの単語（たとえば、「ｈａｐｐｙ」および「ｇｌａｄ」）が類似する場合、たとえば、２つの単語のベクトルは、ベクトル空間において、２つのベクトルのドット積が正になるように一列に並べられる。いくつかの例において、２つの一列に並べられたベクトルのドット積も＋１に近い大きさを有するように、ベクトルは、１に近い大きさを有するように正規化される。実質的に直交する正規化されたベクトル（たとえば、互いに関係のない単語）は、ゼロに近いドット積の大きさを有し得る。同様に、反対の意味を持つ単語では、正規化されたベクトルのドット積は、−１に近いだろう。
【００４１】
深層学習ベースのアルゴリズムは、単語／句と絵文字とのペアからなる１つ以上の辞書を強化するものとして使用され得、および／または１つ以上の既存の辞書を拡張または向上させるために使用され得る。たとえば、辞書に存在しない新しい単語をユーザが入力したとき、この新しい単語に類似する対応する単語を辞書から見つけるために、このアルゴリズムが使用され得、類似性に基づいて、対応する単語に関連する絵文字がユーザに勧められ得る。これに代えて、または、これに加えて、辞書ベースのモジュール３０６で使用するための、より完全および／または正確な辞書をビルドするために、このアルゴリズムが使用され得る。このアルゴリズムは、新しい単語と、すでに辞書に存在して絵文字と対応付けられている既存の単語との類似点および相違点に基づいて新しい単語を辞書に追加する、および、絵文字をこの新しい単語に対応付けるために使用され得る。
【００４２】
単語群間の類似点および相違点が判断できるように（たとえば、ドット積計算を使用して）、句、文、またはその他の単語群に対して、同様のベクトル表現手法が使用され得る。ベクトルは、単語、句、文、文書、またはその他の単語群の数的表現であり得る。たとえば、メッセージｍ１「Ｃａｎ  ｏｎｅ  ｄｅｓｉｒｅ  ｔｏｏ  ｍｕｃｈ  ａ  ｇｏｏｄ  ｔｈｉｎｇ？」およびメッセージｍ２「Ｇｏｏｄ  ｎｉｇｈｔ、ｇｏｏｄ  ｎｉｇｈｔ！  Ｐａｒｔｉｎｇ  ｃａｎ  ｂｅ  ｓｕｃｈ  ａ  ｓｗｅｅｔ  ｔｈｉｎｇ」は、表１に示すように、特徴空間の行列（ｃａｎ、ｏｎｅ、ｄｅｓｉｒｅ、ｔｏｏ、ｍｕｃｈ、ａ、ｇｏｏｄ、ｔｈｉｎｇ、ｎｉｇｈｔ、ｐａｒｔｉｎｇ、ｂｅ、ｓｕｃｈ、ｓｗｅｅｔ）に配置できる。
【００４３】
【表１】
2019504413.tif 000008
【００４４】
この例において、２つのメッセージｍ１ならびにｍ２、および／またはメッセージｍ１ならびにｍ２に存在する単語を表すベクトルを生成するために、表１の２列目および３列目が使用され得る。メッセージｍ１は、たとえば、表１の２列目の値を含むベクトル［１１１１１１１１０００００］によって表すことができる。メッセージｍ２は、表１の３列目の値を含むベクトル［１００００１２１２１１１１］によって表すことができる。これに加えて、メッセージｍ１に含まれる単語「ｇｏｏｄ」は、メッセージｍ１およびｍ２に存在する単語の数に等しい長さ（つまり、１３）のベクトル［００００００１００００００］によって表すことができる。また、このベクトルは、ｍ１のベクトルにおける「ｇｏｏｄ」の位置に対応する要素７に、１という値を有し、ｍ１のベクトルにおける他の単語の位置に対応するすべての他の位置に、ゼロという値を有する。同様に、メッセージｍ２に含まれる単語「ｇｏｏｄ」は、ベクトル［００００００２００００００］によって表すことができ、ここで、２という値は、単語「ｇｏｏｄ」がメッセージｍ２に２回出現することを示す。メッセージｍ１に含まれる単語「ｎｉｇｈｔ」は、ベクトル［０００００００００００００］によって表すことができ、ここで、すべての要素がゼロであることは、「ｎｉｇｈｔ」がメッセージｍ１に存在しないことを示す。メッセージｍ２に含まれる単語「ｎｉｇｈｔ」は、ベクトル［００００００００２００００］によって表すことができ、ここで、２という値は、単語「ｎｉｇｈｔ」がメッセージｍ２に２回出現することを示す。単語ベクトルを使用した、単語または単語群の他の表現も可能である。たとえば、メッセージは、メッセージに含まれるすべての単語の和によってではなく、メッセージに含まれるすべての単語のベクトルの平均（「平均表現ベクトル」）によって表すことができる。
【００４５】
【数６】
2019504413.tif 000009
【００４６】
曖昧性の除去を行うために、ＰＯＳ（品詞）タグ付けモジュール３０８が使用され得る。たとえば、辞書ベースのモジュール３０６に含まれる辞書は、名詞句、動詞句、形容詞などのＰＯＳタグ、および／またはＰＯＳタグの総数（たとえば、単語ごと）およびＰＯＳタグの有効なセット（つまり、単語が絵文字化され得るタグのセット）などの追加情報を含むように変更され得る。これによって、文または句に含まれる単語を、絵文字化できるかどうかについて選別することができる。名詞句は、品詞（Ｐａｒｔ  ｏｆ  Ｓｐｅｅｃｈ（ＰＯＳ））タガーによって正常に識別されると、句レベルでまとめられて、関連性のある絵文字に置き換えられる可能性がある。例として、文「Ｔｈｅ  Ｐｏｌｉｃｅ  Ｃａｒ  ｓｐｅｄ  ａｌｏｎｇ  ｔｈｅ  ｒｏａｄ」では、ＰＯＳタガーは、「Ｔｈｅ  Ｐｏｌｉｃｅ  Ｃａｒ」および「ｔｈｅ  ｒｏａｄ」を名詞句であると識別し、「ｓｐｅｄ  ａｌｏｎｇ」を動詞句であると識別するだろう。次に、システムおよび方法は、ＰｏｌｉｃｅおよびＣａｒに対して２つの別々の絵文字を識別するのではなく、Ｐｏｌｉｃｅ  Ｃａｒを描写した１つの絵文字を選択してもよい。
【００４７】
曖昧性除去の次のレベルとして、同じＰＯＳタグを有する単語は、複数の非類似の意味を持ち得る。たとえば、「Ｉ  ｔｈｉｎｋ  ｓｈｅ  ｉｓ  ｒｉｇｈｔ」および「ｗａｌｋ  ａｔ  ｙｏｕｒ  ｒｉｇｈｔ  ｈａｎｄ  ｓｉｄｅ」における用語「ｒｉｇｈｔ」は、形容詞であるが、別の意味であり、各句において違う形に絵文字化され得る。このような場合は、たとえば、英語のチャット履歴から文脈を表す単語を識別することによって処理され得る。文脈情報が（たとえば、手作業で集めることによって）辞書に追加される、または別の辞書として作成されてもよい。文脈的手法は、包含および除外の両方（つまり、その有／無が絵文字化を決定する単語）を処理する。最も頻繁に同時に出現する単語の文脈情報が集められて格納され得る。
【００４８】
【数７】
2019504413.tif 000010
【００４９】
また、絵文字化は、情報抽出モジュール３１０を使用して行うこともできる。情報抽出モジュール３１０は、探索・抽出ツールとして動作し、ランクベースの情報の抽出および検索技術を使用する。この手法のいくつかの例は、高速オートコンプリートを行うためにアプリケーションプログラム・インターフェース（ＡＰＩ）を利用し得る既存の検索エンジン（たとえば、ＬＵＣＥＮＥ／ＳＯＬＲ、およびＳＰＨＩＮＸ）が使用する手法と同様であり得る。このような手法は、一般に、特定のフォーマットのデータを必要とする。たとえば、ＳＯＬＲは、文書探索により適しているが、うまくスケールする一方、ＳＰＨＩＮＸは、オートコンプリートにより適しているが、うまくスケールしない。新たな検索語について一致する文書がすぐに見つかるように、通常の検索エンジンは、検索語に対応する文書をインデックスする。このようなインデックスは、個々の語が文書に出現する頻度をリストにするまたは含み、ある検索語の頻度が高いことは、関連性一致を示す。単語および絵文字の文脈において同様の手法が使用できる。たとえば、ある絵文字が、ある単語の文脈に複数回出現する場合、この単語と絵文字とは同じ意味で使用できる確率が高い。よって、絵文字が、この単語または句と合わせて頻繁に使用されていた、またはこの単語または句の代わりに頻繁に使用されていた場合、情報抽出モジュール３１０は、この単語または句に対してこの絵文字を提案してもよい。一例において、メッセージングプラットフォーム（たとえば、ゲームプラットフォーム）について、特定の絵文字がさまざまな単語または句とともに使用される頻度を識別するために、メッセージングプラットフォーム用のテキストメッセージを集めたものが、情報抽出モジュール３１０を使用して探索され得る。
【００５０】
絵文字化のために、自然言語処理（ＮＬＰ：Ｎａｔｕｒａｌ  Ｌａｎｇｕａｇｅ  Ｐｒｏｃｅｓｓｉｎｇ）モジュール３１２を使用することもできる。一般に、ＮＬＰモジュール３１２は、チャットメッセージの隠れた意味および構造を得るために、たとえば、パーサ、形態素解析部、感情分析部、意味解析部など、ＮＬＰツールを採用する。次に、このような情報は、データとそれぞれタグ付けされた絵文字に文をマッチングさせるために使用され得る。たとえば、さまざまな程度の情動が示されていると、感情分析部は、情動の極みを識別できる。次に、「Ｉ  ａｍ  ｈａｐｐｙ」および「Ｉ  ａｍ  ｖｅｒｙ  ｈａｐｐｙ」のようなケースが識別され、表されている情動の高いまたは低い度合いをより良く表すために、それぞれ異なる絵文字が割り当てられ得る。ＮＬＰモジュール３１２は、コンテンツを分析して、たとえば、文法、名前が付く物、情動、感情、および／または俗語を探索できる。コンテンツに一致または対応する絵文字が識別される。
【００５１】
【数８】
2019504413.tif 000011
【００５２】
一般に、キーワードマッチングモジュール３１４に使われる技術は、辞書ベースのモジュール３０６に使われる技術とは異なる。辞書マッチングは、一般に、単語と絵文字との１対１対応の静的リストをビルドすることに依存する。キーワードマッチングは、「ｃｏｐ」および「ｐｏｌｉｃｅ」などの複数のキーワードが互いに関連付けられてから、対応する絵文字に関連付けられてもよいという点で辞書を強化するものである。さまざまな例において、辞書マッチングは、ｐｏｌｉｃｅに対して１つのエントリを有し、ｐｏｌｉｃｅに対して絵文字を有してもよい。対照的に、キーワードマッチングは、「ｃｏｐ」および「ｐｏｌｉｃｅ」が同一であると教えてもよく、これによって、辞書が取り扱う範囲が改善される。
【００５３】
有限状態トランスデューサ（ＦＳＴ）モジュール３１６は、絵文字化に対しても使用することができ、辞書ベースの方法など、他の方法の文脈情報欠如の問題を解決するのに役立てることができる。ＦＳＴは、ＮＬＰ、たとえば、自動音声認識（ＡＳＲ）および機械翻訳（ＭＴ）において、特定のアプリケーションを有する。ＦＳＴは、一般に、高速で動作し、リアルタイムまたはほぼリアルタイムで絵文字を勧めることに適している。ＦＳＴは、通常、状態遷移に基づいて動作する。生成プロセスは、文においてこれまで見られた単語または絵文字（たとえば、ユーザの部分入力）に基づく。次に、訓練用コーパスから学習した遷移確率に基づいて、文における次のステップまたは状態が生成される。いくつかの例において、ＦＳＴが使用する状態遷移は、ＳＭＴモジュール３０４に含まれる、隠れマルコフモデルが使用するものと同様である。しかしながら、差別化要因は、バイリンガルデータ（言語−絵文字）を用いて訓練された状態遷移をＳＭＴモジュール３０４が使用するのに対し、状態遷移を学習するために、単一言語データをＦＳＴモジュール３１６が使用することである。単一言語データは、絵文字化されたテキストを訓練データとして含み、状態遷移は、実質上、または、先行する単語／絵文字に続く単語／絵文字の確率に基づく。それゆえ、生成モデル（Ｇｅｎｅｒａｔｉｖｅ  Ｍｏｄｅｌ）は、連続の確率に基づく。ＦＳＴモジュール３１６は、単語または句の後に挿入される可能性が高い絵文字を、この単語または句に続く絵文字の前の使用に基づいて予測するために使用され得る。
【００５４】
絵文字判定モジュール１１６は、ユーザの通信文に挿入するのに適し得る絵文字を識別するために、その絵文字判定モジュールのうちの１つ以上を使用する（任意の１つ以上の絵文字判定モジュールを使用できるが、たとえば、辞書ベースのモジュール３０６およびＰＯＳタグ付けモジュール３０８）。一例において、各絵文字判定モジュールは、確率または信頼スコアのベクトルを提供する。各確率または信頼スコアは、１つ以上の絵文字候補に関連付けられてもよく、ユーザが通信文に絵文字を挿入したいであろう尤度を表してもよい。これに代えて、または、これに加えて、確率または信頼スコアは、絵文字と通信文との相関関係を示してもよい。それぞれ異なる方法が採用されていることと、通信文に含まれる利用可能な情報により、各絵文字判定モジュールからの信頼スコアは、一致していない場合がある。
【００５５】
【数９】
2019504413.tif 000012
【００５６】
絵文字を提案するために、絵文字分類器モジュール１１８を用いて、絵文字判定モジュール１１６に含まれるさまざまな絵文字判定モジュールからの出力が組み合わされ得る、または処理され得る。複数の絵文字判定モジュールからの出力は、１つの組み合わされた出力として、または、複数の出力（たとえば、使用された各モジュールまたは方法からの別個の出力）として、絵文字分類器モジュール１１８に提供され得る。一般に、絵文字を提案するために、絵文字分類器モジュール１１８は、絵文字判定モジュール（複数可）からの出力を受信し、さまざまな技術を用いてこの出力を処理する。訓練データは、本明細書に記載するように、絵文字分類器モジュール１１８に含まれる１つ以上の分類器を訓練するために使用されてもよい。
【００５７】
図４を参照すると、絵文字分類器モジュール１１８は、補間モジュール４０２と、サポートベクターマシン（ＳＶＭ）モジュール４０４と、線形ＳＶＭモジュール４０６とを含めることができる。他の分類器または分類器モジュールも使用できる。
【００５８】
補間モジュール４０２は、２つ以上の絵文字判定方法からの結果の補間（たとえば、線形補間またはその他の適する補間）を行うために使用され得る。たとえば、絵文字の提案セットは、キーワードマッチングモジュール３１４およびＳＭＴモジュール３０４からの結果の間を補完することによって決定され得る。特定の句と絵文字とのマッピングは、語の頻度に基づく、キーワードマッチングモジュール３１４からのスコアｋと、たとえば、ＨＭＭ出力確率に基づく、ＳＭＴモジュール３０４からのスコアｓとを有し得る。次に、これらのスコアは正規化され得（たとえば、モジュールごとの最大可能スコアが１に等しくなるように）、補間され得、組み合わされたスコアが生成される。
【００５９】
一般に、２つ以上の値間を補完するための最適な重みは、試行錯誤によって数的に決定され得る。あるメッセージセットに対する最適な重みセットを識別するために、それぞれ異なる重みが試され得る。いくつかの場合において、重みは、メッセージに含まれる単語または文字の数に応じて異なり得る。これに代えて、または、これに加えて、重みは、メッセージの言語分野によって異なり得る。たとえば、ゲーム環境にとって最適な重みは、スポーツ環境にとって最適な重みとは異なり得る。
【００６０】
ＳＶＭ（サポートベクターマシン）モジュール４０４は、単語／句と絵文字との組み合わせを分析してパターンを認識する教師あり学習モデルであり得、またはこの教師あり学習モデルを含めることができる。たとえば、ＳＶＭモジュール４０４は、多クラスＳＶＭ分類器であり得る。ＳＶＭ分類器は、ラベル付けされた訓練データを用いて訓練されることが好ましい。訓練されたモデルは、入力用の予測器として動く。絵文字判定の場合において選択された特徴量は、たとえば、単語列または句列であり得る。入力された訓練用ベクトルは、多次元空間にマッピングされ得る。次に、ＳＶＭ分類器は、カーネルを使用して、これらの次元間の最適な分離超平面を識別し得、これによって、絵文字を予測する特徴的な能力が分類器に与えられる。カーネルは、たとえば、線形カーネル、多項式カーネル、または放射基底関数（ＲＢＦ：Ｒａｄｉａｌ  Ｂａｓｉｓ  Ｆｕｎｃｔｉｏｎ）カーネルであり得る。他の適するカーネルも可能である。ＳＶＭ分類器にとって好ましいカーネルは、ＲＢＦカーネルである。訓練データを用いてＳＶＭ分類器を訓練した後、分類器は、すべてのあり得る絵文字の中で、最適な絵文字セットを出力するために使用され得る。
【００６１】
線形ＳＶＭモジュール４０６は、大規模な線形分類器であり得、またはこの線形分類器を含めることができる。線形カーネルを有するＳＶＭ分類器は、線形回帰など、他の線形分類器よりもよく動作する場合がある。線形ＳＶＭモジュール４０６は、ＳＶＭモジュール４０４とカーネルレベルで異なる。多項式モデルが線形モデルよりもよく動作する場合もあれば、線形モデルが多項式モデルよりもよく動作する場合もある。最適なカーネルは、メッセージデータの言語分野および／またはデータの性質によって異なり得る。
【００６２】
本明細書に記載のシステムおよび方法によって使用される他のあり得る分類器は、たとえば、決定木学習、相関ルール学習、人工ニューラルネットワーク、帰納論理プログラミング、ランダムフォレスト、勾配ブースティング法、サポートベクターマシン、クラスタリング、ベイズのネットワーク、強化学習、表現学習、類似度・計量学習、およびスパース辞書学習などが挙げられる。これらの分類器のうちの１つ以上、またはその他の分類器は、絵文字分類器モジュール１１８に組み込まれ得、および／または絵文字分類器モジュール１１８の一部を形成し得る。
【００６３】
さまざまな実装形態において、分類器は、絵文字判定方法のうちの１つ以上によって生成された確率または信頼スコアを、入力として受信する。確率または信頼スコアは、ユーザメッセージに含まれる単語または句を、ユーザが挿入したい絵文字であり得る１つ以上の絵文字に相関させ得る。使用中の分類器（複数可）によっては、分類器は、現在のカーソル位置、ユーザメッセージに含まれる単語または句、ユーザによって送信または受信された前のメッセージまたは前のコンテンツ、ユーザ嗜好、および／またはユーザのデモグラフィック情報を入力として受信することもできる。一般に、分類器は、この入力を、最もありそうな単語と絵文字とのマッピングを判断するために、信頼スコアとともに使用する。
【００６４】
図１を再び参照すると、ある通信文について、通信文に挿入するための絵文字を提案するために、マネージャモジュール１２０は、特定の絵文字判定方法、分類器、および／または絵文字判定方法の組み合わせからの出力を選択できる。マネージャモジュール１２０は、たとえば、言語分野、通信文の長さ、または、ユーザ嗜好に従って、選択することができる。マネージャモジュール１２０は、たとえば、分類器によって判断された信頼スコアに応じて、特定の分類器を選択できる。たとえば、マネージャモジュール１２０は、その予測において最も信頼度がある分類器からの出力を選択できる。いくつかの例において、マネージャモジュール１２０は、文法誤り訂正モジュール３０２、辞書ベースのモジュール３０６、品詞タグ付けモジュール３０８、および／または自然言語処理モジュール３１２からの出力の組み合わせを選択する。これに代えて、または、これに加えて、マネージャモジュール１２０は、統計的機械翻訳モジュール３０４および有限状態トランスデューサ・モジュール３１６からの出力の組み合わせを選択できる。マネージャモジュール１２０は、補間モジュール４０２など、絵文字分類器モジュール１１８からの１つ以上の分類器を使用して、これらのモジュールからの出力を組み合わせることができる。サポートベクターマシン分類器（たとえば、サポートベクターマシン・モジュール４０４または線形サポートベクターマシン・モジュール４０６における）は、（たとえば、マルチプレーヤオンラインゲームのプレーヤについての）ユーザ情報またはユーザ嗜好を、絵文字判定モジュール１１６からの１つ以上の信頼スコアと紐付けするのに有用であり得る。
【００６５】
分類器用の訓練データは、たとえば、それぞれ異なる絵文字判定方法からの出力ベクトル、および、たとえば、異なるメッセージ長さ、異なる言語分野、および／または異なる言語のコンテンツにとって正しいまたは最適な絵文字の指示であり得る、またはそれらを含み得る。訓練データは、最も正確または最も好ましい絵文字が既知である大量のメッセージを含み得る。
【００６６】
文法誤り訂正方法３０２および統計的機械翻訳方法３０４など、特定の絵文字判定方法は、コンテンツを絵文字に変換するための統計的方法で有り得、またはこのような統計的方法を利用し得る。訓練データは、統計的方法を実現するために集められて利用され得る。
【００６７】
初期のテストデータ収集フェーズにおいて、それぞれ異なる絵文字化方法を評価するために、テストセットに含まれる任意の適する数のメッセージが使用されてよいが、少なくとも２０００通のメッセージからなるテストセットが集められて使用され得る。評価において、文法誤り訂正と同じ評価指標が使用され得る。第２フェーズにおいて、統計的絵文字化方法用に、訓練データが集められ得る。第３フェーズにおいて、それぞれ異なる言語用に大量の訓練データを集めるために、クラウドソーシングが使用され得る。
【００６８】
一実装形態において、訓練データを集めるために、ウェブページが作成され得る。チャットメッセージデータベースから選択された特定のロー（ｒａｗ）チャットメッセージを保存するために、データベーステーブルが使用され得る。ユーザがウェブページにログインすると、コンテンツがユーザに示され得、ユーザは、コンテンツをその絵文字化された形に変換するかを聞かれ得る。ウェブページは、絵文字化プロセスにおいてユーザを支援するために、絵文字の仮想キーボードを表示することが好ましい。ユーザからの絵文字化されたメッセージは、データベースに格納される。一般に、ウェブページによって、統計的技術を採用する絵文字判定方法用に、訓練データが集めることができる。
【００６９】
ウェブページ上でユーザが絵文字化するためのロー（ｒａｗ）メッセージを得るために、絵文字化辞書に含まれる英語と絵文字とのペアごとに英語の句が収集され得る。次に、チャットログデータベースの英語のチャットメッセージに含まれる句の探索が行われ得る。
【００７０】
一般に、クラウドソーシング技術は、ユーザに、使用頻度の高いコンテンツを絵文字パターンとマッチングさせるために（たとえば、チャットルームまたはゲーム環境内で）使用され得る。クラウドソーシングは、逆に使用されてもよい。たとえば、１つ以上の絵文字がユーザに提示され得、次に、ユーザが、絵文字に対応するコンテンツを提案する。
【００７１】
これに代えて、または、これに加えて、他のユーザと共有できる新しい絵文字を作成するために、クラウドソーシングが使用され得る。たとえば、ゲーム環境において、ゲーム操作者は、ゲーム経済を支配しており、巨大なプレーヤベース（ｐｌａｙｅｒ  ｂａｓｅ）にアクセスできる。これによって、ゲーム操作者は、絵文字作成のためにクラウドソーシングを利用できるようになる。プレーヤには、メッセージに挿入するための絵文字を設計、作成、および、他のプレーヤと共有するためのツールへのアクセスが与えられ得る。ツールによって、プレーヤは、予め定義されたグラフィカル要素を組み合わせるおよび／または自由形式で絵文字を描くことによって、絵文字を作成できるようになる。プレーヤは、ゲーム環境に使用するのに有用、おもしろい、および／または関連性があると思うユーザ作成の絵文字を、投票で選ぶおよび／または承認することができる。これによって、絵文字の採用プロセスが向上し、より高くランク付けされた絵文字が、プレーヤによってより簡単に採用されるようになる。
【００７２】
絵文字作成プロセスは、インセンティブが与えられ得る。たとえば、ゲームプレーヤーは、絵文字を作成して提出するおよび／または自身の絵文字が他のプレーヤによって使用されると、賞品を得ることができる。賞品は、ほとんどすべての形で有り得、たとえば、クーポンならびに値引きなどの金銭的インセンティブ、および、ゲームで使用するための仮想アイテムまたは仮想通貨などのゲームに関係するインセンティブを含む。このような報酬は、プレーヤが絵文字を作成し、ゲームコミュニティとその絵文字を共有する動機を与える。たとえば、季節的なコンピュータ対戦（ＰｖＥ：Ｐｌａｙｅｒ  ｖｅｒｓｕｓ  Ｅｎｖｉｒｏｎｍｅｎｔ）イベント用に絵文字が必要となったときに、インセンティブによって絵文字がより素早く作成されるようになり得る。
【００７３】
一般に、ユーザによる絵文字の作成は、ゲーム環境に限られない。チャットルームまたはその他のコミュニケーションシステムのユーザは、絵文字作成ツールが与えられ、自身の絵文字を他人と共有でき得る。このようなクラウドソーシングの努力にも、インセンティブが与えられ、ユーザは、絵文字作成と引き換えに、特定の報酬（たとえば、クーポン、値引き、および他の金銭的インセンティブ）を得る。
【００７４】
本明細書に記載の絵文字化システムおよび方法の実装形態は、ＩＯＳキーボード、ＡＮＤＲＯＩＤ（登録商標）キーボード、および／またはＵＮＩＣＯＤＥ（たとえば、ｈｔｔｐ：／／ｕｎｉｃｏｄｅ．ｏｒｇ／ｅｍｏｊｉから入手可能）を含むさまざまなソースからの絵文字を利用できる。
【００７５】
図５は、絵文字提案システム５００用の例示的なアーキテクチャである。システム５００は、ネットワーク（たとえば、ネットワーク１３２）を通じてサーバモジュール５０４とやり取する複数のクライアントデバイス５０２を含む。サーバモジュール５０４は、分散ストレージモジュール５０６を含み、分散ストレージモジュール５０６は、システム５００の基礎として機能する。分散ストレージモジュール５０６は、絵文字とキーワードとのマップに関連性のあるデータ、プレーヤ使用情報、プレーヤ基本設定、および絵文字を提案するのに有用なその他の情報を格納する、サーバ側データストア（たとえば、分散データベース）である。分散ストレージモジュール５０６は、訓練データ１２２、辞書１２４、チャット履歴１２６、および／またはユーザ情報１２８のデータベースであり得、それらを含み得、またはそれらの一部を形成し得る。分散ストレージモジュール５０６は、格納されているデータの量が記憶容量に近づいていると、システム管理者にスケーリング通知５０８を提供する、またはアラートを出すことができる。サーバモジュール５０４は、サーバシステム１１２と同じまたは同様であり得、および／またはサーバシステム１１２の構成要素の一部またはすべてを備え得る。クライアントデバイス５０２は、たとえば、パーソナルコンピュータ、スマートフォンまたはその他のモバイル機器、タブレットコンピュータ、およびラップトップコンピュータを含み得る。クライアントデバイス５０２は、クライアントデバイス１３４、１３６、１３８、および１４０のうちの１つ以上と同じまたは同様であり得る。
【００７６】
また、システム５００は、分散ストレージモジュール５０６への不正アクセスを防ぐ１つ以上の認証・レート限定モジュール５１０を備える。同時に、最も関連性のある絵文字をユーザに供給するために、このユーザにのみ関連性のあるデータは、認証・レート限定モジュール５１０を通じてアクセスされる。認証・レートモジュール５１０は、トランザクションを記録するためにログ５１２を保持し、エラーをシステム管理者に通知するために、緊急事態通知５１４を提供する。
【００７７】
また、システム５００は、ロードバランサ５１６を含む。ロードバランサ５１６は、クライアントデバイス５０２とサーバモジュール５０４との間のインタフェースとして機能する。ロードバランサ５１６は、複数のクライアントデバイス５０２からの同時発生した要求を処理して、各クライアントデバイス５０２が確実に待ち行列に入れられてサーバモジュール５０４にきちんとルーティングされるようにする。
【００７８】
各クライアントデバイス５０２は、ローカルキャッシュモジュール５１８と、キー入力推測モジュール５２０と、テキスト変形モジュール５２２とを備える。ローカルキャッシュモジュール５１８は、最も使用頻度の高い絵文字、または絵文字とキーワードとのマップを、各クライアントデバイス上のキーボードに供給する。ローカルキャッシュモジュール５１８は、たとえば、ハッシュマップ、ＥＬＡＳＴＩＣＳＥＡＲＣＨ、および／またはＳＱＬｉｔｅで有り得、または、それらを利用できる。キー入力推測モジュール５２０およびテキスト変形モジュール５２２は、単語または句をデコードし、絵文字に相当するものを見つけるために使用され得る。たとえば、キー入力推測モジュール５２０は、ユーザメッセージの最初の部分に基づいて、ユーザが次に入力する単語または句を予測できる。キー入力推測モジュールは、たとえば、本明細書に記載のＦＳＴモジュール３１６および／またはＲＮＮＬＭ言語モデルを使用または備えることができる。テキスト変形モジュール５２２は、形式ばらないコンテンツを変形させるために使用され得る。たとえば、テキスト変形モジュール５２２は、絵文字提案を見つけるためにコンテンツが分析される前に、頭字語、略語、チャット語、および／または下品な言葉を、より形式ばった単語または句に変換できる。いくつかの実装形態において、キー入力推測モジュール５２０および／またはテキスト変形モジュール５２２は、サーバモジュール５０４で実現される。たとえば、これらのモジュールは、分散ストレージモジュール５０６と認証・レートモジュール５１０との間またはそれらの近くに置かれ得る。
【００７９】
また、クライアントデバイス５０２およびサーバモジュール５０４は、プレーヤが新しい絵文字を作成してユーザコミュニティと共有できるようにするクラウドソーシング要素を含み得る。ユーザは、クライアントデバイス５０２上のクラウドソーシング・クライアントモジュール５２４を使用して、新しい絵文字を描くまたは作成することができる。ユーザが作成した絵文字は、分散ストレージモジュール５０６にユーザが作成した絵文字が格納されるサーバモジュール５０４に転送され得る。クラウドソーシング・トランザクションは、あるユーザが作成した絵文字がユーザの認証情報とともに格納されるように、１つ以上のクラウドソーシング認証モジュール５２６を経由することが好ましい。このような情報は、のちに、プレーヤが作成した絵文字が認証され、絵文字を作成したことに対する報酬がユーザに与えられたときに使用され得る。クラウドソーシング・ロードバランサモジュール５２８は、クラウドソーシングログ５３０を維持し、緊急事態通知５３２を提供する。
【００８０】
いくつかの実装形態において、本明細書に記載の絵文字化システムおよび方法は、ユーザがメッセージをキー入力または入力すると、リアルタイムで絵文字を提案する。リアルタイムの提案は、ユーザのクライアントデバイス上に絵文字をキャッシュ保存することによって容易にされ得る。これに代えて、または、これに加えて、絵文字判定モジュール１１６、絵文字分類器モジュール１１８、および／またはマネージャモジュール１２０は、クライアントデバイス上に格納され得、これらのデバイスによって実行され得る。いくつかの例において、絵文字用キーボードは、元のクライアントキーボードの代わりに使用され得る。絵文字用キーボードは、プレーヤが、単語の代わりに絵文字を選べるようにし、および／またはコンテンツ用キーボードの上に絵文字の代用を表示する。
【００８１】
絵文字化システムおよび方法は、ＥＬＡＳＴＩＣＳＥＡＲＣＨまたはその他の適するサーバから絵文字提案をフェッチするように構成され得る。これは、効果的だが、絵文字提案を得るためにサーバ要求が必要なため、レスポンスタイムの観点からいえば、概ね効率的ではない。絵文字提案をするために、たとえば、約２５００個以上のコンテンツの、絵文字とのアラインメントが使用され得る。
【００８２】
この少量のデータの場合、たとえば、クライアント側のオートコンプリート索引付け環境を使用してＥＬＡＳＴＩＣＳＥＡＲＣＨをシミュレーションすることが、好ましい実装形態である。これによって、ＥＬＡＳＴＩＣＳＥＡＲＣＨサーバに対してＨＴＴＰ要求を行うことを回避でき、絵文字提案をするときのレスポンスタイムが概ね向上する。
【００８３】
単語／句と絵文字との間の抽出されたマッピングは、文書であると考えら得、または文書を形成し得、たとえば、ＪＳＯＮフォーマットなど、適するフォーマットに出力され得る。マッピングは、（たとえば、クライアントデバイス上の）提案モジュールが提案を行うためにこのマッピングを使用できるように、クライアントに毎回プッシュされる、または、更新がプッシュされた場合にのみクライアント側に格納されることが好ましい。
【００８４】
クライアント側では、文書インデキシングシステムが、２つのコンポーネントを有する。一方のコンポーネントは、入力提案語を部分入力から得るものである。他方のコンポーネントは、提案語をコンテンツにマッピングして、絵文字マッピング文書にするものである。コンテンツに含まれる入力用語を有する接頭辞木として、入力語提案システムが形作られ、サーバ側からロードされたＪＳＯＮファイルに含まれる絵文字マッピング文書になり得る。第２インデックスは、語の文書への逆インデックスであることが好ましい。あり得る固有の入力語セットごとに、入力語に対応する文書がマッピングされる。
【００８５】
また、クライアント側では、上記インデックスを利用して、テキストまたはその他のコンテンツをユーザが入力した場合に、あり得る提案を判断するように、オートコンプリートシステムが構成される。システムは、ユーザから部分入力を受信し、部分入力で終わる、あらゆる絵文字化可能なコンテンツ（つまり、１つ以上の絵文字に変換できるコンテンツ）を判断し、対応するコンテンツを、絵文字がマッピングされた文書にする。提案は句レベルで取得できるため、絵文字化可能なコンテンツが実際に開始するインデックス参照を格納することは難しいだろう。具体的には、ユーザは、いつでも戻って入力を変更でき、これによって、すべてのその他の単語についてのインデックス参照も変更され得る。また、システムは、入力におけるすべての文字位置に、開始インデックスオフセットを維持できる。開始インデックスオフセットは、その特定の位置で最長の絵文字化可能なコンテンツを得るために使用され得る。また、関連性のない提案をフィルタ処理して取り除くために、システムは、言語モデルベースのフィルタリングを使用できる。言語モデルは、ｎ−ｇｒａｍ→（ｌｍ＿ｖａｌｕｅ、ｂａｃｋ＿ｏｆｆ＿ｗｅｉｇｈｔ）値の単純なハッシュマップとしてクライアント側に格納され得る。たとえば、現在のインデックス位置にある単語および先行する単語が、それらの出現する確率を測定するために、言語モデル確率分布（ｌｍ＿ｖａｌｕｅ）と比較され得る。直接一致が見つからなかった場合、ｂａｃｋ＿ｏｆｆ＿ｗｅｉｇｈｔ値がフォールバック機構として使用される。小さいｌｍ＿ｖａｌｕｅとの一致は、選択プロセスから無視され得、これにより、結果として生じる一致の選択の自由がフィルタ処理して取り除かれる。
【００８６】
一般に、提案を作成するためのクライアント側インデキシングシステムのレスポンスタイムは、たとえば、ＥＬＡＳＴＩＣＳＥＡＲＣＨ要求と比較して、かなり速くあるべきである。表２は、クライアント側システムおよびサーバ側システムが評価されたテストの結果を示す。ＥＬＡＳＴＩＣＳＥＡＲＣＨサーバは、ローカルホストマシンにおいてホストされていた。２８００個の例を評価するためのレスポンスタイムが表に設けられている。クライアント側実装形態のレスポンスタイムは、サーバ側実装形態のレスポンスタイムの約半分であった。そのため、クライアント側のインデックスおよびオートコンプリートは、サーバ側実装形態よりも速いように思われる。
【００８７】
【表２】
2019504413.tif 000013
【００８８】
絵文字化の目標は、コンテンツ・トークン（複数可）を、元の入力コンテンツと同じ意味を伝える絵文字に変換することである。高水準のシステム設計の観点からいえば、一般に、これをする２つの方法がある。１つの手法は、ユーザがコンテンツを完全に入力するまで待機してから、辞書ベースの方法および／または統計的方法を使用して入力コンテンツを絵文字化することである。第２の手法は、ユーザが入力文字をキー入力するプロセスにあるときに絵文字が提案されるオートコンプリート動作として、絵文字化を扱うことである。第１の手法の利点は、絵文字化動作が最後に一度だけ行われることである。しかしながら、第１の手法では、入力コンテンツがどのように絵文字化されるべきかをユーザがほとんどまたは全く操作できない。第２の手法の利点は、ユーザが、絵文字化プロセスをより多く操作できることである。第２の手法の主な課題は、不完全なユーザ入力に対して、同程度に短い時間で絵文字を提案することである。
【００８９】
ユーザがコンテンツを入力している間に絵文字を提案する１つの方法は、検索語が評価され、入力された検索語に基づいて提案一覧が作られる、インオーダークエリオートコンプリート法を行うことである。ユーザが探索クエリ「ｊ  ｗｅｉｎ」をキー入力した場合、結果は、「ｊ  ｗｅｉｎｅｒ」、「ｊ  ｗｅｉｎｅｒ  ａｎｄ  ａｓｓｏｃｉａｔｅｓ」、「ｊ  ｗｅｉｎｅｒ  ｐｈｏｔｏｇｒａｐｈｙ」などのような提案の一覧を含み得る。このような提案は、完全な検索語を、インデックスされた結果とマッチングして、上位にランクされたものをポピュレートすることによって得られる。これらのウェブ探索システムのうちのいくつかは、自動スペル修正も含む。
【００９０】
ユーザがコンテンツを入力している間に絵文字を提案する別の方法は、アウトオブオーダー部分オートコンプリートを行うことである。この方法は、絵文字提案の一覧を作るために、検索語は評価しないが、各語の接頭辞のみを評価する。ユーザが「ｊ  ｗｅｉｎ」をキー入力した場合、結果は、「Ｊｅｆｆ  Ｗｅｉｎｅｒ」、「Ｊｅｆｆ  Ｗｅｉｎｂｅｒｇｅｒ」などのような提案の一覧になる。これらの結果を得るために、検索語「ｊ  ｗｅｉｎ」は、インデックスされた探索ログに含まれるすべての検索語と接頭辞マッチングされ、最高位にランク付けされたものが読み出される。
【００９１】
本明細書に記載の絵文字化システムおよび方法のユーザは、概ね、たまたま検索語の接頭辞であった１文字または２文字を入力するのではなく、完全な単語または変更された形の単語を、次の単語に移動する前に入力する。そのため、オートコンプリーションの問題は、「インオーダークエリオートコンプリート」方法と同様である。
【００９２】
上述のシステムにおいて、完全なユーザ入力は、検索語であるとみなされ得、それに基づいて、探索結果が最終候補リストに載せられ得る。ユーザが検索語を入力した場合、現在の単語に先行する単語が関連付けられ得、インデックスされたオートコンプリートログでいくつかヒットし得る。入力は、通常の探索クエリのように、お互い厳密に関係しない連続する単語を有する完全な自然言語であり得る。自然言語のクエリを受信すると、ＧＯＯＧＬＥは、ユーザがキー入力している探索クエリの最多の接頭辞および接尾辞のマッチに基づいて、提案の一覧を提供し、すべての語がＧＯＯＧＬＥ検索の語彙における有効な個々の語であっても、ＧＯＯＧＬＥは何も提案しない場合がある。
【００９３】
しかしながら、本明細書に記載の絵文字化システムでは、完全な句に対して提案できる絵文字がない場合であっても、句に含まれる少しの単語についての絵文字マッピングがあり得る。システムは、絵文字化可能な単語または句の位置を特定して、多くの利用可能な提案の中から提案をランク付けすることができる。たとえば、ユーザが、検索ボックスに「ｐｏｌｉｃｅ  ｇｅａｒ」をキー入力した場合、単語「ｐｏｌｉｃｅ  ｍａｎ」および「ｓｐｏｒｔｓ  ｇｅａｒ」に対する絵文字提案が別々に利用可能かもしれないが、完全な句「ｐｏｌｉｃｅ  ｇｅａｒ」に対しては、絵文字提案がないかもしれない。「ｐｏｌｉｃｅ  ｇｅａｒ」に対する具体的な絵文字がないとユーザが知っていた場合、ユーザは、「ｐｏｌｉｃｅ」を入力した後に、警察の絵文字を選べたかもしれない。そのため、ユーザが「ｇｅａｒ」をキー入力した場合、最近の絵文字化可能なコンテンツ（たとえば、単語「ｐｏｌｉｃｅ」）に対する提案、およびキー入力されている現在の単語（たとえば、「ｇｅａｒ」）に対する提案を考慮に入れる方がよい。この単純な例は、バイグラムに基づくが、任意の長さの句にも、同じ問題が広がり得る。
【００９４】
いくつかの絵文字提案は、ＥＬＡＳＴＩＣＳＥＡＲＣＨのオートコンプリートツールを使用して提供され得る。このツールは、有限状態トランスデューサ（ＦＳＴ）を保持する。ＦＳＴは、探索時間中ではなく、再インデックス中に毎回更新され得る。また、このツールは、すべての単語のｅｄｇｅ  ｎ−ｇｒａｍを転置インデックステーブルに格納する。ツールは、たとえば、ＪＡＶＡ（登録商標）ベースのツールであってもよい。
【００９５】
また、絵文字提案は、ＣＬＥＯと称される別のＪＡＶＡ（登録商標）ベースのツールを使用しても提供され得る。このツールは、結果を探索するために、探索クエリのｅｄｇｅ  ｎ−ｇｒａｍのインデックスを保持し、無効な結果をフィルタ処理して取り除くために、ブルームフィルタを使用する。いくつかの例において、ＣＬＥＯツールおよび／またはＥＬＡＳＴＩＣＳＥＡＲＣＨオートコンプリートツールは、ＦＳＴベースの方法および文法誤り訂正方法を含む、本明細書に記載のその他の方法およびモジュールの実装形態である、またはそれらによって使用される。
【００９６】
いくつかの実装形態において、ユーザクエリのログをインデックスすることは、オートコンプリートシステムの重要な部分である。絵文字化システムおよび方法は、すべてのユーザレスポンスに対して、インデックスをリアルタイムまたはほぼリアルタイムで再計算するできることが好ましい。インデックス処理は、検索語のマッピングを完了するための部分的な検索語を含み、絵文字提案のマッピングのための完全な検索語がそれに続く。
【００９７】
本明細書に記載のシステムおよび方法の例は、大型コーパスで集められた統計データに基づいて、特定の順序で単語が出現する確率を計算するための統計的言語モデルを使用できる。言語モデルは、たとえば、「ｔｈｅ  ｃｏｗ  ｊｕｍｐｅｄ  ｏｖｅｒ  ｔｈｅ  ｍｏｏｎ」の確率が、「ｊｕｍｐｅｄ  ｔｈｅ  ｍｏｏｎ  ｏｖｅｒ  ｔｈｅ  ｃｏｗ」の確率よりも大きいと判断するために使用され得る。
【００９８】
いくつかの例において、言語モデルは、ユーザがすでに行った部分入力（たとえば、単語または文の始まり）に基づいて、ユーザがキー入力または入力を行う単語またはその他のコンテンツを予測するために使用され得る。ユーザが単語のキー入力を開始すると、たとえば、言語モデルは、部分的にキー入力された単語に基づいて、絵文字を予測または提案できる。言語モデルは、あり得る提案の群からの絵文字提案をランク付けすることが好ましく、最高位にランク付けされた提案は、ユーザによって選択される可能性のために、カーソル位置またはその近くに提示され得る。このようなランク付けの正確さは、利用可能な訓練データおよび／または使用される特定の言語モデルに基づいて異なり得る。ユーザ入力を予測するおよび／または絵文字を提案する目的のための好ましい言語モデルは、再帰型ニューラルネットワークベースの言語モデル（ＲＮＮＬＭ）である、またはそれを含む。
【００９９】
ＲＮＮＬＭ言語モデルは、一般に、人工ニューラルネットワークである、または人工ニューラルネットワークを含み、データに含まれる連続した情報を利用する。入力の各要素は、同じ一連のアクションを体験し得るが、出力は、すでに行われた前の演算によって異なり得る。モデルは、入力状態および出力状態とは別に、たとえば、各段階の隠れ状態を使用して、ある程度まで処理された情報を記憶することが好ましい。理論上は、再帰型ニューラルネットワークには、隠れ状態の無限の層があり得る。
【０１００】
旧来のニューラルネットワークは、１つの入力層（たとえば、入力の表現）と、１つ以上の隠れ層（たとえば、層間で変形が生じるブラックボックス）と、１つの出力層（たとえば、モデル入力に基づく、モデル出力の表現）とを有し得る。ＲＮＮＬＭは、統計的言語モデルを訓練するために１つの（隠れ）層の再帰型ニューラルネットワークを使用できる特有のニューラルネットワークである。ＲＮＮＬＭは、次の単語が出現する確率を予測するために、前の単語および前の隠れ状態を利用できる。現在の隠れ状態は、入力された要素ごとに、これまでに処理された情報を用いて更新され得る。訓練は、たとえば、確率的勾配降下法（ＳＧＤ）アルゴリズム（または、その他の適するアルゴリズム）を用いて行うことができ、前の隠れ状態からの反復（ｒｅｃｕｒｒｅｎｔ）重みは、たとえば、通時的誤差逆伝播法（ＢＰＴＴ: Ｂａｃｋ−Ｐｒｏｐａｇａｔｉｏｎ  Ｔｈｒｏｕｇｈ  Ｔｉｍｅ）アルゴリズム（または、その他のふさわしいアルゴリズム）を用いて行うことができる。ユーザが入力する次の有力な単語または句を予測することによって、ＲＮＮＬＭは、予測された次の単語または句に関係する１つ以上の絵文字を提案できる。
【０１０１】
絵文字化システムおよび方法を評価するために、一連の実験が行われた。一実験において、検索語の絵文字へのマッピングは、ＥＬＡＳＴＩＣＳＥＡＲＣＨにおいてインデックスされた。また、ユーザによってキー入力されている部分入力に対する絵文字を提案するために、ＥＬＡＳＴＩＣＳＥＡＲＣＨ  ＲＥＳＴ  ＡＰＩにアクセスするシステムも実装された。検索語を絵文字結果にマッピングするために、ＥＬＡＳＴＩＣＳＥＡＲＣＨは、メモリ内のＦＳＴおよび逆インデックス処理を使用できる。
【０１０２】
使用中のランキング機構に基づいて、３つの異なるバージョンの絵文字提案システムが開発された。ランク付けを使用しない第１のバージョンでは、ユーザからの部分入力が、入力として、ＥＬＡＳＴＩＣＳＥＡＲＣＨインデキシングシステムに直接与えられる。そして次に、そのシステムは、あり得る入力クエリに部分入力をマッピングして、提案の一覧を返す。重複する提案は解消され、この提案一覧にランク付けは適用されない。方法は、一般に、すべての部分入力に対して絵文字を提案するので、再現率は良いが、適合率は悪い。
【０１０３】
第２の、出力された提案一覧は、入力クエリの頻度に基づいてランク付けまたは採点されているが、頻度ベースのランク付けバージョンは、１番目のバージョンと同様である。重複する絵文字提案は、頻度が低い（たとえば、あまり一般的でない）入力クエリを取り除くことによって解消される。一実装形態において、ＥＬＡＳＴＩＣＳＥＡＲＣＨインデキシングシステムへのあらゆる入力クエリが読み出され、チャットコーパスにおけるこの入力クエリの頻度が計算される。絵文字提案は、計算された頻度スコアに基づいてランク付けされることが好ましい。１番目のバージョンと比較すると、この方法は、概ね、高いランク付けならびに同等の適合率および再現率を実現する。
【０１０４】
第３の、言語モデルベースのランク付けバージョンにおいて、ｔｒｉ−ｇｒａｍ言語モデルは、チャットコーパスから訓練され、訓練された言語モデルは、ＥＬＡＳＴＩＣＳＥＡＲＣＨからの出力絵文字提案をフィルタ処理するために使用される。ユーザによってキー入力された最も新しい文字を含む、完全なユーザ入力を考慮する。最近の部分入力についてのあらゆるＥＬＡＳＴＩＣＳＥＡＲＣＨ入力クエリが演算される。この入力クエリと共に、最近のｔｒｉ−ｇｒａｍが、文として考慮され、訓練されたｔｒｉ−ｇｒａｍ言語モデルを使用して採点される。絵文字提案は、それらの尤度に基づいてランク付けされる。ふさわしい閾値レベルが設定され、文の尤度が閾値を下回る場合、提案は、無視される。いくつかの例において、１番目、２番目、および３番目のバージョンの絵文字提案システムは、たとえば、文法誤り訂正方法、ＮＬＰ方法、ＰＯＳ方法、および／または辞書方法など、上述の絵文字判定方法およびモジュールのうちの１つ以上を利用する。
【０１０５】
提案された絵文字の正しさまたは正確さを評価することは、きわめて主観的なタスクである。絵文字提案の正しさを評価する上での２つの重要な要因は、適合率および再現率である。適合率は、一般に、無関係な絵文字提案および／または提案における絵文字の不適当なランク付けによる、ユーザが経験する混乱および／またはイライラを測定する。再現率は、一般に、絵文字提案がされた回数およびユーザが提案に対して肯定的に応じた回数を測定する。
【０１０６】
絵文字提案によってユーザをイライラさせてしまう３つの主な要因または問題がある。１つの要因は、絵文字提案の不足である。たとえば、あるユーザ入力に対して絵文字提案がない、または正確な絵文字提案が受けられないと、ユーザは、イライラする可能性がある。ユーザのイライラの一因となる別の要因は、ふさわしくないまたは不正確な絵文字が絵文字提案セットに含まれることである。たとえば、提案された絵文字のすべてまたは一部がユーザ入力に無関係であると、ユーザは、イライラする可能性がある。ユーザのイライラにつながり得るさらなる要因は、絵文字提案セットにおける、不正確またはふさわしくない絵文字のランク付けである。上位にランク付けされた絵文字を、ユーザがより簡単にアクセスまたは識別できる、絵文字提案セットの最上部に置くことが目標である。しかしながら、最高位にランク付けされた絵文字が不正確または不適切であると、ユーザは、イライラする可能性がある。ユーザは、一般に、セットにおいて最高位にランク付けされた絵文字を選ぶ傾向がある。
【０１０７】
絵文字提案が原因でユーザが経験するイライラを測定するために、特定の評価指標が使用され得る。一例において、上述のイライラの要因に対して異なる罰則値が与えられ、この罰則値は、１つの提案についての総計の罰則を計算するために使用される。ユーザのイライラレベルは、ユーザ入力の長さに応じて異なる可能性があるので、罰則値は、ユーザ入力の長さに応じて演算またはスケールされてもよい。たとえば、ユーザは、非常に長いユーザ入力の後に間違った絵文字が提案されると、よりイライラし、短いまたは部分的なユーザ入力の後に間違った絵文字が提案されると、それほどイライラしない。
【０１０８】
一例において、総計の罰則は、すべてのテスト例の全体にわたる、提案なしに対する罰則（つまり、絵文字提案を提供しないことに関連する罰則）、間違った提案に対する罰則（つまり、間違った絵文字提案を提供することに関連する罰則）、およびランクベースの罰則（つまり、提案された絵文字の正しくない順序付けに関連する罰則）の合計から判断される。提案なしに対する罰則は、たとえば、２．０×長さ係数であり得る。間違った提案に対する罰則は、たとえば、１．０×正しい提案よりも高くランク付けされたすべての間違った提案についての長さ係数、および、たとえば、０．０×正しい提案よりも低くランク付けされたすべての間違った提案についての長さ係数であり得る。これらの罰則についての他の適する値も可能である。ランクベースの罰則は、たとえば、（ｃｏｒｒｅｃｔ＿ｅｍｏｊｉ＿ｓｕｇｇｅｓｔｉｏｎ＿ｒａｎｋ−１）／（提案数）×長さ係数）であり得る。正しい提案が最高位にランク付けされているときおよび／または正しい絵文字提案がないとき、ランクベースの罰則は、ゼロであることが好ましい。後者の場合、「提案なしに対する罰則」によってイライラ問題が解決される。長さ係数は、（たとえば、単語の）現在の部分的なユーザ入力の長さから、提案についての最小閾値長さを引いたものであり得る。
【０１０９】
いくつかの実装形態において、ユーザ入力のうちの１つの文字から絵文字を提案するのではなく、ユーザ入力の最小限のわずかな文字を受信した後でのみ、絵文字が提案される。絵文字を提案するための最小閾値は、２文字よりも多い文字数の入力クエリだけが絵文字提案を受信するように、２文字であることが好ましいが、最小閾値についての他の文字長さも可能である。
【０１１０】
タグ付けされた情報と共に、２８００個の例からなるデータセットが作成され、本明細書に記載の、ランク付け方法なし、頻度ベースの方法、および言語モデルベースのランク付け方法を評価するために使用された。実験の結果が表３に提示されており、ランク付け方法なし、および頻度ベースの方法は、最小閾値による測定またはその他のフィルタリング基準がないので、より良い再現率を実現していることが示されている。比較すると、言語モデルベースのランク付け方法のほうが、可能性の低い提案をフィルタ処理して取り除くために、閾値による剪定が適用されるので、再現率が低い。また、結果は、言語モデルベースのランク付け方法が、他の２つの方法と比較すると、より高い適合率およびより低いイライラの罰則を実現することを示す。イライラのほとんどは、間違った提案によるものであったので、言語モデルベースのランク付け方法についてのイライラの罰則は、より低い。
【０１１１】
【表３】
2019504413.tif 000014
【０１１２】
いくつかの実装形態において、本明細書に記載のシステムおよび方法は、複数のユーザ用のサービスとして絵文字提案を利用可能にさせるのに適する。このようなサービスは、システムおよび方法が絵文字を提案する速さによって、および、システムおよび方法の、多種多様なクライアントからのサービス要求に基づいて複数の絵文字判定方法および分類器を利用する能力によって可能になるおよび／または強化される。
【０１１３】
絵文字の標準表現は、数年前までなかった。ＩＯＳバージョン５．０よりも前、ＩＯＳデバイスにおける絵文字は、ＳＯＦＴＢＡＮＫの文字セットマッピングを用いる３バイトのＵＴＦ−８を用いてエンコードされていた。ＩＯＳバージョン５．０において、ＩＯＳデバイスは、統一（Ｕｎｉｆｉｅｄ）エンコーディングを使用し始めた。統一エンコーディングは、大企業間で合意された、絵文字を表すための基準である。この新しいフォーマットを用いると、絵文字は、すべて、４バイトのＵＴＦ−８エンコーディングを用いてエンコードされる。
【０１１４】
ＵＮＩＣＯＤＥグリフ（つまり、レンダリングされた文字）をＵＮＩＣＯＤＥコードポイントにマッピングすることは、一般に、プログラミング言語に依存しない。コードポイントは、可変長であり、２〜４バイトの任意の大きさを占め得る。プログラミング言語は、コードポイントをそれぞれ違うように処理してもよい。
【０１１５】
たとえば、ＰＹＴＨＯＮ２．７を用いると、１つのＵＮＩＣＯＤＥオブジェクトをループすることによって、一度に１つのＵＮＩＣＯＤＥコードポイントが得られる。ＰＹＴＨＯＮ２．７は、ＡＳＣＩＩ文字をサポートするように、４バイトのＵＮＩＣＯＤＥ範囲表現をサポートしない。そのため、ＵＴＦ−８エンコーディングされたＵＮＩＣＯＤＥ文字列に含まれる４バイトのＵＮＩＣＯＤＥコードポイントの範囲に一致するようにＵＮＩＣＯＤＥの正規表現を書くことは、可能ではないだろう。しかし、ＰＹＴＨＯＮ２．７は、ＵＴＦ−８エンコーディングされたＵＮＩＣＯＤＥ文字列のための、２バイトのＵＮＩＣＯＤＥ表現をサポートしていない。ＰＹＴＨＯＮ２．７において、ＵＴＦ−８エンコーディングされた文字列をループすることによって、一度に１バイトが読まれる。
【０１１６】
この情報を前提に、サンプルチャットデータセットに対するＰＹＴＨＯＮ２．７ ＵＮＩＣＯＤＥ判定処理を評価するための実験が行われた。実験では、ＵＴＦ−８エンコーディングされたＵＮＩＣＯＤＥコードポイントが、上位または下位サロゲートの範囲内のバイトを有するとき、そのバイト自体がＵＮＩＣＯＤＥ文字を表すことはできないことが示された。現在のバイトが、代用のサロゲートペアを有するバイトと組み合わされるとき、意味をなすＵＮＩＣＯＤＥ表現が形成され得る。ＵＮＩＣＯＤＥ文字‘￥ｕＦＦＦＦ’よりも上のＵＮＩＣＯＤＥコードポイントのほとんどは、絵文字およびピクチャ文字である。中国語、日本語、および韓国語（ＣＪＫ）、ならびに他の言語のスクリプトが利用されるとき、すべてのコードポイントを絵文字に近づけないことが好ましい。
【０１１７】
プログラミング言語としてＰＹＴＨＯＮ２．７を用いると、絵文字を判定するための正確な手法は、２ステップで済むはずである。まず、ＵＴＦ−８エンコーディングされたＵＮＩＣＯＤＥ文字列の各ＵＮＩＣＯＤＥバイトを反復する。１バイト以上を用いてＵＮＩＣＯＤＥコードポイントがエンコードされた場合、バイトの各々は、バイトの中にサロゲートペアを有する。バイトがサロゲートペアを有さない場合、バイト自体がＵＮＩＣＯＤＥコードポイントであるはずである。第２に、範囲および現在のＵＮＩＣＯＤＥコードポイントをエンコードし、現在のＵＮＩＣＯＤＥコードポイントがその範囲に収まるかどうかをチェックする（たとえば、単純な論理比較を用いて）。
【０１１８】
対照的に、Ｃ＋＋のＩＣＵ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｍｐｏｎｅｎｔｓ  ｆｏｒ  Ｕｎｉｃｏｄｅ）のＡＰＩは、ＵＮＩＣＯＤＥ範囲表現のサポートが非常に充実している。ＵＮＩＣＯＤＥ範囲の表現は、ハイフンを使用したＡＳＣＩＩ範囲の表現と同様に書かれ得る。
【０１１９】
絵文字は、２バイトおよび４バイトのＵＮＩＣＯＤＥ範囲に広がる。絵文字は、以下の表４に挙げる文字の範囲を含む。
【０１２０】
【表４】
2019504413.tif 000015
【０１２１】
ＩＯＳおよびＡＮＤＲＯＩＤ（登録商標）用キーボードで利用可能な絵文字の標準一覧は、約９００個の絵文字を含む。本明細書に記載のシステムおよび方法の実装形態は、より多くの絵文字を利用し、これによって、より広範囲の表現、イベント、および、ゲームまたはチャットセッションの間にコミュニケーションを取るためにゲームプレーヤーおよび他のユーザが使用できる言語を可能にする。いくつかの場合において、絵文字は、各絵文字が何を表すかを表すコンテンツとタグ付けされ得る。タグ付けによって、ユーザにとって利用可能であり得る絵文字一覧の形成が容易になる。たとえば、ゲームとの関連性に基づいて、ゲームプレーヤー間のコミュニケーションに適する絵文字を識別するために、絵文字タグが使用され得る。
【０１２２】
いくつかの例において、本明細書に記載のシステムおよび方法は、ユーザの通信文に挿入するための絵文字以外の非語表現項目を提案するために使用され得る。他の非語表現項目は、たとえば、ＧＩＦ（ｇｒａｐｈｉｃｓ  ｉｎｔｅｒｃｈａｎｇｅ  ｆｏｒｍａｔ）ファイルおよびステッカーを含み得る。このような非語表現項目は、１つ以上の単語に対応付けられ得る記述タグを含み得る。好ましい実装形態において、絵文字判定モジュール１１６および／または絵文字分類器モジュール１１８を含む、システムおよび方法は、絵文字に加えて、ＧＩＦ、ステッカー、および／またはその他の非語表現項目を提案するように構成される。
【０１２３】
本明細書に記載の主題および動作の実装形態は、本明細書に開示の構造およびその構造的均等物を含む、デジタル電子回路で、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはそれらのうちの１つ以上の組み合わせで実現され得る。本明細書に記載の主題の実装形態は、データ処理装置による実行のためにまたはデータ処理装置の動作を制御するために実行されるコンピュータ記憶媒体上で符号化された１つ以上のコンピュータプログラム、つまり、コンピュータプログラム命令の１つ以上のモジュールとして実現できる。これに代えて、またはこれに加えて、プログラム命令は、人為的に生成された伝播信号、たとえば、データ処理装置による実行のために適切な受信装置に送信するための情報を符号化するために生成された、機械生成される電気信号、光信号、または電磁信号上に符号化され得る。コンピュータ記憶媒体は、コンピュータ読み取り可能な記憶装置、コンピュータ読み取り可能な記憶基板、ランダムもしくはシリアルアクセスメモリアレイまたはデバイス、またはそれらのうちの１つ以上の組み合わせで有り得、またはそれらに含まれ得る。また、コンピュータ記憶媒体は、伝播信号ではないが、コンピュータ記憶媒体は、人為的に生成された伝播信号に符号化されたコンピュータプログラム命令の送信元または宛先であり得る。また、コンピュータ記憶媒体は、１つ以上の別々の物理コンポーネントまたは媒体（たとえば、複数のＣＤ、ディスク、またはその他の記憶装置）で有り得、またはそれらに含まれ得る。
【０１２４】
本明細書に記載の動作は、データ処理装置によって、１つ以上のコンピュータ読み取り可能な記憶装置上に格納されたデータまたは他のソースから受信されたデータに対して行われる動作として実現できる。
【０１２５】
用語「データ処理装置」は、一例として、プログラマブルプロセッサ、コンピュータ、ＳｏＣ（ｓｙｓｔｅｍ  ｏｎ  ａ  ｃｈｉｐ）、または前述のうちの複数もしくは組み合わせを含む、データを処理するためのあらゆる種類の装置、機器、および機械を包含する。装置は、専用の論理回路、たとえば、ＦＰＧＡ（フィールド・プログラマブル・ゲート・アレイ）またはＡＳＩＣ（特定用途向け集積回路）を含めることができる。また、装置は、ハードウェアに加えて、当該コンピュータプログラムの実行環境を作るコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォーム実行時環境、仮想マシン、またはそれらのうちの１つ以上の組み合わせを構成するコードを含めることができる。装置および実行環境は、ウェブサービス、分散コンピューティングおよびグリッド・コンピューティングインフラストラクチャなど、さまざまな異なるコンピューティングモデル・インフラストラクチャを実現できる。
【０１２６】
コンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる）は、コンパイラ言語もしくはインタプリタ言語、宣言型言語もしくは手続き型言語など、任意の形式のプログラミング言語で書かれ得、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境で使用するのに適したその他の構成単位としてなど、任意の形態にデプロイされ得る。コンピュータプログラムは、ファイルシステムにおけるファイルに相当し得るが、そうである必要はない。プログラムは、その他のプログラムまたはデータ（たとえば、マークアップ言語の文書に格納された１つ以上のスクリプト）を保持するファイルの一部、当該プログラムに専用の１つのファイル、または複数の連携ファイル（たとえば、１つ以上のモジュール、サブプログラム、またはコードの部分を格納するファイル）に格納され得る。コンピュータプログラムは、１つコンピュータ上、または１つのサイトもしくは複数のサイトにまたがって分散され、通信ネットワークによって相互接続された複数のコンピュータ上で実行されるようにデプロイされ得る。
【０１２７】
本明細書に記載のプロセスおよび論理フローは、入力データを操作するおよび出力を生成することによってアクションを行うために、１つ以上のコンピュータプログラムを１つ以上のプログラム可能なプロセッサが実行することによって実行され得る。また、プロセスおよび論理フローは、専用の論理回路、たとえば、ＦＰＧＡ（フィールド・プログラマブル・ゲート・アレイ）またはＡＳＩＣ（特定用途向け集積回路）によって実行され得、装置は、このような専用の論理回路として実現され得る。
【０１２８】
コンピュータプログラムの実行に適したプロセッサは、一例として、汎用および特定用途向けマイクロプロセッサの両方、および任意の種類のデジタルコンピュータの１つ以上のプロセッサを含む。一般に、プロセッサは、ＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、またはその両方から命令およびデータを受け取る。コンピュータの必須の構成要素は、命令に応じてアクションを行うためのプロセッサと、命令およびデータを格納するための１つ以上のメモリ素子である。一般に、コンピュータは、データを格納するための１つ以上の大容量記憶装置、たとえば、磁気ディスク、光磁気ディスク、光ディスク、またはソリッドステート・ドライブを備える、または、このような１つ以上の大容量記憶装置との間でデータの受信、送信、もしくはその両方を行うために操作可能に接続される。しかしながら、コンピュータは、このような機器を有する必要はない。また、コンピュータは、別の機器、たとえば、一例を挙げると、携帯電話、携帯情報端末（ＰＤＡ）、携帯オーディオもしくはビデオプレーヤ、ゲーム機、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）受信機、またはポータブル記憶装置（たとえば、ＵＳＢ（ユニバーサルシリアルバス）フラッシュドライブ）に組み込まれ得る。コンピュータプログラム命令およびデータを格納するのに適したデバイスは、全ての形態の不揮発性メモリ、媒体、およびメモリ素子を含み、一例として、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリ素子などの半導体メモリ素子、内蔵ハードディスクまたはリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにＣＤ−ＲＯＭおよびＤＶＤ−ＲＯＭディスクなどが挙げられる。プロセッサおよびメモリは、専用の論理回路によって補われ得る、またはこれに内蔵され得る。
【０１２９】
ユーザとのやり取りを行うために、本明細書に記載の本発明の主題の実装形態は、ブラウン管（ＣＲＴ）または液晶ディスプレイ（ＬＣＤ）モニタなど、ユーザに情報を表示するためのディスプレイ装置と、マウスまたはトラックボール、タッチパッド、またはスタイラスなど、ユーザがコンピュータに入力を行えるキーボードおよびポインティングデバイスとを有するコンピュータ上に実現され得る。ユーザとのやり取りを行うために、その他の種類のデバイスを使用することもできる。たとえば、ユーザに返されるフィードバックは、視覚フィードバック、聴覚フィードバック、または触覚フィードバックなど、任意の形式の感覚フィードバックで有り得、ユーザからの入力は、音響入力、音声入力、触覚入力を含む、任意の形式で受信され得る。これに加えて、コンピュータは、ユーザが使用する機器と文書を送受信することによって、たとえば、ユーザのクライアント装置上のウェブブラウザから受信した要求に応答してこのウェブブラウザにウェブページを送信することによって、ユーザとやり取りすることができる。
【０１３０】
本明細書に記載の本発明の主題の実装形態は、データサーバなど、バックエンド・コンポーネントを備えるコンピュータシステム、アプリケーションサーバなど、ミドルウェア・コンポーネントを備えるコンピュータシステム、本明細書に記載の本発明の主題の実施形態とユーザがやり取りできるグラフィカルユーザーインターフェースまたはウェブブラウザを有するクライアントコンピュータなど、フロントエンド・コンポーネントを備えるコンピュータシステム、または、１つ以上のこのようなバックエンド・コンポーネント、ミドルウェア・コンポーネント、フロントエンド・コンポーネントの任意の組み合わせを備えるコンピュータシステムで実現され得る。システムの構成要素は、通信ネットワークなど、デジタルデータ通信の任意の形態または媒体によって相互接続され得る。通信ネットワークは、ローカルエリアネットワーク（「ＬＡＮ」）およびワイドエリアネットワーク（「ＷＡＮ」）、インターネットワーク（たとえば、インターネット）、ならびにピアツーピアネットワーク（たとえば、アドホック・ピアツーピアネットワーク）などがある。
【０１３１】
コンピュータシステムは、クライアントとサーバとを含めることができる。クライアントおよびサーバは、一般に、互いから離れており、通常、通信ネットワークを通じてやり取りを行う。クライアントとサーバとの関係は、それぞれのコンピュータ上で動作し、互いにクライアントとサーバとの関係を有するコンピュータプログラムによって成り立つ。いくつかの実装形態において、サーバは、クライアントデバイスにデータ（たとえば、ＨＴＭＬページ）を送信する（たとえば、クライアントデバイスとやり取りしているユーザにデータを表示する、またはこのユーザからのユーザ入力を受信する目的のために）。クライアントデバイスにおいて生成されたデータ（たとえば、ユーザインタラクションの結果）は、サーバにおいて、クライアントデバイスから受信され得る。
【０１３２】
本明細書は、多くの具体的な実装形態の詳細を含むが、これらは、発明または請求の範囲の限定として解釈されるべきではなく、むしろ、特定の発明の特定の実装形態に特有の特徴の説明であると解釈されるべきである。別々の実装形態の枠内で本明細書に記載されたいくつかの特徴も、１つの実装形態に組み合わせて実現され得る。その逆に、１つの実装形態の枠内で記載されたさまざまな特徴は、別々の複数の実装形態または任意の適した部分的な組み合わせで実現され得る。また、特徴は、いくつかの組み合わせで動作するものとして上述され、そのように初めに特許請求され得たが、特許請求された組み合わせからの１つ以上の特徴は、場合によっては、組み合わせから削除され得、特許請求された組み合わせは、部分的な組み合わせまたは部分的な組み合わせの変形例を対象としてもよい。
【０１３３】
同様に、動作を特定の順番で図面に示したが、所望の結果を実現するために、このような動作が示された特定の順番または順序で行われる必要がある、または、図示した動作のすべてが行われる必要があると理解されるべきではない。いくつかの状況では、多重タスク処理および並列処理が有利であり得る。たとえば、複数の絵文字判定方法を同時に実行ために、並列処理が行われ得る。また、上述の実装形態におけるさまざまなシステム構成要素を分離することは、すべての実装形態においてこのような分離が必要であると理解されるべきではなく、記載のプログラムコンポーネントおよびシステムは、一般に、１つのソフトウェアプロダクトに一体化され得る、または複数のソフトウェアプロダクトにパッケージ化され得ると理解されるべきである。
【０１３４】
このように、本発明の主題についての具体的な実装形態を説明した。その他の実装形態は、添付の特許請求の範囲に含まれる。場合によっては、請求項に記載されたアクションは、異なる順序で実行され得、それでもなお所望の結果を実現し得る。これに加えて、添付の図面に示したプロセスは、所望の結果を実現するために必ずしも図示した特定の順番または順序である必要はない。いくつかの実装形態において、多重タスク処理および並列処理が有利になり得る。
【図１】
2019504413.tif 000016
【図２】
2019504413.tif 000017
【図３】
2019504413.tif 000018
【図４】
2019504413.tif 000019
【図５】
2019504413.tif 000020
【国際調査報告】
2019504413.tif 000021
2019504413.tif 000022
2019504413.tif 000023