(57)【要約】      （修正有）【課題】テキストメッセージの言語を検出するための方法、システムおよびコンピュータプログラム記憶装置を提供する。【解決手段】ユーザに関連するメッセージに対して、複数の異なる言語検出テストを実行する。各言語検出テストは、メッセージが複数の異なる言語のうち１つの言語である尤度を表すスコアセットを決定する。スコアセットの１つ以上の組み合わせは、入力として１つ以上の異なる分類器に提供される。各々の分類器からの出力は、メッセージが異なる言語のうちの１つであるという提示を含む。メッセージの言語は、信用度スコアおよび／または特定された言語分野に基づいて、分類器の１つにより提示された言語として特定されてもよい。【選択図】図１Ｂ
2019215876.tif 000002
【特許請求の範囲】
【請求項１】
メッセージの言語を特定するためのコンピュータ実施方法であって、
ユーザに関連するメッセージに対して、複数の異なる言語検出テストを実行するステップを含み、各言語検出テストは、それぞれ一組のスコアであるスコアセットを決定し、前記スコアセット内の各スコアは、メッセージが複数の異なる言語のうち１つの言語である尤度を表し、前記方法はさらに、
前記スコアセットの１つ以上の組み合わせを入力として１つ以上の異なる分類器に与えるステップと、
前記１つ以上の分類器の各々からの出力として、前記メッセージが前記複数の異なる言語のうち１つの言語であるという提示を取得するステップとを含み、前記提示は、信用度スコアを含み、前記方法はさらに、
前記信用度スコアおよび特定された言語分野のうち少なくとも一方に基づいて、前記メッセージの前記言語を、前記１つ以上の分類器のうちの１つの分類器により提示された言語として特定するステップを含む、コンピュータ実施方法。
【請求項２】
特定の分類器は、教師付き学習モデル、部分教師付き学習モデル、教師なし学習モデル、または補間法である、請求項１に記載の方法。
【請求項３】
前記メッセージの前記言語を特定するステップは、前記信用度スコアに基づいて、前記提示された言語を選択することを含む、請求項１に記載の方法。
【請求項４】
前記メッセージの前記言語を特定するステップは、前記特定された言語分野に基づいて、前記分類器を選択することを含む、請求項１に記載の方法。
【請求項５】
前記言語分野は、ビデオゲーム、スポーツ、ニュース、議事、政治、健康、および旅行からなる群から選択される、請求項１に記載の方法。
【請求項６】
前記メッセージは、文字、数字、記号および顔文字のうち２種以上を含む、請求項１に記載の方法。
【請求項７】
前記複数の異なる言語検出テストは、バイトn-gramメソッド、辞書に基づくメソッド、アルファベットに基づくメソッド、スクリプトに基づくメソッド、およびユーザ言語プロファイルメソッドからなる群から選択される少なくとも２つのメソッドを含む、請求項１に記載の方法。
【請求項８】
前記複数の異なる言語検出テストは、同時に実行される、請求項１に記載の方法。
【請求項９】
前記１つ以上の組み合わせは、バイトn-gramメソッドおよび辞書に基づくメソッドから得られたスコアセットを含む、請求項１に記載の方法。
【請求項１０】
前記１つ以上の組み合わせは、ユーザ言語プロファイルメソッドおよびアルファベットに基づくメソッドのうち、少なくとも１つのメソッドから得られたスコアセットをさらに含む、請求項８に記載の方法。
【請求項１１】
メッセージの言語を特定するためのシステムであって、
命令を記憶するコンピュータ記憶装置と、
前記命令を実行して以下の動作を実行するように構成されたデータ処理装置とを備え、
前記動作は、
ユーザに関連するメッセージに対して、複数の異なる言語検出テストを実行すること
を含み、各言語検出テストは、それぞれ一組のスコアであるスコアセットを決定し、前記スコアセット内の各スコアは、メッセージが複数の異なる言語のうち１つの言語である尤度を表し、前記動作はさらに、
前記スコアセットの１つ以上の組み合わせを入力として１つ以上の異なる分類器に与えることと、
前記１つ以上の分類器の各々からの出力として、前記メッセージが前記複数の異なる言語のうち１つの言語であるという提示を取得することとを含み、前記提示は、信用度スコアを含み、前記動作はさらに、
前記信用度スコアおよび特定された言語分野のうち少なくとも一方に基づいて、前記メッセージの前記言語を、前記１つ以上の分類器のうちの１つの分類器により提示された言語として特定することを含む、システム。
【請求項１２】
特定の分類器は、教師付き学習モデル、部分教師付き学習モデル、教師なし学習モデル、または補間法である、請求項１１に記載のシステム。
【請求項１３】
前記メッセージの前記言語を特定することは、前記信用度スコアに基づいて、前記提示された言語を選択することを含む、請求項１１に記載のシステム。
【請求項１４】
前記メッセージの前記言語を特定することは、前記特定された言語分野に基づいて、前記分類器を選択することを含む、請求項１１に記載のシステム。
【請求項１５】
前記言語分野は、ビデオゲーム、スポーツ、ニュース、議事、政治、健康、および旅行からなる群から選択される、請求項１１に記載のシステム。
【請求項１６】
前記メッセージは、文字、数字、記号、および顔文字のうち２種以上を含む、請求項１１に記載のシステム。
【請求項１７】
前記複数の異なる言語検出テストは、バイトn-gramメソッド、辞書に基づくメソッド、アルファベットに基づくメソッド、スクリプトに基づくメソッド、およびユーザ言語プロファイルメソッドからなる群から選択される少なくとも２つのメソッドを含む、請求項１１に記載のシステム。
【請求項１８】
前記複数の異なる言語検出テストは、同時に実行される、請求項１１に記載のシステム。
【請求項１９】
前記１つ以上の組み合わせは、バイトn-gramメソッドおよび辞書に基づくメソッドから得られたスコアセットを含む、請求項１１に記載のシステム。
【請求項２０】
前記１つ以上の組み合わせは、ユーザ言語プロファイルメソッドおよびアルファベットに基づくメソッドのうち、少なくとも１つのメソッドから得られたスコアセットをさらに含む、請求項１８に記載のシステム。
【請求項２１】
１つ以上の記憶装置に記憶され、データ処理装置の処理モードを制御するためのコンピュータプログラム製品であって、
前記コンピュータプログラム製品は、前記データ処理装置によって実行されると、前記データ処理装置に以下の動作を実行させ、
前記動作は、
ユーザに関連するメッセージに対して、複数の異なる言語検出テストを実行することを含み、各言語検出テストは、それぞれ一組のスコアであるスコアセットを決定し、前記スコアセット内の各スコアは、メッセージが複数の異なる言語のうち１つの言語である尤
度を表し、前記動作はさらに、
前記スコアセットの１つ以上の組み合わせを入力として１つ以上の異なる分類器に与えることと、
前記１つ以上の分類器の各々からの出力として、前記メッセージが前記複数の異なる言語のうち１つの言語であるという提示を取得することとを含み、前記提示は、信用度スコアを含み、前記動作はさらに、
前記信用度スコアおよび特定された言語分野のうち少なくとも一方に基づいて、前記メッセージの前記言語を、前記１つ以上の分類器のうちの１つの分類器により提示された言語として特定することを含む、コンピュータプログラム製品。
【請求項２２】
特定の分類器は、教師付き学習モデル、部分教師付き学習モデル、教師なし学習モデル、または補間法である、請求項２１に記載のコンピュータプログラム製品。
【請求項２３】
前記メッセージの前記言語を特定することは、前記信用度スコアに基づいて、前記提示された言語を選択することを含む、請求項２１に記載のコンピュータプログラム製品。
【請求項２４】
前記メッセージの前記言語を特定することは、前記特定された言語分野に基づいて、前記分類器を選択することを含む、請求項２１に記載のコンピュータプログラム製品。
【請求項２５】
前記言語分野は、ビデオゲーム、スポーツ、ニュース、議事、政治、健康、および旅行からなる群から選択される、請求項２１に記載のコンピュータプログラム製品。
【請求項２６】
前記メッセージは、文字、数字、記号、および顔文字のうち２種以上を含む、請求項２１に記載のコンピュータプログラム製品。
【請求項２７】
前記複数の異なる言語検出テストは、バイトn-gramメソッド、辞書に基づくメソッド、アルファベットに基づくメソッド、スクリプトに基づくメソッド、およびユーザ言語プロファイルメソッドからなる群から選択される少なくとも２つのメソッドを含む、請求項２１に記載のコンピュータプログラム製品。
【請求項２８】
前記複数の異なる言語検出テストは、同時に実行される、請求項２１に記載のコンピュータプログラム製品。
【請求項２９】
前記１つ以上の組み合わせは、バイトn-gramメソッドおよび辞書に基づくメソッドから得られたスコアセットを含む、請求項２１に記載のコンピュータプログラム製品。
【請求項３０】
前記１つ以上の組み合わせは、ユーザ言語プロファイルメソッドおよびアルファベットに基づくメソッドのうち、少なくとも１つのメソッドから得られたスコアセットをさらに含む、請求項２８に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
背景
本開示は、言語の検出に関し、特に短文メッセージの言語を検出するためのシステムおよび方法に関する。
【背景技術】
【０００２】
一般に、言語の検出または特定とは、テキストの内容に基づいて、テキストの本文に存在する言語を自動的に検出するプロセスである。言語の検出は、自動言語翻訳に有用である。一般的には、メッセージを別の言語に正確に翻訳する前に、テキストメッセージの言語を知る必要がある。
【０００３】
従来の言語検出は、通常、多くの語句の集合（即ち、文書レベル）で行われ、特に対処し難い分野は、チャットテキスト分野である。この分野において、メッセージは、しばしば少くない数の単語（例えば、４つ以下）を含み、その一部または全部が非正式単語または綴りの間違えた単語である可能性もある。チャットテキスト分野の場合、メッセージに存在する情報の不足および非正式単語を考慮すると、既存手法の言語検出は、不正確であるおよび／または遅いことが分かる。
【発明の概要】
【課題を解決するための手段】
【０００４】
概要
本開示に記載のシステムおよび方法の実施形態は、例えば、テキストメッセージの内容、テキストメッセージを作成するときに使用されたキーボードに関する情報、および／またはテキストメッセージを作成したユーザの言語嗜好に関する情報に基づいて、メッセージの言語を検出する。従来の言語検出技術に比べて、本開示に記載のシステムおよび方法は、特に短い（例えば、４つの単語以下の）テキストメッセージに対して、一般的により高速且つより正確である。
【０００５】
さまざまな例において、システムおよび方法は、複数の言語検出テストおよび分類器を用いて、テキストメッセージ内の可能性のある言語に関連する確率を決定する。各言語検出テストは、可能性のある言語に関連する確率集合または確率ベクトルを出力することができる。分類器は、言語検出テストからの出力を組み合わせることによって、メッセージの最も可能性の高い言語を決定することができる。メッセージに対して特定の言語検出テストおよび分類器の選択は、メッセージの予測精度、信用度スコアおよび／または言語分野に依存する。
【０００６】
一態様において、本発明は、メッセージの言語を特定するためのコンピュータ実施方法に関する。この方法は、ユーザに関連するメッセージに対して、複数の異なる言語検出テストを実行するステップを含み、各言語検出テストは、それぞれ一組のスコアであるスコアセットを決定し、スコアセット内の各スコアは、メッセージが複数の異なる言語のうち１つの言語である尤度を表す。この方法はさらに、スコアセットの１つ以上の組み合わせを入力として１つ以上の異なる分類器に提供するステップと、１つ以上の分類器の各々からの出力として、メッセージが複数の異なる言語のうち１つの言語であるという提示を取得するステップとを含み、提示は、信用度スコアを含む。この方法はさらに、信用度スコアおよび特定された言語分野のうち少なくとも一方に基づいて、メッセージの言語を、１つ以上の分類器のうちの１つの分類器により示された言語に特定するステップを含む。
【０００７】
特定の例において、特定の分類器は、教師付き学習モデル、部分教師付き学習モデル、教師なし学習モデル、または補間法である。メッセージの言語を特定するステップは、信用度スコアに基づいて提示された言語を選択することを含むことができる。メッセージの言語を特定するステップは、特定された言語分野に基づいて分類器を選択することを含むことができる。一部の例において、言語分野は、ビデオゲーム、スポーツ、ニュース、議事、政治、健康、および／または旅行であるまたはそれらを含む。
【０００８】
一部の例において、メッセージは、文字、数字、記号、および顔文字のうち２種以上を含む。複数の異なる言語検出テストは、バイトn-gramメソッド、辞書に基づくメソッド、アルファベットに基づくメソッド、スクリプトに基づくメソッド、およびユーザ言語プロファイルメソッドからなる群から選択される少なくとも２つの方法を含むことができる。複数の異なる言語検出テストは、同時に（例えば、並列処理により）実行されてもよい。１つ以上の組み合わせは、バイトn-gramメソッドおよび辞書に基づくメソッドから得られたスコアセットを含むことができる。１つ以上の組み合わせは、ユーザ言語プロファイルメソッドおよび／またはアルファベットに基づくメソッドから得られたスコアセットをさらに含むことができる。
【０００９】
別の態様において、本発明は、メッセージの言語を特定するためのシステムに関する。このシステムは、命令を記憶するコンピュータ記憶装置を備える。また、システムは、命令を実行して以下の動作を実行するように構成されたデータ処理装置を備える。これらの動作は、ユーザに関連するメッセージに対して、複数の異なる言語検出テストを実行することを含み、各言語検出テストは、それぞれ一組のスコアであるスコアセットを決定し、スコアセット内の各スコアは、メッセージが複数の異なる言語のうち１つの言語である尤度を表す。これらの動作はさらに、スコアセットの１つ以上の組み合わせを入力として１つ以上の異なる分類器に与えることと、１つ以上の分類器の各々からの出力として、メッセージが複数の異なる言語のうち１つの言語であるという提示を取得することとを含み、提示は、信用度スコアを含む。これらの動作はさらに、信用度スコアおよび特定された言語分野のうち少なくとも一方に基づいて、メッセージの言語を、１つ以上の分類器のうちの１つの分類器により提示された言語として特定することを含む。
【００１０】
ある例において、特定の分類器は、教師付き学習モデル、部分教師付き学習モデル、教師なし学習モデル、または補間法である。メッセージの言語を特定するステップは、信用度スコアに基づいて提示された言語を選択することを含むことができる。メッセージの言語を特定するステップは、特定された言語分野に基づいて分類器を選択することを含むことができる。一部の例において、言語分野は、ビデオゲーム、スポーツ、ニュース、議事、政治、健康、および／または旅行であるまたはそれらを含む。
【００１１】
一部の例において、メッセージは、文字、数字、記号、および顔文字のうち２種以上を含む。複数の異なる言語検出テストは、バイトn-gramメソッド、辞書に基づくメソッド、アルファベットに基づくメソッド、スクリプトに基づくメソッド、およびユーザ言語プロファイルメソッドからなる群から選択される少なくとも２つの方法を含むことができる。複数の異なる言語検出テストは、同時に（例えば、並列処理により）実行されてもよい。１つ以上の組み合わせは、バイトn-gramメソッドおよび辞書に基づくメソッドから得られたスコアセットを含むことができる。１つ以上の組み合わせは、ユーザ言語プロファイルメソッドおよび／またはアルファベットに基づくメソッドから得られたスコアセットをさらに含むことができる。
【００１２】
別の態様において、本発明は、１つ以上の記憶装置に記憶され、データ処理装置の処理モードを制御するためのコンピュータプログラム製品に関する。コンピュータプログラム製品は、データ処理装置によって実行されると、データ処理装置に以下の動作を実行させ
る。これらの動作は、ユーザに関連するメッセージに対して、複数の異なる言語検出テストを実行することを含み、各言語検出テストは、それぞれ一組のスコアであるスコアセットを決定し、スコアセット内の各スコアは、メッセージが複数の異なる言語のうち１つの言語である尤度を表す。これらの動作はさらに、スコアセットの１つ以上の組み合わせを入力として１つ以上の異なる分類器に与えることと、１つ以上の分類器の各々からの出力として、メッセージが複数の異なる言語のうち１つの言語であるという提示を取得することとを含み、提示は、信用度スコアを含む。これらの動作はさらに、信用度スコアおよび特定された言語分野のうち少なくとも一方に基づいて、メッセージの言語を、１つ以上の分類器のうちの１つの分類器により提示された言語として特定することを含む。
【００１３】
ある例において、特定の分類器は、教師付き学習モデル、部分教師付き学習モデル、教師なし学習モデル、または補間法である。メッセージの言語を特定するステップは、信用度スコアに基づいて提示された言語を選択することを含むことができる。メッセージの言語を特定するステップは、特定された言語分野に基づいて分類器を選択することを含むことができる。一部の例において、言語分野は、ビデオゲーム、スポーツ、ニュース、議事、政治、健康、および／または旅行であるまたはそれらを含む。
【００１４】
一部の例において、メッセージは、文字、数字、記号、および顔文字のうち２種以上を含む。複数の異なる言語検出テストは、バイトn-gramメソッド、辞書に基づくメソッド、アルファベットに基づくメソッド、スクリプトに基づくメソッド、およびユーザ言語プロファイルメソッドからなる群から選択される少なくとも２つの方法を含むことができる。複数の異なる言語検出テストは、同時に（例えば、並列処理により）実行されてもよい。１つ以上の組み合わせは、バイトn-gramメソッドおよび辞書に基づくメソッドから得られたスコアセットを含むことができる。１つ以上の組み合わせは、ユーザ言語プロファイルメソッドおよび／またはアルファベットに基づくメソッドから得られたスコアセットをさらに含むことができる。
【００１５】
本発明の所定の態様に関して記載された実施形態の要素は、本発明の別の態様のさまざまな実施形態に使用することができる。例えば、１つの独立請求項に従属している従属請求項の特徴は、他の独立請求項のいずれかの装置および／または方法に使用することができると考えられる。
【図面の簡単な説明】
【００１６】
【図１Ａ】言語検出を実行する例示的なシステムを示す図である。
【図１Ｂ】テキストメッセージの言語を検出する例示的な方法を示すフローチャートである。
【図２】テキストメッセージの言語を検出する例示的なn-gramメソッドを示すフローチャートである。
【図３】テキストメッセージの言語を検出する例示的な辞書に基づくメソッドを示すフローチャートである。
【図４】テキストメッセージの言語を検出する例示的なアルファベットに基づくメソッドを示すフローチャートである。
【図５】テキストメッセージの言語を検出する例示的なスクリプトに基づくメソッドを示すフローチャートである。
【図６】テキストメッセージの言語を検出する例示的なユーザ言語プロファイルメソッドを示すフローチャートである。
【図７】例示的な言語検出メソッドモジュールを示す概略図である。
【図８】例示的な分類器モジュールを示す概略図である。
【図９】図７の言語検出メソッドモジュールおよび図８の分類器モジュールを用いて、テキストメッセージの言語を検出する例示的な方法を示すフローチャートである。
【図１０】テキストメッセージの言語を検出する例示的な方法を示すフローチャートである。
【図１１】テキストメッセージの言語を検出する例示的な方法を示すフローチャートである。
【図１２】テキストメッセージの言語を検出する例示的な方法を示すフローチャートである。
【発明を実施するための形態】
【００１７】
詳細な説明
一般的に、メッセージの言語情報（例えば、クライアント装置からのキーボード情報）が欠落、変形または信頼できない場合に、本開示に記載の言語検出システムおよび言語検出方法を用いて、テキストメッセージの言語を特定することができる。本発明のシステムおよび方法は、１つの言語から別の言語にテキストメッセージを翻訳するために使用される言語翻訳方法の精度を向上させる。一般的に、言語の翻訳は、ソース言語を正確に特定することを必要とする。さもなければ、翻訳結果が不精確になる可能性がある。
【００１８】
図１Ａは、テキストメッセージまたは音声メッセージなどのメッセージから言語を検出するための例示的なシステム１０を示す。サーバシステム１２は、メッセージの解析および言語の検出機能を提供する。サーバシステム１２は、例えば１つ以上の地理的位置に配置された１つ以上のデータセンタ１４に展開することができるソフトウェア部品およびデータベースを含む。サーバシステム１２のソフトウェア部品は、検出メソッドモジュール１６、分類器モジュール１８、および管理モジュール２０を含む。ソフトウェア部品は、同一のデータ処理装置または異なる個別のデータ処理装置上で実行可能なサブ部品を含むことができる。サーバシステム１２のデータベースは、訓練データ２２、辞書２４、アルファベット２６、スクリプト２８、およびユーザプロファイル情報３０を含む。データベースは、１つ以上の物理的な記憶システムに常駐することができる。ソフトウェア部品およびデータベースは、以下にさらに説明される。
【００１９】
ウェブアプリケーションなどのアプリケーションをエンドユーザアプリケーションとして提供することによって、ユーザは、メッセージをサーバシステム１２に提供することができる。クライアント装置、例えばパーソナルコンピュータ３４、スマートフォン３６、タブレットコンピュータ３８およびラップトップコンピュータ４０のユーザは、ネットワーク３２を介して、エンドユーザアプリケーションを利用することができる。他のクライアント装置も可能である。ユーザからのメッセージは、メッセージを作成するときに使用された装置に関する情報、例えば、メッセージを作成するときに使用されたキーボード、クライアント装置および／またはオペレーティングシステムに関する情報を含んでもよい。
【００２０】
図１Ａに示された分類器モジュール１８および管理モジュール２０がデータベース（すなわち、訓練データ２２、辞書２４、アルファベット２６、スクリプト２８およびユーザプロファイル情報３０）に接続されているが、分類器モジュール１８および／または管理モジュール２０は、必ずしもデータベースの一部または全てに接続される必要はない。一般的に、分類器モジュール１８は、検出メソッドモジュール１６から入力を受け取り、管理モジュール２０は、分類器モジュール１８から入力を受け取る。分類器モジュール１８および／または管理モジュール２０は、他の入力を受け取る必要はない。
【００２１】
図１Ｂは、システム１０を用いてメッセージの言語を検出する例示的な方法１００を示す。方法１００は、ユーザによって生成されたテキストメッセージを受信または取得することによって始まる（ステップ１０２）。（例えば、検出メソッドモジュール１６からの）１つ以上の言語検出メソッドを用いて、テキストメッセージを解析する（ステップ１０
４）。各々の言語検出メソッドは、メッセージに存在する１つまたは複数の言語を提示する。次いで、（例えば、分類器モジュール１８からの）１つ以上の分類装置を用いて、言語検出メソッドからの出力を結合する（ステップ１０６）ことによって、メッセージに存在する言語の更なる提示を提供する。１つ以上の分類器は、例えば、教師付き学習モデル、部分教師付き学習モデル、教師なし学習モデルおよび／または補間法を含むことができる。次いで、（例えば、管理モジュール２０を用いて）１つ以上の分類器からの出力に基づいて、メッセージの言語を決定する（ステップ１０８）。
【００２２】
いくつかの実装例において、１つ以上の分類器からの言語提示は、計算された信用度スコアおよび／または言語分野に従って、管理モジュール２０によって選択される。例えば、分類器は、言語の予測に関連する信用度を示す信用度スコアを計算することができる。追加的にまたは代替的に、ユーザまたはメッセージに関連する言語分野に従って、特定の分類器からの出力を選択してもよい。例えば、メッセージがコンピュータゲーム環境から由来した場合、最も正確な言語予測を提供する特定の分類器からの出力を選択することができる。同様に、メッセージがスポーツ（例えば、スポーツイベント）から由来した場合、スポーツ言語分野に対してより適切な別の分類器からの出力を選択することができる。他の可能性のある言語分野は、例えば、ニュース、議事、政治、健康、旅行、ウェブページ、新聞記事、およびマイクロブログメッセージを含む。一般的に、（例えば、分類器からの）ある種の言語検出メソッドまたは言語検出メソッドの組み合わせは、他の言語分野よりも、ある種の言語分野に対してより正確であり得る。いくつかの実装例において、言語分野は、メッセージに存在する専門用語に基づいて決定されてもよい。例えば、コンピュータゲーム用の専門用語は、ゲーマーによって使用される共通俗語を含むことができる。
【００２３】
検出メソッドモジュール１６に使用される言語検出メソッドは、例えば、n-gramメソッド（例えば、バイトn-gramメソッド）、辞書に基づくメソッド、アルファベットに基づくメソッド、スクリプトに基づくメソッド、およびユーザ言語プロファイルメソッドを含むことができる。他の言語検出メソッドも可能である。これらの言語検出メソッドのいずれかを用いて、メッセージに存在する言語を検出することができる。各メソッドからの出力は、例えば、メッセージ内の各可能性のある言語に関連する確率の組または確率ベクトルであってもよい。一部の例において、並列計算を用いて、２つ以上の言語検出メソッドを同時に実行することができ、これによって、計算時間を大幅に短縮することができる。
【００２４】
一実装形態において、バイトn-gramメソッドは、単語n-gramまたは文字n-gramの代わりに、バイトn-gramを用いて言語を検出する。好ましくは、多項式イベントモデルを備えるナイーブベイズ分類器を用いて、バイトn-gramの混合物（例えば、１≦ｎ≦４）上でバイトn-gramメソッドを訓練する。好ましくは、異なる言語分野からのデータに対して、モデルを一般化する。これによって、モデルのデフォルト構成は、新聞記事、オンラインゲーム、ウェブページ、およびマイクロブログメッセージを含む多様な分野にわたって正確である。言語を特定する作業に関する情報は、さまざまな分野から集約することができる。
【００２５】
分野内の訓練データが利用可能な従来のテキスト分類設定に対して、言語の特定を高精度で達成する作業は、比較的簡単である。１つの言語分野に対して学習したモデルパラメータを用いて、別の言語分野からデータを分類または分別しようとする場合、その作業はより難しくなる。この課題は、言語の特定作業に関連する重要な機能を重視することによって、対処することができる。対処方法は、例えば、情報利得（information gain）と呼ばれる概念に基づくことができる。この情報利得は、最初に決定木の分割基準として導入されたが、その後テキスト分類において特徴の選択に有用であることが判明した。ある実現例において、分野および言語に対して情報利得の差異を表す検出スコアが計算される。高い検出スコアを有する特徴は、分野に関する情報を提供することなく、言語に関する情
報を提供することができる。簡素化のため、情報利得を計算する前に、ターム頻度に基づく特徴の選択によって、候補特徴のセットから余分なものを取り除くことができる。
【００２６】
図２を参照して、例示的なバイトn-gramメソッド２００は、訓練データ２２を用いて訓練することによって始まる。例えば、多項イベントモデルを有する単純ベイズ分類器を用いて、バイトn-gramの混合物でメソッドを訓練することができる。訓練データ２２は、好ましくは、大量の数および種類の言語に対して収集され、各言語に利用可能なデータの量が均一になるように調整される（ステップ２０２）。訓練データ２２の一部を取り出し、テストセットに設定する（ステップ２０４）。訓練データ２２を選択した後、適切な平滑化技術およびバックオフ技術を用いて、データ２２上でバイトn-gramモデルを訓練する（ステップ２０６）。モデルの入力特徴が各入力文章からのバイトストリームであり且つこれらの文章のソース言語ラベルが既知であるため、モデルは、パラメータを調整して、所定の言語に特有のバイトシーケンスを学習する。最初に分けられたテストセットを用いて、訓練されたモデルに基づいて、言語ラベルを予測する（ステップ２０８）。予測の精度は、このバイトn-gramシステムの言語特定性能を決定する。一部の例において、多くの言語分野に亘ってデータを収集することによって、各言語分野に対してバイトn-gramシステムを訓練することは、困難である。その理由は、分野ごとに十分なデータがないからである。したがって、これらのバイトn-gramシステムは、典型的には、特定の分野ではなく、共通分野に対応するように訓練される。訓練されたモデルは、中間機械パラメータと共にプログラムにコンパイルされてもよい（ステップ２１０）。このプログラムは、汎用言語特定システムとして機能することができる。
【００２７】
一般的に、辞書に基づく言語検出メソッドは、言語に関連する辞書または単語リスト内の単語を検索することによって、言語に属するトークンまたは単語の数をカウントする。メッセージに最も多くの単語を有する言語は、最も可能性のある言語として選択される。最も可能性のある言語が複数である場合、最も可能性のある言語のうち、より頻繁にまたはより一般的に使用された言語を選択する。言語辞書は、辞書データベース２４に記憶することができる。
【００２８】
図３は、例示的な辞書に基づく言語検出メソッド３００を示すフローチャートである。テキストメッセージが提供され（ステップ３０２）、テキストメッセージの可能性のある言語セットが特定される（ステップ３０４）。次いで、セットから、第１の可能性のある言語を選択する（ステップ３０６）。可能性のある言語に対応する辞書に存在するテキストメッセージ内の単語をカウントする（ステップ３０８）。検討されていない追加の可能性のある言語が可能性のある言語セットに存在する場合（ステップ３１０）、新しい可能性のある言語を選択し（ステップ３１２）、ステップ３０８を繰り返す。セットからの全ての可能性のある言語を検討した後、テキストメッセージ内に最も多くの単語を有する言語が、メッセージの言語として特定されてもよい（ステップ３１４）。代替的にまたは追加的に、この方法を用いて、言語セット内の各言語がメッセージに存在する確率を計算することができる。例えば、辞書に基づくメソッドからの出力は、セット内の各言語の確率ベクトルであってもよい。
【００２９】
辞書に基づく言語検出メソッドの精度、特に短文の場合の精度を保証するために、好ましくは、正式単語に加えて、非正式単語またはチャット単語（略語、頭字語、俗語、不敬語）を含む辞書を使用することが望ましい。非正式単語は、ショートテキスト通信およびチャットルームによく使用される。好ましくは、非公式単語が新しく作成され使用されるときに、非正式単語を含むように、辞書を継続的に拡張する。
【００３０】
アルファベットに基づくメソッドは、一般的に、各言語のアルファベットの文字カウントに基づき、多くの言語が特有のアルファベットまたは異なる文字セットを有するという
所見に依存する。たとえば、ロシア語、英語、韓国語および日本語は、それぞれ異なるアルファベットを使用する。アルファベットに基づくメソッドは、一部の言語（例えば、ラテン語などの類似のアルファベットを使用する言語）を正確に区別することができないが、一般的に特定の言語を迅速に検出することができる。場合によって、本開示に説明したように、アルファベットに基づくメソッドを１つ以上の他の言語検出メソッド（例えば、分類器を用いる）と組み合わせて使用することが好ましい。言語のアルファベットは、アルファベットデータベース２６に記憶される。
【００３１】
図４は、例示的なアルファベットに基づく言語検出メソッド４００を示すフローチャートである。テキストメッセージが提供され（ステップ４０２）、テキストメッセージの可能性のある言語セットが特定される（ステップ４０４）。次に、セットから、第１の可能性のある言語を選択する（ステップ４０６）。可能性のある言語のアルファベットに存在するテキストメッセージ内の文字をカウントする（ステップ４０８）。検討されていない追加の可能性のある言語が可能性のある言語セットに存在する場合（ステップ４１０）、新しい可能性のある言語を選択し（ステップ４１２）、ステップ４０８を繰り返す。セットからの全ての可能性のある言語を検討した後、テキストメッセージに最も多くの文字を有する言語が、メッセージの言語として特定されてもよい（ステップ４１４）。代替的にまたは追加的に、アルファベットに基づくメソッドを用いて、言語セット内の各言語がメッセージに存在する確率を計算することができる。例えば、アルファベットに基づくメソッドからの出力は、セット内の各言語の確率ベクトルであってもよい。
【００３２】
一般的に、スクリプトに基づく言語検出メソッドは、メッセージに存在する可能性のある各スクリプト（例えば、ラテン語スクリプト、ＣＪＫスクリプトなど）の文字カウントを決定する。スクリプトに基づくメソッドは、異なる言語が異なるスクリプト（例えば、中国語および英語）を使用する可能性があるという所見に依存する。この方法は、好ましくは、スクリプトを使用する言語のリストにスクリプトをマッピングするマップを使用する。例えば、マップは、メッセージに存在する文字または記号のユニコード値を考慮する。これらのユニコード値は、メッセージに対応する言語または可能性のある言語セットにマッピングされてもよい。言語スクリプトおよびユニコード値または範囲値は、スクリプトデータベース２８に記憶されてもよい。
【００３３】
図５を参照して、例示的なスクリプトに基づくメソッド５００において、テキストメッセージが提供され（ステップ５０２）、メッセージに存在するスクリプトが特定される（５０４）。次いで、各スクリプトの文字数をカウントする（ステップ５０６）。最大文字数を有するスクリプトが最も可能なスクリプトであると考えられ（ステップ５０８）、最も可能なスクリプトに対応する言語を特定する（ステップ５１０）。最も可能なスクリプトトが１つのみの言語に対応している場合、その言語は、最も可能性のある言語であると考えられる。最も可能なスクリプトが複数の言語に対応する場合、追加の言語検出メソッドを使用して、さらなる検出を行うことができる。いくつかの実現例において、スクリプトに基づくメソッドからの出力は、メッセージに存在する可能な各言語の確率の（例えば、ベクトル形式）集合である。
【００３４】
ユーザ言語プロファイルに基づくメソッドは、さまざまなユーザによって送信された過去メッセージを記憶するユーザプロファイルデータベース３０を使用する。記憶されたこれらのメッセージの言語は、例えば、本開示に記載され、各ユーザによって使用された言語を特定する１つ以上の他の言語検出メソッド（例えば、バイトn-gramメソッド）を用いて、検出される。例えば、ユーザの全ての過去メッセージがスペイン語である場合、そのユーザの言語プロファイルは、ユーザの優先言語がスペイン語であることを示すことができる。同様に、ユーザの過去メッセージが異なる言語の混合である場合、ユーザの言語プロファイルは、異なる言語に関連する確率を示すことができる（例えば、英語８０％、フ
ランス語１５％、スペイン語５％）。一般的に、ユーザ言語プロファイルに基づくメソッドは、非常に短いメッセージに関連する言語検出問題に対処する。これらのメッセージは、正確な言語決定を行うのに十分な情報をもっていないことが多い。この場合、ユーザが以前に使用した言語を引き続き使用することを想定して、ユーザの言語嗜好を用いてユーザのメッセージの言語を予測することができる。
【００３５】
図６を参照して、例示的なユーザ言語プロファイル検出メソッド６００は、ユーザの過去メッセージを記憶し（ステップ６０２）、記憶されたメッセージに存在する言語を検出する（ステップ６０４）。異なる言語がユーザのメッセージに現れる頻度を判断し（６０６）、出力する（ステップ６０８）。
【００３６】
図７を参照して、検出メソッドモジュール１６には、さまざまな言語検出メソッドを組み込むことができる。テキストメッセージを検出メソッドモジュール１６に入力することができ、１つ以上の言語検出メソッドがそのメッセージの言語を特定することができる。例えば、各言語検出メソッドは、確率ベクトルを提供することができる。ベクトル内の各確率は、メッセージ内の可能性のある言語に関連付けられ、メッセージが所定の言語を使用する可能性を表す。使用される異なる方法およびメッセージに利用可能な情報により、各言語検出メソッドからの確率が一致しないことがある。検出メソッドモジュール１６は、例えば、n-gram検出メソッド（例えば、バイトn-gram検出メソッド２００）を実行するためのn-gramモジュール７０２、辞書に基づくメソッド３００を実行するための辞書に基づくモジュール７０４、アルファベットに基づくメソッド４００を実行するためのアルファベットに基づくモジュール７０６、スクリプトに基づくメソッド５００を実行するためのスクリプトに基づくモジュール７０８、およびユーザ言語プロファイルメソッド６００を実行するためのユーザ言語プロファイルモジュール７１０を含むまたは利用することができる。必要に応じて、追加の言語検出メソッドを検出メソッドモジュール１６に組み込むことができる。いくつかの既知の方法には、単語レベルのn-gram、マルコフモデルおよび予測モデリング技術の使用を含む。
【００３７】
検出メソッドモジュール１６内のさまざまな言語検出メソッドからの出力は、分類器モジュール１８を用いて結合することができる。図８を参照して、分類器モジュール１８は、補間モジュール８０２、サポートベクトルマシン（ＳＶＭ）モジュール８０４、および線形ＳＶＭモジュール８０６を含むことができる。
【００３８】
補間モジュール８０２を用いて、２つ以上の言語検出メソッドからの結果の線形補間を行う。例えば、テキストメッセージの言語は、バイトn-gramメソッドの結果および辞書に基づくメソッドの結果を補間することによって決定することができる。チャットメッセージ「lol gtg」の場合、バイトn-gramメソッドは、英語である可能性が０．３であり、フ
ランス語である可能性が０．４であり、ポーランド語である可能性が０．３であると判定することができる（すなわち、バイトn-gramメソッドの出力は、{en:0.3, fr:0.4, pl:0.3}である）。辞書に基づくメソッドは、英語である可能性が０．１であり、フランス語である可能性が０．２であり、ポーランド語である可能性が０．７であると判定することができる（すなわち、辞書に基づくメソッドは、{en:0.1, fr:0.2, pl:0.7}である）。これらの２つの方法の結果を補間するために、バイトn-gramからの出力に第１重みを乗算し、辞書に基づくメソッドからの出力に第２重みを乗算する。第１重みおよび第２重みの合計が１である。次いで、２つの方法からの重み付き出力を加算する。例えば、バイトn-gramの結果に０．６の重みを与えた場合、辞書に基づく結果に０．４の重みを与える。２つの方法の補間は、{en:0.3, fr:0.4, pl: 0.3}*0.6 + {en:0.1, fr:0.2, pl:0.7}*0.4 = {en:0.22, fr:0.32, pl:0.46}である。
【００３９】
一般的に、２つ以上の値を補間するための最適な重み値は、試行錯誤によって決定する
ことができる。所定のメッセージのセットに対して異なる重みを試すことによって、最も可能な重みのセットを特定するができる。場合によって、重みは、メッセージ内の単語または文字の数の関数であってもよい。代替的または追加的に、重みは、メッセージの言語分野に依存してもよい。例えば、ゲーム環境の最適な重みは、スポーツ環境の最適な重みと異なる場合がある。バイトn-gramメソッドと辞書に基づくメソッドとの組み合わせについて、バイトn-gramメソッドに０．１という重みを用いて、辞書法に０．９という重みを用いて、良好な結果を得ることができる。
【００４０】
ＳＶＭモジュール８０４は、言語データを分析し、言語パターンを認識する教師付き学習モデルであってもよく、それを含んでもよい。ＳＶＭモジュール８０４は、例えば、マルチクラスＳＶＭ分類器であってもよい。英語のＳＶＭ分類器の場合、特徴ベクトルは、上記の２つの分布の連結（すなわち、{en:0.3, fr:0.4, pl:0.3, en:0.1, fr:0.2, pl:0.7}）であってもよい。ＳＶＭ分類器は、好ましくは、ラベルされた訓練データに対して訓練される。訓練されたモデルは、入力の予測器として機能する。言語検出の場合に選択される特徴は、例えば、バイト、単語またはフレーズのシーケンスであってもよい。入力の訓練ベクトルは、多次元空間にマッピングすることができる。次いで、ＳＶＭアルゴリズムは、カーネルを用いて、これらの次元間の最適な分離超平面を特定することができ、アルゴリズムに言語（この場合）を予測する顕著な能力を与える。カーネルは、例えば、線形カーネル、多項式カーネル、または放射基底関数（ＲＢＦ）カーネルであってもよい。ＳＶＭ分類器の好ましいカーネルは、ＲＢＦカーネルである。訓練データを用いてＳＶＭ分類器を訓練した後、分類器を用いて、全ての可能性のある言語の中から最も可能性のある言語を出力することができる。
【００４１】
例えば、異なるメッセージ長、言語分野および／または言語を有する多くのメッセージ用の訓練データは、異なる言語検出メソッドからの出力ベクトルおよび正しい言語を表す提示であってもよく、それを含んでもよい。訓練データは、各メッセージの言語が既知である多くのメッセージを含むことができる。
【００４２】
線形ＳＶＭモジュール８０６は、大規模線形分類器であってもよく、それを含んでもよい。線形カーネルを有するＳＶＭ分類器は、線形回帰などの他の線形分類器よりも優れた性能を発揮することができる。線形ＳＶＭモジュール８０６は、カーネルレベルでＳＶＭモジュール８０４と異なる。場合によって、多項式モデルは、線形モデルよりも優れた性能を発揮し、その逆も可能である。最適カーネルは、メッセージデータの言語分野および／またはデータの性質に依存してもよい。
【００４３】
本開示に記載のシステムおよび方法に使用され得る他の分類器は、例えば、決定木学習、関連ルール学習、人工神経ネットワーク、帰納的理論プログラミング、ランダムフォレスト、クラスタリング、ベイジアンネットワーク、強化学習、表現学習、類似性およびメトリック学習、およびスパース辞書学習を含む。これらの分類器または他の分類器の１つ以上は、分類器モジュール１８に組み込むことができ、および／または分類器モジュール１８の一部を形成することができる。
【００４４】
図９を参照して、例示的な方法９００は、検出メソッドモジュール１６、分類器モジュール１８および管理モジュール２０を用いて、メッセージの言語を検出する。メッセージは、検出メソッドモジュール１６に提供または供給される（ステップ９０２）。メッセージは、メッセージに関する情報および／またはメッセージを作成したユーザに関する情報を含んでもよい。情報は、例えば、ユーザ識別番号、メッセージを作成するためにユーザによって使用されたキーボードに関する情報、および／またはメッセージを作成するためにユーザによって使用されたソフトウェアを制御するオペレーティングシステムに関する情報を含んでもよい。例えば、メッセージは、ユーザがフランス語キーボードを用いてメ
ッセージを作成し、そのユーザのオペレーティングシステムが英語であることを示すデータを含んでもよい。
【００４５】
検出メソッドモジュール１６内の１つ以上の言語検出メソッドを用いて、メッセージの言語を検出する（ステップ９０４）。検出メソッドモジュール１６によって使用される各方法は、メッセージに存在する言語に関する予測を出力することができる。予測は、メッセージ内に存在する可能性のある各言語の確率を含むベクトルであってもよい。
【００４６】
次に、検出メソッドモジュール１６からの出力は、２つ以上の言語検出メソッドからの結果を結合することができる分類器モジュール１８に供給される（ステップ９０６）。これによって、言語検出メソッドの結果のさまざまな組み合わせを得ることができる。一例において、バイトn-gramメソッドおよび辞書に基づくメソッドからの結果は、補間によって分類器モジュール１８において結合される。別の例において、バイトn-gramメソッド、辞書に基づくメソッド、アルファベット法、及びユーザプロファイルメソッドからの結果に対してＳＶＭ結合または分類が実行される。代替的にまたは追加的に、その結合は、スクリプトに基づくメソッドの結果を含んでもよく、考慮してもよい。さらなる例は、バイトn-gramメソッド、言語プロファイルメソッドおよび辞書メソッドの大きな線形結合を含む。しかしながら、一般的に、分類器モジュール１８において、任意の２つ以上の言語検出メソッドの結果を結合することができる。
【００４７】
方法９００は、管理モジュール２０を用いて、特定の分類器から出力を選択する（ステップ９０８）。出力は、例えば、分類器によって計算された信用度スコア、期待される言語検出精度および／またはメッセージの言語分野に基づいて選択されてもよい。次に、選択された分類器の出力から、最も可能性のある言語を決定する（ステップ９１０）。
【００４８】
一部の例において、本開示に記載のシステムおよび方法は、メッセージの長さに応じて言語検出メソッドを選択する。例えば、図１０を参照して、方法１０００は、メッセージを作成するときに使用されたキーボード言語に関する情報を含むメッセージを受信または提供すること（ステップ１００２）を含む。メッセージが閾値長さ（例えば、２５バイトまたは２５文字）よりも長い場合（ステップ１００４）、バイトn-gramメソッド（または他の方法、または方法の組み合わせ）を用いて、言語を検出することができる（ステップ１００６）。次いで、バイトn-gramメソッドからの結果に基づいて、メッセージの言語を選択することができる（ステップ１００８）。一方、メッセージが閾値長以下である場合、システムは、キーボード言語が利用可能であるか否かを判断することができる（ステップ１０１０）。キーボード言語が利用可能である場合、キーボード言語と同様であるように、メッセージの言語を選択してもよい（ステップ１０１２）。代替的には、キーボード言語が利用可能でない場合、方法１０００は、再びメッセージの長さを考慮してもよい。例えば、メッセージ長が第２閾値（例えば、４バイトまたは４文字）未満である場合（ステップ１０１４）、辞書に基づくメソッドを用いて言語を検出し、選択することができる（ステップ１０１６）。メッセージ長が第２閾値よりも大きい場合、バイトn-gramメソッド（または他の方法または方法の組み合わせ）を使用して、メッセージの言語を検出することができる（ステップ１０１８）。バイトn-gramメソッドおよび辞書に基づくメソッドからの結果は、（例えば、補間器または他の分類器を用いて）結合されてもよく、メッセージの言語は、結合に基づいて決定されてもよい（ステップ１０２０）。
【００４９】
図１１は、テキストメッセージの言語を特定する例示的な方法１１００である。ユーザのクライアント装置上で作成されたテキストメッセージが受信または提供される（ステップ１１０２）。アルファベットに基づくメソッドおよび／またはスクリプトに基づくメソッドを用いて、テキストメッセージに関連するアルファベットおよび／またはスクリプトを決定する（ステップ１１０４）。アルファベットおよび／またはスクリプトに関連付け
られた候補言語を特定する。候補言語が独特なアルファベットおよび／またはスクリプトを有する言語（例えば、ロシア語、アラビア語、ヘブライ語、ギリシャ語、中国語、台湾語、日本語または韓国語）である場合（ステップ１１０６）、その候補言語は、テキストメッセージの言語として決定される（ステップ１１０８）。
【００５０】
一方、候補言語が独特なアルファベットおよび／またはスクリプトを有する言語でない場合、テキストメッセージの長さを評価する。メッセージ長が閾値長（例えば、４バイトまたは４文字）未満であり且つテキストメッセージがクライアント装置によって使用されたキーボード言語を含むまたは備える場合（ステップ１１１０）、メッセージの言語は、キーボード言語として選択される（ステップ１１１２）。
【００５１】
代替的には、メッセージ長が閾値長よりも長い場合またはキーボード言語が利用できない場合、n-gramメソッド（例えば、バイトn-gramメソッド）を用いてメッセージを処理することによって、テキストメッセージの第１の可能性のある言語セットを特定する（ステップ１１１４）。その後、辞書に基づくメソッドを用いてメッセージを処理することによって、テキストメッセージの第２の可能性のある言語セットを特定する（ステップ１１１６）。ユーザ言語プロファイルが存在する場合（ステップ１１１８）、（例えば、ＳＶＭ分類器または大きな線形分類器を用いて）第１の可能性のある言語セット、第２の可能性のある言語セットおよびユーザ言語プロファイル（１１２０）を組み合わせることによって、第１の可能性のある言語の組み合わせを取得する（ステップ１１２２）。次いで、第１の可能性のある言語の組み合わせに基づいて、テキストメッセージの言語を選択する（ステップ１１２４）。一方、ユーザ言語プロファイルが利用できない場合、（例えば、線形補間器または他の分類器を用いて）第１の可能性のある言語セットおよび第２の可能性のある言語セットを組み合わせることによって、第１の可能性のある言語の組み合わせを取得する（ステップ１１２６）。最後に、第２の可能性のある言語の組み合わせに基づいて、テキストメッセージの言語を選択する（ステップ１１２８）。
【００５２】
一部の例において、２つ以上のステップで複数の言語検出メソッドの出力を組み合わせることによって、言語検出を実行する。たとえば、第１ステップは、アルファベットスクリプトに基づくメソッドを用いて、中国語（ｃｎ）、日本語（ｊａ）、韓国語（ｋｏ）、ロシア語（ｒｕ）、ヘブライ語（ｈｅ）、ギリシャ語（ｅｌ）、アラビア語（ａｒ）などの独特なアルファベットまたはスクリプトを使用する特殊言語を検出することができる。必要に応じて、第２ステップは、複数の検出メソッド（例えば、バイトn-gramメソッド、ユーザ言語プロファイルに基づくメソッドおよび辞書に基づくメソッド）の組み合わせ（例えば、分類器からのもの）を使用して、メッセージに存在する他の言語（例えば、ラテン語など）を検出することができる。
【００５３】
一部の例において、言語検出のために提供または受信されたメッセージは、特定の言語に固有ではなくおよび／または言語嗜好に関係なく、任意のユーザに認識できる特定の数字、文字または画像（例えば、顔文字または絵文字）を含む。本開示に記載のシステムおよび方法は、言語検出を行う際に、このような文字または画像もしくはこのような文字または画像のみを含むメッセージを無視することができる。
【００５４】
図１２は、メッセージの言語を検出する例示的な方法１２００を示すフローチャートである。この方法は、検出メソッドモジュール１６、分類器モジュール１８およびマネージャーモジュール２０を用いて、所定の入力メッセージ１２０４の最も可能性のある言語または最も良い言語１２０２を特定する。入力メッセージ１２０４は、ユーザまたはメッセージを作成するときに使用されたシステムに関する情報を含むことができる。例えば、入力メッセージ１２０４は、ユーザ識別番号（または他のユーザ識別子）、メッセージを作成するときに使用されたキーボードに関する情報（例えば、キーボード言語）、および／
またはメッセージを作成するときに使用されたオペレーティングシステムに関する情報（例えば、オペレーティングシステム言語）を含んでもよい。
【００５５】
図示された例示的な方法１２００において、検出メソッドモジュール１６は、１０個の異なる言語検出メソッドを含む。検出メソッドモジュール１６に含まれた３つの言語検出メソッドは、バイトn-gram Ａ １２０６）、バイトn-gram Ｂ １２０８およびバイトn-gram Ｃ １２１０である。これらは、全てバイトn-gramメソッドであり、異なるセットまたは数の言語を検出するように構成することができる。例えば、バイトn-gram Ａ １２０６は、９７個の言語を検出するように構成され、バイトn-gram Ｂ １２０８は、２７個の言語を検出するように構成され、バイトn-gram Ｃ １２１０は、２０個の言語を検出するように構成されてもよい。検出メソッドモジュール１６に含まれた言語検出メソッドのうち２つは、辞書に基づくメソッドであり、異なるセットまたは数の言語を検出するように構成され得る辞書Ａ １２１２および辞書Ｂ １２１４である。例えば、辞書Ａ １２１２は
、９個の言語を検出するように構成され、辞書Ｂ １２１４は、１０個の言語を検出する
ように構成されてもよい。検出メソッドモジュール１６に含まれた言語検出メソッドのうち２つは、ユーザ言語プロファイルメソッドであり、異なるセットまたは数の言語を検出するように構成することができる言語プロファイルＡ １２１６および言語プロファイル
Ｂ １２１８である。例えば、言語プロファイルＡ １２１６は、２０個の言語を検出するように構成されてもよく、言語プロファイルＢ １２１８は、２７個の言語を検出するよ
うに構成されてもよい。検出メソッドモジュール１６に含まれた言語検出メソッドのうち２つは、アルファベットに基づくメソッドであり、異なるセットまたは数の言語を検出するように構成されたアルファベットＡ １２２０およびアルファベットＢ １２２２である。例えば、アルファベットＡ １２２０は、２０個の言語を検出するように構成されても
よく、アルファベットＢ １２２２は、２７個の言語を検出するように構成されてもよい
。検出メソッドモジュール１６は、さらに、スクリプトに基づく言語検出メソッド１２２４を含む。
【００５６】
検出メソッドモジュール１６内の異なる言語検出メソッドからの出力は、分類器モジュール１８によって結合され処理される。例えば、補間分類器１２２６は、バイトn-gram 
Ｂ １２０８および辞書Ｂ １２１４からの出力を結合する。バイトn-gram Ｂ １２０８の補間重みは、例えば０．１であってもよく、辞書Ｂ １２１４のの補間重みは、例えば０
．９であってもよい。分類器モジュール１８は、バイトn-gram Ｃ １２１０、辞書Ｂ １
２１４、言語プロファイルＢ １２１８、およびアルファベットＢ １２２２からの出力を結合するＳＶＭ分類器１２２８を使用することもできる。分類器モジュール１８は、スクリプトに基づくメソッド１２２４と、バイトn-gram Ｃ １２１０、辞書Ａ １２１２、言
語プロファイルＡ １２１６およびアルファベットＡ １２２０のＳＶＭ分類器組み合わせとの第１組み合わせ１２３０を使用することもできる。さらに、分類器モジュール１８は、スクリプトに基づくメソッド１２２４と、バイトn-gram Ｃ １２１０、辞書Ａ １２１
２および言語プロファイルＡ １２１６の線形ＳＶＭ分類器組み合わせとの第２組み合わ
せ１２３２を使用することもできる。図１２は、特定の分類器モジュール１８に使用された言語検出テスト、分類器および／または検出テストの出力の組み合わせを示しているが、他の言語検出テスト、分類器および／または組み合わせを使用することもできる。
【００５７】
第１組み合わせ１２３０および第２組み合わせ１２３２の両方に、スクリプトに基づくメソッド１２２４および分類器を段階的な手法で使用することができる。例えば、スクリプトに基づくメソッド１２２４を用いて、独特なスクリプトを有する言語を迅速に特定することができる。メッセージ１２０４の言語を特定した場合、第１組み合わせ１２３０のＳＶＭ分類器または第２組み合わせの線形ＳＶＭ分類器を使用する必要がない。
【００５８】
一般的に、管理モジュール２０は、特定の言語検出メソッド、分類器および／または検
出メソッドの出力の組み合わせを選択することによって、メッセージ１２０４内の言語を特定することができる。管理モジュール２０は、言語分野に従ってまたはメッセージの予測言語に従って、上記の選択を行うことができる。例えば、管理モジュール２０は、分類器によって決定された信用度スコアに従って、特定の分類器を選択することができる。例えば、管理モジュール２０は、分類器からの最も高い予測信用度スコアを有する出力を選択することができる。
【００５９】
特定の実現例において、本開示に記載のシステムおよび方法は、言語の検出をサービスとして複数のユーザに提供することに適している。このサービスは、システムおよび方法が言語を特定する速度によって可能になり、および／または多様なクライアントからのサービス要求に基づいて、実行時に複数の特定技術を処理するシステムおよび方法の能力によって強化される。
【００６０】
本開示に記載された主題および動作の実施形態は、本開示に開示された構造およびそれらの構造的均等物を含むデジタル電子回路、コンピュータソフトウェア、ファームウェアまたはハードウェア、もしくはそれらの１つ以上の組み合わせにおいて、実現することができる。本開示に記載された主題の実施形態は、１つ以上のコンピュータプログラム、すなわち、コンピュータ記憶媒体上に符号化され、データ処理装置によって実行されるまたはデータ処理装置の動作を制御するためのコンピュータプログラム命令の１つ以上のモジュールとして実装することができる。これに代えてまたは加えて、プログラム命令は、人為的に生成された伝播信号、例えば、データ処理装置による実行のため、情報を適切な受信機に送信するために符号化することによって生成された機械生成電気信号上に符号化されてもよい。コンピュータ記憶媒体は、コンピュータ可読記憶装置、コンピュータ可読記憶基板、ランダムまたはシリアルアクセスメモリアレイまたはデバイス、またはそれらの１つ以上の組み合わせであってもよく、またはそれらを含んでもよい。また、コンピュータ記憶媒体は、伝播信号ではないが、人工的に生成された伝播信号に符号化されたコンピュータプログラム命令のソースまたは宛先であってもよい。コンピュータ記憶媒体は、１つ以上の別個の物理要素または媒体（例えば、複数のＣＤ、ディスク、または他の記憶装置）であってもよく、それらに含まれてもよい。
【００６１】
本開示に記載の動作は、データ処理装置によって、１つ以上のコンピュータ可読記憶装置に記憶されたデータまたは他のソースから受信されたデータに対して実行される動作として実現することができる。
【００６２】
「データ処理装置」という用語は、データを処理するための全ての種類の機械、デバイスおよびマシン、例えばプログラム可能なプロセッサ、コンピュータ、チップシステム、またはこれらの複数のものによる組み合わせを含む。装置は、例えば、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）またはＡＳＩＣ（特定用途向け集積回路）などの専用論理回路を含むことができる。装置は、ハードウェアに加えて、関与するコンピュータプログラムの実行環境を生成するコード、例えばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらの１つ以上の組み合わせを構成するコードを含むことができる。装置および実行環境は、ウェブサービス、分散コンピューティングインフラストラクチャおよびグリッドコンピューティングインフラストラクチャなど、さまざまな異なるコンピューティングモデルインフラストラクチャを実現することができる。
【００６３】
（プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプトまたはコードとも知られている）コンピュータプログラムは、コンパイル言語またはインタープリタ言語、宣言型言語または手続き型言語を含む任意のプログラミング言語で記述することが
でき、スタンドアロンプログラムとしてまたはコンピューティング環境内の使用に適したモジュール、コンポーネント、サブルーチン、オブジェクトまたはその他のユニットとしての任意の形で使用することができる。コンピュータプログラムは、ファイルシステム内のファイルに対応することができるが、必ずしも対応する必要がない。プログラムは、他のプログラムまたはデータ（例えば、マークアップ言語文書に記憶された１つ以上のスクリプト）を保持するファイルの一部、関与しているプログラムに専用の単一ファイル、または複数の同格ファイル（例えば、１つ以上のモジュール、サブプログラムまたはコードの一部を記憶するファイル）に記憶されてもよい。コンピュータプログラムは、１つのコンピュータ上で、または１つのサイトに配置されまたは複数のサイトにわたって分散され、通信ネットワークによって相互接続されている複数のコンピュータ上で実行するように実装することができる。
【００６４】
本開示に記載のプロセスおよびロジックフローは、入力データを操作して出力を生成することによって動作を行う１つ以上のコンピュータプログラムを実行する１つ以上のプログラマブルプロセッサによって実施することができる。また、プロセスおよびロジックフローは、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）またはＡＳＩＣ（特定用途向け集積回路）などの専用論理回路によっても実施することができ、装置は、専用論理回路として実装することもできる。
【００６５】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用マイクロプロセッサ、専用マイクロプロセッサ、および任意のデジタルコンピュータの任意の１つ以上のプロセッサを含む。一般的に、プロセッサは、読出専用メモリまたはランダムアクセスメモリもしくはその両方から、命令およびデータを受信する。コンピュータの必須要素は、命令に従って動作を実行するためのプロセッサと、命令およびデータを記憶するための１つ以上のメモリデバイスとである。一般的に、コンピュータはまた、データを記憶するための１つ以上の大容量記憶装置、例えば磁気ディスク、磁気光ディスクまたは光ディスクを含むおよび／またはこれらの大容量記憶装置とデータを送受信するように動作可能に結合される。しかしながら、コンピュータは、これらの装置を有する必要がない。さらに、コンピュータは、別のデバイス、例えば携帯電話、携帯情報端末（ＰＤＡ）、モバイルオーディオまたはビデオプレーヤ、ゲームコンソール、全地球測位システム（ＧＰＳ）受信機、または携帯型記憶デバイス（例えば、ユニバーサルシリアルバス（ＵＳＢ）フラッシュドライブ）を含むことができる。コンピュータプログラム命令およびデータの記憶に適したデバイスは、例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭおよびフラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスクまたはリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭおよびＤＶＤ−ＲＯＭディスクを含む全ての種類の不揮発性メモリ、媒体およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補完されてもよく、専用論理回路に組み込まれてもよい。
【００６６】
ユーザとの対話を提供するために、本開示に記載された主題の実施形態は、情報をユーザに提示するための表示装置（例えば、ＣＲＴ（陰極線管）モニタまたはＬＣＤ（液晶ディスプレイ）モニタ）、ユーザがコンピュータに入力を提供することができるキーボードおよびポインティングデバイス（例えば、マウスまたはトラックボール）を備えたコンピュータ上で実装することができる。他の種類の装置を用いて、ユーザとの対話を提供することもできる。例えば、ユーザに提供されるフィードバックは、任意種類の感覚フィードバック、例えば視覚フィードバック、聴覚フィードバックまたは触覚フィードバックであってもよく、ユーザからの入力は、音響入力、音声入力または触覚入力を含む任意の形で受信することができる。さらに、コンピュータは、ユーザによって使用されるデバイスとの間でドキュメントを送受信することによって、例えば、ウェブブラウザから受信した要求に応答して、ユーザのクライアント装置上のウェブブラウザにウェブページを送信することによって、ユーザと対話することができる。
【００６７】
本開示に記載された主題の実施形態は、例えばデータサーバなどのバックエンドコンポーネント、またはアプリケーションサーバなどのミドルウェアコンポーネント、ユーザが本開示に記載された主題の実装と対話することができるグラフィカルユーザインターフェイスまたはウェブブラウザを有するクライアントコンピュータなどのフロントコンポーネント、または１つ以上のバックエンドコンポーネント、ミドルウェアコンポーネントまたはフロントエンドコンポーネントの組み合わせを含むコンピューティングシステムに実現することができる。システムのコンポーネントは、任意の形式または媒体のデジタルデータ通信、例えば通信ネットワークと相互接続することができる。通信ネットワークの例として、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（「ＷＡＮ」）、ネットワーク間（例えば、インターネット）、およびピアツーピアネットワーク（例えば、臨時用ピアツーピアネットワーク）。
【００６８】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントとサーバとは、一般的に互いに遠隔であり、典型的には通信ネットワークを介して相互作用する。クライアントとサーバとは、対応するコンピュータ上で実行し、互いにクライアント−サーバ関係を有するコンピュータプログラムである。いくつかの実施形態において、サーバは、（例えば、クライアント装置と対話するユーザにデータを表示し、ユーザから入力を受信するために）データ（例えば、ＨＴＭＬページ）をクライアント装置に送信する。クライアント装置で生成されたデータ（例えば、ユーザ対話の結果）は、サーバ上でクライアント装置から受信することができる。
【００６９】
本開示は、多くの具体的な実施詳細を含むが、これらの詳細は、発明の範囲または請求可能な範囲を限定するものではなく、むしろ特定の発明の特定の実施形態に特有の特徴の説明として考えるべきである。本開示の別個の実施形態に記載された特定の特徴は、単一の実施形態において組み合わせとして実施することもできる。逆に、単一の実施形態に記載されたさまざまな特徴は、複数の実施形態において、別々にまたは任意の適切なサブ組み合わせで実施することもできる。さらに、上記で特徴を特定の組み合わせで作用するものとして説明したが、このような説明にも拘らず、１つ以上の特徴は、説明した組み合わせから削除されてもよく、説明した組み合わせは、サブコンビネーションに変形されてもよい。
【００７０】
同様に、動作が特定の順序で図面に示されているが、望ましい結果を達成するために、図示された順序または順番に従ってこれらの動作を実行する必要があるまたは図示された全ての動作を実行する必要があると理解すべきではない。特定の状況において、マルチ作業および並列処理は、有利である可能性がある。例えば、並列処理を使用して、複数の言語検出メソッドを同時に実行することができる。さらに、上述の実施形態におけるさまざまなシステム要素の分離は、全ての実施形態においてそのような分離が必要であると理解すべきではなく、記載されたプログラム要素およびシステムは、一般的に、単一のソフトウェア製品に一体化されまたは複数のソフトウェア製品にパッケージ化することができると理解すべきである。
【００７１】
したがって、主題の特定の実施形態を説明した。他の実施形態は、添付の特許請求の範囲内にある。場合によって、請求項に列挙された動作は、異なる順序で実行され、依然として望ましい結果を達成することができる。さらに、望ましい結果を達成するために、添付の図面に示されるプロセスは、必ずしも示された特定の順序または順番に従う必要がない。特定の実現例において、マルチ作業および並列処理が有利である可能性がある。
【図１Ａ】
2019215876.tif 000003
【図１Ｂ】
2019215876.tif 000004
【図２】
2019215876.tif 000005
【図３】
2019215876.tif 000006
【図４】
2019215876.tif 000007
【図５】
2019215876.tif 000008
【図６】
2019215876.tif 000009
【図７】
2019215876.tif 000010
【図８】
2019215876.tif 000011
【図９】
2019215876.tif 000012
【図１０】
2019215876.tif 000013
【図１１】
2019215876.tif 000014
【図１２】
2019215876.tif 000015
【手続補正書】
【提出日】令和1年8月1日(2019.8.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータによって実施される、メッセージの言語を特定する方法であって、
前記メッセージにおけるテキストに対して複数の言語検出テストを実行するステップを含み、各言語検出テストは、対応するスコアセットを決定し、前記スコアセット内の各スコアは、前記メッセージが複数の異なる言語のうち対応する言語である尤度を表し、
前記スコアセットの１つ以上の組み合わせを入力として第１分類器および第２分類器を含む１つ以上の異なる分類器に与えるステップを含み、前記第１分類器は、第１組み合わせの前記言語検出テストからの出力を用いて訓練され、前記第２分類器は、異なる第２組み合わせの前記言語検出テストからの出力を用いて訓練され、
前記１つ以上の異なる分類器の各々からの出力として、前記メッセージが前記複数の異なる言語のうち１つの言語であるという提示を取得するステップを含み、前記提示は、信用度スコアを含み、
前記信用度スコアの１つに基づいて前記メッセージの前記言語を特定するステップを含む、方法。
【請求項２】
特定の出力は、各メッセージが複数の異なる言語のうち１つである尤度を表す各スコアに対応する、請求項１に記載の方法。
【請求項３】
特定の分類器は、教師付き学習モデル、部分教師付き学習モデル、教師なし学習モデル、または補間法である、請求項１に記載の方法。
【請求項４】
前記メッセージの前記言語を特定するステップは、期待される言語検出精度に基づいて前記信用度スコアを選択することを含む、請求項１に記載の方法。
【請求項５】
前記メッセージの前記言語を特定するステップは、前記メッセージの言語ドメインに基づいて前記信用度スコアを選択することを含む、請求項１に記載の方法。
【請求項６】
前記メッセージは、文字、数字、記号および顔文字のうち２種以上を含む、請求項１に記載の方法。
【請求項７】
特定の言語検出テストは、バイトn-gramメソッド、辞書に基づくメソッド、アルファベットに基づくメソッド、またはスクリプトに基づくメソッドである、請求項１に記載の方法。
【請求項８】
前記１つ以上の組み合わせは、バイトn-gramメソッドおよび辞書に基づくメソッドから得られたスコアセットを含む、請求項１に記載の方法。
【請求項９】
前記１つ以上の組み合わせは、スクリプトに基づくメソッドおよびアルファベットに基づくメソッドのうちの少なくとも１つから得られたスコアセットをさらに含む、請求項１に記載の方法。
【請求項１０】
システムであって、
１つ以上のコンピュータを備え、
前記１つ以上のコンピュータは、
メッセージにおけるテキストに対して複数の言語検出テストを実行するようにプログラムされ、各言語検出テストは、対応するスコアセットを決定し、前記スコアセット内の各スコアは、前記メッセージが複数の異なる言語のうち対応する言語である尤度を表し、
前記スコアセットの１つ以上の組み合わせを入力として第１分類器および第２分類器を含む１つ以上の異なる分類器に与えるようにプログラムされ、前記第１分類器は、第１組み合わせの前記言語検出テストからの出力を用いて訓練され、前記第２分類器は、異なる第２組み合わせの前記言語検出テストからの出力を用いて訓練され、
前記１つ以上の異なる分類器の各々からの出力として、前記メッセージが前記複数の異なる言語のうち１つの言語であるという提示を取得するようにプログラムされ、前記提示は、信用度スコアを含み、
前記信用度スコアの１つに基づいて前記メッセージの前記言語を特定するようにプログラムされている、システム。
【請求項１１】
特定の出力は、各メッセージが複数の異なる言語のうち１つである尤度を表す各スコアに対応する、請求項１０に記載のシステム。
【請求項１２】
特定の分類器は、教師付き学習モデル、部分教師付き学習モデル、教師なし学習モデル、または補間法である、請求項１０に記載のシステム。
【請求項１３】
前記メッセージの前記言語を特定することは、期待される言語検出精度に基づいて前記信用度スコアを選択することを含む、請求項１０に記載のシステム。
【請求項１４】
前記メッセージの前記言語を特定することは、期待される言語検出精度に基づいて前記信用度スコアを選択することを含む、請求項１０に記載のシステム。
【請求項１５】
前記メッセージは、文字、数字、記号および顔文字のうち２種以上を含む、、請求項１０に記載のシステム。
【請求項１６】
特定の言語検出テストは、バイトn-gramメソッド、辞書に基づくメソッド、アルファベットに基づくメソッド、またはスクリプトに基づくメソッドである、請求項１０に記載のシステム。
【請求項１７】
前記１つ以上の組み合わせは、バイトｎグラムシステムおよび辞書ベースのシステムから得られたスコアセットを含む、請求項１０に記載のシステム。
【請求項１８】
前記１つ以上の組み合わせは、スクリプトに基づくメソッドおよびアルファベットに基づくメソッドのうちの少なくとも１つから得られたスコアセットをさらに含む、請求項１０に記載のシステム。
【請求項１９】
命令を格納する非一時的コンピュータ可読媒体を含む物品であって、これらの命令は、コンピュータによって実行されると、以下の動作を実行させ、
前記動作は、
メッセージにおけるテキストに対して複数の言語検出テストを実行することを含み、各言語検出テストは、対応するスコアセットを決定し、前記スコアセット内の各スコアは、前記メッセージが複数の異なる言語のうち対応する言語である尤度を表し、
前記スコアセットの１つ以上の組み合わせを入力として第１分類器および第２分類器を含む１つ以上の異なる分類器に与えることを含み、前記第１分類器は、第１組み合わせの前記言語検出テストからの出力を用いて訓練され、前記第２分類器は、異なる第２組み合わせの前記言語検出テストからの出力を用いて訓練され、
前記１つ以上の異なる分類器の各々からの出力として、前記メッセージが前記複数の異なる言語のうち１つの言語であるという提示を取得することを含み、前記提示は、信用度スコアを含み、
前記信用度スコアの１つに基づいて前記メッセージの前記言語を特定することを含む、物品。
【請求項２０】
特定の出力は、各メッセージが複数の異なる言語のうち１つである尤度を表す各スコアに対応する、請求項１９に記載の物品。
【請求項２１】
特定の分類器は、教師付き学習モデル、部分教師付き学習モデル、教師なし学習モデル、または補間法である、請求項１９に記載の物品。
【請求項２２】
前記メッセージの前記言語を特定することは、期待される言語検出精度に基づいて前記信用度スコアを選択することを含む、請求項１９に記載の物品。
【請求項２３】
前記メッセージの前記言語を特定することは、期待される言語検出精度に基づいて前記信用度スコアを選択することを含む、請求項１９に記載の物品。
【請求項２４】
前記メッセージは、文字、数字、記号および顔文字のうち２種以上を含む、請求項１９に記載の物品。
【請求項２５】
特定の言語検出テストは、バイトn-gramメソッド、辞書に基づくメソッド、アルファベットに基づくメソッド、またはスクリプトに基づくメソッドである、請求項１９に記載の物品。
【請求項２６】
前記１つ以上の組み合わせは、バイトｎグラムシステムおよび辞書ベースのシステムから得られたスコアセットを含む、請求項１９に記載の物品。
【請求項２７】
前記１つ以上の組み合わせは、スクリプトに基づくメソッドおよびアルファベットに基づくメソッドのうちの少なくとも１つから得られたスコアセットをさらに含む、請求項１９に記載の物品。
【外国語明細書】
2019215876000001.pdf