(57)【要約】【課題】効率のよい言語識別を提供すること。【解決手段】自然言語テキストの言語識別のシステムおよび方法が提示される。このシステムは、自然言語に見られる文字のリストについての格納された期待される文字カウントおよび分散を含む。期待される文字カウントおよび分散は、言語識別時に考察される複数の言語について格納される。実行時に、実際の文字カウントと期待される文字カウントとの比較に基づいて、テキストサンプルの１つまたは複数の言語が識別される。本発明の方法は、考察される言語の数を制限するために、テキストサンプル中の文字のＵｎｉｃｏｄｅ範囲の上流分析と組み合わされ得る。さらに、本発明のシステムおよび方法によって識別された言語の中から蓋然性の最も高い言語を選択するために、下流処理において、Ｎグラム法も使用され得る。【選択図】図３Ａ
2006221658.tif 000002
【特許請求の範囲】
【請求項１】
テキストの自然言語を識別する方法であって、
知られている自然言語で書かれたテキスト文書を受け取るステップと、
前記テキスト文書中の一意の特徴の出現回数を数えて期待される特徴カウントを生成するステップと、
確率分布および前記期待される特徴カウントを使用して、確率値を実際の特徴出現回数の関数として生成するステップと
を備えることを特徴とする方法。
【請求項２】
確率分布を使用するステップは、離散確率分布または連続確率分布を使用するステップを含むことを特徴とする請求項１に記載の方法。
【請求項３】
確率分布を使用するステップは、二項分布またはガウス分布を使用するステップを含むことを特徴とする請求項２に記載の方法。
【請求項４】
複数の候補言語のそれぞれについて確率値の表を構築するステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項５】
未確認の自然言語で書かれたテキストサンプルを受け取るステップと、
前記テキストサンプル中の前記特徴のいくつかについて実際の特徴カウントを求めるステップと、
前記確率値の表にアクセスし、前記実際の特徴カウントに基づいて前記テキストサンプルのために前記候補言語の少なくとも１つを識別するステップと
をさらに備えることを特徴とする請求項４に記載の方法。
【請求項６】
前記実際の特徴カウントに関連付けられる確率値をかけ合わせることによって各候補言語のスコアをつけるステップをさらに備えることを特徴とする請求項４に記載の方法。
【請求項７】
テキストの自然言語を識別する方法であって、
未確認の自然言語で書かれたテキストサンプルを受け取るステップと、
前記テキストサンプル中の文字の少なくとも１つのウィンドウにおける少なくとも１つの特徴の現在のカウントを求めるステップと、
複数の候補言語について前記少なくとも１つの特徴の期待される確率情報を獲得するステップと、
前記現在のカウントおよび前記獲得された期待される確率情報に基づいて、前記複数の候補言語の中から、前記テキストサンプルの少なくとも１つの言語を識別するステップと
を備えることを特徴とする方法。
【請求項８】
期待される確率情報を獲得するステップは、前記少なくとも１つの特徴の二項分布またはガウス分布に基づく確率値を受け取るステップを含むことを特徴とする請求項７に記載の方法。
【請求項９】
選択されたサイズのサンプル当たりの前記少なくとも１つの特徴の平均カウントを含む前記期待される確率情報を推定するために訓練コーパスをサンプリングするステップをさらに備えることを特徴とする請求項７に記載の方法。
【請求項１０】
前記少なくとも１つの識別された言語のＮグラム言語プロファイルを使用して、前記テキストサンプルでの蓋然性の最も高い言語を識別するステップをさらに備えることを特徴とする請求項７に記載の方法。
【請求項１１】
Ｕｎｉｃｏｄｅ値を使用して前記複数の候補言語を識別するステップをさらに備えることを特徴とする請求項７に記載の方法。
【請求項１２】
前記少なくとも１つの言語を識別するステップは、前記少なくとも１つの特徴の前記現在のカウントの、前記獲得された期待される確率情報との比較に基づいて、前記複数の候補言語それぞれの言語スコアを生成するステップを含むことを特徴とする請求項７に記載の方法。
【請求項１３】
言語スコアを生成するステップは、前記テキストサンプル中の前記求められた現在のカウントを有する複数の前記特徴の同時確率を推定するステップを含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
言語スコアを生成するステップは、前記少なくとも１つの特徴の前記現在のカウントが、前記獲得された期待される確率情報の分散内に含まれるときに候補言語にプラスのスコアをつけるステップを含むことを特徴とする請求項７に記載の方法。
【請求項１５】
言語スコアを生成するステップは、前記少なくとも１つの特徴の前記現在のカウントが、前記獲得された期待される確率値の分散の外側にあたるときに候補言語にマイナスのスコアをつけるステップを含み、前記少なくとも１つの特徴は１つの文字を含むことを特徴とする請求項７に記載の方法。
【請求項１６】
スコアを生成するステップは、前記サンプルテキストにおける期待される特徴の非出現に対して候補言語にマイナスのスコアを付けるステップを含むことを特徴とする請求項７に記載の方法。
【請求項１７】
前記識別された少なくとも１つの言語のそれぞれの信頼度スコアを推定するステップをさらに備えることを特徴とする請求項７に記載の方法。
【請求項１８】
実装時に、コンピュータに言語識別を実行させる命令を含むコンピュータ可読媒体であって、前記命令は、
複数の自然言語のそれぞれについて、特徴リスト、および前記リストされた特徴のそれぞれに関連付けられる期待される確率値を構築し、格納するように適合されたモジュールと、
テキストサンプル中の実際の特徴をカウントし、前記実際の特徴に関連付けられる前記格納された期待される確率値にアクセスして前記テキストサンプルの少なくとも１つの自然言語を識別するように適合されたモジュールと
を備えることを特徴とするコンピュータ可読媒体。
【請求項１９】
前記識別された自然言語の信頼度スコアを求め、前記信頼度スコアに基づいて自然言語をランク付けするように適合されたモジュールをさらに備えることを特徴とする請求項１８に記載のコンピュータ可読媒体。
【請求項２０】
前記少なくとも１つの識別された自然言語それぞれについてＮグラム言語プロファイルにアクセスして前記テキストサンプルに関する言語識別を実行するように適合されたモジュールをさらに備えることを特徴とする請求項１８に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、言語識別技術に関する。
【背景技術】
【０００２】
大規模データネットワークは、世界全体に及び、オンライン世界を真の多国籍社会にするが、依然として、通信するための単一の人間言語はない。電子メッセージおよび文書は、相変わらず、ドイツ語、スペイン語、ポルトガル語、ギリシャ語、英語、中国語、日本語、アラビア語、ヘブライ語、ヒンディ語など、特定の人間言語で書かれている。
【０００３】
多くの状況において、さらなる自然言語処理のために、特定の文書の人間言語を迅速に識別する必要がある。例えば、文書の人間言語または自然言語の識別は、その文書に索引付けし、またはそれを分類するのに役立つ。別の状況において、ワードプロセッサは、スペルチェック、文法チェックを行うため、言語変換ツールまたはライブラリを使用するため、あるいは適切な印刷フォントを使用可能にするために文書の言語識別を必要とし得る。
【０００４】
従来の言語識別の方法には、Ｎグラム法、特に、トライグラム法が含まれる。いくつかのトライグラム法では、言語特有の訓練データまたは文書を使用して、トライグラム言語プロファイルと呼ばれる、それぞれの言語ごとの表またはプロファイルが作成されている。いくつかの実装形態では、特定の言語の訓練テキスト上を３文字ウィンドウがスライドされる。３文字ウィンドウがテキスト上をスライドされる際に、この方法は、ウィンドウに現れる３文字シーケンスの出現回数を数えて、特定の言語のトライグラム言語プロファイルを生成する。このプロセスが様々な言語のテキストで繰り返されて、それぞれの言語用のトライグラム言語プロファイルのセットが提供され、それらが後で未知の言語の文書の言語識別に使用される。
【０００５】
言語識別時には、類似の３文字ウィンドウが未知の文書上をスライドされる。未知の文書内の各３文字シーケンスごとに、この方法は、トライグラムプロファイルのそれぞれにおけるマッチする３文字シーケンスを見つけようとする。特定の言語についてマッチが見つかった場合、マッチした３文字シーケンスについてのその言語のプロファイル内の頻度情報を、その特定の言語の累積スコアに加算することができる。このようにして、ウィンドウがその未知の文書全体をスライドされるにつれて各言語ごとの累積スコアが増分される。また、確率値としてＮグラム頻度情報を格納するなど、他のスコアリング方式も使用される。マッチングの間、これらの確率値がかけ合わせ、累積言語スコアを生成することができる。最高の累積スコアを持つ言語が、未知の文書の言語であるとみなされる。残念ながら、トライグラム法は、通常、計算上高くつく。
【０００６】
言語識別の別の方法は、Ｎグラムシーケンスの長さを変えることを含む。そのような言語識別システムにおいて、Ｎグラムプロファイルは、より一般的には「言語プロファイル」と呼ばれ、様々な長さのＮグラム（例えば、バイグラム、トライグラム、４グラムなど）の頻度情報を含む。しかしながら、トライグラム法の場合と同様に、他のＮグラム法も計算上高くつき、ゆえに、比較的低速である。速度の不足は、一般に、考察される言語の数が増えるに従ってより大きな問題となる。さらに、速度の不足は、言語識別が、文書索引付けなど、他の用途と結合されるときに特に問題となり得る。しかしながら、有利には、トライグラムおよびその他のＮグラム言語識別法は、文書またはテキストサンプルが、個々の文などのように、どちらかと言えば短いときに比較的正確であると考えられる。
【０００７】
【特許文献１】米国特許出願第１０／８１３６５２号明細書
【特許文献２】米国特許第６２７２４５６号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従来技術の言語識別方法およびシステムに関連付けられる問題を考慮した、より高速で、かつ／または改善された言語識別の方法があれば大いに役立つはずである。
【課題を解決するための手段】
【０００９】
本発明は、様々な自然言語の文字の期待される確率の言語モデルを構築することを含む。テキストサンプルの言語識別時、様々な言語にスコアをつけ、かつ／またはそれらを識別するためにこの言語モデルがアクセスされる。テキストサンプルの（１つまたは複数の）言語は、スコアに基づいて識別される。この言語モデルを含む、本発明の言語識別は、より大規模な言語サービスプラットフォーム内で、特に、言語自動検出（ＬＡＤ）機能と統合することができる。特に、考察され、またはスコアがつけられる候補言語の数を制限するために、本発明の方法またはシステムと入力テキストＵｎｉｃｏｄｅ値の分析を組み合わせることができる。本発明は、性能最適化のために、Ｎグラム法など、他の識別方法と組み合わせることができる。
【発明を実施するための最良の形態】
【００１０】
本発明は、自然言語テキスト処理、特に、入力テキストまたはサンプルテキストの自然言語を識別することに関するものである。一態様では、様々な自然言語で見つかる文字確率の言語モデルが構築される。別の態様では、これらの言語モデルにアクセスして自然言語テキストの言語識別が行われる。別の態様では、本発明は、文字Ｕｎｉｃｏｄｅ範囲の分析や、Ｎグラム言語識別の使用による、言語を識別する他のシステムまたは方法と組み合わされ得る。
【００１１】
例示的環境
図１に、本発明が実施され得る適切なコンピューティングシステム環境の一例１００を示す。コンピューティングシステム環境１００は、適切なコンピューティング環境の一例にすぎず、本発明の用途または機能の範囲に関するどんな限定も示唆するものではない。また、コンピューティング環境１００は、例示的動作環境１００に示す構成要素のいずれか１つまたはそれらの組み合わせに関連するどんな依存関係または要件を有するものであるとも解釈すべきではない。
【００１２】
本発明は、他の多数の汎用または専用コンピューティングシステム環境または構成と共に動作する。本発明と共に使用するのに適し得るよく知られているコンピューティングシステム、環境、および／または構成の例には、それだけに限らないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップ機器、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、電話システム、上記のシステムまたは機器のいずれかを含む分散コンピューティング環境などが含まれる。
【００１３】
本発明は、コンピュータにより実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的なコンテキストで説明することができる。一般に、プログラムモジュールには、個々のタスクを実行し、または個々の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造体などが含まれる。本明細書で提供する説明および図を、任意の形のコンピュータ可読媒体上に書き込まれ得るプロセッサ実行可能命令として、当業者は実施することができる。
【００１４】
また、本発明は、タスクが通信ネットワークを介してリンクされたリモート処理装置によって実行される分散コンピューティング環境でも実施され得る。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含むローカルとリモート両方のコンピュータ記憶媒体に置くことができる。
【００１５】
図１を参照すると、本発明を実施する例示的システムは、コンピュータ１１０の形で汎用コンピューティングデバイスを含む。コンピュータ１１０の構成要素には、それだけに限らないが、処理装置１２０、システムメモリ１３０、およびシステムメモリを含む様々なシステム構成要素を処理装置１２０に結合するシステムバス１２１が含まれる。システムバス１２１は、様々なバスアーキテクチャのいずれかを使用する、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含む数種類のバス構造のいずれでもよい。例としてあげるにすぎないが、そのようなアーキテクチャには、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、およびメザニンバスとも呼ばれるＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスが含まれる。
【００１６】
コンピュータ１１０は、通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０によってアクセスされ得る任意の使用可能な媒体とすることができ、それには揮発性と不揮発性両方の媒体、取り外し可能と取り外し不能両方の媒体が含まれる。例としてあげるにすぎないが、コンピュータ可読媒体には、コンピュータ記憶媒体および通信媒体が含まれ得る。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、その他のデータなどの情報を記憶するための任意の方法または技術で実施された、揮発性と不揮発性両方、取り外し可能と取り外し不能両方の媒体が含まれる。コンピュータ記憶媒体には、それだけに限らないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリなどのメモリ技術、ＣＤ‐ＲＯＭ、ディジタル多用途ディスク（ＤＶＤ）などの光ディスク記憶、磁気カセット、磁気テープ、磁気ディスク記憶などの磁気記憶装置、あるいは所望の情報を格納するのに使用でき、コンピュータ１１０によってアクセスされ得る他の任意の媒体が含まれる。通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュールまたはその他のデータを、搬送波や他の搬送機構などの変調されたデータ信号中に具現化するものであり、それには任意の情報伝達媒体が含まれる。「変調されたデータ信号」という用語は、その特性の１つまたは複数が、その信号に情報を符号化するような形で設定または変更されている信号を意味する。例としてあげるにすぎないが、通信媒体には、有線ネットワークや直接配線接続などの有線媒体、および音響、ＲＦ、赤外線、その他の無線媒体などの無線媒体が含まれる。また、上記のいずれかの組み合わせも、コンピュータ可読媒体の範囲内に含めるべきである。
【００１７】
システムメモリ１３０は、読出し専用メモリ（ＲＯＭ）１３１やランダムアクセスメモリ（ＲＡＭ）１３２などの揮発性および／または不揮発性メモリの形でコンピュータ記憶媒体を含む。基本入出力システム（ＢＩＯＳ）１３３は、始動時などに、コンピュータ１１０内の諸要素間での情報転送を支援する基本ルーチンを含み、通常、ＲＯＭ１３１に格納される。ＲＡＭ１３２は、通常、処理装置１２０から直ちにアクセス可能であり、かつ／または処理装置１２０によって現在操作されているデータおよび／またはプログラムモジュールを含む。例としてあげるにすぎないが、図１に、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラム  データ１３７を示す。
【００１８】
また、コンピュータ１１０は、他の取り外し可能／取り外し不能、揮発性／不揮発性コンピュータ記憶媒体も含み得る。例にすぎないが、図１に、取り外し不能、不揮発性磁気媒体との間で読取りまたは書込みを行うハードディスクドライブ１４１、取り外し可能、不揮発性磁気ディスク１５２との間で読取りまたは書込みを行う磁気ディスクドライブ１５１、およびＣＤ‐ＲＯＭや他の光媒体などの取り外し可能、不揮発性光ディスク１５６との間で読取りまたは書込みを行う光ディスクドライブ１５５を示す。例示的動作環境で使用され得る他の取り外し可能／取り外し不能、揮発性／不揮発性のコンピュータ記憶媒体には、それだけに限らないが、磁気テープカセット、フラッシュメモリカード、ディジタル多用途ディスク、ディジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどが含まれる。ハードディスクドライブ１４１は、通常、インターフェース１４０などの取り外し不能メモリインターフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は、通常、インターフェース１５０などの取り外し可能メモリインターフェースによってシステムバス１２１に接続される。
【００１９】
前述の、図１に示す各ドライブおよびそれらに関連したコンピュータ記憶媒体は、コンピュータ１１０のためのコンピュータ可読命令、データ構造、プログラムモジュールおよびその他のデータの記憶を提供する。図１では、例えば、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラム  データ１４７を格納するものとして示されている。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラム  データ１３７と同じでも、異なっていてもよいことに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラム  データ１４７には、少なくともそれらが異なるコピーであることを示すために、図では異なる番号が付与されている。
【００２０】
ユーザは、キーボード１６２や、マイクロホン１６３や、マウス、トラックボール、タッチパッドといったポインティングデバイス１６１などの入力装置を介してコンピュータ１１０にコマンドおよび情報を入力することができる。他の入力装置（図示せず）には、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナなどが含まれ得る。上記その他の入力装置は、しばしば、システムバスに結合されたユーザ入力インターフェース１６０を介して処理装置１２０に接続されるが、パラレルポート、ゲームポート、ユニバーサルシリアルバス（ＵＳＢ）といった他のインターフェースおよびバス構造によっても接続することができる。また、モニタ１９１または他の種類の表示装置も、ビデオインターフェース１９０などのインターフェースを介してシステムバス１２１に接続される。また、モニタ以外に、コンピュータは、スピーカ１９７やプリンタ１９６など他の周辺出力装置を含むこともでき、それらは、出力周辺装置インターフェース１９５を介して接続することができる。
【００２１】
コンピュータ１１０は、リモートコンピュータ１８０など、１つまたは複数のリモートコンピュータへの論理接続を使用するネットワークで接続された環境で動作し得る。リモートコンピュータ１８０は、パーソナルコンピュータ、ハンドヘルド機器、サーバ、ルータ、ネットワークＰＣ、ピアデバイスまたはその他一般のネットワークノードとすることができ、通常は、コンピュータ１１０に関連して前述した要素の多くまたは全部を含む。図１に示す論理接続には、ローカルエリアネットワーク（ＬＡＮ）１７１および広域ネットワーク（ＷＡＮ）１７３が含まれるが、他のネットワークも含まれ得る。そのようなネットワーク環境は、オフィス、企業規模のコンピュータネットワーク、イントラネットおよびインターネットではよく見られるものである。
【００２２】
ＬＡＮネットワーク環境で使用されるとき、コンピュータ１１０は、ネットワークインターフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーク環境で使用されるとき、コンピュータ１１０は、通常、モデム１７２またはインターネットなどのＷＡＮ１７３を介して通信を確立する他の手段を含む。モデム１７２は、内蔵でも外付けでもよく、ユーザ入力インターフェース１６０または他の適切な機構を介してシステムバス１２１に接続することができる。ネットワークで接続された環境では、コンピュータ１１０に関連して示すプログラムモジュール、またはその一部は、リモートのメモリ記憶装置にも格納することができる。例にすぎないが、図１に、リモートアプリケーションプログラム１８５を、リモートコンピュータ１８０上にあるものとして示す。図示のネットワーク接続は例であり、コンピュータ間で通信リンクを確立する他の手段も使用され得ることが理解されるであろう。
【００２３】
図２は、本発明が実施され得る別の環境を示すブロック図である。具体的には、図２には、自然言語識別機能を備える自然言語処理システムが示されている。図２に類似の一般的な環境については、参照により本明細書にその全体が組み込まれる、２００４年３月３０日に出願された米国特許出願第１０／８１３６５２号明細書（特許文献１）に詳細に記載されている。
【００２４】
自然言語処理システム２００は、自然言語プログラミングインターフェース２０２、自然言語処理（ＮＬＰ）エンジン２０４、および関連付けられた辞書２０６を含む。また、図２には、システム２００が、アプリケーションプログラムを含むアプリケーション層２０８と対話することも示されている。そのようなアプリケーションプログラムは、言語サービスプラットフォームまたは「ＬＳＰ」と呼ばれ得る自然言語処理サービスへのアクセスを必要とする、語句探索（ｗｏｒｄ  ｓｅａｒｃｈ）、データマイニング、文書索引付け（ｄｏｃｕｍｅｎｔ  ｉｎｄｅｘｉｎｇ）などの自然言語処理アプリケーションとすることができる。
【００２５】
プログラミングインターフェース２０２は、アプリケーション層２０８によって呼び出され得る要素（メソッド、プロパティおよびインターフェース）を公開する。プログラミングインターフェース２０２の要素は、アプリケーション層２０８のアプリケーションが、自然言語処理サービスを獲得するために公開された要素を呼び出すことができるように、基礎をなすオブジェクトモデル（詳細については上記の組み込まれた特許出願によって記載されている）によってサポートされる。そのために、層２０８のアプリケーションは、まず、インターフェース２０２を公開するオブジェクトモデルにアクセスしてインターフェース２０２を構成することができる。「構成する」という用語は、所望の自然言語処理機構または機能を選択することを含むよう意図されている。例えば、アプリケーションは、２０３に示すように言語自動検出（ＬＡＤ）を選択しようとすることができる。
【００２６】
インターフェース２０２が構成された後、アプリケーション層２０８は、処理されるべき自然言語テキスト、サンプル、文書といったテキストをインターフェース２０２に提供することができる。次に、インターフェース２０２は、例えば、本発明による言語識別を含む言語自動検出（ＬＡＤ）２０５、単語区切り、または他の自然言語処理などを実行するＮＬＰエンジン２０４にアクセスすることができる。実行された自然言語処理の結果は、例えば、プログラミングインターフェース２０２を介してアプリケーション層２０８中のアプリケーションに戻すこともでき、以下で論じるように辞書２０６を更新するのに使用することもできる。
【００２７】
また、インターフェース２０２またはＮＬＰエンジン２０４は、辞書２０６を利用することもできる。辞書２０６は、更新可能とすることも、固定とすることもできる。システム２００は、追加の辞書が必要とされないように、コア辞書２０６を提供することができる。しかしながら、インターフェース２０２は、アプリケーションがカスタマイズされた辞書２０６を追加することを可能にする要素も公開する。例えば、アプリケーションが文書索引付けまたはサーチを対象とする場合、名前付きエンティティ（例えば人名や企業名など）を有するカスタマイズされた辞書が追加され、またはそれにアクセスされ得る。当然ながら、他の辞書も追加され、またはそれにもアクセスされ得る。
【００２８】
また、インターフェース２０２は、辞書から結果が返されるときに、例えば、結果のプロパティなどとして注釈も提供されるように、アプリケーションが辞書に注釈を追加することを可能にする要素も公開することができる。
【００２９】
二項分布
二項分布は公知の離散確率分布である。例えば、硬貨を指ではじくとき、その結果は表か裏のどちらかである。手品師が１組のトランプから選択されたカードを言い当てるとき、手品師は正しいか間違っているかである。赤ん坊が生まれるとき、赤ん坊は４月中に生まれるか生まれないかのどちらかである。これらの例のそれぞれにおいて、１つの事象は２つの相互に排他的な可能な結果を有する。結果の一方を「成功」と呼び、他方の結果を「失敗」と呼ぶことができる。ある事象がＴ回発生する（例えば、硬貨がＴ回またはＴ「試行」指ではじかれる）場合、二項分布を使用して、正確にＴ試行でＣ成功を獲得する確率を求めることができる。Ｔ試行でｃ成功を獲得する二項確率は以下の式によって与えられる。
【００３０】
【数１】
2006221658.tif 000003
【００３１】
式中、ｃ＝ＣにおけるＰ（ｃ）は正確にＣ成功を得る確率であり、Ｔは事象の数であり、πは任意の１試行時の成功の確率または期待される確率である。この式は、以下の仮定をする。
１．Ｔがあらかじめ定められている、Ｔ回の同一の試行がある。
２．各試行は２つの可能な結果、すなわち成功または失敗を有する。
３．各試行は独立であり、１つの試行の結果は、別の試行の結果にどんな影響も及ぼさない。
４．成功の確率は、各試行を通じて一定である。
二項分布では、ｘの平均値および分散は、それぞれ、以下の式によって与えられる。
Ｅ（ｃ）＝Ｔπ                        式２
Ｖａｒ（ｃ）＝Ｔπ（１−π）          式３
したがって、例えば、鉢の中に１０個のボールがあり、３個のボールは赤であり、７個は青であると仮定する。成功は赤いボールを抜き取ることであると定義される。ボールがランダムに抜き取られ、次いで元に戻される場合、成功の確率は、各試行ごとに、
【００３２】
【数２】
2006221658.tif 000004
【００３３】
またはπ＝０．３である。１０個のボールが抜き取られる場合、Ｔ＝１０である。ゆえに、１０試行で５個の赤いボールを抜き取る（すなわちｃ＝５である）確率は、式１にＴ、ｃ、およびπの値を代入することによって与えられ、それは以下の通りである。
【００３４】
【数３】
2006221658.tif 000005
【００３５】
ゆえに、５成功の（または５個の赤いボールを抜き取る）確率は約１８％である。二項分布は、０から１０まで（試行の回数）のｃの異なる値について計算され、および／またはグラフ化することができる。
【００３６】
さらに、上記の例において、二項分布の平均値Ｅ（ｃ）および分散Ｖａｒ（ｃ）は、上記の式２および式３を使用して以下のように求めることができる。
【００３７】
Ｅ（ｃ）＝Ｔπ＝（１０）（０．３）＝３
Ｖａｒ（ｃ）＝Ｔπ（１−π）
＝（１０）（０．３）（１−０．３）＝２．１
さらに、試行回数が増大するにつれて、総試行回数のパーセンテージである分散は減少する傾向があることもわかる。ゆえに、予測の正確さは、試行回数が増大するにつれて向上する。
【００３８】
しばしば、二項分布の累積形が使用され、そのため、５個以上の赤いボールを抜き取る確率、Ｐ（≧５）は以下の式によって与えられる。
【００３９】
【数４】
2006221658.tif 000006
【００４０】
本発明の主要な態様
本発明では、二項分布（またはガウス分布などの他の確率分布）の概念が言語識別に使用され得る。言語ＬのＴ個の総特徴（ｔｏｔａｌ  ｆｅａｔｕｒｅｓ）における１特徴のカウントを見る確率が、言語Ｌにおけるその特徴ｆの期待される確率が与えられたものとして計算することができる。特徴カウントは、「成功」とみなされ、特徴の総数は「試行」の回数とみなすることができる。
【００４１】
さらに、カウントｆ１からｆＮを有する特徴１からＮが見られる同時確率は、期待される確率π１からπＮ、および特徴総数Ｔが与えられたものとして、以下のように概算され、または表され得る。
【００４２】
【数５】
2006221658.tif 000007
【００４３】
式中、各Ｐ（ｆｉ｜Ｔ，πｉ）値は、二項分布または類似の（離散または非離散）確率関数を使用して獲得することができる。大部分の実施形態において、各特徴は、その言語で見つかる１つまたは複数の文字を含む。例えば、特徴は、「ａ」のような個々の文字とすることも、「ｔｒ」や「ａｎｄ」のような文字の組み合わせとすることもできる。また、特徴を構成する１つまたは複数の文字は連続するものとすることもできるが、そうであることには限定されない。例えば、特徴は、第３の未確定の文字によって隔てられる２つの文字とすることができる。また、特徴は、「＠」や「＃」といった１つまたは複数の記号を含むこともできる。しかしながら、一実施形態では、各特徴は、「ａ」や「ｂ」といった単一の文字（ｃｈａｒａｃｔｅｒまたはｌｅｔｔｅｒ）を表す。単一の文字を特徴として使用すれば、計算速度を増大させるのに有利になり得る。
【００４４】
また、本発明の別の実施形態では、Ｐ（ｃｉ｜Ｔ，πｉ）の値が、数学的にも（式１の二項分布式を使用して離散確率を計算するなどによって）獲得され得る。別の実施形態では、Ｐ（ｆｉ｜Ｔ，πｉ）の値が、物理的または経験的に（様々な言語の訓練コーパス中の特徴または文字を数え、選択されたウィンドウまたはサンプルサイズごとに正規化するなどによって）獲得される。また、数学的計算と物理的計数の何らかの組み合わせを使用してＰ（ｆｉ｜Ｔ，πｉ）値を求めることもできる。
【００４５】
さらに、期待される文字確率が物理的に求められる実施形態では、結果として整数計算（ｉｎｔｅｇｅｒ  ｍａｔｈ）を生じる選択サンプルサイズ（例えば、１０００文字当たりの文字カウントなど）を用いて正規化すれば有利となり得ることもわかる。整数計算は、有利には、性能または速度を増大させる。しかしながら、整数計算は任意選択であり、より高い精度のためのより正確な小数値を優先して除外することもできる。また、１０００文字のサンプルサイズは、個々の文字だけが考察されるときに比較的少数の特徴を持つ、英語などのヨーロッパ言語に適し得ることもわかる。これに対して、中国語や日本語といったアジア言語の期待される特徴確率は、それらの表記システムで使用される特徴または表意文字の数が（英字と比べて）はるかに大きいために、１００，０００特徴当たりの期待される特徴カウントウィンドウなど、はるかに大きいサンプルサイズを用いて正規化される可能性が高いはずである。
【００４６】
図３は、単一の方法３００として実施される本発明の２つの主要な態様またはステップ３０２、３０６を示す概略的流れ図である。図４および図６は、これらの態様のそれぞれを実行するモジュールを示すブロック図である。ステップ３０２は、後で言語識別に使用される、複数の言語についての期待される文字カウントまたは確率情報または値の言語モデルまたは表を含む情報を用いて（図４に示す）語彙知識ベース４１８を拡張することを含む。
【００４７】
言語識別フェーズは、未知の、または未確認の自然言語で書かれた入力テキストを受け取るステップ３０４を含む。ステップ３０６で、受け取られた自然言語テキストの（１つまたは複数の）言語を識別するために言語モデルがアクセスされる。スコアリングシステムを使用して、テキストの蓋然性の最も高い（ｍｏｓｔ  ｐｒｏｂａｂｌｅ）（１つまたは複数の）言語または非蓋然性の最も低い（ｌｅａｓｔ  ｉｍｐｒｏｂａｂｌｅ）（１つまたは複数の）言語が識別され得る。代替として、言語スコアリングシステムは、例えば、可能な言語の候補リストを作成する際のフィルタとして働くように、非蓋然性の最も高い（１つまたは複数の）言語を識別して低確率の言語を除外することもできる。前述のように、ステップ３０６は、言語識別性能の最適化（例えば、速度および／または正確さの向上など）のためにＵｎｉｃｏｄｅ値または範囲、および／またはＮグラム法を利用するなどのサブステップを含み得る。特に、本発明は、参照により本明細書にその全体が組み込まれる、２００１年８月７日発行の、ｄｅ  Ｃａｍｐｏｓらによる米国特許第６２７２４５６号明細書（特許文献２）に記載されているＮグラム言語識別システムと組み合わせることができる。矢印３０８で示すように、方法３００は、任意の数の入力テキストサンプルが受け取られ、本発明に従って処理され得るという点で、反復的とすることができる。
【００４８】
図３Ａ〜３Ｂに、併せて、図３のステップ３０２および３０６を実行する主要な方法およびシステム３１０、３２０を示し、これらについて並行して論じる。システム３１０はステップ３０２を実行することができ、システム３２０はステップ３０６を実行することができる。
【００４９】
ステップ３５２で、（英語や中国語など知られている自然言語で書かれた）テキスト文書３１２がシステム３１０によって受け取られる。システム３１０はカウンタ３１４を備える。ステップ３５４で、カウンタ３１４は、３１６に示すように、自然言語のテキスト文書３１２中の一意の特徴１からＮの出現回数３１６を数え、これらの特徴カウント３１６を期待される確率または頻度値πｉ（ｉ＝１，．．．，Ｎ）に変換する。
【００５０】
ステップ３５６で、ステップ３５２および３５４が他の自然言語について繰り返され、期待される特徴確率（ｆｅａｔｕｒｅ  ｐｒｏｂａｂｉｌｉｔｙ）または頻度値（ｆｒｅｑｕｅｎｃｙ  ｖａｌｕｅｓ）３１８が生成される。ステップ３５８で、後の言語識別時のアクセスのために、すべての候補言語についての期待される特徴確率値３１６、３１８が格納される。
【００５１】
ステップ３６０で、システム３２０は、未確認の自然言語で書かれたテキストサンプル３２２を受け取る。システム３２０は、カウンタ３２４、二項確率計算器３２８、およびスコアリングシステム３３２を備える。ステップ３６２で、カウンタ３２４は、３２６に示すように、テキストサンプル３２２中の特徴または文字の総数Ｔ、およびテキストサンプル中３２２の一意の特徴１からＭの出現回数を数える。ステップ３６４で、３２６に示すように、観測される、実際の、または現在の特徴頻度ｆ１，．．．，ｆＭが計算される。ステップ３６６で、二項確率計算器３２８は、Ｔ個の総特徴３２６、格納された期待される確率値πｉ３１９、およびテキストサンプル３２２中の実際の特徴頻度ｆｉ３２６が与えられたものとして、確率値３３０を計算する。ステップ３６８で、スコアリングシステム３３２は、例えば、上記の式５などを使用して、様々な候補言語の言語スコアを計算する。ステップ３７０で、システム３２０は、言語スコアに基づき、テキストサンプル３２２の言語リスト３３４を生成し、または識別する。テキストサンプル３２２および／または言語リスト３３４は、３２１に示すようにアプリケーション層に、またはさらなる処理のために返され得る。
【００５２】
図４に、本発明による語彙知識ベースを拡大する（図３に示す）ステップ３０２を実行することのできるシステムの別の実施形態を示す。図５は、一般に、図４の各モジュールに対応する語彙知識ベースを拡大するステップの流れ図である。以下でより詳細に論じるように、本発明による語彙知識ベースは、言語特有の特徴、および、各特徴の期待されるカウントや分散などの関連付けられる情報を備える。図４および図５に示すモジュールおよびステップは例示にすぎず、望むとおりに省略され、組み合わされ、分割され得ることに留意することは重要である。また、図４および図５のモジュールおよびステップは単一の言語について示されており、それらは、言語識別フェーズで考察される各自然言語ごとに繰り返されるはずである。語彙知識ベース構築モジュール４０４は、コンピュータ１１０上で実行され、またはＬＡＮ１７１またはＷＡＮ１７３接続中のリモートコンピュータのいずれかで格納され、実行されるアプリケーションプログラム１３５とすることができる。同様に、語彙知識ベース４１８も、ハードディスクドライブ１４１など、ローカル記憶装置のいずれかに、または光ＣＤに、またはリモートでＬＡＮ１７１またはＷＡＮ１７３メモリ装置に存在し得る。
【００５３】
（図５に示す）ステップ５０２で、語彙知識ベース構築モジュール４０４は、前述の入力装置のいずれか、および図１との関連で説明した記憶装置のいずれかから未処理の自然言語テキスト４０２を受け取る。また、未処理のテキスト４０２は、図２との関連で説明したアプリケーション層２０８を介しても受け取ることができる。未処理のテキスト４０２は、書籍、出版物、雑誌、Ｗｅｂソース、音声／テキスト変換エンジンなどからの自然言語テキストとすることができる。自然言語テキスト４０２は、一般に、１つの自然言語で入力されることがわかる。しかしながら、前述のように、語彙知識ベース４１８を拡張するために言語モデル４２０を構築するプロセスは、言語識別のために複数の言語モデル４２０が構築されるという点で反復的である。
【００５４】
ステップ５０４で、前処理モジュール４０６は、前処理のために未処理のテキスト４０２を受け取って、例えば、コンマやピリオドなどの文法上の特徴を除去し、あるいは個々の英字などの文字を大文字から小文字に変換することができる。また、たいていの場合、数字は言語に特有ではないため、数字も除去され得る。しかしながら、いくつかの実施形態において、英語の医学やドイツ語の工学といった技術分野のようなある言語の一部が考察されるときなどには、「１」や「２」のような数字は言語特有であり得る。別の実施形態において、考察される自然言語が、異なるまたは二重の記数法を使用するときなどには、数字は言語特有であり得る。例えば、中国語は、数を表すのに「１」や「２」のような数字と表意文字の両方を使用する。
【００５５】
前処理モジュール４０６は、好ましくは、特定の言語に見られる文字（すなわち、英字、記号など）およびその他の特徴を、理想的にはその自然言語を代表する割合で含む訓練コーパス４０８を生成する。代替として、代表的訓練コーパスが、語彙知識ベース構築モジュール４０４に提供され、または語彙知識ベース構築モジュール４０４によってアクセスされることもあり得る。
【００５６】
ステップ５０６で、文字リスト４１２が識別され、または受け取られる。いくつかの実施形態では、訓練コーパス４０８は、訓練コーパス４０８中の一意の文字を識別して文字および／または特徴リスト４１２を生成する文字または特徴識別子４１０によって受け取られる。代替として、特定の自然言語の文字および／または特徴リストが、語彙知識ベース構築モジュール４０４によってアクセスされ、または語彙知識ベース構築モジュール４０４に提供されることもあり得る。例えば、英語の文字リスト４１２は、「ａ」から「ｚ」までのアルファベットの文字すべて、および「＄」や「＃」といったその他の文字、記号、または特徴を含み得る。しかしながら、前述のように、中国語や日本語といった漢字に基づく文字または表意文字を使用するアジア言語の文字リスト４１２は、相当に大きくなるはずである。
【００５７】
ステップ５０８で、確率計算モジュール４１４は、文字リスト４１２中の文字の一部または全部について、詳細に前述した文字カウント確率値Ｐ（ｃ）を生成する。生成された確率値の結果を使用して、選択されたサンプルサイズ（例えば１０００文字など）当たりで正規化される成功数または出現回数に及ぶ、サンプリングされた文字の確率分布が生成され得る。別の実施形態において、確率計算モジュール４１４は、特に、選択されたサイズの複数の等サイズサンプルウィンドウについて各文字の平均出現回数を数えるカウンタ４１５を含む。
【００５８】
ステップ５１０で、確率計算モジュール４１４は、ステップ５０８でサンプリングされた文字の「分散」４１６を生成する。いくつかの実施形態では、「分散」は、特に、少なくとも一部は式３に基づいて計算することができる。例えば、「分散」は、式３で与えられる二項分散値の平方根または分数値（例えば１／１０）を取ることによって求められ得る。別の実施形態では、「分散」は、分布曲線の勾配の分析や類似の手段などによって、数値的に近似され得る。また、分散は、１組の等サイズのサンプルにおける実際の文字カウントと期待される文字カウントを比較することによって経験的に計算することもできる。別の実施形態では、「分散」は、カウントがその周囲に集まっている（ｃｌｕｓｔｅｒｅｄ）範囲を人間が選択することによって物理的に生成される。
【００５９】
ステップ５１２で、語彙知識ベース４１８が、確率計算モジュール４１４で生成された期待されるカウントまたは確率情報および分散を有する言語モデルまたは表４２０を用いて拡張される。ステップ５１４で、前述のようにカウントまたは確率情報および分散を生成して語彙知識ベース４１８をさらに拡張するために、文字リスト４１２からの別の文字が処理される。言語モデル４２０を構築するプロセスは、文字リスト４１２中のすべての文字が処理されるまで続く。別の実施形態では、言語モデル４２０への追加のために期待されるカウントおよび分散が計算される前に、リスト４１２中のすべての文字がすべてのサンプルウィンドウについて数えられる。言語モデル４２０は、以下で説明する言語識別フェーズにおいて実行時に考察される各言語ごとに構築される。
【００６０】
図６に、図３に示すステップ３０６を実施する言語識別システムまたはモジュールを示す。言語識別モジュール６０４は、前述のように言語サービスプラットフォームに組み込まれている、図２の言語識別モジュール２０５と類似のものとすることができる。さらに、図７には、図６の言語識別システムに関連付けられ、またはこれに対応する方法が含まれる。ゆえに、以下で図６および図７を併せて説明する。また、図６および図７に示すモジュールおよびステップは、例示にすぎず、望むとおりに省略され、組み合わされ、分割され得る。例えば、図６のＵｎｉｃｏｄｅフィルタ６０６およびＮグラム言語識別モジュール６１９は、破線で示すように任意選択の機能である。
【００６１】
ステップ７０２で、テキストサンプル言語識別６２０を生成するために本発明に従ってテキストサンプル６０２の言語識別を実行する言語モジュール６０４によって、テキストサンプル６０２が受け取られる。ステップ７０４で、Ｕｎｉｃｏｄｅフィルタ６０６は、テキストサンプル６０２中の文字のＵｎｉｃｏｄｅ範囲を分析して、文字Ｕｎｉｃｏｄｅ範囲に基づく候補言語リスト６０８を生成する。このようにして、Ｕｎｉｃｏｄｅフィルタ６０６は、テキストサンプル６０２について考察される言語の数を制限し、または「フィルタにかける」ことができる。
【００６２】
Ｕｎｉｃｏｄｅ標準は、ＡＳＣＩＩのように、記号を含むあらゆる知られている文字ごとに一意の数または値を提供する国際文字符号化システムである。ゆえに、Ｕｎｉｃｏｄｅ値は、プラットフォーム、プログラム、あるいは言語を問わずに認識されるように意図されている。さらに、各人間言語の文字は、特定のＵｎｉｃｏｄｅ範囲内に含まれる傾向がある。また、人間言語は、一般に、特定のＵｎｉｃｏｄｅ範囲の周囲の群としてグループ化される。ゆえに、英語、フランス語、ドイツ語といったヨーロッパ言語の文字は、一般に、特定のＵｎｉｃｏｄ範囲内に含まれる。中国語、日本語、朝鮮語といったアジア言語は、ヨーロッパ言語のＵｎｉｃｏｄｅ範囲とは異なる別のＵｎｉｃｏｄｅ範囲内に含まれる。Ｕｎｉｃｏｄｅ標準に関する詳細はＷｅｂサイト  ｈｔｔｐ：／／ｗｗｗ．ｕｎｉｃｏｄｅ．ｏｒｇ／に記載されている。
【００６３】
ステップ７０５で、カウンタ６１１は、テキストサンプル６０２中の一意の特徴または文字ｊ＝１からＭの実際の出現回数を数える。カウンタ６１１は、より短いテキストサンプルについて可能な適切なスケーリングを用い、１０００文字などの、選択されたサンプルサイズに基づいてこれらのカウントを求めることができる。ステップ７０６で、スコアリングモジュール６１２は、テキストサンプル６０２の蓋然性の最も高い、または非蓋然的の最も低い（１つまたは複数の）言語を識別し、または選択するために、テキストサンプル６０２で数えられた実際の特徴出現回数ｆｊおよび候補言語リスト６０８の期待される確率またはカウント値６１４を受け取る。
【００６４】
スコアリングシステム６１２は、期待される確率ｐ１からｐＮ、および文字の総数Ｔが与えられたものとして、テキストサンプル６０２において、観測される、または現在のカウントｆ１からｆＮを有する特徴または文字１からＮが見られる同時確率を計算することによって、候補リスト６０８からの言語のスコアを生成することができる。これらの実施形態において、言語スコアは、以下に繰り返す、上記の式５に従うことができる。
【００６５】
【数６】
2006221658.tif 000008
【００６６】
式中、各Ｐ（ｆｉ｜Ｔ，πｉ）値は、図３Ａの３１９に示すような候補言語の格納された特徴確率情報にアクセスすることによって獲得され得る。これらの実施形態では、よりよい言語スコアはより高い。というのは、より高いスコアは、そのテキスト言語が候補言語であるより高い確率を示すからである。スコアリングモジュール６１０は、（１つまたは複数の）最善のスコアを有する（１つまたは複数の）言語６１８を生成する。しかしながら、別の実施形態では、スコアリングシステム６１２は、低いスコアを持つ言語を考察から除外する。
【００６７】
いくつかの実施形態では、スコアリングシステム６１２は、観測される、または現在の文字カウントを、考察される様々な候補言語の言語モデル６１４の期待されるカウントまたは確率および分散に対して比較する。例えば、図８ｂを参照すると、テキストサンプル６０２が、文字「ｉ」について現在の、または観測されるカウント７５を持つ場合、このカウントは、英語の分散内に含まれ、したがって、英語に有利にスコアがつけられるはずである。現在のカウントが１００または０である場合、それはこの分散のずっと外側にあたり、英語には不利にスコアがつけられるはずである。スコアリングシステム６１２は、期待される分散または範囲の外側にあるカウントを不利にするアルゴリズムを含み得る。このようにして、マイナスのスコアリングが可能である。これらの実施形態では、よりよいスコアはより低い。というのは、より低いスコアは、テキストの言語が候補言語に近いことを示すからである。言い換えると、観測される文字カウントは、期待されるカウントに「近い」。ゆえに、最低のスコアを持つ（１つまたは複数の）言語が（１つまたは複数の）テキスト言語６１８として識別され得る。代替として、「最も近い」１つまたは複数の候補言語が留まるように、より高いスコアを持つ言語を十分に「近く」ないものとして除去することもできる。
【００６８】
一実施形態では、スコアリングシステム６１２は、スコアリングアルゴリズムを以下のように実施する。
【００６９】
【数７】
2006221658.tif 000009
【００７０】
式中、ＦｉｎａｌＳｃｏｒｅＬはある言語の最終スコアであり、ＳｔｏｒｅｄＣｏｕｎｔｉは文字ｎの１０００文字当たりの期待されるカウントであり、ＣｕｒｒｅｎｔＣｏｕｎｔｉはテキストサンプル中の文字ｎのカウントであり、Ｎは文字数であり、Ｐｅｎａｌｔｙ（ペナルティ）は、ＣｕｒｒｅｎｔＣｏｕｎｔｉが分散内にある場合には１、およびＣｕｒｒｅｎｔＣｏｕｎｔｉが分散の外側にある場合には２などの倍数である。ゆえに、スコアは、候補リスト６０８中の各言語ごとに計算される。蓋然性の最も高い、または非蓋然性の最も低い言語６１８が、式６を使用して生成される最低のスコアに基づいて選択され得る。しかしながら、式７のスコアリング関数が例示であることに留意することは重要である。言語識別の二項分布または他の確率分布の意図（ｓｐｉｒｉｔ）を保持する他のスコアリング関数システムも言語識別のために使用され得る。
【００７１】
ステップ７１０で、スコアリングモジュール６１０は、統計的信頼度を求める任意の知られている手段に基づいて、蓋然性の最も高い、または非蓋然性の最も低い言語６１８の信頼度スコアを計算する。以下の表に、本発明による、信頼度にスコアをつけ、これを計算する１つの手段を示す。
【００７２】
【表１】
2006221658.tif 000010
【００７３】
【００７４】
【表２】
2006221658.tif 000011
【００７５】
ステップ７２０で、任意選択のＮグラム言語識別モジュール６１９は、上記特許文献１に記載されているようなＮグラム法に基づくその後の言語識別のために、テキストサンプル６０２および識別された言語６１８を受け取ることができる。さらに、ステップ７２０は、特にテキストサンプル６０２が比較的短いときに、正確さを向上させ得ることが分かる。ステップ７２２で、Ｎグラム言語識別モジュール６１０は、信頼度に基づいて返される１つの言語または言語のリストとすることのできる言語識別６２０を生成する。言語識別は、前述のように、その後のテキストサンプル６０２の自然言語処理で使用され得る。
【００７６】
図８ａ〜８ｂには、本発明による確率計算モジュール４１４によって生成される確率分布が示されている。図８ａには、一実施形態における、１０００文字のサンプルサイズが与えられた場合の英語の英字「ｉ」などの文字の確率曲線８００が示されている。図８ａには、最大確率８０８が、±７の分散で、おおよそカウント＝７２で出現することが示されている。言い換えると、１回または複数回の１０００文字セットのランダムなサンプリング時に、英語の文字「Ｉ」については、別のカウントではなく７２文字になる可能性がより高い。しかしながら、ランダムサンプリングは、一般に、英語が考察され、またはそのスコアがつけられているときに、期待される範囲８０６内の文字カウントを生み出すはずであることに留意することは重要である。範囲８０６は、図示のような分散８０２、８０４を含む。
【００７７】
本発明では、言語にマイナスのスコアがつけられ、かつ／またはプラスのスコアがつけられ得る。プラスのスコアリングは、ある言語に有利または不利な実際の出現（ｏｃｃｕｒｒｅｎｃｅ）を使用することを含む。マイナスのスコアリングは、ある言語に有利または不利な非出現（ｎｏｎ−ｏｃｃｕｒｒｅｎｃｅ）を使用することを含む。言語にマイナスのスコアをつけ、かつ／または言語にプラスのスコアをつけることができることは、しばしば、プラスの証拠スコアリングシステムだけに限定される他の言語識別システムよりも有利であると考えられることがわかる。例えば、Ｎグラムスコアリング法は、通常、プラスの証拠だけにスコアをつける。
【００７８】
本明細書で使用する際、「マイナスの証拠」とはある事象の非出現である。例えば、非出現は、テキストサンプル中の任意の場所における文字の非出現とすることができる。代替として、非出現は、期待される範囲内における文字カウントの非出現とすることもできる。すなわち、その文字カウントは、その文字の期待される範囲の外側にあることがわかる。同様に、「プラスの証拠」とは、ある事象の出現である。この出現は、サンプルテキスト中での文字の出現、または期待される範囲内での文字カウントの出現とすることができる。さらに、多くの実施形態では、スコアリング方式は、特定の言語に有利と不利なプラスとマイナス両方の証拠を考察することができることがわかる。
【００７９】
また例えば、ポルトガル語とスペイン語はきわめて類似している。しかしながら、ポルトガル語は、「
【００８０】
【数８】
2006221658.tif 000012
【００８１】
」という文字を含むが、スペイン語は含まない。したがって、あるテキストサンプルが「
【００８２】
【数９】
2006221658.tif 000013
【００８３】
」という文字を含む場合、これは、ポルトガル語に有利なプラスの証拠であり、スペイン語に不利なプラスの証拠である。テキストサンプルが「
【００８４】
【数１０】
2006221658.tif 000014
【００８５】
」という文字を含まない場合、これは、ポルトガル語に不利なマイナスの証拠であると同時に、スペイン語に有利なマイナスの証拠でもある。
【００８６】
図８ｂは、図８ａに似ているが、可能なデータポイント８１２、８１４、８１６も示すものである。ゆえに、（データポイント８１２および８１４に示される）文字カウント０および１００は、両方とも、期待される範囲８０６の外側に当たる。ゆえに、データポイント８１４における英語の期待される範囲内での文字「ｉ」の非出現は、英語に不利なマイナスの証拠である。言い換えると、英語は、「ｉ」の期待される文字カウントの非出現では、不利なようにマイナスのスコアがつけられる。同様に、（８１４に示すような）文字「ｉ」の非出現を有するテキストサンプルは、英語に不利なスコアがつけられるマイナスの証拠を生じるはずである。
【００８７】
これに対して、（８１６に示すような）７５の「ｉ」カウントを有するテキストサンプルは、英語に有利なプラスのスコアリングを生じることになる。言い換えると、文字「ｉ」での７５という観測される文字カウントは、期待される範囲内での文字カウントの出現であるため、英語に有利なプラスの証拠である。
【００８８】
訓練プロセス
図９に、図４に示すカウンタ４１５に関して説明したような物理的な、またはコンピュータを使用した訓練プロセスのアルゴリズムまたは実施形態を示す。図示の訓練プロセスは、様々な自然言語の（図４の文字リスト４１２に示す）文字の（図４の４１６に示す）確率またはカウント情報および関連付けられる分散を生成するのに使用され得る。以下で論じる変数名は例示のためのものであり、必ずしも、訓練コードで使用される実際の変数名であるとは限らないことがわかる。訓練プロセスは、各言語ごとに実行される。訓練プロセスの出力は、各言語ごとの文字カウントおよび分散の配列である。
【００８９】
まず、テキスト中の各文字の確率が事前計算される。訓練時には、一連の等サイズのスライディングウィンドウが考察される。訓練は、１０００文字のウィンドウ上で行われ得るが、理想的には、それらのウィンドウが等サイズのものである限り、他のウィンドウサイズも使用され得る。ウィンドウは、重なり合っても重なり合わなくてもよい。全く重ならない場合を含めて、ウィンドウが重なり合う量を調整するように内部で値が設定され得る。
【００９０】
各ウィンドウごとに、各文字の出現回数が、個々の合計としてカウントされ、格納される。訓練プロセスは各文字カウントをループし、文字カウントは、カウントおよびウィンドウの現在の合計を更新するのに使用される。各カウントは、以前に計算されたその文字の確率に基づいて、そのカウントが期待される１０００文字当たりのカウントを上回るか、それとも下回るか判定するためにチェックされる。上側の（すなわちプラスの）または下側の（すなわちマイナスの）分散合計がしかるべく増分される。
【００９１】
ウィンドウすべてを処理した後、様々なＴｏｔａｌ値を使用して、各文字のＡｖｅｒａｇｅＣｏｕｎｔＰｅｒＷｉｎｄｏｗ（ｐｒｏｂ．）ただしｐｒｏｂ．は確率、およびＡｖｅｒａｇｅＶａｒｉａｎｃｅが計算される。文字、そのＡｖｅｒａｇｅＣｏｕｎｔＰｅｒＷｉｎｄｏｗ、およびＡｖｅｒａｇｅＶａｒｉａｎｃｅは、これらの格納される値の実行時リソースになるファイルに出力され得る。
【００９２】
各文字ごとに、以下の値が追跡されることがわかる。
【００９３】
各ウィンドウごとに再計算される、現在のウィンドウのカウント（ＣｈａｒａｃｔｅｒＣｏｕｎｔ）、
全体のＴｏｔａｌＣｈａｒａｃｔｅｒＣｏｕｎｔ、
期待される確率／カウントを上回るＴｏｔａｌＣｏｕｎｔＡｂｏｖｅ、
この文字のカウントが期待される確率／カウントを上回ったウィンドウの総数である、ＴｏｔａｌＷｉｎｄｏｗｓＡｂｏｖｅ、
期待される確率／カウントを下回るＴｏｔａｌＣｏｕｎｔＢｅｌｏｗ、
ＴｏｔａｌＷｉｎｄｏｗｓＢｅｌｏｗ：現在の文字のカウントが期待される確率またはカウントを下回ったウィンドウの総数。
【００９４】
さらに、全体的なＴｏｔａｌＷｉｎｄｏｗｓＳｅｅｎの数も追跡される。ＡｖｅｒａｇｅＣｏｕｎｔＰｅｒＷｉｎｄｏｗ値は、期待される事前計算の文字確率とほぼ同じであることがわかる。
【００９５】
図１０に、本発明による言語識別のアルゴリズムまたは実施形態を示す。各入力テキストごとに、考察されるサンプルの数が決定される。テキストサンプルが十分に長い場合、サンプルはテキスト中のいくつかのポイントから取られ得る。テキストが短い場合、ただ１つのサンプルだけが選択され得る。各サンプルごとに、まず、テキストが前処理されて、スペースおよび、ＵＲＬや数字など、言語特有でない文字が削除される。次に、各文字が、ラテン、キリル、アラビアなど、その文字範囲についてチェックされる。各範囲に見られる文字の数が追跡される。一意のＵｎｉｃｏｄｅ文字範囲からの文字は、（本明細書では説明しない）別個のモジュールで処理される。他のすべての範囲について、各一意の文字の出現回数が数えられる。その文字範囲がサンプル中で表されない（または最小限にしか表されない）どんな言語も除外される。
【００９６】
一意でない範囲、すなわち、複数の言語によって共用される範囲中の文字については、文字カウント、格納されたデータ、および式６のスコアリングアルゴリズムを使用してスコアが計算される。最善のスコアを持つ言語が決定される。これらの勝利言語が、一意の範囲のモジュールからの任意の勝利言語と組み合わされる。最後に、１つまたは複数の勝利言語の信頼度を、特に勝利言語をランク付けするために、計算することができ、次いで、それらの勝利言語が返される。
【００９７】
図１１は、テキストの各候補言語ごとのスコアを計算する１つの具体的な実施形態またはアルゴリズムを示す流れ図である。このアルゴリズムは、まだ除外されていない言語をループする。各言語ごとに、アルゴリズムは、期待される文字カウントおよび分散の配列にアクセスする。次いで、テキストでカウントされたすべての文字および言語によって期待されるすべての文字を含む最小限の文字範囲を隔離する。アルゴリズムは、これらの文字をループする。テキストからのカウント（ＣｕｒｒｅｎｔＣｏｕｎｔ）または言語の期待されるカウント（ＳｔｏｒｅｄＣｏｕｎｔ）のどちらかが０より大きい場合、または両方が０より大きい場合、以下の式を使用して文字のスコアが計算される。
【００９８】
ＣｈａｒａｃｔｅｒＳｃｏｒｅｉ＝（｜ＳｔｏｒｅｄＣｏｕｎｔｉ−ＣｕｒｒｅｎｔＣｏｕｎｔｉ｜×Ｐｅｎａｌｔｙ）２          式８
Ｐｅｎａｌｔｙは、ＣｕｒｒｅｎｔＣｏｕｎｔがその文字の格納された分散内にないときに１より大きい。このスコアがその言語の総スコアに加算される。すべての文字がすべての言語について処理されると、アルゴリズムは総スコアのセットをループし、各言語の総スコアの平方根を取る。次いで、各言語ごとの最終スコアが以下の式によって与えられる。
【００９９】
【数１１】
2006221658.tif 000015
【０１００】
式中、各項は、上記で定義されているものである。
【０１０１】
以上、本発明を特定の実施形態を参照して説明したが、本発明の精神および範囲を逸脱することなく、形式および内容の変更が加えられ得ることを当業者は理解されよう。
【図面の簡単な説明】
【０１０２】
【図１】本発明が使用され得る１つの例示的環境を示す図である。
【図２】本発明が使用され得る自然言語処理システムの環境を示す図である。
【図３】本発明の主要な態様を示す流れ図である。
【図３Ａ】図３Ｂと併せて、テキストサンプルの言語識別を含む、図３に示す態様を実行する方法およびシステムを示す図である。
【図３Ｂ】図３Ａと併せて、テキストサンプルの言語識別を含む、図３に示す態様を実行する方法およびシステムを示す図である。
【図４】本発明による語彙知識ベースを拡大するシステムを示すブロック図である。
【図５】一般に、図４のシステムと一致する方法のステップを示す図である。
【図６】本発明による言語識別を実行するシステムを示す図である。
【図７】一般に、図６のシステムと一致する方法のステップを示す図である。
【図８ａ】格納された確率情報を示す図である。
【図８ｂ】言語識別時の格納された確率情報の使用を示す図である。
【図９】本発明によるコンピュータ援用訓練プロセスの一実施形態を示す流れ図である。
【図１０】本発明による言語識別の一実施形態を示す流れ図である。
【図１１】本発明によるテキストの最も可能性の高い言語を決定する一実施形態を示す流れ図である。
【符号の説明】
【０１０３】
１００  コンピューティングシステム環境
１１０  コンピュータ
１２０  処理装置
１３０  システムメモリ
１３４  オペレーティングシステム
１３５  アプリケーションプログラム
１３６  その他のプログラムモジュール
１３７  プログラム  データ
１４０  取り外し不能不揮発性メモリインターフェース
１４１  ハードディスクドライブ
１４４  オペレーティングシステム
１４５  アプリケーションプログラム
１４６  その他のプログラムモジュール
１４７  プログラム  データ
１５０  取り外し可能不揮発性メモリインターフェース
１５２  取り外し可能、不揮発性磁気ディスク
１５５  光ディスクドライブ
１５６  不揮発性光ディスク
１６０  ユーザ入力インターフェース
１６１  ポインティングデバイス
１６２  キーボード
１６３  マイクロホン
１７０  ネットワークインターフェース
１７１  ローカルエリアネットワーク
１７２  モデム
１７３  広域ネットワーク
１８０  リモートコンピュータ
１８５  リモートアプリケーションプログラム
１９０  ビデオインターフェース
１９１  モニタ
１９５  出力周辺装置インターフェース
１９６  プリンタ
１９７  スピーカ
【図１】
2006221658.tif 000016
【図２】
2006221658.tif 000017
【図３】
2006221658.tif 000018
【図３Ａ】
2006221658.tif 000019
【図３Ｂ】
2006221658.tif 000020
【図４】
2006221658.tif 000021
【図５】
2006221658.tif 000022
【図６】
2006221658.tif 000023
【図７】
2006221658.tif 000024
【図８ａ】
2006221658.tif 000025
【図８ｂ】
2006221658.tif 000026
【図９】
2006221658.tif 000027
【図１０】
2006221658.tif 000028
【図１１】
2006221658.tif 000029