(57)【特許請求の範囲】
【請求項１】
メモリと、プロセッサとを有するコンピュータシステムにおいて、サンプルテキストの基調言語である可能性の高い自然言語を識別する方法であって、
（Ａ）前記プロセッサが、データ入力回路からサンプルテキストを定義するテキストデータを入力し、前記メモリに記憶された複数の自然言語から成る集合の各言語についての確率データを用いて、前記サンプルテキストが前記各言語で発生する確率を示すサンプル確率データを取得するステップと、
（Ｂ）前記プロセッサが、前記サンプル確率データを使用して、前記サンプル確率データが最も高い確率を示す言語を識別する言語識別データを取得して、データ出力回路から出力するステップと、
を含み、
前記集合内の言語の１つ以上を含む第１の部分集合の各言語の前記確率データはＮ文字列確率データを含み、前記集合内の言語の１つ以上を含む第２の部分集合の各言語の前記確率データは単語確率データを含み、前記第１の部分集合の各言語の前記Ｎ文字列確率データは、前記言語がテキストの基調言語である場合に、複数のＮ文字列から成る集合の各Ｎ文字列ごとに、該Ｎ文字列が前記テキスト内で発生するＮ文字列確率を示し、前記第２の部分集合の各言語の前記単語確率データは、前記言語がテキストの基調言語である場合に、複数の単語から成る集合の各単語ごとに、該単語が前記テキスト内で発生する単語確率を示し、
前記ステップ（Ａ）は、プロセッサが、
前記サンプルテキストを正規化して１以上のトークンに分解し、
前記１以上のトークン毎に、前記集合の各言語が、当該トークンについてＮ文字列確率データ及び単語確率データの少なくとも１つを有するかどうか判断し、有すると判断された場合、該Ｎ文字列確率データ及び単語確率データを取得し、
前記取得したＮ文字列確率データ及び単語確率データを言語毎に加算又は一次結合することにより、前記サンプル確率データとして、言語毎の組合せ確率データを取得すること、を含む
サンプルテキスト基調言語識別方法。
【請求項２】
サンプルテキストの基調言語である可能性の高い自然言語を識別するコンピュータシステムであって、
複数の自然言語から成る集合の各言語についての確率データを記憶するメモリと、
プロセッサと、を備え、
前記集合内において第１の部分集合の各言語の前記確率データはＮ文字列確率データを含み、前記集合内の第２の部分集合の各言語の前記確率データは単語確率データを含み、
前記第１の部分集合の各言語の前記Ｎ文字列確率データは、前記言語がテキストの基調言語である場合に、複数のＮ文字列から成る集合の各Ｎ文字列ごとに、該Ｎ文字列が前記テキスト内で発生するＮ文字列確率を示し、前記第２の部分集合の各言語の前記単語確率データは、前記言語がテキストの基調言語である場合に、複数の単語から成る集合の各単語ごとに、該単語が前記テキスト内で発生する単語確率を示し、

前記プロセッサが、データ入力回路からサンプルテキストを定義するテキストデータを入力し、
前記プロセッサが、前記サンプルテキストを正規化して１以上のトークンに分解し、
前記プロセッサが、前記メモリに記憶された確率データを用いて、前記１以上のトークン毎に、前記集合の各言語が、当該トークンについてＮ文字列確率データ及び単語確率データの少なくとも１つを有するかどうか判断し、有すると判断された場合、該Ｎ文字列確率データ及び単語確率データを取得し、
前記プロセッサが、前記取得したＮ文字列確率データ及び単語確率データを言語毎に加算又は一次結合することにより、言語毎の組合せ確率データを取得し、
前記プロセッサが、前記組合せ確率データが最も高い確率を示す言語を識別する言語識別データを取得してデータ出力回路から出力すること、
を実行する、コンピュータシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、テキストの言語の自動識別に関する。
【０００２】
【従来の技術】
テキストの言語を自動的に識別するために、多数の技法が提案されている。グレフェンステッテ（Grefenstette, G.）による「２つの言語識別方式の比較（Comparing Two Language Identification Schemes）」（ＪＡＤＴ  １９９５年、『第３回文字データの統計分析に関する国際会議（3rd International Conference on Statistical Analysis of Textual Data)』（ローマ、１９９５年１２月１１から１３日）２６３〜２６８頁）は、文字トライグラム（３文字列）を使用する技法と、一般的なショートワード（短い単語）に基づく技法の２つを比較している。
【０００３】
グレフェンステッテにより説明されているトライグラム技法は、多数の異なる言語のそれぞれからの大きいテキストサンプルを、唯一のセパレータとして間隔文字（スペース）を使用し、語頭及び末尾のバイグラム（２文字列）に印をつけるように各トークンの前後に下線を加えることによりトークン化する。その後、各言語の３文字のシーケンスの発生回数が数えられる。最小回数を超えるトライグラムは保存され、保存されたトライグラムの確率は、その言語のために保存された全てのトライグラムの発生回数を加算し、発生回数の和でそのトライグラムの発生回数を割ることにより概算される。その後、文をトライグラムに分割し、各言語ごとにトライグラムのシーケンスの確率を計算し、確率が割り当てられていないトライグラムに最小の確率を割り当てることによってその文の言語を推測するために、この確率が用いられる。
【０００４】
グレフェンステッテにより説明されているショートワード技法は、多数の異なる言語のそれぞれからの大きいテキストサンプルを同様にトークン化し、一般に５文字以下の単語であるトークン全ての発生回数を計算する。最小回数を超えるトークンは保存され、保存されたトークンの確率がトライグラム技法と同様に概算される。その後、文をトークン化し、各言語ごとにトークンのシーケンスの確率を計算し、確率が割り当てられていないトークンに最小の確率を割り当てることによってその文の言語を推測するために、この確率が用いられる。文が所定の言語に属する確率は、これらのトークンの確率の積として取得される。
【０００５】
グレフェンステッテは、２つの言語推測を得るために各技法に各文を送り込むことにより、これらの技法を比較した。いずれの技法も、長い文では上手く機能するが、より短い文ではトライグラムの方が強力である。所定の文中にはトライグラムよりも少量の単語が存在し、各単語又はトライグラムは掛け算を確率計算に寄与させるので、ショートワードの使用は実行の際に僅かに高速である。
【０００６】
【発明が解決しようとする課題】
本発明は、ショートワード又は常用語技法、及びＮ−グラム（Ｎ文字列）技法を使用する自動言語識別において発生する基本的な問題を扱う。１つの問題はサンプルサイズに関し、別の問題は各技法がよりよく機能する異なる文脈に関する。
【０００７】
グレフェンステッテにより示されたように、ショートワード技法及びＮ−グラム技法はいずれも長い文等の大きいサンプルで上手く機能する一方で、Ｎ−グラム技法は短い文等のより小さいサンプルではより頑強（ロバスト）である。しかしながら、Ｎ−グラム技法でさえ、サンプルのサイズが小さくなるにつれて、大きいサンプルほどには上手く機能しなくなる。その結果、Ｎ−グラム技法でさえも、インターネットサーチエンジンへのユーザ入力照会等のある種のアプリケーションで一般的に生じる非常に小さいサンプルに対しては不十分となる。
【０００８】
常用語技法は、単語へのトークン化が難しい言語（中国語等）又は常用語のセットを定義することが難しい言語に適用することが困難であるか、又は不可能である。トライグラム、Ｎ−グラム、及びコンピュータ化されたテキストにおける他の人工的な分割は、信頼性が高いとみなされておらず、正確な言語の識別という点で限られた効果を有することが議論されている。この問題のより一般的な言明は、ある文脈においてはＮ−グラム技法が単語技法よりも優れた結果をもたらし、他の文脈においては単語技法がより優れた結果をもたらすというものである。
【０００９】
【課題を解決するための手段】
本発明は、これらの問題を緩和する自動言語識別のための新技法の発見に基づく。新技法は、サンプルテキストの基調言語である可能性の高い自然言語を自動的に識別する。そのために、新技法は、サンプルテキストを定義しているテキストデータと、複数言語から成る集合（セット）の各言語のための確率データとを、この集合の各言語ごとに、サンプルテキストがその言語で発生する確率を示しているサンプル確率データを自動的に取得するために使用する。新技法は次に、言語識別データを自動的に取得するためにサンプル確率データを使用する。言語識別データは、そのサンプル確率データが最も高い確率を示す集合内の言語を識別する。
【００１０】
新技法において、少なくとも１つの言語のための確率データはＮ−グラム確率データを含み、少なくとも１つの言語のための確率データは単語確率データを含む。１言語のためのＮ−グラム確率データは、複数のＮ−グラムから成る集合の各Ｎ−グラムごとに、その言語がテキストの基調言語である場合に、そのＮ−グラムがそのテキストで発生する確率を示す。１言語のための単語確率データは、複数の単語から成る集合の各単語ごとに、その言語がテキストの基調言語である場合に、その単語がそのテキストで発生する確率を示す。
【００１１】
新技法は、Ｎ−グラム確率データを有する少なくとも１つの言語及び単語確率データを有する少なくとも１つの言語を含む複数の言語から成る部分集合（サブセット）の各言語ごとのサンプル確率データを自動的に取得する。Ｎ−グラム確率データを有する言語のサンプル確率データは、その言語のＮ−グラム確率データからの情報を含み、単語確率データを有する言語のサンプル確率データは、その言語の単語確率データからの情報を含む。
【００１２】
新技法は、トライグラムのための確率データ、及び５文字以下の単語のための確率データと共に実施されることが可能である。サンプル確率データは、Ｎ−グラム又は単語確率データを有する全ての言語で取得されることが可能である。少なくとも１つの言語は、Ｎ−グラム及び単語確率データの両方を有することができ、このような各言語のためのサンプル確率データはＮ−グラム確率データ及びその単語確率データの両方からの情報を含むことができる。少なくとも１つの言語は、Ｎ−グラム確率データのみを有することができる。
【００１３】
言語がＮ−グラム及び単語確率データの両方を有する場合には、Ｎ−グラム確率データ及び単語確率データは、各Ｎ−グラム又は単語のための確率値を含むことができ、この確率値はその言語のサンプル確率データを取得するために使用されることが可能である。テキストサンプルで発生する各Ｎ−グラムのための確率値が、Ｎ−グラムの総確率値を取得するために加算され、テキストサンプルで発生する各単語のための確率値が、単語の総確率値を取得するために加算されることが可能なように、確率値は対数であり得る。確率値が含まれない各Ｎ−グラム又は単語のために、低い確率を示す定数である確率値を使用することができる。総確率値はその後、その言語のためのサンプル確率値を取得するために、例えば加算して２で割ることにより組み合わせられる。
【００１４】
新技法は更に、サンプルテキストを定義しているテキストデータと、上述された確率データと、上述のようにサンプル確率データを自動的に取得するためにテキストデータ及び確率データを使用するプロセッサと、を含むシステムで実施されることができる。このプロセッサはその後、サンプル確率データを使用し、サンプル確率データが最も高い確率を示す言語を識別する言語識別データを自動的に取得する。
【００１５】
また、新技法は、サンプルテキストを定義しているテキストデータと、記憶媒体アクセス装置とを含むシステムで用いられる１つの製品で実施されることができる。この製品は、記憶媒体と、この記憶媒体により記憶された確率データ及び命令データとを含むことができる。システムのプロセッサは、命令データにより示される命令を実行する際に、上述のようにサンプル確率データを自動的に取得するためにテキストデータ及び確率データを使用する。プロセッサは次に、サンプル確率データを使用し、言語識別データを自動的に取得する。
【００１６】
また、新技法は、第１のマシンを動作させてネットワークを介して第２のマシンにデータを転送する方法でも実施されることができ、この転送されたデータは、上述のような確率データ及び命令データを含む。
【００１７】
Ｎ−グラムのみ又は単語のみを使用して言語を自動的に識別するための従来の技法と比較して、新技法は大きいサンプルに対してそれぞれの手法により個々に得られる正確さを犠牲にすることなく、全体的な認識の正確さを向上させる方法で両手法を組み合わせるので、この新技法は有利である。特に新技法は、小さいサンプルに対して著しく向上した正確さを有し、インターネットサーチエンジンへのユーザ入力照会等の非常に小さいサンプルで上手く使用されることが可能である。また、新技法は、各言語のより小さい（短い）テキストがＮ−グラム及び単語確率を取得するために使用される場合でさえ、向上された正確さを達成する。
【００１８】
また、新技法は、識別されている複数言語から成る集合が、トライグラムの大部分を共有するが異なる機能語を有する、スペイン語及びポルトガル語等の一対の密接に関連した言語を含む場合に有利である。このコンテキストにおいて、新技法は、Ｎ−グラム技法の利点を備えるうえ更に、密接に関連した言語を単語確率情報に基づいて識別することが可能である。
【００１９】
また、新技法は、追加言語に容易に拡張されることが可能であるので有利である。特に、トライグラム又は他のＮ−グラムのみを使用する従来の言語識別技法と比較すると、新技法は従来の技法が作り出すような、大きな混乱をもたらすマトリックスを作り出さないので、この新技法はより容易に追加言語に拡張されることが可能である。
【００２０】
新技法は、３０言語を超える言語から成る集合で適切に機能することが証明されており、この集合に更に言語を加えることは、既にこの集合に存在する言語のための認識の正確さを低下させない。この結果、新技法は、ワールドワイドウェブから検索された英語以外のテキスト等の新たに利用可能な言語データに、容易に適用されることが可能である。また、新技法は、中国語及び韓国語等の区別可能な単語境界のない、又はマルチバイトの文字集合を有する言語を含む集合にも上手く適用されている。
【００２１】
本発明により提供されるサンプルテキストの基調言語である可能性の高い自然言語を自動的に識別する方法は、（Ａ）サンプルテキストを定義しているテキストデータと、複数の自然言語から成る集合の各言語のための確率データとを、その集合の少なくとも２つの言語の各言語ごとに、そのサンプルテキストがその言語で発生する確率を示しているサンプル確率データを自動的に取得するために使用するステップと、（Ｂ）言語に属するサンプル確率データが最も高い確率を示す言語を識別する言語識別データを自動的に取得するためにサンプル確率データを使用するステップとを含む。上記言語の１つ又は複数を含む第１の部分集合の各言語の確率データはＮ−グラム確率データを含み、上記言語の１つ又は複数を含む第２の部分集合の各言語の確率データは単語確率データを含み、この第１の部分集合の各言語のためのＮ−グラム確率データは、その言語がテキストの基調言語である場合に、複数のＮ−グラムから成る集合の各Ｎ−グラムごとに、このＮ−グラムがそのテキスト内で発生する確率を示し、第２の部分集合の各言語のための単語確率データは、その言語がテキストの基調言語である場合に、複数の単語から成る集合の各単語ごとに、この単語がそのテキスト内で発生する確率を示す。（Ａ）は、言語の第３の部分集合の各言語のためのサンプル確率データを自動的に取得するステップを含み、この第３の部分集合及び第１の部分集合に属する少なくとも１つの言語のために、サンプル確率データはその言語のＮ−グラム確率データからの情報を含み、第３の部分集合及び第２の部分集合に属する少なくとも１つの言語のために、サンプル確率データはその言語の単語確率データからの情報を含むことを特徴とする。
【００２２】
【発明の実施の形態】
「自然言語」は、国、地方、又は地域、或いは民族又は職業上のグループ等のコミュニティ内で人間的な表現及びコミュニケーション（情報交換／会話）のために、ある一定期間使用される複数の記号から成る識別されたシステム（系統）である。ある自然言語は、正しいと考えられる標準システムを有するが、本明細書で使用される用語「自然言語」は、発音、文法、又は語彙等の相違点のために異なると識別される場合、方言、地方語、ジャーゴン（特殊用語）、通り言葉（cant）、俗語（argot）又は国なまり（patois）にも用いることができる。自然言語は、ラテン語、古代ギリシア語、古代ヘブライ語等々の古代言語を含み、更にエスペラント語及び統一自然言語（ＵＮＬ）等の合成言語を含む。
【００２３】
「文字」は、自然言語の書かれたか、プリントされたか、又は音声学的に表記された（音標表記された）形式に現れる離散的要素を意味する。従って、今日の英語における文字は、アルファベット及び数の要素のみでなく、句読点、分音符号、数学及び論理記号、並びに書かれたか、プリントされたか、又は音声学的に表記された英語で用いられる他の要素をも含むことができる。より一般に、文字は英数字要素に加えて、音標要素、表意要素、又は絵文字要素を含むことができる。
【００２４】
通常「Ｎ−グラム」は、一連のＮ個の文字を意味するが、文字が未知の長さの文字コードにより示される場合、Ｎ−グラムは一連の文字コードからの一連のＮバイトを意味することもできる。「トライグラム」は、Ｎ＝３であるＮ−グラムである。
【００２５】
テキストの文字により形成される単語が、１つの言語が優位性の基準を満たすように複数言語から成る集合で発生する場合、このテキストは「基調言語／主言語」を有する。例えば、基準は、単語の過半数が基調言語で発生し、単語の半分未満が他の言語のそれぞれで発生するというものであり得る。或いは、基準は単に、他のあらゆる言語においてよりも多くの単語が基調言語で発生するというものであってもよい。或いは、基準は、各言語の特徴である特殊文字の密度を比較する特殊文字手法に基づいていてもよく、この手法では基調言語がその特殊文字の最高の密度を有する。或いは、基準はより主観的に、そのテキストの単語が発生する言語に精通している人間の読者により到達されるであろう結論に基づくものであってもよい。
【００２６】
図１から３は、本発明の一般的な特徴を示す。図１は、サンプルテキストの基調言語である可能性の高い自然言語を識別する方法を概略的に示すフローチャートである。
【００２７】
テキストデータ１０は、基調言語を有するサンプルテキストを定義する。確率データ１２は、複数の自然言語から成る集合の各自然言語ごとの確率を示す。例示的に破線によって確率データ１２に接続される集合図１４は、幾つかの言語のための確率データの性質を示す。集合図１４の外側の円は、確率データ１２が確率を示す自然言語の全体集合を表す。この外側の円の中には、言語の第１及び第２の部分集合をそれぞれ表す内側の円１６及び１８が存在する。
【００２８】
第１の部分集合は、確率データ１２がそのためのＮ−グラム確率データを含む複数の言語を含む。第１の部分集合内の各言語のためのＮ−グラム確率データは、Ｎ−グラムから成る集合の各Ｎ−グラムごとに、その言語がテキストの基調言語である場合にＮ−グラムがそのテキストで発生する確率を示す。第１の部分集合は、Ｐと示され内側の円１６内の小さい円で示される言語を例示的に含む。
【００２９】
第２の部分集合は、確率データ１２がそのための単語確率を示す複数の言語を含む。第２の部分集合内の各言語のための単語確率データは、単語から成る集合の各単語ごとに、その言語がテキストの基調言語である場合に単語がそのテキストで発生する確率を示す。第２の部分集合は、Ｑと示され内側の円１８内の小さい円で示される言語を例示的に含む。
【００３０】
集合図１４で示唆されるように、第１及び第２の部分集合は、Ｎ−グラム確率及び単語確率の両方を有する幾つかの言語が存在することから重なり得、また第１及び第２の部分集合のどちらにも属さないが、別のタイプの確率データを有する幾つかの言語も存在し得る。
【００３１】
テキストデータ１０及び確率データ１２は、言語の第３の部分集合の各言語ごとのサンプル確率を示すサンプル確率データ２０を自動的に取得するために使用される。第３の部分集合は、例示的に言語Ｐ及びＱで示される第１及び第２の部分集合のそれぞれからの少なくとも１つの言語を含む。言語Ｐのサンプル確率データ２２は、言語ＰのためのＮ−グラム確率データからの情報を含む。言語Ｑのサンプル確率データ２４は、言語Ｑのための単語確率データからの情報を含む。
【００３２】
図１はまた、サンプル確率データ２０が自動的に言語識別データ２６を取得するために使用されることを示す。言語識別データ２６は、そのサンプル確率データが最も高い確率を示す第３の部分集合内の言語を識別する。
【００３３】
図２の処理ボックス４０において、技法は、複数の自然言語から成る集合の各自然言語ごとにサンプルテキストを定義しているテキストデータと確率データとを使用し、その集合内の少なくとも２つの言語の各言語ごとに、サンプルテキストがその言語で発生する確率を示すサンプル確率データを自動的に取得する。複数の言語から成る第１の部分集合の各言語ごとの確率データは、その言語がテキストの基調言語である場合に、複数のＮ−グラムから成る集合の各Ｎ−グラムごとに、そのＮ−グラムがそのテキストで発生する確率を示すＮ−グラム確率データを含む。第２の部分集合の各言語ごとの確率データは、その言語がテキストの基調言語である場合に、複数の単語から成る集合の各単語ごとに、その単語がそのテキストで発生する確率を示す単語確率データを含む。この技法は、複数の言語から成る第３の部分集合の各言語ごとのサンプル確率データを自動的に取得する。第３の部分集合の少なくとも１つの言語は、第１の部分集合にも属し、それのサンプル確率データはこの言語のＮ−グラム確率データからの情報を含む。第３の部分集合の少なくとも１つの言語は、第２の部分集合にも属し、それのサンプル確率データはこの言語の単語確率データからの情報を含む。
【００３４】
処理ボックス４２において、この技法は、サンプル確率データを使用し、サンプル確率データが最も高い確率を示す言語を識別しているデータを自動的に取得する。
【００３５】
図３のマシン６０は、サンプルテキストを定義しているテキストデータ６４を取得するため、及びメモリ６６内のデータにアクセスするために接続されたプロセッサ６２を含む。また、プロセッサ６２は、データ入力回路６８を介してデータを受信するためにも接続され、このデータ入力回路６８は例示的に、メモリ７０、記憶媒体アクセス装置７２、又はネットワーク７４との接続から受信されたデータを提供することができる。また、プロセッサ６２は、データ出力回路７６を介してデータを提供するためにも接続され、このデータ出力回路７６は、データ入力回路６８がそこからデータを受信することが可能な構成要素と同様の構成要素への接続を介してデータを提供することが可能である。従って、プロセッサ６２は、パーソナルコンピュータ、ワークステーション又はサーバの中央処理装置（ＣＰＵ）、或いは以下で説明されるように動作することが可能な他の任意の処理装置であってよい。
【００３６】
テキストデータ６４は、ユーザ入力回路（図示せず）、メモリ６６、又はデータ入力回路６８を含む任意の適切なソースから取得され得る。例えばプロセッサ６２がサーバである場合、テキストデータ６４はネットワーク７４及びデータ入力回路６８を介してクライアントマシンから受信され得、この結果は同様に、データ出力回路７６及びネットワーク７４を介してクライアントマシンに提供され得る。
【００３７】
データ入力回路６８によって例示的に提供されたデータの本体８０は、確率データ８２及び命令データ８４を含む。確率データ８２は、複数の自然言語から成る集合のための確率を示す。複数の言語から成る第１の部分集合の各言語ごとの確率データ８２は、その言語がテキストの基調言語である場合に、複数のＮ−グラムから成る集合の各Ｎ−グラムごとに、そのＮ−グラムがそのテキストで発生する確率を示すＮ−グラム確率データを含む。複数の言語から成る第２の部分集合の各言語ごとの確率データ８２はまた、その言語がテキストの基調言語である場合に、複数の単語から成る集合の各単語ごとに、その単語がそのテキストで発生する確率を示す単語確率データを含む。
【００３８】
おそらく確率データ８２をメモリ６６にロードした後に、命令データ８４によって示された命令を実行する際に、プロセッサ６２はサンプル確率データ９０及び言語識別データ９２を自動的に取得する。より明確には、プロセッサ６２はテキストデータ６４及び確率データ８２を使用し、サンプル確率データ９０を自動的に取得することができる。サンプル確率データ９０は、複数の言語から成る第３の部分集合の各言語のために、サンプルテキストがその言語で発生する確率を示すことができる。第１の部分集合にも属する、第３の部分集合内の少なくとも１つの言語のために、サンプル確率データ９０は、その言語のＮ−グラム確率データからの情報を含む。第２の部分集合にも属する、第３の部分集合内の少なくとも１つの言語のために、サンプル確率データは、その言語の単語確率データからの情報を含む。次にプロセッサ６２はサンプル確率データ９０を使用し、自動的に言語識別データ９２を取得する。この言語識別データ９２は、それのサンプル確率データが最も高い確率を示す言語を識別する。
【００３９】
上述のように図３は、メモリ７０、記憶媒体アクセス装置７２、及びネットワーク７４の３つの可能なソースを示し、データ入力回路６８はこれらのソースからプロセッサ６２へデータを供給することが可能である。
【００４０】
メモリ７０は、ランダムアクセスメモリ（ＲＡＭ）又は読出し専用メモリ（ＲＯＭ）を含むマシン６０内の任意の従来メモリか、又は任意の種類の周辺又はリモートメモリ装置であってよい。
【００４１】
記憶媒体アクセス装置７２は、記憶媒体９４にアクセスするためのドライブ又は他の適切な装置又は回路であり得、例えば、１つ又は複数のテープ、ディスケット又はフロッピーディスクのセット等の磁気媒体、１つ又は複数のＣＤ−ＲＯＭのセット等の光学媒体、或いはデータを記憶するための他の任意の適切な媒体であってよい。記憶媒体９４は、マシン６０の一部、サーバ又は他の周辺又はリモートメモリ装置の一部、或いはソフトウェア製品であってよい。これらの例のそれぞれにおいて、記憶媒体９４は、マシンで使用されることが可能な１つの製品である。
【００４２】
ネットワーク７４は、マシン１００からデータの本体を提供することができる。マシン１００内のプロセッサ１０２は、ネットワーク接続回路１０４及びデータ入力回路６８を介してネットワーク７４上でプロセッサ６２との接続を確立することができる。いずれのプロセッサも接続を開始することができ、この接続は任意の適切なプロトコルによって確立されてよい。次にプロセッサ１０２は、メモリ１０６に記憶されたデータの本体にアクセスすることができ、このデータの本体をネットワーク７４を介してプロセッサ６２に転送することができる。プロセッサ６２は、データの本体をメモリ６６又は他の場所に記憶することができ、その後自動言語識別を実行するための命令を実行することができる。
【００４３】
また図３は、プロセッサ６２がデータ出力回路７６を介する出力として、言語識別データ９２をユーザ等へ提供できることを示す。
【００４４】
以下で説明される実施の形態は、Solaris 2.4.xをＯＳとして使用し、ＡＮＳＩ  Ｃのソースコードからコンパイルされたコードを実行するＳｕｎ（サン・マイクロシステムズ）のワークステーションであるSPARCstation Ultra2上で実施されている。
【００４５】
図４において、システム１２０はＳｕｎのSPARCstation Ultra2ワークステーションの中央処理装置（ＣＰＵ）１２２を含み、これは、画像を表示するためのディスプレイ１２４と、ユーザからの信号を供給するためのキーボード１２６及びマウス１２８とに接続される。また、ＣＰＵ１２２は、例示的にプログラムメモリ１３２及びデータメモリ１３４を含むことが可能なメモリ１３０にアクセスできるように、メモリ１３０に接続される。
【００４６】
プログラムメモリ１３２に記憶されるルーチンは、確率取得ルーチン１４０、言語識別ルーチン１４２、及び言語特有ルーチン１４４等の幾つかの機能にグループ化されることが可能であり、言語識別子と共に呼出されるか又は他の方法で言語に特有な任意のルーチンであり得る。図４はまた、データメモリ１３４に記憶され、且つプログラムメモリ１３２内のルーチンを実行中にＣＰＵ１２２によりアクセスされるデータの幾つかの項目を示す。これらには、言語コーパス１５０、言語確率データ１５２、入力テキスト１５４、トライグラム及びショートワードの組合せ確率データ１５６、言語識別子（ＩＤ）１５８、及び雑データ項目１６０が含まれ、その幾つかは後述される。
【００４７】
確率取得ルーチン１４０を実行する際に、プロセッサ１２２は言語コーパス１５０を使用して言語確率データ１５２を取得することができ、言語コーパス１５０は複数の自然言語から成る集合の各言語ごとの確率データを含む。言語確率データ１５２は、幾つかの言語のためのトライグラム確率データと、幾つかの言語のためのショートワード確率データと、幾つかの言語のための両タイプの確率データとを含むことができる。従って、言語確率データ１５２は、図３の確率データ８２の具体化である。ショートワード確率データは、例えば５文字以下の単語に関するものであり得る。また、言語確率データ１５２は、それらに関しては確率が他の方法で示されないトライグラム及びショートワードのために使用される最小の確率定数を含むことができる。或いは、最小の確率定数は、言語識別ルーチン１４２内のパラメータとして提供されてもよい。
【００４８】
言語識別ルーチン１４２を実行する際に、プロセッサ１２２は入力テキスト１５４及び言語確率データ１５２を使用し、トライグラム及びショートワードの組合せ確率データ１５６を自動的に取得することができる。組合せ確率データ１５６は、各言語ごとに、トライグラム及び単語の確率に関する情報を組み合わせて、入力テキスト１５４がその言語で発生する確率を示すことができる。従って、組合せ確率データ１５６は、図３のサンプル確率データ９０の具体化である。
【００４９】
更に、言語識別ルーチン１４２を実行する際に、プロセッサ１２２は組合せ確率データ１５６を使用して、言語ＩＤ１５８を自動的に取得することができる。言語ＩＤ１５８は、組合せ確率データ１５６が最も高い確率を示す言語を示すことができる。従って、言語ＩＤ１５８は、図３の言語識別データ９２の具体化である。
【００５０】
言語特有ルーチン１４４を実行する際に、プロセッサ１２２は、呼出しの一部として言語ＩＤ１５８をルーチンに供給できるか、又は言語ＩＤ１５８によって識別された言語に適したルーチンを呼出すことが可能である。
【００５１】
確率取得ルーチン１４０及び言語識別ルーチン１４２は、以下で説明されるように実施されることが可能である。言語特有ルーチン１４４は、特定の言語に対して最も優れて実行される多種多様なルーチンを含むことができる。幾つかの例は、本発明のアプリケーション（適用）に関連して以下で説明される。
【００５２】
図５は、図４の実施における確率取得ルーチン１４０を実行する際にプロセッサ１２２によって実行される一般的な処理を示す。
【００５３】
図５の処理は、１つの自然言語に関する確率データを取得する。図５の処理ボックス１８０の処理は、その言語のためのテキストの代表的なコーパスを取得することから始まる。ある実施の形態においては、約１メガバイト（ＭＢ）のコーパスが、各言語ごとに取得された。処理ボックス１８０の処理は、様々なソースから代表的なテキストを取得することができる。そのようなテキストの幾つかは汚染される。つまりこれは、主として１つの言語に属するあるテキストが、他の言語からの部分も含むことを意味する。従って、処理ボックス１８０の処理はまた、見直し及び他の言語からの部分を手作業で削除することを含むことが可能である。
【００５４】
処理ボックス１８２の処理は、処理ボックス１８０で取得したコーパスを正規化する。このコンテキストにおいて、正規化することは、他のタイプの汚染又はノイズを除去することと、コーパスがより少ない異なるトライグラム及びショートワードを含むように、そのコーパス内の要素を変更することとを意味する。例えば、処理ボックス１８２での正規化には、コードのストリームを単一単語のトークンに変換するための単純なトークン化と、ＨＴＭＬタグ等のテキストマークアップ（マーク付け）コードの削除と、アポストロフィ及びハイフン等の言語の特徴を表す文字のみ残し、特殊文字及び数字等の非英字のためのコードを削除することと、全ての文字をＩＳＯ  ８８５９−１等のデフォルトの文字集合内の小文字にマッピングすることとが含まれ得る。また、正規化は、ウェブページ上の著作権表示等のメタ言語（超言語）の削除を含むことができる。正規化の後、この正規化されたコーパスは、一連のトークン、即ち１つの間隔文字によって区切られた複数の単語を含むはずである。
【００５５】
全ての文字を小文字にマッピングすることは、各言語におけるトライグラム及びショートワードの数を減少させ、ウェブページ及びUsenetのニュース等の幾つかのテキストソースはしばしば大文字で表された単語を含むので、より強力な言語識別へと導く。言語及び文字集合は未知であるので、上述のように、このマッピングはデフォルトの文字集合に対して実行されることが可能である。
【００５６】
他の様々な演算の組合せが、処理ボックス１８２での正規化を実施するために使用されてよい。
【００５７】
一般に、言語独立の正規化は、使用主言語のために開発されているが他の言語に適用することが可能な従来の言語ツールを用いて、自動的に実行されることが可能である。正規化は言語識別の最中、並びに基調言語が識別される前に自動的に実行されるであろうことを念頭に置くと、ある例において、中国語、韓国語、及びヘブライ語のため等には、自動的に正規化されたテキストを見直すこと及び手動で変更することが適切であり得る。例えば、英語、フランス語、及びドイツ語の単語は、別の言語のためのコーパスから手作業で削除されることが可能である。
【００５８】
処理ボックス１８４の処理は、処理ボックス１８２で正規化されたコーパスを使用し、トライグラム確率及びショートワード確率を取得する。１つの実施の形態においては、トライグラム確率が先ず取得され、次にショートワード確率が取得される。
【００５９】
トライグラム確率は、処理ボックス１８２で正規化されたコーパス内の各トライグラムの発生数を数えることによって取得されることが可能である。トライグラム発生を数えるために、ルーチンは、正規化された単語であるはずのトークンの最後に達するまで、正規化されたコーパス全体を調べることが可能である。このルーチンは次に、トークンの前後に境界マーカー「＿」を加え、そのトークンの各文字に対する１つのトライグラムを含む文字列を取得することができる。ルーチンは次に、トライグラム識別子を取得するために、各トライグラムを既に検出されているトライグラムと比較することができる。このトライグラムが既に検出されているトライグラムのいずれとも一致しない場合、このルーチンは新たな識別子をこのトライグラムに割り当てることができる。このルーチンは、トライグラムカウント（合計）のアレイ（配列）にアクセスするためにトライグラムの識別子を使用することができ、またアレイ内のこのトライグラムの識別子のためのカウントを増分することができる。
【００６０】
発生回数カウントが取得されている場合、そのトライグラムを捨てるか否かを決定するために、そのアレイからの各トライグラムの発生回数カウントは最小カウントと比較されることが可能であり、それによりトライグラムの分布をしきい値処理、即ち平準化する。発生回数カウントが最小カウントを上回る場合、０と１との間の確率を取得するために、この発生回数カウントは、カウントされたトライグラムの合計数により除算されることが可能である。この又は他の最尤推定（ＭＬＥ）技法等が、１トライグラムのための近似確率を取得するために使用されることが可能である。いずれの例でも、その後、確率の対数が取得され、そのトライグラムのための確率値として保存されることが可能である。
【００６１】
ショートワード確率は、処理ボックス１８２で正規化されたコーパス内の各ショートワードの発生回数を数えることによって、同様に取得することができる。ショートワードの発生を数えるために、ルーチンは、正規化された単語であるはずのトークンの最後に達するまで、正規化されたコーパス全体を調べることが可能である。ルーチンは次に、この単語がその長さに基づき、ショートワードであるか否かを決定することができる。最長が５文字であるショートワードが、上手く実施されている。ルーチンは次に、ショートワード識別子を取得するために、各ショートワードを既に検出されているショートワードと比較することができる。このショートワードが既に検出されているショートワードのいずれとも一致しない場合、このルーチンは新たな識別子をこのショートワードに割り当てることができる。このルーチンは、ショートワードカウントのアレイにアクセスするためにショートワードの識別子を使用することができ、またアレイ内のこのショートワードの識別子のためのカウントを増分することができる。
【００６２】
発生回数カウントが取得されている場合、このアレイは、アレイ内の発生回数カウントに基づいて、限られた個数（例えば１００）の最も頻繁に発生するショートワードを取得するために走査されることが可能である。あるショートワードが最も頻繁に発生するショートワードの１つである場合、０と１との間の確率を取得するために、そのショートワードの発生回数カウントは、カウントされたショートワードの合計数により除算されることが可能である。或いは、最尤推定（ＭＬＥ）技法が、１ショートワードのための近似確率を取得するために使用されることが可能である。いずれの例でも、その後、確率の対数が取得され、そのショートワードのための確率値として保存されることが可能である。
【００６３】
確率を対数の大きさ（logarithmic magnitudes）に変換することは、確率データを記憶するために必要とされるメモリを大幅に削減する。更なる削減は、対数の大きさを整数に変換することによって達成されるであろう。
【００６４】
図５の技法は、言語分類のために統計モデルをトレーニングしているように見られ得る。一旦統計モデルがトレーニングされると、それは言語分類、より明確には言語識別を実行するために使用されることが可能である。
【００６５】
図６は、言語識別ルーチン１４２を実行する際にプロセッサ１２２によって実行されることが可能な処理を詳細に示す。
【００６６】
処理ボックス２００の処理は、入力テキスト１５４を取得することから開始される。処理ボックス２０２の処理は次に、正規化が図５の処理ボックス１８２で自動的に実行されたのと同じ方法で、入力テキストを正規化する。
【００６７】
次に判断ボックス２１０の処理は外側反復ループを開始し、このループのそれぞれは、処理ボックス２０２で正規化された入力テキストからのトークンを処理する。外側反復ループは先ずトライグラム確率を取得し、次にショートワード確率を取得する。
【００６８】
トライグラム確率を取得するために、処理ボックス２１２の処理は、次のトークンの前後に文字「＿」を加えることから開始される。判断ボックス２１４及び２２０の処理は次に、検討されている各言語のための各トライグラムを処理する第１の内側反復ループを開始する。判断ボックス２２２の処理は、次のトライグラムが次の言語でトライグラム確率を有するか否かを判断することから第１の内側反復ループを開始する。もし有する場合、処理ボックス２２４の処理は、その言語のトライグラム確率にそのトライグラムの確率を加えるが、有さない場合は、処理ボックス２２６の処理がその言語のトライグラム確率に最小の確率定数を加える。
【００６９】
判断ボックス２３０の処理は、トークン（処理ボックス２１２で加えられた「＿」文字は除く）が５文字以下であるか否かを検査する。判断ボックス２３２の処理は次に、検討されている各言語を処理する第２の内側反復ループを開始する。判断ボックス２３４の処理は、そのトークンが次の言語でショートワード確率を有するか否かを判断することから第２の内側反復ループを開始する。もし有する場合、処理ボックス２３６の処理は、その言語のショートワード確率にそのショートワードの確率を加えるが、有さない場合は、処理ボックス２３８の処理がその言語のショートワード確率に最小の確率定数を加える。
【００７０】
処理ボックス２２６及び２３８に関すると、確率の対数の大きさが使用されているので、わずかにゼロより大きい確率を示すために、最小の確率定数は比較的大きい値でなければならない。また、各トライグラムの発生及び各ショートワードの発生は、それぞれ他のトライグラム及びショートワードに関して独立した確率イベントであると考えられ、このことが、確率を乗じる（確率の対数を加算することによる）ことが有効な理由である。複数の実験は、単語を開始させる及び終了させるトライグラムを他のトライグラムよりも大きい値で重み付けすることによる改善が見られなかったことを示している。
【００７１】
外側反復ループが入力テキスト内の全てのトークンに関して完了していると、処理ボックス２４０の処理は、両方を有する言語のためのトライグラム及びショートワード確率の和又は一次結合を取得することにより、各言語のためのトライグラム及びショートワードの組合せ確率を取得する。言語がショートワード確率を有さない場合、組合せ確率は単にその言語のトライグラム確率であり得る。従って、処理ボックス２４０の処理は、図４のトライグラム及びショートワードの組合せ確率データ１５６を作り出す。処理ボックス２４０で目的を果たすための極点に達する図６の処理はまた、図２の処理ボックス４０の具体化を示し、図３のボックス８４に示されるようなサンプル確率データを自動的に取得する命令を実行することによって実施されることが可能である。
【００７２】
確率値は確率の対数の大きさから導き出されるので、より大きい確率値はより小さい確率を示すことから、処理ボックス２４２の処理は次に、処理ボックス２４０から組合せ確率値が最小である言語の言語ＩＤを取得する。処理ボックス２４２の処理は、その言語を検出するために最小の組合せ確率値と比較することにより実施されることが可能である。従って、処理ボックス２４２の処理は、図４の言語ＩＤ１５８を作り出し、そして図３のボックス８４に示されるような言語識別データを自動的に取得する命令を実行することによって実施され得る図２の処理ボックス４２の処理の具体化として示されることが可能である。
【００７３】
最後に、処理ボックス２４４の処理は、処理ボックス２４２からの言語ＩＤを戻し、これにより言語識別を完了する。
【００７４】
図６に明示的に示された機能に加えて、実施は、言語識別をトライグラム確率のみに基づくトライグラムモード及びショートワード確率のみに基づくショートワードモードで実行するように設定されることが可能である。他の点に関しては、トライグラム及びショートワードモードは、図６に示されるトライグラム及びショートワードの組合せ技法と同様である。
【００７５】
上述の実施は、言語識別のための試験台として先ず各言語ごとに約１ＭＢのテキストを用いたトレーニングによって、次に各言語ごとに別の（ばらばらの）１ＭＢのテキストを用いることによって検査されている。それぞれの例において試験台のテキストは、図５の処理ボックス１８０に関して上述されたように、汚染を除去するために手作業で浄化された。
【００７６】
１つの結果は、トライグラム確率情報及びショートワード確率情報の両方に基づく言語識別は概して、トライグラムのみ又はショートワードのみに基づく言語識別よりも正確であるということ、並びにトライグラムのみに基づく識別は概して、ショートワードのみに基づく言語識別よりも正確であるということである。この結果は、図６に示されるトライグラム及びショートワードの組合せモードを、上述のトライグラムモード及びショートワードモードと比較することによって得られた。
【００７７】
この実験において、言語識別は、オランダ語（略語：ＤＵＴ）、英語（ＥＮＧ）、フィンランド語（ＦＩＮ）、フランス語（ＦＲＥ）、ドイツ語（ＧＥＲ）、イタリア語（ＩＴＡ）、ポルトガル語（ＰＯＲ）、スペイン語（ＳＰＡ）、及びスウェーデン語（ＳＷＥ）の９言語のテキストごとに３つのモード全てで実行された。各テストテキストを少なくとも５単語から成る複数の文に分割するために単純なヒューリスティック（発見的方法）が使用され、言語識別は各言語ごとに各文で実行され、正確に識別された文とその言語のテストテキスト内の文の総数との比率が取得された。次にこれらの比率は、各言語識別モードごとに全ての言語の平均をとられ、以下の平均正確度が取得された。
トライグラムモード    98.8％
ショートワードモード  96.4％
組合せモード          99.8％
【００７８】
トライグラム確率情報及びショートワード確率情報の両方を使用することは、いずれかのタイプの情報を単独で使用する際に起こり得るエラーを回避するので、組合せモードは、正確さの向上を得ると思われる。換言すると、トライグラム情報のみを用いた場合に生じるかもしれない不明確さはショートワード情報により解決され、逆もまた然りである。これは、トライグラム確率により提供される情報とショートワード確率により提供される情報との間での予期せぬ相違点、即ち向上した正確さ及び他の利点をもたらすために、本発明により開拓される相違点を示唆する。
【００７９】
別のより意外な結果は、トライグラム及びショートワードの組合せモードが、少数の単語から成る集合のためのトライグラムモードよりもかなり優れていることである。上述の実験は、言語識別を単一の単語、対の単語等の最大２０単語から成るシーケンスまでのランダムサンプルで実行することにより変更され、各サンプルは１０００要素（構成単語）を含んだ。図７は、例示的な単語シーケンスサイズごとのトライグラムモードでの結果を示す表である。図８は、トライグラム及びショートワードの組合せモードでの結果を示す表であり、最後の行には、各単語シーケンスサイズで２つのモードの平均結果の差をトライグラムモードの平均結果により除算することにより算出された改善率が示される。見て解かるように、２０単語のシーケンスに対しては測定可能な改善はなかったが、注目すべきことに、単一の単語に対しては、組合せモードはトライグラムモードから25％を超える改善をもたらした。
【００８０】
比較的短い単語のシーケンスのための誤り率の改善は特に印象的である。例えば、図７及び８の５単語のシーケンスのための列から解かるように、トライグラムモードが2.9％（即ち、97.1％の正確度を100％から引いた値）の誤り率を有する一方で、トライグラム及びショートワードの組合せモードは、約２／３少ない1.0％（即ち、99.0％の正確度を100％から引いた値）という非常に低い誤り率を有する。３、４、６、及び１０単語のシーケンスのための列は誤り率に関して比較的大きな比例減少を示す一方で、１、２、及び１５単語のシーケンスのための列はより小さい比例減少を示し、そして２０単語のシーケンスのための列は例示された程度の精度では減少を示さない。
【００８１】
より緻密な結果は、比較的小さいサンプルでトレーニングされる場合、組合せモードがトライグラムモードよりも高い正確度を達成するということである。この結果は、この２つのモードを、前文で使用されたのと同じ９言語からの1,000から800,000バイトの範囲のサンプルを用いてトレーニングすることにより取得された。図９は、平均正確度をバイトで示されるトレーニングサンプルサイズの関数として示すグラフである。正確度はサンプルサイズが増大するにつれて収束する傾向があるものの、示されるように、組合せモードのための平均正確度は、トライグラムモードのための平均正確度よりも一貫して高い。
【００８２】
また、組合せモードは、追加言語に拡張されることが可能である。言語の数は、９から３１まで拡張された。増加された言語数及び文字集合におけるばらつきにもかかわらず、98.9％の全体的な正確度が得られた。
【００８３】
また、組合せモードは、１文字当り１バイトを超える文字集合及び単語の境界を検出する方法がない文字集合を使用する中国語及び韓国語等の言語にも拡張されることが可能である。これらの言語においては、ショートワードを孤立させることはできないので、トライグラム確率情報のみを取得することが可能であり、各文字コードが２バイトを有する場合には、各トライグラムは例えば１．５文字を含み得る。しかしながら、組合せモードは、中国語又は韓国語のためのトライグラム確率情報に基づく確率値をトライグラム及びショートワード確率情報の両方に基づいた他の言語のための確率値と比較することを可能にする。中国語のテキストのために取得された言語識別正確度は99.8％であり、韓国語のテキストのために取得された言語識別正確度は99.1％であったと同時に、他の言語の識別のための正確度は不利な影響を及ぼされなかった。
【００８４】
上述の実施の形態は特定の言語から成るグループを識別するが、入手可能な証拠は、本発明が自然言語から成る他の任意のグループの文字コードにも上手く適用され得ることを示している。更に、本発明は、例えば中国語等の言語のための複数バイトの文字コードを含む任意の文字コードの集合にも適用され得る。例えば、２バイトの文字コードを有する言語において、各トライグラムは実際には、１文字全体と次の文字の半分とを含むか、又は反対に１文字の半分と次の文字全体とを含み得る。
【００８５】
上述の実施の形態は、トライグラム確率情報及び５文字以下の単語のための情報を使用するが、本発明は、他の長さから成るＮ−グラムに関して、及び他の長さから成る単語に関して、又はテキストから容易に抽出され、言語を識別するのに有効な単語から成る他の集合に対しても容易に実施され得る。単語の長さは、上述の実施の形態では、頻度の高い単語と低い単語との間の差を概算し、また言語の特徴である機能語とより特徴の少ない他の単語との差を概算する簡単な基準として使用される。機能語は、文法的な意味、並びに限定詞、代名詞、前置詞、接続詞及び小詞等の構文上及び構造上の機能を有する単語である。従って、本発明は代わりに、サンプルテキスト内の各単語を各言語の最も頻度の高いｎ個の単語から成るリストと、又は各言語の機能語から成るリストと比較することにより実施されてもよい。更に、追加的な確率測定がテキストサンプルの言語を識別する際に有益であると確認された場合、トライグラム及びショートワード確率と適切に組み合わせることによって、その測定が上述の実施の形態に組み入れられてもよい。
【００８６】
上述の実施の形態は、重複トライグラムを使用するが、本発明は非重複トライグラムを用いて実施されてもよい。
【００８７】
更に、本発明は、サンプルテキスト内の全てのトークン、単語、及びＮ−グラムを徹底的に検討するよりも寧ろ、トークン、単語、及びＮ−グラムのランダムサンプリング（無作為抽出）を用いて実施されてもよい。
【００８８】
上述の実施の形態は、トライグラム及びショートワード確率を特定の方法で算出し、その後組み合わせられる合計確率を得るために各タイプの確率の対数を加算するが、他のあらゆる適切な確率計算が使用されてもよい。例えば、確率の対数を加算するよりも寧ろ、確率値自体が乗じられるてもよい。但し、対数の加算の方がかなり速く、また数値の桁あふれ及び打切り誤差を回避するので、確率値を乗じるよりも算術的に安定している。或いは、対数が整数にマッピングされてもよく、これは更に効率的であり、より少ないメモリ空間を必要とする。また、上述の実施の形態は、１つの最小確率定数を使用するが、複数のこのような定数が使用されてもよく、又は例えば値がアルゴリズムにより取得されてもよい。例えば、トレーニングデータ又はテストデータ上での演算から自動的に定数を導き出すこと等によって、異なる定数が各言語ごとに取得されてもよい。また、確率値を有さないトライグラム及びショートワードに対して、最小確率定数を加える必要なく、対数の和のそれぞれをその和を得るために加算された値の個数で除算する等の方法で、確率値を組み合わせてもよい。
【００８９】
上述の実施の形態は、文字集合を考慮していないが、本発明は文字集合を考慮するように容易に実施されることが可能である。
【００９０】
上述の実施の形態において、処理は、多くの事例において変更され得る順序で実行されている。例えば、図５において、正規化されたコーパスが幾つかの言語のために取得されて、その後処理ボックス１８４の処理が各言語ごとに実行されてもよい。また、先ずトライグラム確率を取得して、次にショートワード確率を取得するよりも寧ろ、この順序が逆にされてよい。同様に、次のトークンを処理する前に各トークンのトライグラム及びショートワードを取得するよりも寧ろ、あるタイプの確率がテキスト内の全ての単語に対して取得され、次に他のタイプの確率が取得されてもよく、又はこの２つのタイプが何らかの方法で並行して取得されてもよい。
【００９１】
より一般には、Ｎ−グラム確率及びショートワード確率は互いに対して独立しており、相互に作用しないので、これらは情報の損失なく、あらゆる任意の方法で計算されることが可能である。例えば、これらは、並列プロセッサを用いて、又は直列プロセッサ上でマルチタスク又はマルチスレッド技法によって得られる並列計算を用いて、並行して計算されてもよい。このような実施において、Ｎ−グラム及びショートワード確率を組み合わせることは、並列計算の同期として機能し得る。
【００９２】
本発明は、テキスト上で言語特有の言語サービスを実行するまで、基調言語が未知であるテキストの言語を識別するために、言語システムに適用されることが可能である。例えば、言語サービスのための要求がネットワークを介してサーバに送信され、このサーバは、入力テキストの言語が特定されていない場合、本発明に従って言語識別を実行することができる。より一般に、本発明は、ステミング（stemming:語幹分解）、用語の拡張、翻訳、要約（gisting）、情報検索によって得られたドキュメントの言語に基づくフィルタリング、又は他の言語特有の多種多様なサービスのいずれかの実行方法を決定する前に適用されることが可能である。
【００９３】
特に、本発明は、ステミング、翻訳、及び照会に対する語句認識等の言語特有の言語演算を採用するサーチエンジンを支持するために適用されてもよい。このタイプのプロトタイプのサーチエンジンのＵＲＬは、次のとおりである。
http://www.rxrc.xerox.com/research/mltt/Tools/CLIR.html
本発明は、上述されたように、単語の短いシーケンスのための優れた言語識別を取得するために実施されることが可能であるので、また大部分の照会が短いので、サーチエンジンでの照会の言語を識別するのに特によく適している。サーチエンジンは、例えば自動的に照会の言語を識別し、その照会を１つ又は複数の他の言語に翻訳し、そのサーチ／検索演算を翻訳された言語で実行することが可能である。
【００９４】
本発明は、言語特有の光学的文字認職（ＯＣＲ）の実行を可能にすることにより、ＯＣＲを改良するために適用されることが可能である。先ず、単語分割が、従来の技法を使用してテキストの走査された画像上で実行され得る。次に、文字集合識別、文字分割、及び文字識別が、再度従来の技法を使用して、又は将来利用可能になるより洗練された技法を使用して実行され得る。本発明は次に、文字認識の結果に適用され得、識別された言語はその後、文字認識の未加工の結果を後処理する際に使用される、単語認識を実行するのに適した語彙を選択するために使用されることが可能である。
【００９５】
また、本発明は、ユーザがその言語を判断するためにテキストを渡すことができる言語推測装置として適用されることが可能である。この適用はまた、ユーザがそれにテキストを渡し、その後ユーザがその応答としてそこから言語識別を受信することができるウェブサイトを介して実施されている。ウェブサイトのＵＲＬは、次のとおりである。
http://www.xrce.xerox.com/research/mltt/tools/guesser.html
【図面の簡単な説明】
【図１】サンプルテキストの基調言語である可能性の高い自然言語を識別する方法を示す概略的なフローチャートである。
【図２】サンプルテキストの基調言語である可能性の高い言語を識別する際の一般的な処理を示すフローチャートである。
【図３】図２の一般的な処理を実行できるシステムの構成要素を示す概略図である。
【図４】図２の一般的な処理が実施されているシステムの概略図である。
【図５】図４のシステムが自然言語確率データを取得することができる方法を示すフローチャートである。
【図６】図４のシステムが図２のような処理を実施する方法を示すフローチャートである。
【図７】異なるサンプルサイズでトライグラム確率情報のみを使用した際の言語識別結果を示す表である。
【図８】異なるサンプルサイズでトライグラム及びショートワード確率情報の両方を使用した際の言語識別結果を示す表である。
【図９】トレーニングしているサンプルサイズの範囲全体にわたって、トライグラムのみのモードのための言語識別結果と、トライグラム及びショートワードの組合せモードのための言語識別結果とを比較するグラフである。
【符号の説明】
１０    テキストデータ
１２    確率データ
１４    確率データを有する自然言語の集合
１６    Ｎ−グラム確率を有する言語の部分集合
１８    単語確率を有する言語の部分集合
２０    サンプル確率データ
２６    言語識別データ
【図１】
0004413349.tif 000002
【図２】
0004413349.tif 000003
【図３】
0004413349.tif 000004
【図４】
0004413349.tif 000005
【図５】
0004413349.tif 000006
【図６】
0004413349.tif 000007
【図７】
0004413349.tif 000008
【図８】
0004413349.tif 000009
【図９】
0004413349.tif 000010