(57)【要約】  ライティングシステム及び言語を検出するための方法、システム、及びコンピュータプログラム製品を含む装置が開示される。一実施例では、方法が提供される。この方法は、テキストを受け入れ、かなりの量が第１言語を表現するテキストの第１セグメントを検出し、かなりの量が第２言語を表現するテキストの第２セグメントを検出し、テキスト中に含まれるサイズｘの各ｎグラムに対してスコアを確認し、スコアの変化に基づき、テキストにおいて第１言語から第２言語への遷移を識別するエッジを検出することを含む。
2012529108.tif 000002
【特許請求の範囲】
【請求項１】
テキストを受け入れ、
かなりの量が第１言語を表現する前記テキストの第１セグメントを検出し、
かなりの量が第２言語を表現する前記テキストの第２セグメントを検出し、
前記テキスト中に含まれるサイズｘの各ｎグラムに対してスコアを確認し、
前記スコアの変化に基づき、前記テキストにおいて前記第１言語から前記第２言語への遷移を識別するエッジを検出する、
ことを含むコンピュータにより実現される方法。
【請求項２】
スコアが、前記ｎグラムが特定の言語を表現する可能性を意味する請求項１に記載の方法。
【請求項３】
スコアが、前記ｎグラムが前記第１言語を表現する可能性と、前記ｎグラムが前記第２言語を表現する可能性との相違を意味する請求項１に記載の方法。
【請求項４】
エッジの検出が、
連続したｎグラムの第１グループに対するスコアの第１平均を計算すること、
連続したｎグラムの第２グループに対するスコアの第２平均を計算すること、および
前記第１平均と前記第２平均との相違に基づきエッジを識別することを備え、
連続したｎグラムが、第１左コンテキストと第１右コンテキストとを備える第３ｎグラムと、第２左コンテキストと第２右コンテキストとを備える第４ｎグラムとを含むものとして規定され、前記第２左コンテキストが前記第１右コンテキストであり、連続したｎグラムの前記第１グループが、終りのｎグラムを備える特定数の連続したｎグラムを含むものとして規定されており、
連続したｎグラムの前記第２グループが、前記終りのｎグラムに隣接する始めのｎグラムを備える同数の連続したｎグラムを含むものとして規定されている請求項３に記載の方法。
【請求項５】
テキストを受け入れ、
１つ又はそれ以上の第１言語を表現する、前記テキストの第１部分において表現されるライティングシステムを識別し、
前記テキストの第１部分において表現される前記１つ又はそれ以上の第１言語からのみの特定の言語を検出する、
ことを含むコンピュータにより実現される方法。
【請求項６】
前記ライティングシステムの識別が、前記テキストの前記第１部分でのコード化における文字を、対応するライティングシステムにマッピングすることを含む請求項５に記載の方法。
【請求項７】
前記コード化がユニコードである請求項６に記載の方法。
【請求項８】
文書を受け入れ、
かなりの量のテキストが第１ライティングシステムにおけるテキストを表現する、前記文書の第１部分を識別し、
かなりの量のテキストが前記第１ライティングシステムの言語で各々表わされている、前記文書の前記第１部分における１つ又はそれ以上のセグメントを識別し、
前記１つ又はそれ以上のセグメントにおいてかなりの量のテキストによって表現される前記第１ライティングシステムの特定の言語を検出する、
ことを含むコンピュータにより実現される方法。
【請求項９】
かなりの量のテキストが第２ライティングシステムにおけるテキストを表現する、前記文書の第２部分を識別し、
１つ又はそれ以上のセグメントのうち１つ又はそれ以上の各々においてかなりの量のテキストが、前記第２ライティングシステムの言語で表わされる、前記文書の前記第２部分における前記１つ又はそれ以上のセグメントを識別することを含むことをさらに含む請求項８に記載の方法。
【請求項１０】
前記第１ライティングシステムが、中国語、日本語及び韓国朝鮮語を表現するのに使用されるライティングシステムを含む、合体したライティングシステムである請求項８に記載の方法。
【請求項１１】
データ処理装置の操作を実施させるように動作できる有形のプログラムキャリア上にコード化されたコンピュータプログラム製品であって、
テキストを受け入れ、
かなりの量が第１言語を表現する前記テキストの第１セグメントを検出し、
かなりの量が第２言語を表現する前記テキストの第２セグメントを検出し、
前記テキスト中に含まれるサイズｘの各ｎグラムに対してスコアを確認し、
前記スコアの変化に基づき、前記テキストにおいて前記第１言語から前記第２言語への遷移を識別するエッジを検出する、
ことを含むコンピュータプログラム製品。
【請求項１２】
データ処理装置の操作を実施させるように動作できる有形のプログラムキャリア上にコード化されたコンピュータプログラム製品であって、
テキストを受け入れ、
１つ又はそれ以上の第１言語を表わし、前記テキストの第１部分において表現されるライティングシステムを識別し、
前記テキストの第１部分において表現される前記１つ又はそれ以上の第１言語からのみ特定の言語を検出する、
ことを含むコンピュータプログラム製品。
【請求項１３】
データ処理装置の操作を実施させるように動作できる有形のプログラムキャリア上にコード化されたコンピュータプログラム製品であって、
テキストを受け入れ、
かなりの量のテキストが第１ライティングシステムでテキストを表現する前記文書の第１部分を識別し、
かなりの量のテキストが前記第１ライティングシステムの言語で各々表現される前記文書の前記第１部分における１つ又はそれ以上のセグメントを識別し、
前記１つ又はそれ以上のセグメントにおいてかなりの量のテキストによって表現される前記第１ライティングシステムの特定の言語を検出する、
ことを含むコンピュータプログラム製品。
【請求項１４】
プログラム製品を備える機械で読み取り可能な記憶装置と、前記プログラム製品を実行し、操作を実施させるように動作できる１つ又はそれ以上のコンピュータとを含み、
テキストを受け入れ、
かなりの量が第１言語を表現する前記テキストの第１セグメントを検出し、
かなりの量が第２言語を表現する前記テキストの第２セグメントを検出し、
前記テキスト中に含まれるサイズｘの各ｎグラムに対してスコアを確認し、
前記スコアの変化に基づき、前記テキストにおいて前記第１言語から前記第２言語への遷移を識別するエッジを検出することを含むシステム。
【請求項１５】
プログラム製品を備える機械で読み取り可能な記憶装置と、前記プログラム製品を実行し、操作を実施させるように動作できる１つ又はそれ以上のコンピュータとを含み、
テキストを受け入れ、
１つ又はそれ以上の第１言語を表わし、前記テキストの第１部分において表現されるライティングシステムを識別し、
前記テキストの第１部分において表現される前記１つ又はそれ以上の第１言語からのみ特定の言語を検出することを含むシステム。
【請求項１６】
プログラム製品を備える機械で読み取り可能な記憶装置と、前記プログラム製品を実行し、操作を実施させるように動作できる１つ又はそれ以上のコンピュータとを含み、
文書を受け入れ、
かなりの量のテキストが第１ライティングシステムにおけるテキストを表現する前記文書の第１部分を識別し、
かなりの量のテキストが前記第１ライティングシステムの言語で各々表わされている前記文書の前記第１部分における１つ又はそれ以上のセグメントを識別し、
前記１つ又はそれ以上のセグメントにおいてかなりの量のテキストによって表現される前記第１ライティングシステムの特定の言語を検出することを含むシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、ライティングシステム及び言語の検出に関する。
【背景技術】
【０００２】
ライティングシステムは、シンボル、例えば、文字又は書記素を使用して、言語の音声を表現する。ライティングシステムにおけるシンボルの集合を、スクリプトと呼ぶことができる。例えば、１つ又はそれ以上のローマン・スクリプトにおけるローマ字の集合を含む、ラテン・ライティングシステムは、英語を表現するのに使用され得る。特定のライティングシステムは、１つ以上の言語を表現するのに使用され得る。例えば、ラテン・ライティングシステムは、またフランス語を表現するのに使用され得る。
【０００３】
さらに、所与の言語は、１つ以上のライティングシステムによって表現され得る。例えば、中国語は、第１ライティングシステム、例えば、ピンイン（即ち、ローマ字表記された中国語）によって表現され得る。中国語は、また第２ライティングシステム、例えば、ボポモフォ即ち注音符号（「注音」）を使用して表現され得る。さらに別の例として、中国語は、第３ライティングシステム、例えば、漢字を使用して表現され得る。
【０００４】
ライティングシステムと言語との複雑な関係は、入力テキストから言語を自動的に検出する困難性を増大させる。入力テキストから言語を検出する確度と精度は、分類辞をトレーニングするのに使用されるトレーニングデータの量と質に依存することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本明細書では、言語検出に関する技術を述べる。
【課題を解決するための手段】
【０００６】
一般に、本明細書で述べる主題の１つの態様は、テキストを受け入れ、かなりの量が第１言語を表現するテキストの第１セグメントを検出し、かなりの量が第２言語を表現するテキストの第２セグメントを検出し、テキスト中に含まれるサイズｘの各ｎグラムに対してスコアを確認し、スコアの変化に基づき、テキストにおいて第１言語から第２言語への遷移を識別するエッジを検出する動作を含む方法において具体化されることができる。この態様の他の実施形態は、対応するシステム、装置、及びコンピュータプログラム製品を含む。
【０００７】
これらの及び他の実施形態は、必要に応じて１つ又はそれ以上の以下の特徴を含み得る。スコアは、ｎグラムが特定の言語を表現する可能性を表現する。スコアは、ｎグラムが第１言語を表現する可能性と、ｎグラムが第２言語を表現する可能性との相違を表現する。エッジの検出は、連続したｎグラムの第１グループに対するスコアの第１平均を計算することを備え、連続したｎグラムが、第１左コンテキストと第１右コンテキストとを備える第３ｎグラムと、第２左コンテキストと第２右コンテキストとを備える第４ｎグラムとを含むものとして規定されており、第２左コンテキストが第１右コンテキストであり、連続したｎグラムの第１グループが、終りのｎグラムを備えた特定数の連続したｎグラムを含むものとして規定されている。エッジの検出はさらに、連続したｎグラムの第２グループに対するスコアの第２平均を計算することを備え、連続したｎグラムの第２グループが、終りのｎグラムに隣接する始めのｎグラムを備える同数の連続したｎグラムを含むものとして規定されており、第１平均と第２平均との相違に基づきエッジを識別することを備える。
【０００８】
一般に、本明細書に記載される主題の別の態様は、テキストを受け入れ、１つ又はそれ以上の第１言語を表現するテキストの第１部分において表現されるライティングシステムを識別し、テキストの第１部分において表現される１つ又はそれ以上の第１言語からのみの特定の言語を検出する動作を含む方法において具体化されることができる。この態様の他の実施形態は、対応するシステム、装置、及びコンピュータプログラム製品を含む。
【０００９】
これらの及び他の実施形態は、必要に応じて１つ又はそれ以上の以下の特徴を含むことができる。ライティングシステムの識別は、テキストの第１部分でのコード化における文字を、対応するライティングシステムにマッピングすることを含む。コード化はユニコードである。
【００１０】
一般に、本明細書に記載される主題の別の態様は、文書を受け入れ、かなりの量のテキストが第１ライティングシステムにおけるテキストを表現する文書の第１部分を識別し、かなりの量のテキストが第１ライティングシステムの言語で表わされている文書の第１部分における１つ又はそれ以上のセグメントを識別し、１つ又はそれ以上のセグメントにおいてかなりの量のテキストによって表現される第１ライティングシステムの特定の言語を検出する動作を含む方法において具体化されることができる。この態様の他の実施形態には、対応するシステム、装置、及びコンピュータプログラム製品が含まれる。
【００１１】
これらの及び他の実施形態は、必要に応じて１つ又はそれ以上の以下の特徴を含むことができる。方法は、かなりの量のテキストが第２ライティングシステムにおけるテキストを表現する文書の第２部分を識別し、１つ又はそれ以上のセグメントのうち１つ又はそれ以上の各々においてかなりの量のテキストが、第２ライティングシステムの言語で表現される、文書の第２部分における１つ又はそれ以上のセグメントを識別することをさらに含む。第１ライティングシステムは、中国語、日本語及び韓国朝鮮語を表現するのに使用されるライティングシステムを含む、合体したライティングシステムである。
【００１２】
本明細書に記載される主題の特定の実施形態は、１つ又はそれ以上の次の利点を達成するように実現され得る。
【００１３】
言語検出のための開示されたシステム及び技術は、例えば、ノイズのあるデータを取り除き、特定の言語を表すようなトレーニングデータを正確に分類することによって、トレーニングデータの質を向上させるのに使用されることができ、これにより入力テキストから言語を検出する正確さ、効率性及び精度を増加させる。特に、反復性のテキストを検出し取り除くと、言語を検出することができる文書（例えば、ウェブページ、ブログ及びＥメールのようなノイズのある文書）の種類が増加し、これにより利用可能なトレーニングデータの量を増大させる。さらに、単一の文書において混合された言語を検出することは、多くの文書が２つ又はそれ以上の言語のテキストを収容しているので、利用可能なトレーニングデータの量も増大させる。
【００１４】
言語検出のためのシステム及び技術はまた、例えば、ノイズのあるデータを入力テキストから取り除き、入力テキストが表現するかもしれない唯一のライティングシステムの特定の言語に関する分析に焦点を合わせ、類似の言語を区別し、入力テキストに使用される言語間の正確な遷移を検出することによって、言語検出を合理化するのに使用されることができ、これにより入力テキストから言語を検出する正確さ、効率性及び精度をさらに増加させる。
【００１５】
本明細書に記載される主題の１つ又はそれ以上の実施形態の詳細は、添付図面及び以下の説明に記載される。主題の他の特徴、態様、及び利点は、以下の記載、図面、及び特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１６】
【図１】図１は、検出システムの例を含む図である。
【図２Ａ】図２Ａは、圧縮を使用して反復性を検出するプロセスの例を図示する。
【図２Ｂ】図２Ｂは、反復性のトークンを含むテキストのシーケンスの例を図示する。
【図３】図３は、ライティングシステム及び言語を検出するため、テキストにおけるセグメントを識別するためのプロセスの例を示す。
【図４Ａ】図４Ａは、第２言語におけるテキストを表現するトークンの第２シーケンスが後に続く第１言語におけるテキストを表現するトークンの第１シーケンスを含むテキストの例を示す。
【図４Ｂ】図４Ｂは、テキストにおいて表現される異なる言語間のエッジを検出するためのプロセスの例を示す。
【図５】図５は、人工言語を生成し、人工言語を使用して言語を検出するためのプロセスの例を示す。
【図６Ａ】図６Ａは、類似の言語からの用語を含むテキストのシーケンスの例を図示する。
【図６Ｂ】図６Ｂは、類似の言語を区別するためのプロセスの例を図示する。
【図７】図７は、一般的なコンピュータシステムの概略図である。種々の図面における同じ参照符号及び名称は、同じ要素を示す。
【発明を実施するための形態】
【００１７】
（統計的な言語検出の概要）
ｎグラムは、ｎ個の連続したトークン、例えば、単語又は文字のシーケンスである。ｎグラムは、ｎグラムにおけるトークンの数である序列又はサイズを有する。例えば、１グラム（又はユニグラム）は１つのトークンを含み、２グラム（又はバイグラム）は２つのトークンを含む。
【００１８】
所与のｎグラムは、ｎグラムの異なる部分によって記載され得る。ｎグラムは、コンテキスト及び将来のトークン（コンテキストｗ）として記載され得、その場合、コンテキストの長さはｎ−１であり、ｗは将来のトークンを表す。例えば、３グラム「ｃ１ｃ２ｃ３」は、ｎグラムのコンテキスト及び将来のトークンに特有の表現で記載され得る（ここで、ｃ１、ｃ２及びｃ３は各々、文字を表す）。ｎグラムの左のコンテキストは、ｎグラムの最後のトークンに先行するｎグラムの全てのトークンを含む。この所与の例では、「ｃ１ｃ２」がそのコンテキストである。コンテキストにおける最も左のトークンは、左トークンと呼ばれる。将来のトークンは、ｎグラムの最後のトークンであり、この例では、「ｃ３」である。ｎグラムは、右のコンテキストに関して記載され得る。右のコンテキストは、ｎグラムの第１トークンの後に続くｎグラムの全てのトークンを含み、（ｎ−１）グラムとして表現される。上述の例では、「ｃ２ｃ３」が右のコンテキストである。
【００１９】
各ｎグラムは、関連づけられた確率推定量、例えば対数確率を有することができ、対数確率は、トレーニングデータでの全出現回数に対する特定の言語におけるトレーニングデータでの出現回数の関数として計算される。例えば、言語検出システムは、トレーニングデータにおいて４グラム（クワッドグラム）を全て識別することによって、トレーニングデータを構文解析することができる。各クワッドグラムに対して、トレーニングデータでの特定の言語の各々における出現数の回数を維持し記録することができる。各クワッドグラムは、クワッドグラムが特定の言語を識別する可能性を示す確率推定量と関連づけることもできる。例えば、英−羅、例えば英語−ラテン文字に対応する第１クワッドグラムについてのエントリは、第１クワッドグラムが英語のテキストを示す可能性と関連づけることができる。別の例として、第１クワッドグラムについての別のエントリは、仏−羅、例えばフランス語−ラテン文字に対応し、第１クワッドグラムがフランス語のテキストを示す可能性と関連づけることができる。
【００２０】
幾つかの実施例では、特定の言語において単語を識別するｎグラムの確率は、特定の言語におけるトレーニングデータで表わされたｎグラムの相対頻度を使用してトレーニングされる。さらに、幾つかの実施例では、大量のトレーニングデータ（例えば、テラバイトのデータ）のための分散型トレーニング環境が使用される。分散型トレーニングの技術の一例は、マップリデュース（ＭａｐＲｅｄｕｃｅ）である。マップリデュースについての更なる詳細は、「マップリデュース：大規模なクラスタ上での単純化されたデータ処理（MapReduce:Simplified  Data  Processing  on  Large  Clusters）」（Ｊ．Ｄｅａｎ及びＳ．Ｇｈｅｍａｗａｔ著、第６回オペレーティングシステムデザイン及び実施例に関するシンポジウム予稿集、１３７頁〜１５０頁、２００４年１２月６日）に記載されている。
【００２１】
ｎグラム、関連づけられた確率推定量及びそれぞれの回数は、入力テキストにおける言語を検出する分類辞、例えば単純ベイズ分類辞用の分類モデル中に記憶され得る。入力テキストが特定の言語を表現する可能性を示すスコアは、入力テキスト中に含まれるｎグラムを、特定の言語に対して関連づけられた確率推定量にマッピングし、各々のｎグラムに対して関連づけられた確率推定量に対応する対数確率を総計することによって、計算され得る。
【００２２】
例えば、２つのグループのトレーニングデータは、第１グループのフランス語のトレーニングデータ（例えば、フランス語で表わされたウェブページのコーパス、検索クエリログ、Ｅメール、及びブログ）と、第２グループの英語のトレーニングデータとを含む。従来の技術は、各々のｎグラムに対する上述の回数及び確率推定量を識別し、例えばハッシュテーブルを使用して分類モデル内に記憶することができるように、各グループのトレーニングデータを処理するのに使用され得る。その際、確率推定量は、他のテキストにおける言語を検出するのに使用され得る。特に、他のテキストは、指定されたサイズのｎグラムを使用して、構文解析され得る。指定されたサイズのｎグラムは、それぞれの確率を決定するため、分類モデルのエントリと比較され得る。他の技術及び従来の技術に対する改良は、後述のように可能である。
【００２３】
（言語検出システムの例）
図１は、検出システム１００の例を含む。検出システム１００は、圧縮モジュール１０５と、セグメントモジュール１１０と、エッジ検出モジュール１１５と、言語生成モジュール１２０と、比較モジュール１２５と、分類モジュール１３０と、検出モジュール１３５とを含む。検出システム１００の構成要素は、１つ又はそれ以上、互いに通信可能に接続され得る。他の実施例が可能である。例えば、分類モジュール１３０は、検出システム１００とは別個の構成要素とすることができる。さらに、検出システム１００において識別される構成要素が論理的に別体又は別個のものとして記載されているが、検出システム１００の１つ又はそれ以上の構成要素は、結合してもよいし更に分割してもよい。
【００２４】
検出システム１００は、図２Ａ〜図６Ｂに関して後述される動作を含む操作を実行することによって、テキスト中に表現されたライティングシステム及び言語を検出するのに使用され得る。幾つかの実施例では、検出システム１００は、他のテキストの言語を識別するのに使用することができる、特定の言語に対するトレーニングデータのグループを識別する。例えば、識別されたトレーニングデータのグループは、言語検出に使用される素朴な単純ベイズ分類辞をトレーニングするのに使用され得る。幾つかの実施例では、検出システム１００は、特定の言語を表現するトレーニングデータの指定されたグループから生成された分類モデルに基づき、入力テキストにおける言語を識別する。他の実施例が可能である。例えば、検出システム１００は、特定の言語に対するトレーニングデータのグループを識別し、トレーニングデータの識別されたグループを使用して、従来の技術、後述される技術又はそれらの組み合わせによって他の入力テキストにおける言語を検出することができる。
【００２５】
概観すると、圧縮モジュール１０５は、テキストの反復を検出し、特定の言語を識別しない。セグメントモジュール１１０は、テキストをセグメント化して部分にし、テキストの当該部分において表現される特定の言語の正確な識別を容易にする。エッジ検出モジュール１１５は、特定の言語で表わされているテキスト中のシーケンスの確率を識別するのに使用されるスコアのエッジを検出し、テキストの当該部分における言語間の遷移の正確な識別を容易にする。言語検出モジュール１２０は、テキストが表現する特定の言語を識別するのに使用されるべきではないテキストの部分の識別を容易にするため、例えば分類モデルの形態で人工言語を生成する。比較モジュール１２５、分類モジュール１３０及び検出モジュール１３５は、単独で又は言語検出を行う他のモジュールと共に使用されることができる。例えば、比較モジュール１２５及び分類モジュール１３０は、類似の用語を使用する言語を区別するのに使用されることができる。
【００２６】
（反復性のテキストの検出）
反復性のテキストは、特定の言語を識別するテキストのシーケンスの計算された確率をゆがめる「ノイズ」とみなされることがある。従って、トレーニングデータから、又は言語を検出しようとする入力テキストから、反復性のテキストを取り除くことが好都合となり得る。
【００２７】
図２Ａは、圧縮を使用して反復性を検出するためのプロセス２００の例を示している。便宜上、テキストの圧縮は、圧縮を実施するシステム（例えば、図１の検出システム１００）に関連して記載される。システムは、テキストを受け入れる（２０２）。システムは、非反復性であるようなテキストの部分を識別する。
【００２８】
特に、システムは、テキストの第１部分の基礎となるデータを圧縮する（２０４）。例えば、圧縮モジュール１０５は、入力テキストの一部分、例えば、入力テキストの１つ又はそれ以上のライン又はパラグラフを圧縮するため、従来の圧縮技術を使用することができる。例えば、システムは、可逆データ圧縮技術又は不可逆データ圧縮技術を使用することができる。基礎となるデータを圧縮した後、システムは、基礎となるデータの圧縮の量に基づき、データ圧縮比を識別する（２０６）。例えば、圧縮モジュール１０５は、データ圧縮比を識別することができる。
【００２９】
システムは、テキストの第１部分がデータ圧縮比に基づき非反復性であるか否かを決定する（２０８）。例えば、圧縮モジュール１０５は、データ圧縮比を閾値と比較することができる。一般に、テキストは、基礎となるデータを圧縮することができる量が増加するとき、より反復性になるものと思われる。従って、使用される閾値は、実施される圧縮技術に依存し得る。例えば、可逆データ圧縮技術が使用されるとき、閾値を、不可逆データ圧縮技術が使用されるときよりも低い値に設定することができる。幾つかの実施例では、識別されたデータ圧縮比が閾値よりも小さい場合、例えば、テキストの第１部分が、反復性のテキストを表現する圧縮の量以上に圧縮され得ない場合には、テキストの第１部分は、非反復性であると決定される。同様に、識別されたデータ圧縮比が閾値と等しいか又はそれ以上である場合には、テキストの第１部分は、反復性であると決定される。
【００３０】
システムは、非反復性であると決定されるテキストの部分に基づき、言語検出に用いられる候補テキストとして、テキストの第１部分を識別する（２１０）。例えば、分類モジュール１３０は、テキストの第１部分が非反復性であるとして識別される場合には、言語検出に用いられる候補テキストとして、テキストの第１部分を識別することができる。幾つかの実施例では、候補テキストは、言語を検出するための１つ又はそれ以上の分類モデルを生成するのに使用され得るトレーニングデータとして使用される。幾つかの別の実施例では、候補テキストは、１つ又はそれ以上の言語が検出される入力テキストの部分である。
【００３１】
幾つかの実施例では、一定サイズのブロック、例えば、４８バイトの入力テキストは、予測ウィンドウを使用して構文解析される。予測ウィンドウは、例えば、トリグラムに続く次のトークンを予測するため、１２ビットのハッシュのトリグラムを実施するのに使用され得る。予測ウィンドウは、多くの正確な予測（又は反復）を計算するため、各トリグラム上を移動させ、例えば、テキスト中の１つのトークンを一度に移動させることができる。
【００３２】
図２Ｂは、反復性のトークンを含むテキストのシーケンスの例を図示している。テキストのシーケンスは、トークン「Ｘ１  Ｘ２  Ｘ３  Ｘ４  Ｘ１  Ｘ２  Ｘ５  Ｘ１  Ｘ６」を示す。例えば、各トークンは、文字を表現することができる。検出システムは、文字のシーケンス「Ｘ１  Ｘ２  Ｘ３  Ｘ４  Ｘ１  Ｘ２  Ｘ５  Ｘ１  Ｘ６」を受け入れる。第１文字Ｘ１は、例えばハッシュテーブルのようなデータ構造でメモリ内に記憶され得る。検出システムはまた、第２文字が当該テキストにおいて第１文字の直後に出現するとき、第１文字を第２文字と関連づける。例えば、Ｘ２がＸ１の直後に出現するので、Ｘ２をＸ１と関連づけることができる。検出システムは、第２文字が第１文字と既に関連づけられているとき、例えば、第２文字が第１文字によって予測されるとき、第２文字が後に続く第１文字の組み合わせを反復性として識別する。例えば、文字「Ｘ１  Ｘ２」は、Ｘ４の出現後に再現し、反復性として検出される。
【００３３】
幾つかの実施例では、第１文字、例えばＸ１は、第１文字の直後に出現するとして検出された直近の文字とのみ関連づけられる。例えば、Ｘ６は、Ｘ１の三回目の出現の直後に出現する。従って、Ｘ６はＸ１と関連づけられ、Ｘ２はもはや、Ｘ１と関連づけられない。その結果、文字「Ｘ１  Ｘ２」の次の出現は、反復性として識別されなくなる。むしろ、Ｘ１は、文字「Ｘ１  Ｘ２」の次の出現時にＸ２と関連づけられる。換言すると、第２文字とは異なる第３文字が後に続く第１文字の出現前に、第２文字が後に続く第１文字の組み合わせが再び出現した場合にのみ、反復性の文字が識別される。
【００３４】
幾つかの実施例では、一定サイズのブロックの入力テキストにおける正確な予測の大きな割合（例えば、６０％）は、反復性のテキストであることを示し、一定サイズのブロックの入力テキストは、システムが言語検出を実施する前に取り除かれる。別の実施例では、テキストは、例えば上述の技術の実施に基づき、反復性であるとみなされないかもしれないが、特定の言語によって表現されるとして、低い確実性で識別されるかもしれない。例えば、２つの蓋然性の高い言語がテキストによって表現される確率が同様なものであるかもしれず、或いはテキストによって最も表現されそうな言語が、テキストの３分の１未満を表現するとして検出される。確実性が低く、正確な予測の大きな割合（例えば、５０％）が反復性のテキストを示すとき、反復性のテキストを含む単語は、言語検出が実施される前に取り除かれる。例えば、図２Ｂに示されるように、Ｘ４の後の「Ｘ１  Ｘ２」の出現は、言語検出における使用から取り除かれえる。
【００３５】
他の実施例が可能である。例えば、確実性が低くないときでさえ、反復性の単語を取り除くことができる。幾つかの実施例では、反復性の単語は、削除によって取り除かれる。別の実施例では、反復性の単語の関連づけられた確率推定量は、重みを使用して修正（例えば、低減）される。例えば、取り除くために、関連づけられた確率推定量に、ゼロを乗ずることができる。別の例として、反復する単語によってもたらされるかもしれない統計誤差を当該反復性の単語を完全に取り除かずに減少させるため、関連づけられた確率推定量は、０〜１の値の重みを乗ずることができる。
【００３６】
（テキストにおけるセグメントの識別）
セグメント化したテキストは、言語の検出時に有用となり得る。これは、テキストの異なる部分を異なるライティングシステムで表現することができるからである。さらに、特定のライティングシステムにおける異なるセグメントの部分を、異なる言語で表現することができる。例えば、テキストは、ラテン文字のテキストの第１部分と、キリル文字のテキストの第２部分とを含むことができる。ラテン文字のテキストの第１部分は、英語及びスペイン語を表現するテキストのセグメントを含むことができる。キリル文字のテキストの第２部分は、ブルガリア語及びロシア語を表現するテキストのセグメントを含むことができる。テキストの第１部分又は第２部分が中国語を表現するテキストのセグメントを含む可能性は、ありそうにもない。さらに、テキストの第１部分がブルガリア語を表現するテキストのセグメントを含む可能性も、ありそうにもない。その結果として、ライティングシステムによって表現される言語を検出する前に、テキストで表現されるライティングシステムを最初に検出することが好都合となり得る。
【００３７】
図３は、ライティングシステム及び言語を検出するため、テキスト中のセグメントを識別するためのプロセス３００の例を示している。便宜上、セグメントの識別は、識別を実施するシステム（例えば、図１の検出システム１００）に関連して記載される。システムは、テキストを受け入れる（３０２）。システムは、例えばテキスト文書の形態で入力テキストを受け入れることができる。
【００３８】
システムは、テキストの第１部分において表現されるライティングシステムを識別する（３０４）。ライティングシステムは、１つ又はそれ以上の第１言語を表現する。例えば、システムは、ライティングシステムを識別するため、従来の技術、ここに記載された技術、又はそれらの組み合わせを使用することができる。特別な例として、ライティングシステムは、テキストのコード化を検出することによって識別されることができる。
【００３９】
上述のように、ライティングシステムは、１つ又はそれ以上の言語に対応することができる。システムは、テキストの第１部分において表現される１つ又はそれ以上の第１言語からのみ特定の言語を検出する（３０６）。例えば、システムは、第１部分におけるかなりの量のテキストが第１ライティングシステムにおけるテキストを表現する文書の第１部分を識別することができる。一般に、入力テキスト中の各文字は、特定のスクリプト又はライティングシステムに属する。文字テーブルにおける文字の検索は、例えば、ＵＴＦ−８のような入力エンコーディングにおける文字をＵＴＦ−８文字テーブルにおける文字値にマッピングすることによって実施され、文字値及びライティングシステムを識別することができる。このようなやり方での各文字のマッピングは、入力テキストの連続した部分を識別することができる。
【００４０】
同様の技術を使用して、システムはまた、他のライティングシステムを識別するとして文書の他の部分、例えばテキストのパラグラフ又はラインを識別することができる。異なるライティングシステムにおいてテキストを表現する識別された各部分を別個に処理して、異なるライティングシステムの各々に対応する言語を識別することができる。例えば、システムは、文書の第１部分において１つ又はそれ以上のセグメント、例えばテキストのパラグラフ又はライン内の文字のシーケンスを識別することができ、１つ又はそれ以上のセグメントの各々におけるかなりの量のテキストが、第１ライティングシステムの言語で表現される。システムはまた、１つ又はそれ以上のセグメントにおいてかなりの量のテキストによって表現される第１ライティングシステムの特定の言語を検出することができる。例えば、システムは、文書中の第１パラグラフがラテン文字で表わされていることを識別するかもしれない。その際、システムは、第１パラグラフの当該箇所が英語であり、第１パラグラフの別の箇所がフランス語であることを検出するかもしれない。
【００４１】
他の実施例が可能である。幾つかの実施例では、２つ又はそれ以上のライティングシステムが、単一のライティングシステムとして扱われる。例えば、中国語、日本語及び韓国朝鮮語（ＣＪＫ）を表現するライティングシステムを合体して、言語検出の目的のため、単一のライティングシステム、例えば合体ライティングシステムとして扱うことができる。合体ライティングシステムの使用は、２つ又はそれ以上の言語が同じライティングシステムからの文字を使用するとき、好都合となり得る。特に、中国語、日本語、及び韓国朝鮮語は各々、漢字（中国文字）を使用する。日本語テキストが漢字部分、かたかな部分及びひらがな部分にセグメント化された場合には、漢字部分は、日本語ではなく中国語を表現するとして誤って識別されるかもしれない。例えばＣＪＫ用の合体ライティングシステムを使用して当該部分を結合することにより、混合された漢字の識別時に、かたかなとひらがなのテキストによるコンテキストであるとみなすことができ、理想的にいえば日本語が識別される。
【００４２】
（エッジの検出）
言語検出を改善するための別の技術は、テキストにおいて或る言語から別の言語への遷移を示すエッジの検出を伴う。特に、スコア間の変化を検出して、遷移を識別することができる。
【００４３】
図４Ａは、第２言語におけるテキストを表現するトークンの第２シーケンスが後に続く第１言語におけるテキストを表現するトークンの第１シーケンスを含むテキストの例を図示している。特に、テキスト「ｈｅｌｌｏ  ｂｏｎｊｏｕｒ」は、フランス語の単語「ｂｏｎｊｏｕｒ」（例えば、英語における「ｈｅｌｌｏ」）が後に続く英語の単語「ｈｅｌｌｏ」を含む。このテキストは、トークン「ｈｅｌｌｏｂｏｎｊｏｕｒ」のシーケンスとして表わされ得る。テキストにおいて表現される１つ又はそれ以上の言語を識別するため、スコアは、トークンのシーケンスにおけるｎグラムに対して計算され得る。
【００４４】
図４Ｂは、テキストにおいて表現される異なる言語間のエッジを検出するためのプロセス４００の例を示す。便宜上、エッジの検出は、検出を実施するシステム（例えば、図１の検出システム１００）に関連して記載される。システムは、テキストを受け入れる（４０２）。システムは、かなりの量が第１言語を表現するテキストの第１セグメントを検出する（４０４）。システムは、かなりの量が第２言語を表現するテキストの第２セグメントを検出する（４０６）。例えば、システムは、図１〜図４Ｂに関連して上述された技術に基づき、第１言語を表現するとしてテキストの第１セグメントを検出し、第２言語を表現するとしてテキストの第２セグメントを検出することができる。単なる例示的な目的のため、システムは最初に、英語のテキストとして「ｈｅｌｌｏ  ｂｏｎ」を、フランス語のテキストとして「ｊｏｕｒ」（例えば、英語の「ｄａｙ」）を識別しても良い。
【００４５】
システムは、テキスト中に含まれるサイズｘの各ｎグラムについてのスコアを識別する（４０８）。図４Ａに示されるように、例えば、スコアは、サイズ４のｎグラム（クワッドグラム）について計算されることができる。この例では、クワッドグラムには、「ｈｅｌｌ」、「ｅｌｌｏ」、「ｌｌｏｂ」、「ｌｏｂｏ」、「ｏｂｏｎ」、「ｂｏｎｊ」、「ｏｎｊｏ」、「ｎｊｏｕ」、及び「ｊｏｕｒ」が含まれる。
【００４６】
幾つかの実施例では、クワッドグラムが英語を表現する確率を示す各クワッドグラムについての第１スコアが計算される。さらに、クワッドグラムがフランス語を表現する確率を示す各クワッドグラムについての第２スコアが確認される。例えば、「ｈｅｌｌ」が英語を表現する確率を示す第１スコアＡを確認することができる。さらに、「ｈｅｌｌ」がフランス語を表現する確率を示す第２スコアＢを確認することができる。第１スコアから第２スコアを引いて（例えば、Ａ−Ｂ）、「ｈｅｌｌ」についての中間スコアを生成することができる。各クワッドグラムに対して、同様の方法で、中間スコアを計算することができる。幾つかの実施例では、フランス語ではなく英語を表わしそうなクワッドグラムは、正の中間スコアを有し、英語ではなくフランス語を表わしそうなクワッドグラムは、負の中間スコアを有する。
【００４７】
単一のｎグラムについての中間スコアには一般にノイズが含まれ、多数の中間スコアを平均することによってノイズを取り除くことができる。その平均化は、２つの言語間の遷移を示す最も適当な境界が識別されるように、データを均等にする。それ故、別の実施例では、テキスト中に連続して出現するクワッドグラムについての特定数の中間スコアの平均が計算される。例えば、特定数が４つである場合には、「ｈｅｌｌ」、「ｅｌｌｏ」、「ｌｌｏｂ」、及び「ｌｏｂｏ」についての中間スコアの平均が計算される。この例では、（１）「ｈｅｌｌ」、「ｅｌｌｏ」、「ｌｌｏｂ」、「ｌｏｂｏ」、（２）「ｅｌｌｏ」、「ｌｌｏｂ」、「ｌｏｂｏ」、「ｏｂｏｎ」、（３）「ｌｌｏｂ」、「ｌｏｂｏ」、「ｏｂｏｎ」、「ｂｏｎｊ」、（４）「ｌｏｂｏ」、「ｏｂｏｎ」、「ｂｏｎｊ」、「ｏｎｊｏ」、（５）「ｏｂｏｎ」、「ｂｏｎｊ」、「ｏｎｊｏ」、「ｎｊｏｕ」、及び（６）「ｂｏｎｊ」、「ｏｎｊｏ」、「ｎｊｏｕ」、「ｊｏｕｒ」を含む、クワッドグラムの６グループについての中間スコアの平均が計算される。テキスト中に連続して出現する２つのグループのクワッドグラムについての中間スコアの各対間の相違を計算することができる。特に、グループ（１）と（２）、（２）と（３）、（３）と（４）、（４）と（５）、及び（５）と（６）について、中間スコア間の相違を計算することができる。
【００４８】
システムは、スコアの変化に基づき、テキスト中における第１言語から第２言語への遷移を識別するエッジを検出する（４１０）。例えば、スコア間における最大の相違は、エッジを検出するのに使用され得る。理想的には、中間スコア間における最大の相違は、「ｈｅｌｌｏ」と「ｂｏｎｊｏｕｒ」との間にエッジが存在することを識別する、グループ（５）と（６）に対応するであろう。他の実施例が可能である。例えば、６つのグループのクワッドグラムについて第１スコアのみの平均間の最大変化に基づき、エッジを識別することができる。
【００４９】
（人工言語）
ウェブページからのテキストは、文学作品又は新聞のようなソースに見られるテキストとは異なり、自然言語（例えば、人が話す言語）がテキスト中で表われるものに関する有用な指標を提供しないかもしれない。このようなテキストは、少なくともその全体を、言語を検出する分類辞をトレーニングするためのトレーニングデータとして使用されるべきではない。例えば、「Ｃｏｐｙｒｉｇｈｔ２００８」は、英語以外の言語で書かれたウェブページ上に出現する。従って、単語「Ｃｏｐｙｒｉｇｈｔ」は、言語を検出するための有用な指標とはならないであろう。同様に、文字のシーケンス「ｊｐｇ」（例えば、画像ファイルフォーマットの拡張子を表現する）は、テキスト中に頻繁に出現するが、これも言語を検出するための有用な指標を提供しない。実際には、「Ｃｏｐｙｒｉｇｈｔ」及び「ｊｐｇ」は、英語ではない特定の自然言語に属するものとして識別され、これにより言語検出の結果をゆがめるかもしれない。これらの型式のｎグラムを含む人工言語を、テキスト中の言語の検出時に当該ｎグラムが統計誤差の一因とならないように、生成することができる。
【００５０】
図５は、人工言語を生成し、この人工言語を使用して言語を検出するためのプロセス５００の例を示している。便宜上、生成及び検出は、生成及び検出を実施するシステム（例えば、図１の検出システム１００）に関連して説明される。システムは、多数の自然言語を識別する同様の可能性と各々関連づけられるトレーニングデータにおける１つ又はそれ以上のｎグラムを検出する（５０２）。例えば、システムは、従来の技術、ここに記載された技術又はそれらの組み合わせを使用してｎグラムにスコアをつけ、２つ又はそれ以上の自然言語、例えば人が話す言語を識別する実質的に同様の可能性を有する１つ又はそれ以上のｎグラムを識別することができる。
【００５１】
システムは、識別されたｎグラムに基づき人工言語を生成する（５０４）。例えば、システムは、識別されたｎグラムを含む人工言語に対して、ｎグラムが人工言語を表現する確率推定量及びそれぞれの回数を関連づけた分類モデルを生成することができる。
【００５２】
幾つかの実施例では、人工言語は、入力テキストによって潜在的に表現される言語として、自然言語のように取り扱われる。例えば、テキストは、受け入れられることができる。システムは、受け入れたテキストが人工言語又は他の自然言語を表すテキストを含むか否かを検出することができる。特に、システムは、テキストを受け入れ（５０６）、受け入れたテキストが人工言語を表現する第２の可能性に対する、受け入れたテキストが第１自然言語を表現する第１の可能性を計算する（５０８）。例えば、システムは、受け入れたテキストが英語を表現する３０％の可能性、受け入れたテキストがフランス語を表現する４０％の可能性、受け入れたテキストが人工言語を表現する３０％の可能性を検出しても良い。
【００５３】
例えば、受け入れたテキストがフランス語又は他の自然言語に対して英語を表現する可能性を表現する信頼値を識別するため、受け入れたテキストが人工言語を表現する可能性を、受け入れたテキストが英語を表現する可能性と比較することができる。
【００５４】
幾つかの実施例では、人工言語を表現するとして識別された受け入れたテキストを、受け入れたテキストから取り除いて、修正したテキストを作ることができる。上述のように、取り除くことは、削除によって、或いは、重み（例えば、ゼロの重み）を使用して関連づけられた確率推定量を修正することによって、実施され得る。その結果、システムは、自然言語を表現する修正したテキストの新たな可能性を検出する。例えば、修正したテキストの第２段階に関して、システムは、英語の６０％の可能性とフランス語の４０％の可能性を検出しても良い。
【００５５】
（類似の言語）
図６Ａは、類似の言語を区別するためのプロセス６００の例を図示している。便宜上、類似の言語の区別は、区別を実施するシステムに関連して記載される。システム（例えば、検出システム１００）は、テキストを受け入れる（６０２）。システムは、テキストの一部分において表現され、各々が実質的に類似する多数の言語を検出する（６０４）。例えば、システムは、従来の技術、上述の技術、又はそれらの組み合わせを使用して、テキストの部分に表現された多数の言語（例えば、マレーシア語とインドネシア語のような類似の言語）を検出することができる。言語は、例えば、同じ言語族に属するとき又は共通の言語構造を共有している場合に、互いに実質的に類似しているとみなされることができる。類似の言語の他の例には、チェコ語とスロバキア語が含まれる。
【００５６】
幾つかの実施例では、２つ又はそれ以上の言語において頻繁に出現し、２つ又はそれ以上の言語を表現する実質的に類似の可能性を有する特定のｎグラムを識別することによって、類似の言語を識別することができる。
【００５７】
システムは、多数の言語における第１言語がテキスト全体を表現する第１の可能性を識別する（６０６）。例えば、システムは、マレーシア語がテキスト全体を表現する第１の可能性を識別することができる。システムは、多数の言語における第２言語がテキスト全体を表現する第２の可能性を識別する（６０８）。例えば、システムは、インドネシア語がテキスト全体を表現する第２の可能性を識別することができる。システムは、第１の可能性を第２の可能性と比較する（６１０）。例えば、システムは、マレーシア語がテキスト全体を表現する可能性を、インドネシア語がテキスト全体を表現する可能性と比較することができる。
【００５８】
システムは、テキストの部分が比較に基づき第１言語で表現されることを識別する（６１２）。例えば、マレーシア語がテキスト全体を表現する可能性が、インドネシア語がテキスト全体を表現する可能性よりも大きい場合に、システムは、テキストの部分がマレーシア語で表現されていることを識別することができる。他の実施例が可能である。例えば、第１の可能性と第２の可能性は、全体よりも少ないテキストに基づいて、例えば、多数の言語が最初に検出されたテキストの部分よりも多いテキストの別の部分に基づいて、識別され得る。
【００５９】
さらに、言語が類似しているかもしれないが、類似の言語間の相違は、幾つかの実施例では、多数のトークン（例えば、８トークン）を一度に処理することによって、より容易に識別されることができる。多数のトークンを一度に処理することを全ての言語に対して実施することができるが、多くの言語が少数のトークン（例えば、４トークン）での処理により区別され得るので、類似の言語のみに対するこの処理の実施は、言語検出の効率を増大させることができる。
【００６０】
例えば、類似の言語は、サイズｘのｎグラムの検討に基づき、テキストのシーケンスを潜在的に表現するとして検出され得る。ｎグラムをサイズｙ（＞検討したサイズｘ）に増加させると、ｎグラムが言語における１つ又はそれ以上の完全な単語にマッピングする可能性が増大し、これにより１つの類似した言語を別の言語から区別する可能性を増大させる。例えば、「ｋｅｕａｎｇａｎ」はインドネシア語である確率が高く、「ｋｅｗａｎｇａｎ」はマレーシア語である確率が高いが、「ｋｅｕａ」、「ｕａｎｇ」、「ｎｇａｎ」、「ｋｅｗａ」、「ｗａｎｇ」、及び「ｎｇａｎ」は、インドネシア語又はマレーシア語である確率は同じである。
【００６１】
図６Ｂは、類似の言語を区別するためのプロセス６５０の別の例を図示している。便宜上、類似の言語の区別は、区別を実施するシステムに関連して記載される。システム（例えば、検出システム１００）は、テキストを受け入れる（６５２）。システムは、テキストをセグメント化してサイズｘのｎグラムにすることによって、テキストにおいて表現される第１言語と第２言語を検出する（６５４）。例えば、システムは、サイズｘ（例えばサイズ４）のｎグラムを使用して、テキストを構文解析する。
【００６２】
システムは、第１言語が第２言語に実質的に類似していることを決定する（６５６）。第１言語が第２言語に実質的に類似しているとき、システムは、第１言語が第２言語に実質的に類似していることを識別することに基づき、テキストにおいて表現される特定の言語を識別するため、テキストをセグメント化してサイズｙ（＞ｘ）のｎグラムにすることによってテキストを処理する（６５８）。例えば、システムは、サイズｙ（例えばサイズ８）のｎグラムを使用してテキストを構文解析する。
【００６３】
他の実施例が可能である。例えばシステムが多量のトレーニングデータ（例えば、多数のウェブページ）上で常に１つの言語のみを識別するときには、例えば、ｎグラムのサイズを減少させることができる。
【００６４】
上述の技術は、実行時に、例えば入力テキストの受け入れに応答してリアルタイムで又はそれを組み合わせてオフラインで実施され得る。当該技術をオフラインで実施する例には、入力テキストにおいて表現される言語の識別に使用されるトレーニングデータの生成が含まれる。当該技術を実行時に実施する例には、入力テキストを圧縮して反復性の部分を取り除くこと、残りの部分をセグメント化すること、及び検出されたエッジに基づきセグメント化した部分における言語を識別することが含まれる。他の実施例が可能である。
【００６５】
図７は、一般的なコンピュータシステム７００の概略図である。システム７００は、上述の技術（例えば、プロセス２００、２２０、３００、４００、５００、６００及び６５０）と関連して記載された操作を実施するのに使用され得る。システム７００は、プロセッサ７１０と、メモリ７２０と、記憶装置７３０と、入力／出力装置７４０とを含み得る。構成要素７１０、７２０、７３０、７４０の各々は、システムバス７５０を使用して互いに接続されている。プロセッサ７１０は、システム７００内で実行される命令を処理することができる。このような実行される命令は、例えば図１〜図６Ｂに関連して説明されたような、言語を検出するためのシステムの１つ又はそれ以上の構成要素を実現することができる。一実施例では、プロセッサ７１０は、シングルスレッド・プロセッサである。別の実施例では、プロセッサ７１０は、マルチスレッド・プロセッサである。プロセッサ７１０は、メモリ７２０内又は記憶装置７３０上に記憶された命令を処理し、入力／出力装置７４０上にユーザインタフェース用の画像情報を表示することができる。
【００６６】
メモリ７２０は、コンピュータで読み取り可能な媒体であり、例えばシステム７００内の情報を記憶する揮発性又は不揮発性の媒体を含む。メモリ７２０は、例えば分類モデルを記憶することができる。記憶装置７３０は、システム７００に対して永続的な記憶を提供することができる。記憶装置７３０は、フロッピーディスク装置、ハードディスク装置、光ディスク装置、又はテープ装置、又は他の適当な永続的な記憶手段でもよい。入力／出力装置７４０は、システム７００に対して入力／出力操作を提供する。一実施例では、入力／出力装置７４０は、キーボード及び／又はポインティング装置を含む。別の実施例では、入力／出力装置７４０は、グラフィカルユーザインタフェースを表示するためのディスプレイユニットを含む。
【００６７】
入力／出力装置７４０は、システム、例えば図１の検出システム１００に対して入力／出力操作を提供することができる。検出システム１００は、例えばモジュール１０５、１１０、１１５、１２０、１２５、１３０を実行するコンピュータソフトウェアコンポーネントを含むことができる。このようなソフトウェアコンポーネントは、記憶装置７３０、メモリ７２０内に消えずに残ることができ、或いはネットワーク接続を介し数例を指定して得ることができる。
【００６８】
本明細書に記載された主題及び操作の実施形態は、デジタル電子回路において、又はコンピュータソフトウェア、ファームウェア、又は本明細書に開示された構造及びその構造的等価物を含むハードウェア、又はそれらの１つ又はそれ以上の組み合わせにおいて実現され得る。本明細書に記載される主題の実施形態は、１つ又はそれ以上のコンピュータプログラム、即ち、データ処理装置によって実行され、又はデータ処理装置の操作を制御するようにコンピュータ記憶媒体上にコード化されたコンピュータプログラムの命令の１つ又はそれ以上のモジュールとして実現され得る。コンピュータ記憶媒体は、コンピュータで読み取り可能な記憶装置、コンピュータで読み取り可能な記憶基板、ランダム又はシリアルアクセスメモリアレイ又はデバイス、又はこれらの１つ又はそれ以上の組み合わせとすることができ、或いはこれらに含まれても良い。
【００６９】
「データ処理装置」という語は、一例としてプログラム可能なプロセッサ、コンピュータ、又はマルチプルプロセッサ又はコンピュータを含む、データ処理用の全ての装置、デバイス、及び機械を包含する。装置は、ハードウェアに加えて、当該コンピュータプログラムのための実行環境を作り出すコード、例えば、プロセッサファームウェア、プロトコルスタック、データベースマネジメントシステム、オペレーティングシステム、又はこれらの１つ又はそれ以上の組み合わせを構成するコードを含み得る。
【００７０】
（プログラム、ソフトウェア、ソフトウェアプリケーション、スクリプト、又はコードとしても知られる）コンピュータプログラムは、コンパイルされ又はインタープリットされた言語、又は宣言型又は手続型言語を含む任意の形態のプログラミング言語で書かれ、スタンドアローン・プログラムとして、又はモジュール、コンポーネント、サブルーチン、又はコンピューティング環境に使用するのに適した他のユニットとして含まれる任意の形態でインストールされ得る。コンピュータプログラムは、ファイルシステムにおけるファイルには必ずしも対応しない。プログラムは、他のプログラム又はデータ（例えば、記述言語の文書中に記憶された１つ又はそれ以上のスクリプト）を保持するファイルの部分に、当該プログラムに割り当てられた単一のファイルで、又は多数の連動するファイル（例えば、１つ又はそれ以上のモジュール、サブプログラム、又はコードの部分を記憶するファイル）で記憶され得る。コンピュータプログラムは、１つのコンピュータ上で、又は１つのサイト又は通信ネットワークによって相互接続された分散した多数のサイトに置かれた多数のコンピュータ上で実行されるようにインストールされ得る。
【００７１】
本明細書に記載されたプロセス及びロジックのフローは、入力データで操作し、出力を生成することによって機能を実施するように、１つ又はそれ以上のコンピュータプログラムを実行する１つ又はそれ以上のプログラム可能なプロセッサによって実施され得る。このプロセス及びロジックのフローはまた、特定目的用の論理回路、例えばＦＰＧＡ（書替え可能ゲートアレイ）又はＡＳＩＣ（特定用途向け集積回路）によって実施され得、装置も、特定目的用の論理回路、例えばＦＰＧＡ又はＡＳＩＣとして実現され得る。
【００７２】
コンピュータプログラムの実行に適したプロセッサは、一例として、一般用途と特定用途の両方のマイクロプロセッサと、任意の種類のデジタルコンピュータの１つ又はそれ以上のプロセッサとを含む。一般に、プロセッサは、読み取り専用メモリ又はランダムアクセスメモリ又は両方から命令とデータを受け入れる。コンピュータの必須要素は、命令を実施するためのプロセッサと、命令及びデータを記憶するための１つ又はそれ以上のメモリ装置である。一般に、コンピュータはまた、データを記憶するための１つ又はそれ以上の大容量記憶装置（例えば、磁気ディスク、光磁気ディスク又は光ディスク）を含み、或いは、これらの大容量記憶装置からデータを受け入れ又はこれらの大容量記憶装置にデータを移送するように動作可能に結合され、或いは、これらの大容量記憶装置を含み且つ大容量記憶装置からデータを受け入れ又は大容量記憶装置にデータを移送するように動作可能に結合されている。しかしながら、コンピュータは、このような装置を有する必要はない。さらに、コンピュータを、別の装置、例えば、携帯式電話機、パーソナルデジタルアシスタント（ＰＤＡ）、モバイルオーディオ、又はビデオプレイヤ、ゲームコンソール、全地球測位システム（ＧＰＳ）レシーバに、ほんの数個を指定して組み込むことができる。
【００７３】
コンピュータプログラムの命令及びデータを記憶するのに適したコンピュータで読み取り可能な媒体には、あらゆる形態の不揮発性メモリ、メディア、及びメモリデバイス（一例として半導体メモリデバイス（例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、及びフラッシュメモリデバイス）、磁気ディスク（例えば、内蔵式ハードディスク又はリムーバブルディスク）、光磁気ディスク、ＣＤ−ＲＯＭ及びＤＶＤ−ＲＯＭディスクを含む）が含まれる。プロセッサ及びメモリは、特定用途向け論理回路が追加され、又は特定用途向け論理回路内に組み込まれることができる。
【００７４】
ユーザとの対話を提供するため、本明細書に記載される主題の実施形態は、ユーザに情報を表示するためのディスプレイ装置（例えば、ＣＲＴ（陰極線管）又はＬＣＤ（液晶表示）モニタ）と、ユーザがコンピュータに入力を行うことができるキーボード及びポインティングデバイス（例えば、マウス又はトラックボール）とを有するコンピュータ上で実現され得る。他の種類の装置も、ユーザとの対話を提供するのに使用され得る。例えば、ユーザに提供されるフィードバックは、任意の形態の感覚的フィードバック（例えば、視覚的フィードバック、聴覚的フィードバック、又は触覚的フィードバック）とすることができ、ユーザからの入力は、聴覚、音声、又は触覚的入力を含む任意の形態で受け入れ得る。
【００７５】
本明細書に記載される主題の実施形態は、例えばデータサーバのようなバックエンドコンポーネントを含むコンピューティングシステム、又はミドルウェアコンポーネント（例えば、アプリケーションサーバ）を含むコンピューティングシステム、又はフロントエンドコンポーネント（例えば、グラフィカルユーザインタフェース又はユーザが本明細書に記載された主題の実施例と対話することができるウェブブラウザを有するクライアントコンピュータ）を含むコンピューティングシステム、又は１つ又はそれ以上のこのようなバックエンドコンポーネント、ミドルウェアコンポーネント又はフロントエンドコンポーネントの任意の組み合わせで実現され得る。システムの構成要素は、任意の形態又は媒体のデジタルデータ通信（例えば、通信ネットワーク）によって相互接続されることができる。通信ネットワークの例には、ローカルエリアネットワーク（「ＬＡＮ」）及びワイドエリアネットワーク（「ＷＡＮ」）、例えばインターネットが含まれる。
【００７６】
コンピューティングシステムは、クライアントとサーバとを含むことができる。クライアントとサーバは一般に互いに離れており、一般的には通信ネットワークを介して対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で動作し、互いにクライアント−サーバ関係を有するコンピュータプログラムによって生ずる。
【００７７】
本明細書は、多くの具体的な実施例の詳細を含んでいるが、これらは、任意の実施例又は特許請求の範囲に関する限定として解釈されるべきではなく、むしろ特定の実施例の特定の実施形態に特有の特徴の記載として解釈されるべきである。本明細書において別個の実施形態のコンテキストで記載されている或る特徴は、単一の実施形態において組み合わせて実現されることもできる。逆に、単一の実施形態のコンテキストに記載されている種々の特徴は、多数の実施形態において別個に又は任意の適当な副組み合わせで実現され得る。さらに、特徴が、ある一定の組み合わせで動作するとして上述され、むしろ当初はそのように請求されているかもしれないが、請求された組み合わせからの１つ又はそれ以上の特徴を、幾つかの場合において当該組み合わせから削除することができ、請求された組み合わせを、サブコンビネーション又はサブコンビネーションの変形に向けてもよい。
【００７８】
同様に、操作は特定の順序で図面に示されているが、これは、所望の結果を達成するため、このような操作が、図示された特定の順序又は一連の順序で実施され、或いは全ての例示された操作が実施されることを必要とするとして理解されるべきではない。ある一定の環境では、マルチタスク及び並行処理が好都合であるかもしれない。さらに、上述の実施形態における種々のシステム構成要素の分離は、全ての実施形態においてこのような分離を必要とするとして理解されるべきではなく、記載されたプログラムコンポーネント及びシステムを一般に、単一のソフトウェア製品において互いに一体化し或いは多数のソフトウェア製品にひとまとめにすることができることを理解すべきである。
【００７９】
本明細書に記載される主題の特定の実施形態について説明してきた。他の実施形態は、以下の特許請求の範囲の範囲内にある。例えば、特許請求の範囲に列挙された動作は、異なる順序で実施されることができ、それでもなお望ましい結果を達成する。一例として、添付図面に図示されたプロセスは、望ましい結果を達成するために、示された特定の順序又は一連の順序を必ずしも必要としない。ある実施例では、マルチタスク及び並行処理が好都合であり得る。
【図１】
2012529108.tif 000003
【図２Ａ】
2012529108.tif 000004
【図２Ｂ】
2012529108.tif 000005
【図３】
2012529108.tif 000006
【図４Ａ】
2012529108.tif 000007
【図４Ｂ】
2012529108.tif 000008
【図５】
2012529108.tif 000009
【図６Ａ】
2012529108.tif 000010
【図６Ｂ】
2012529108.tif 000011
【図７】
2012529108.tif 000012
【国際調査報告】
2012529108.tif 000013
2012529108.tif 000014
2012529108.tif 000015
2012529108.tif 000016