(57)【特許請求の範囲】
【請求項１】
メモリに格納されたデジタル文書の中の、文字の形と１または複数の特定のバイト値とを結びつけた未知の区別された文字セットに従って未知の区別された言語でテキストを表示する複数のバイト値に対して、各々のバイト値は、オンまたはオフとなる高位ビットを有し、前記区別された言語および前記区別された文字セットを特定する機能を実行するＣＰＵを備えたコンピュータシステムにおける方法において、
前記メモリに格納された前記複数のバイト値について、前記ＣＰＵが、前記高位ビットがオンであるバイト値の数をカウントする第１ステップと、
前記複数のバイト値の所与の割合よりも多い高位ビットがオンの場合に、第１アプローチを適用して、前記ＣＰＵが、前記区別された言語および前記区別された文字セットを特定する第２ステップであって、前記第１アプローチは、
文字を表す各バイト値を前記メモリに格納された第２マッピング表に従って複数の目標値にマッピングし、高位ビットのセットを有する各バイト値を前記第２マッピング表に従って複数の目標値にマッピングし、残りのバイト値を前記第２マッピング表に従って１つの目標値にマッピングするマッピングを用いて、２次元の特徴付けを生成し、該２次元の特徴付けを度数統計した２次元モデルに集約して前記メモリに格納するステップ、および
前記複数のバイト値の前記２次元の特徴付けを、前記メモリに格納されている、異なる言語と文字の組み合わせをモデリングする前記２次元モデルと比較するステップを有する第２ステップと、
前記複数のバイト値の所与の割合よりも多い高位ビットがオンでない場合に、第２アプローチを適用して、前記ＣＰＵが、前記区別された言語および前記区別された文字セットを特定する第３ステップであって、前記第２アプローチは、
文字を表す各バイト値を前記メモリに格納された第３マッピング表に従って複数の目標値にマッピングし、高位ビットのセットを有する各バイト値を前記第３マッピング表に従って１つの目標値にマッピングし、高位ビットのセットを持たず文字を表さない各バイト値を前記第３マッピング表に従って１つの目標値にマッピングするマッピングを用いて、３次元の特徴付けを生成し、該３次元の特徴付けを度数統計した３次元モデルに集約して前記メモリに格納するステップ、
高位ビットのセットを有する各バイト値を前記メモリに格納された第１マッピング表に従って複数の目標値にマッピングし、残りのバイト値を前記第１マッピング表に従って１つの目標値にマッピングするマッピングを用いて、１次元の特徴付けを生成し、該１次元の特徴付けを度数統計した１次元モデルに集約して前記メモリに格納するステップ、
前記複数のバイト値の前記３次元の特徴付けを、前記メモリに格納されている、異なる言語をモデリングする前記３次元モデルと比較するステップ、および、
前記複数のバイト値の前記１次元の特徴付けを、前記メモリに格納されている、文字セットと特定された識別された言語との異なる組み合わせをモデリングする前記１次元モデルと比較するステップを有する第３ステップと
を備えたことを特徴とする方法。
【請求項２】
前記所与の割合は、１／２であることを特徴とする請求項１に記載の方法。
【発明の詳細な説明】
【０００１】
（技術分野）
本発明は、テキスト解析の分野、特に、統計的なテキスト解析の分野を対象とするものである。
【０００２】
（発明の背景）
現代のコンピュータシステムが、テキストを表示するデータを保存し処理するための機能を提供することは普通のことである。テキスト形式の文書を表示するコンピュータシステムによって保存されたデータの本体は、「デジタル文書表示」として参照される。デジタル文書表示は、コンピュータシステムにおいて「バイト」と呼ばれる一連の値として他のデータ同様に保存される。テキストは、「文字セット」を使用してこれらのバイト値から変換される。−ここでは「文字の形」として参照される、種々の文字の同一性と種々のバイト値の間でのマッピング。文字セットは、「コードページ」としても参照されて、一般的にはアメリカ規格協会（「ＡＮＳＩ」）または国際標準化機構（「ＩＳＯ」）のなどの標準化組織によって定義されている。「複合バイト文字セット」と呼ばれるいくつかの文字セットは、各々の文字の形を２つまたはそれ以上からなるバイト値にマップする。デジタル文書表示を生成するために使用される文字セットが知られている場合のみ、デジタル文書表示によって表示される文書を正確に表示することが一般的に可能である。デジタル文書表示を、その現在の文字セットから異なる目標文字セットに変換することも、典型的にはデジタル文書表示の現在の文字セットが知られている場合のみ可能である。
【０００３】
一般的に、テキストは、１つまたは複数の言語から各々得られた一連の言葉を含む。スペルチェッカー、文法チェッカー、サマライザーのような自然言語処理ツールが、このような文書に適用される。しかし、文書を正確に処理するために、これらのツールは文書中の言葉から得られた１つまたは複数の言語を通知されなければならない。例えば、スペルチェッカーツールが、ドイツ語であるとわかっている文書において「ｂｉｔｔｅ」という言葉に出くわすとき、それはその言葉がミススペルであるとはみなさない。しかし、スペルチェッカーツールが、英語であるとわかっている文書で同じ言葉に出くわすとき、それはその言葉を「ｂｉｔｔｅｒ」という言葉のミススペルとしてみなす。ワードブレーカ（言葉の間の境界を特定する）およびワードステマ（同じ語源を持つ種々の言葉を合わせるために接尾語を取り除く）などの情報検索ツールも、これらのツールが動作するデジタル文書表示において現れる１つまたは複数の言語を通知されなければならない。自動化ツールの必要性に付け加えて、文書が書かれた言語を知ることは、文書が書かれた非常に多くの言語の１つまたは一握りを読み、文書を読むことができるかどうかを決定する人間にとって有益である。
【０００４】
したがって、保存されている各々のデジタル文書表示は、それを生成するために使用される文字セットおよびその言葉から得られた１つまたは複数の言語の明白な指示によって行われることが一般的に望ましい。このような情報は、特に最近作成された多くのデジタル文書表示のために保存されてはいるが、多くのほかのデジタル文書表示にとって利用できない。例えば、ワールドワイドウェブを介して利用できる多くのＨＴＭＬ文書は、その文字セットおよび言語を特定することができない。
【０００５】
いくつかのデジタル文書表示の場合、デジタル文書表示の文字セットおよび言語を特定する情報は、デジタル文書表示と関連付けられてきた。このことはしばしば、この情報が保存されているコンピュータの特定によって元来暗示されていた。例えば、この情報は、元々単一の言語、単一の文字セットの環境で作成されたデジタル文書表示において事実上含まれている。このようなデジタル文書表示が、いくつかの言語および文字セットを使用するコンピュータシステムに移動されて、インターネットのようなネットワークを介してこのようなコンピュータシステムに利用されるとき、このようなデジタル文書表示の文字セットおよび言語は利用できない。
【０００６】
他のデジタル文書表示に対して、デジタル文書表示の文字セットおよび言語で特定された情報は、デジタル文書表示と何らかの点で関連付けられているが、現在利用できない。例えば、このような情報は何らかの点で削除された分割ファイルで保存されている。他方、その情報は、なお存在することができるが、それにもかかわらず利用できない。例えば、その情報を含むファイルは、デジタル文書表示の文字セットおよび言語を決定しようとするユーザまたはプログラムに対してアクセスを許さない。このような情報は、アクセスできるようにすることができるが、デジタル文書表示の文字セットおよび言語を決定しようとするユーザまたはプログラムに対して理解できないフォーマットで存在する。したがって、さまざまな理由により、デジタル文書表示の文字セットおよび言語は利用できない。
【０００７】
デジタル文書表示を表示して処理するために必要とされるその文字セットおよび言語は、しばしば利用できないので、デジタル文書表示の文字セットおよび１つまたは複数の言語を見分ける自動化の方法、特に適度な記憶装置を要求し、新しい文字セットおよび言語に直接的に拡張することができる方法が重要な有効性を持つ。
【０００８】
（発明の概要）
本発明は、ある文字セットを使用して表示される、ある言語をテキスト形式で表示する生のデータが与えられ、自動的に言語および文字セットを特定するソフトウェア機能（software facility）（「当該機能（the facility）」）を提供する。最初に当該機能は、「トレーニングフェーズ」で多数の既知の言語および文字セットの中から文書の統計的なモデルを生成して、「検出フェーズ」で入力文書の言語および文字セットを特定するためにこれらのモデルを適用する。
【０００９】
当該機能によって使用される言語および文字セットの統計的なモデルは、異なる言語および文字セットの間を区別しようとする文字の値を強調するように調整され、同時に特定された縮小マッピングの使用によって、モデルのスペースを最小化することが、言語または文字セットを区別しようとしない文字の値に捧げられる。
【００１０】
トレーニングフェーズでは、当該機能は、入力文書の言語および文字セットを特定するために検出フェーズで使用される言語および文字セットの統計的なモデルを生成する。検出される言語および文字セットの各々の結合に対して、当該機能は、各々一連のバイト値を含む既知の言語および文字セットに存在するサンプル文書を読み込む。次に、当該機能は、（Ａ）バイトで表示することができる２５６の種々の可能な値から可能なより小さい値に一連のバイト値をマップして、（Ｂ）各々異なる固定長の一連のマップされたバイト値または「ｎ−ｇｒａｍ」が、マップされた文書の説明で発生する回数を記録して、（Ｃ）各々の言語および文字セットに対してこれらの「度数統計（frequency statistics）」を収集して、（Ｄ）言語および文字セットを介して度数統計を正規化させる。異なる長さのＮ−ｇｒａｍだけでなく異なるマッピングも、各々の言語および文字セットの特徴に基づいて使用されることが好ましい。さらに、当該機能は、１つの言語および文字セットの文書を他の複数の言語および文字セットの文書と区別しようとする高い頻度のｎ−ｇｒａｍを強調するように、また１つの言語および文字セットの文書を他の複数の言語および文字セットの文書と区別しようとしない高い頻度のｎ−ｇｒａｍを強調しないように、度数統計を調整する。
【００１１】
検出フェーズでは、当該機能は、トレーニングフェーズで生成される正規化され調整された度数統計を使用し、言語および／または文字セットが知られていない入力文書のに対して言語および文字セットを特定する。最初に当該機能は、トレーニングフェーズで使用される同じマッピングを使用して、可能なより小さい値に入力文書のバイト値をマップする。次に当該機能は、マップされた入力文書で発生する各々のｎ−ｇｒａｍの回数を決定する。各言語に対して、マップされた入力文書の各ｎ−ｇｒａｍの度数は、現在の言語に対してトレーニング度数統計で同じｎ−ｇｒａｍの度数によって増やされて、これらの結果が集約される。各言語に対する集約は、言語が入力文書の書かれた言語の１つに近い可能性を示す。最も大きい集約を持つ言語が特定されると、入力文書が書かれた特定された言語に対して既知の文字セットを決定するために、その言語に対する文字セットの統計を使用して、この検出プロセスは繰り返される。
【００１２】
当該機能は、トレーニングの連続的な単位および典型的な段落の長さに一致した長さの入力文書を解析することが好ましい。このようにして、文書が１つまたは複数の言語または文字セットのテキストを含むとき、当該機能は、これらの言語および文字セットの各々を特定することができる。
【００１３】
さらに当該機能は、同様の統計的な解析手法を使用し、大文字のユニコードセットで表示されたデジタル文書表示の１つまたは複数の言語を特定する。ユニコードのデジタル文書表示で同様の言語のいくつかのグループを特定する際に、当該機能は、グループの言語の間を区別するために自動的に発生されるカスタム縮小マッピングを利用することが好ましい。
【００１４】
（発明の詳細な説明）
本発明は、ある文字セットを使用して表示される、ある言語をテキスト形式で表示する生のデータが与えられ、自動的に言語および文字セットを特定するソフトウェア機能（「当該機能」）を提供する。最初に当該機能は、「トレーニングフェーズ」で多数の既知の言語および文字セットの中から文書の統計的なモデルを生成して、「検出フェーズ」で入力文書の言語および文字セットを特定するためにこれらのモデルを適用する。
【００１５】
当該機能によって使用される言語および文字セットの統計的なモデルは、異なる言語および文字セットの間を区別しようとする文字の値を強調するように調整され、同時に特定された縮小マッピングの使用によって、モデルのスペースを最小化することが、言語または文字セットを区別しようとしない文字の値に捧げられる。
【００１６】
トレーニングフェーズでは、当該機能は、入力文書の言語および文字セットを特定するために検出フェーズで使用される言語および文字セットの統計的なモデルを生成する。検出される言語および文字セットの各々の結合に対して、当該機能は、各々一連のバイト値を含む既知の言語および文字セットに存在するサンプル文書を読み込む。次に、当該機能は、（Ａ）バイトで表示することができる２５６の種々の可能な値から可能なより小さい値に一連のバイト値をマップして、（Ｂ）各々異なる固定長の一連のマップされたバイト値または「ｎ−ｇｒａｍ」が、マップされた文書の説明で発生する回数を記録して、（Ｃ）各々の言語および文字セットに対してこれらの「度数統計」を収集して、（Ｄ）言語および文字セットを介して度数統計を正規化させる。異なる長さのＮ−ｇｒａｍだけでなく異なるマッピングも、各々の言語および文字セットの特徴に基づいて使用されることが好ましい。さらに、当該機能は、１つの言語および文字セットの文書を他の複数の言語および文字セットの文書と区別しようとする高い頻度のｎ−ｇｒａｍを強調するように、また１つの言語および文字セットの文書を他の複数の言語および文字セットの文書と区別しようとしない高い頻度のｎ−ｇｒａｍを強調しないように、度数統計を調整する。
【００１７】
検出フェーズでは、当該機能は、トレーニングフェーズで生成される正規化され調整された度数統計を使用し、言語および／または文字セットが知られていない入力文書のに対して言語および文字セットを特定する。最初に当該機能は、トレーニングフェーズで使用される同じマッピングを使用して、可能なより小さい値に入力文書のバイト値をマップする。次に当該機能は、マップされた入力文書で発生する各々のｎ−ｇｒａｍの回数を決定する。各言語に対して、マップされた入力文書の各ｎ−ｇｒａｍの度数は、現在の言語に対してトレーニング度数統計で同じｎ−ｇｒａｍの度数によって増やされて、これらの結果が集約される。各言語に対する集約は、言語が入力文書の書かれた言語の１つに近い可能性を示す。最も大きい集約を持つ言語が特定されると、入力文書が書かれた特定された言語に対して既知の文字セットを決定するために、その言語に対する文字セットの統計を使用して、この検出プロセスは繰り返される。
【００１８】
当該機能は、トレーニングの連続的な単位および典型的な段落の長さに一致した長さの入力文書を解析することが好ましい。このようにして、文書が１つまたは複数の言語または文字セットのテキストを含むとき、当該機能は、これらの言語および文字セットの各々を特定することができる。
【００１９】
さらに当該機能は、同様の統計的な解析手法を使用し、大文字のユニコードセットで表示されたデジタル文書表示の１つまたは複数の言語を特定する。ユニコードのデジタル文書表示で同様の言語のいくつかのグループを特定する際に、当該機能は、グループの言語の間を区別するために自動的に発生されるカスタム縮小マッピングを利用することが好ましい。
【００２０】
図１は、当該機能を実行する好適なコンピュータシステムを示す高位概念ブロック図である。図１で示すように、コンピュータシステム１００は、中央演算装置（ＣＰＵ）１１０、入出力デバイス１２０、およびコンピュータメモリ（メモリ）１３０を備える。入出力デバイスの中には、ハードディスクドライブなどの記憶デバイス１２１と、ＣＤ−ＲＯＭなどのコンピュータの読取り可能なメディア上で提供される当該機能を含むソフトウェア製品をインストールするために使用されるコンピュータの読取り可能なメディアドライブ１２２と、コンピュータシステム１００を他のコンピュータシステム（示していない）と接続するためのネットワーク接続１２３がある。メモリ１３０は、機能１３１と、文字セットおよび言語のモデル１３３を生成するために使用されるサンプルデジタル文書表示１３２と、および当該機能が決定すべき文字セットおよび言語の入力デジタル文書表示を含むことが好ましい。当該機能は、上述のように構成された汎用コンピュータシステム上で実施されるが、当業者はそれが異なる構成を持つコンピュータシステム上でも実施されることを理解するであろう。
【００２１】
図２は、当該機能が動作するフェーズを示す概略フロー図である。ステップ２０１では、トレーニングフェーズにおいて、当該機能は、これらの文字セットで生成されることが既知の、およびこれらの言語を第一に含むことが既知のサンプルデジタル文書表示を使用して検出した文字セットおよび言語をモデル化する。ステップ２０１で使用されたサンプルデジタル文書表示は、本質的に第一の言語が母国語である場所で主題を述べる新聞の記事および法的な見解から得られることが好ましい。すなわち、新聞記事および司法見解などの現地の意味内容を持つサンプルのデジタル文書表示が求められる。このようなデジタル文書表示で使用される語彙は、サンプルデジタル文書表示の第一の言語を他の言語から区別できそうだからである。ステップ２０１を図３に従って以下により詳細に述べる。
【００２２】
当該機能は、ステップ２０１を一度実行する。ステップ２０１が実行された後に、トレーニングフェーズは終了する。ステップ２０１のトレーニングフェーズで生成されたモデルは、検出フェーズで使用され、いくつかの入力デジタル文書表示の各々について文字セットおよび言語を検出する。ステップ２０２では、当該機能は、新しい入力デジタル文書表示を受け取る。ステップ２０３では、当該機能は、ステップ２０１で生成されるモデルを使用して、ステップ２０２で受け取られる入力デジタル文書表示の文字セットおよび言語を検出する。ステップ２０３の詳細を、図３に従って以下により詳細に述べる。ステップ２０３の入力デジタル文書表示の文字セットおよび言語を検出した後に、当該機能は、次の入力デジタル文書表示を受け取るためにステップ２０２が続けられて、検出フェーズにとどまる。図２は当該機能がトレーニングフェーズに再入力しないように描いているが、追加のサンプルデジタル文書表示をトレーニングフェーズで生成されるモデルに組み入れるためにトレーニングフェーズを繰り返し、追加の言語および文字セットを検出する当該機能を拡張し、または追加のサンプルのデジタル文書表示のテキストを使用して既存の言語および文字セットに対してモデルを向上することのいずれかが望ましいことを当業者は理解するであろう。
【００２３】
図３は、トレーニングフェーズにおいて当該機能によって実行される好適なステップを示すフロー図である。ステップ３０１では、当該機能は、既知の文字セットおよび第一の言語のサンプルデジタル文書表示を選択する。サンプルデジタル文書表示の数が、当該機能によって生成されたモデルの統計的な正確性に直接に影響し、ゆえにその機能のパフォーマンスのレベルに影響するので、大多数のサンプルデジタル文書表示はステップ３０１で選択されることが好ましい。ステップ３０２から３０４では、当該機能は、ステップ３０１で選択された各々のサンプルデジタル文書表示について繰り返す。ステップ３０３では、当該機能は、サンプルデジタル文書表示に対して特定された文字セットおよび第一の言語に対するモデルを増やす。ステップ３０３は、図４に従って以下に詳細に述べる。ステップ３０４では、１つまたは複数の選択されたサンプルデジタル文書表示が処理されることが残っている場合、当該機能は、ステップ３０２を継続し、次の選択されたサンプルデジタル文書表示を処理する。すべての選択されたサンプルデジタル文書表示が処理された場合、当該機能は、ステップ３０５に続く。ステップ３０５では、ステップ３０３における引用の結果として生成されたモデルを正規化する。ステップ３０５で実行された正規化は、各モデルの平均カウンタ値が同じであるように各モデルのカウンタを比例的に増加させたり減少させたりすることを含む。ステップ３０６では、当該機能は、正規化されたモデルを調整し、それら文字セットおよび言語をより効果的に区別する。これは、各モデルに対して、（ａ）他のモデルの同じｎ−ｇｒａｍに対するカウントに比較して最も高いカウントのｎ−ｇｒａｍに対するカウントを増加させることと、（ｂ）そのモデルに対する他のカウントに比較して高いが、他のモデルの同じｎ−ｇｒａｍに対するカウントに比較して高くないカウントのｎ−ｇｒａｍに対するカウントを減少させることによる。好適実施形態では、この調整は、各モデルの各カウントを２倍して、すべてのモデルの対応するカウントの平均を抽出することによって達成される。ステップ３０６の後、これらのステップおよびトレーニングフェーズは終了する。
【００２４】
図４は、ステップ３０４に従って、特定のサンプルデジタル文書表示に対して特定された文字セットおよび第１言語に対するモデルを増やすために、当該機能によって実行される好適ステップを示すフロー図である。現在のサンプルデジタル文書表示を作成するために使用される文字セットの種類に依存して、当該機能は、異なる縮小マッピングを利用して、異なるサイズのｎ−ｇｒａｍに対する度数データを維持することが好ましい。ステップ４０１では、現在のサンプルデジタル文書表示がラテン語ベースの単一バイトの文字セットである場合、当該機能はステップ４０２を続け、ステップ４０２〜４０５を実行する。さもなければ、現在のサンプルデジタル文書表示の文字セットが、複合バイトの文字セット（各々の文字が２つまたはそれ以上のバイト値で表示される）かまたは非ラテンベース言語に対する単一バイトの文字セットである場合、当該機能はステップ４０６を続け、ステップ４０６および４０７を実行する。ラテン語ベースの単一バイトの文字セットの例は、チェコ語、ハンガリー語およびポーランド語のためのマイクロソフト文字セット１２５０および２８５９２と、デンマーク語、オランダ語、英語、フィンランド語、フランス語、ドイツ語、イタリア語、ノルウェー語、ポルトガル語、スペイン語およびスウェーデン語のためのマイクロソフト文字セット１２５２と、フィンランド語、フランス語、ドイツ語、ノルウェー語、ポルトガル語およびスウェーデン語のためのマイクロソフト文字セット２８５９１と、ドイツ語、ハンガリー語およびポーランド語のためのマイクロソフト文字セット２８５９２と、リトアニア語のためのマイクロソフト文字セット１２５７とを含む。複合バイトの文字セットまたは非ラテン語ベースの単一バイトの文字セットの例は、中国語のためのマイクロソフト文字セット９３６および９５０と、日本語のためのマイクロソフト文字セット９３２および５１９３２と、韓国語のためのマイクロソフト文字セット９４９と、ギリシャ語とヘブライ語のための文字セットを含む。
【００２５】
ステップ４０２〜４０５では、当該機能は、サンプルデジタル文書表示の第１の言語の３次元モデルと、およびサンプルデジタル文書表示のその第１の言語と文字セットの結合の１次元モデルの双方を、サンプルのデジタル文書表示の特徴とともに増やす。３次元モデルは、当該機能によって使用され、このサンプルデジタル文書表示と同じ第１の言語を持つ入力デジタル文書表示を検出する。一方で、１次元モデルは、このサンプルデジタル文書表示と同じ第１の言語および文字セットを持つ入力デジタル文書表示を検出するために使用される。ステップ４０２では、当該機能は、以下の表１に示したマッピングおよびサンプルデジタル文書表示で発生する文字のトリグラムに対する度数統計を使用して、現在のサンプルデジタル文書表示の３次元の特徴付けを生成する。
【００２６】
【表１】
0004638599.tif 000002
表１:ラテン語ベースのＳＢＣＳの言語を検出するためのマッピング
【００２７】
サンプルデジタル文書表示の特徴付けを生成するステップ４０２の詳細を、図５に従って以下により詳細に述べる。生成するプロセスの一部として、当該機能は、表１に示したマッピングを使用してサンプルデジタル文書表示の各々のバイト値を目標値にマップする。ラテン語ベースの単一バイトの文字セットで表示された言語が、状況に関わらず、発生する文字の同一性に基づいて最も効果的に区別されることができる決定に基づいて、表１に示すマッピングは、各々の文字に対応するソース値を異なる目標値にマップする。例えば、文字の形「Ａ」および「ａ」に対応するソース値０ｘ４１および０ｘ６１は、両方ともそれぞれ目標値２にマップされて、文字の形「Ｂ」および「ｂ」に対応するソース値０ｘ４２および０ｘ６２は、それぞれ目標値３にマップされる等である。文字に割り当てられた目標値の他に、表１のマッピングは、次の２つの目標値、高次ビットセット、例えば０ｘ８０−０ｘＦＦを持つ「拡張された文字」ソース値に対する目標値１、および高次ビットセットを持たず文字を表示しないソース値に対する目標値０を定義する。これらのソース値は、一般的に数字、句読点文字、他のシンボルおよび制御文字に対応する。この方法でソース値をマッピングすることによって、当該機能は、２５６のソース値を２８の目標値のみに減少させて、９９％以上トリグラムの度数統計に対する記憶装置への要件を減少させる。
【００２８】
例として、次のサンプルテキスト列を考えてみる。
「パウダー」と呼ばれる雪（ｓｎｏｗ，ｃａｌｌｅｄ“ＰＯＷＤＥＲ．”）
以下の表２は、「バイト値」の列において、サンプルデジタル文書表示のサンプル列を形成する一連のバイト値を示す。表２の「目標値」の列は、表１で示したマッピングを使用してバイト値がマップされた一連の目標値を示す。
【００２９】
【表２】
0004638599.tif 000003
表２
【００３０】
表２から、各々の明確な文字はそれ自身の目標値を持つことがわかる。例えば、小文字の「ｏ」および大文字の「Ｏ」はともに目標値１６にマップする。次に、コンマ、スペース、引用記号およびピリオドを含むすべての句読点文字の形が、単一の目標値０にマップすることがわかる。したがって、ラテン語ベースの単一バイトの文字セットで表示されたデジタル文書表示で異なる言語を区別するために使用される明白な文字の同一性である。次に表１で示したマッピングは、厳密にはダブルバイトの文字セットであるが、０ｘ８０と０ｘＦＦの間のバイト値を使用しない日本語のためのマイクロソフト文字セット５０２２０などの文字セットに対するモデルおよび特徴付けを生成するために使用される。
【００３１】
ステップ４０３では、当該機能は、ステップ４０２で生成されたサンプルデジタル文書表示の３次元の特徴付けを、サンプルデジタル文書表示の第１言語として特定される言語の３次元モデルに集約する。この集約プロセスは、サンプルデジタル文書表示の３次元の特徴付けにおける各入力の値を、第１言語の３次元モデルにおける対応する入力に加えることを含む。ステップ４０４および４０５はそれぞれ、ステップ４０４は、サンプルデジタル文書表示の特徴付けを生成し、ステップ４０５は、その特徴付けを言語および文字セットのモデルに集約するという点でステップ４０２および４０３を反映している。ステップ４０４では、当該機能は、以下の表３に示したマッピングおよびサンプルデジタル文書表示で発生する文字のユニグラムに対する度数統計を使用して現在のサンプルデジタル文書表示の１次元の特徴付けを生成する。
【００３２】
【表３】
0004638599.tif 000004
表３：ラテン語ベースのＳＢＣＳの言語を検出するためのマッピング
【００３３】
ラテン語ベースの単一バイトの文字セットの中から正確な文字セットを検出するためのマッピングは、高次ビットセットを持つ各ソース値を異なる目標値にマップすることが表３からわかる。例えば、ソース値０ｘ８０は目標値１にマップされ、ソース値０ｘ８１は目標値２にマップされる等である。単一バイトの文字セットでは、これらの「拡張された文字バイト値」のみが異なる文字セットの異なる文字を表示し、他方、バイト値０−０ｘ７Ｆの各々は、一般的にこれら文字セットの全ての同じ文字を表示する。したがって、異なるラテン語ベースの単一バイトの文字セットの中で最良の区別をするために提供されるのが、これらの拡張された文字バイトのコードである。０ｘ８０と０ｘＦＦの間のソース値の１つに各々割り当てられた１２８の目標値に加えて、マッピングは、次の１つの目標値を定義する。その目標値０は、０と０ｘ７Ｆの間のソース値の全てに割り当てられる。この方法でソース値をマッピングすることによって、当該機能は、２５６のソース値を１２９の目標値のみに減少させて、ユニグラムの度数統計に対する記憶装置への要件を５０％減少させる。
【００３４】
ステップ４０５では、当該機能は、ステップ４０４で生成されたサンプルデジタル文書表示の１次元の特徴付けを、サンプルデジタル文書表示の第１の言語および文字セットの結合の１次元モデルに集約する。ステップ４０５が完了した後、これらのステップは終了する。
【００３５】
ステップ４０６〜４０７では、当該機能は、サンプルデジタル文書表示の単一の特徴付けを生成して、それを第１言語およびサンプルデジタル文書表示の文字セットに対する単一のモデルに集約する。
【００３６】
ステップ４０６では、当該機能は、以下の表４に示したマッピングおよびサンプルデジタル文書表示で発生する文字バイグラムに対する度数統計を使用してサンプルデジタル文書表示の２次元の特徴づけを生成する。
【００３７】
【表４】
0004638599.tif 000005
表４：非ラテンベースのＳＢＣＳまたはＤＢＣＳの言語および文字セットを検出するためのマッピング
【００３８】
表４のマッピングは、本質的に表１および表３で示した２つのマッピングによって定義された異なる目標値の統合であることを示す。このマッピングは、２５６のソース値を１５５の目標値に減少させて、バイグラムの度数統計に対する記憶装置への要件を６３％以上減少させる。
【００３９】
ステップ４０７では、当該機能は、ステップ４０６で生成されたサンプルデジタル文書表示の２次元の特徴付けを、サンプルデジタル文書表示の第１の言語および文字セットの結合の２次元モデルに集約する。ステップ４０７の後、これらのステップは終了する。
【００４０】
図５は、サンプルデジタル文書表示の特徴付けを生成するために、当該機能によって実行される好適ステップを示すフロー図である。図５に示したステップは、ステップ４０２、４０４および４０６の一部として当該機能によって実行されることが好ましい。ステップ４０２、４０４および４０６で示したように、図５のステップに従って生成された特徴付けは、特定の縮小マッピングを利用し、特徴付けにおいて度数統計が維持されるｎ−ｇｒａｍの長さに直接対応する特定の次元数を持つ。例えば、複合バイトの文字セットおよび非ラテンベースの単一バイトの文字セットに対するステップ４０６に従って、当該機能は、表３で示したマッピングを使用し、目標値の各々の可能なバイアグラムの度数を含む２次元の特徴付けを生成する。
【００４１】
ステップ５０１では、当該機能は、特徴付けに対して特定された縮小マッピングを使用し、そのバイトのソース値から目標値にデジタル文書表示の各バイトをマップする。例えば、表２に示した文字に対して、当該機能は、そのバイトまたはソース値を表２で示した目標値にマップする。ステップ５０２では、当該機能は、特徴付けを含むマトリックスを構築して初期化する。そのマトリックスは、言語および文字セットのこの結合に対する特定のｎ−ｇｒａｍに対して、文字における、長さに直接対応する次元数を持つ。例えば、ステップ４０６は、バイグラムの度数統計の使用を特定するので、当該機能は、ステップ５０２を実行するときに２次元のマトリックスを構築する。その次元の各々において、そのマトリックスは、縮小マッピングの各々の可能な目標値に対する１つのポジションを持つことが好ましい。
【００４２】
ステップ５０３〜５０５では、当該機能は、ステップ５０１で作成された一連の目標値の中から特定された長さの各ｎ−ｇｒａｍの発生を繰り返す。すなわち、バイアグラムの度数統計が特定される場合、当該機能は、一連の第１および第２の目標値を考慮することによって始まり、次に一連の目標値の第２から第３の目標値を考慮し、同様に第２から最後までおよび一連の目標値における最後の目標値まで考慮する。ステップ５０４では、現在のｎ−ｇｒａｍの発生に対して、当該機能は、現在考慮されている目標値ｎ−ｇｒａｍに対応するステップ５０２で構築されたマトリックスの要素を増加する。すなわち、増加されるマトリックスの要素は、ｎ−ｇｒａｍの第１の目標値を持つ第１のインデックス、ｎ−ｇｒａｍの第２の目標値を持つ第２のインデックス、以下同様の１つである。例えば、目標値２０、１５および１６を持つ表２で示した第１のトリグラムに対するトリグラム度数を収集するとき、当該機能は、（２０、１５、１６）でマトリックスの値を増加する。ステップ５０５では、いかなる目標値ｎ−ｇｒａｍの発生が残る場合でも、当該機能は、次の目標値を考慮するためにステップ５０３に続く。一方、これらのステップは終了する。これらのステップの終了時に、ステップ５０２で構築されたマトリックスは、デジタル文書表示の各目標値ｎ−ｇｒａｍの発生数を反映する。
【００４３】
図６は、この情報が知られていない入力デジタル文書表示の文字セットおよび言語を特定するために、当該機能によって実行される好適ステップを示すフロー図である。ステップ６０１では、当該機能は、入力デジタル文書表示がラテン語ベースの単一バイトの文字セットで表示されるかどうかを決定する。入力デジタル文書表示の多数のバイトがマッピングの前に０ｘ８０より小さい値を持つ、例えば高次ビットセットを持たない場合、当該機能は、入力デジタル文書表示がラテン語ベースの単一バイトの文字セットで表示されることを決定し、当該機能は、ステップ６０２を続け、ステップ６０２〜６０５を実行する。そうでなければ当該機能は、入力デジタル文書表示が複合バイトの文字セットまたは非ラテン語ベースの文字セットで表示されることを決定し、ステップ６０６を続け、ステップ６０６およびステップ６０７を実行する。
【００４４】
ステップ６０２では、ステップ４０２のそれと同じ方法で、当該機能は、表１およびトリグラムで示したマッピングを使用して入力デジタル文書表示の３次元の特徴付けを生成する。ステップ６０３では、当該機能は、ステップ６０２で生成された入力デジタル文書表示の３次元の特徴付け、およびトレーニングフェーズのステップ２０１で生成された言語の３次元モデルを使用して、入力デジタル文書表示の言語を検出する。この検出プロセスを、図７に従って以下により詳細に述べる。ステップ６０４では、入力デジタル文書表示の言語を検出した後、当該機能は、表３およびユニグラムで示したマッピングを使用して、ステップ４０４と同様の方法で入力デジタル文書表示の１次元の特徴付けを生成する。ステップ６０５では、当該機能は、ステップ６０４で生成された入力デジタル文書表示の１次元の特徴付け、および検出された言語を含む言語および文字セットの結合の１次元のモデルを使用して、入力デジタル文書表示の文字セットを検出する。この検出を、図７に従って以下により詳細に述べる。ステップ６０５の後、これらのステップは終了する。
【００４５】
ステップ６０６では、ステップ４０６と同様の方法で、当該機能は、表４およびバイグラムで示したマッピングを使用して、入力デジタル文書表示の２次元の特徴付けを生成する。ステップ６０７では、当該機能は、ステップ６０６で生成された入力デジタル文書表示の２次元の特徴付け、およびトレーニングフェーズのステップ２０１で生成された言語および文字セットの結合の２次元モデルを使用して、入力デジタル文書表示の言語および文字セットの両方を検出する。また、この検出プロセスを、図７に従って以下により詳細に述べる。ステップ６０７の後、これらのステップは終了する。
【００４６】
図７は、ステップ６０３、６０５および６０７に従って、入力デジタル文書表示の文字セットおよび／または言語を検出するために、当該機能によって実行される好適ステップを示すフロー図である。これらのステップでは、当該機能は、入力デジタル文書表示の現在の特徴付けを各候補モデルと比較する。入力デジタル文書表示の特徴付けに最も近い候補モデルの言語および／または文字セットが、入力デジタル文書表示に対して検出される。ステップ７０１〜７０３では、当該機能は、ステップ６０３、６０５および６０７で特定されるような言語および／または文字セットの各候補モデルを繰り返す。ステップ７０２では、当該機能は、入力デジタル文書表示の現在の候補モデルおよび特徴付けを構築するマトリックスのスカラ量を計算する。このような計算は、特徴付けマトリックスに対応する値を持つ候補モデルマトリックスの各位置でその値を増やすこと、これらの積を合計し、その特徴付けと候補モデルの類似性を示す「スコア（score）」と呼ばれる単一の値を得ることを含む。ステップ７０３では、追加の候補モデルが処理されて残っている場合、当該機能は、ステップ７０１を継続し次の候補モデルを処理する。そうでなければ当該機能は、ステップ７０４を継続する。ステップ７０４では、当該機能は、ステップ７０２で最も高いスコアが計算された候補モデルを特定する。ステップ７０５では、当該機能は、ステップ７０４で特定された候補モデルの言語および／または文字セットと同じ入力デジタル文書表示を検出する。
【００４７】
図６に示したステップは、全体で入力デジタル文書表示にアクセスするので、入力デジタル文書表示に対する単一の最有力の言語を検出する。しかし、２つ以上の言語のテキストを含む入力デジタル文書表示に対して、これらの言語の各々を検出することは、しばしば重要な利便性を持つ。図８は、入力デジタル文書表示が表示される文字セットと同様に入力デジタル文書表示で発生する複数言語を検出するために、当該機能によって実行される好適ステップを示すフロー図である。これらのステップは、入力デジタル文書表示を多くの短いセグメントに分割して、各セグメントの言語および文字セットを検出して、検出された文字セットと同様にセグメントに対して検出された言語の統合をレポートする。
【００４８】
ステップ８０１では、当該機能は、入力デジタル文書表示をセグメントに分割する。最初の実施形態では、これらのセグメントは、典型的な文のサイズかまたは約７５文字である。代替実施形態では、これらのセグメントは、典型的な段落のサイズかまたは約４００文字である。このセグメントのサイズは、当該機能がさまざまなサイズの断片で異なる言語のテキストを検出するように適合されるよう構成されることが好ましい。セグメントのサイズを小さくすることは、多言語の入力デジタル文書表示で検出される言語数を増やし、一方、セグメントのサイズを増やすことは検出フェーズの処理時間を減少させる。
【００４９】
ステップ８０２〜８０４では、当該機能は、各セグメントを繰り返す。ステップ８０３では、当該機能は、図６で示したステップに従って現在のセグメントの言語および文字セットを検出する。ステップ８０４では、追加のセグメントが処理されたまま残っている場合、当該機能は、ステップ８０２を続けそれらを処理する。そうでなければ当該機能は、ステップ８０５を継続する。ステップ８０５では、当該機能は、入力デジタル文書表示がそのセグメントの１つに対してステップ８０３の繰返しで検出された各言語を含むことを、その言語が検出されるセグメントの数の少ない順にレポートする。一実施形態では、ステップ８０５でレポートされた、検出された言語は、２以上のセグメントのしきい値で検出される言語に限られる。さらに好ましい実施形態では、検出された言語のレポートされた和集合は、ソートされ、ダブルバイトの文字セット言語または一覧表にあるラテン語ベースの単一バイトの文字セット言語上の非ラテン語ベースの言語を促す。
【００５０】
ステップ８０６では、当該機能は、ステップ８０３の繰返しで検出された文字セットの中から文字セットを選択する。ステップ８０６を、図９に従って以下により詳細に述べる。ステップ８０７では、当該機能は、ステップ８０６で選択された文字セットをレポートする。ステップ８０７の後、これらのステップは終了する。
【００５１】
図９は、入力デジタル文書表示のセグメントに対して検出されたこれら文字セットの中から、入力デジタル文書表示に対する文字セットを選択するために、当該機能によって実行される好適ステップを示すフロー図である。ステップ９０１では、すべての検出された文字セットがラテン語ベースの単一バイトの文字セットである場合、当該機能はステップ９０２を継続する。そうでなければ当該機能は、ステップ９０４を継続する。ステップ９０２では、当該機能は、入力デジタル文書表示の言語として、最も大きい数のセグメントに対して検出された言語を選択する。ステップ９０３では、当該機能は、最も大きい数のセグメントにおいてステップ９０２で選択された言語に沿って検出された文字セットを選択する。ステップ９０３の後、これらのステップは終了する。ステップ９０４では、当該機能は、最も大きい数のセグメントで検出された複合バイトの文字セットまたは非ラテン語ベースの単一バイトの文字セットで検出された言語を選択する。ステップ９０５では、当該機能は、複合バイトの文字セットまたは最も大きい数のセグメントに対して検出されたステップ９０４で選択された言語で検出された非ラテン語ベースの単一バイトの文字セットを選択する。ステップ９０５の後、これらのステップは終了する。
【００５２】
この先は、この情報が知られていない入力デジタル文書表示の文字セットと言語の両方を検出するための機能の使用について述べる。当該機能は、さらに、特定のユニコードの文字セットで表示されることが知られている入力デジタル文書表示で使用される言語を検出することができる。カリフォルニア州サンホセのユニコードコンソーシアムによってThe Unicode Standard Version 2.0で定義されたユニコード文字セットは、大多数の世界中の言語で使用されるほとんどの文字の形を表示するように設計された大文字セットである。ユニコード文字セットは、非常に多くの異なる言語のテキストを表示することができるので、ユニコード文字セットで表示されることが知られている入力デジタル文書表示で使用される言語を検出することができるのは有益である。ユニコード文字セットは、６５，５３６個の異なる文字を考慮した１６ビットの文字の値を利用する。ユニコード文字セットは、文字のグループが１つの言語または関連した言語のグループで一般的に使用される多くの「スクリプト範囲」に分割される。以下の表５は、１つの言語のみで使用される文字を含むいくつかの「単一の言語」のスクリプト範囲を示す。
【００５３】
【表５】
0004638599.tif 000006
表５：単一の言語ユニコードのスクリプト範囲
【００５４】
例えば、０ｘ０４００から０ｘ０４ＦＦまでのスクリプト範囲がロシア語でのみ使用されることが表５からわかる。他方以下の表６では、２つまたはそれ以上の言語のグループで各々使用される文字を含むいくつかの「複合言語」のスクリプト範囲を示す。
【００５５】
【表６】
0004638599.tif 000007
表６：多重言語ユニコードのスクリプト範囲
【００５６】
例えば、０ｘ４Ｅ００から０ｘ９ＦＦＦまでのスクリプト範囲が、各々の「ＣＪＫグループ」の言語、中国語、日本語および韓国語で使用されることがわかる。ユニコードの入力デジタル文書表示のセグメントの文字が、主に単一の言語スクリプト範囲の１つにあるとき、当該機能は、スクリプト範囲の単一の言語であるようにセグメントの言語を検出する。他方、セグメントの文字が主に複合言語スクリプト範囲にある場合、当該機能は、セグメントのソース値をマップし、統計的なセグメントの特徴付けを生成して、その特徴付けを上記で述べた方法で言語グループの言語のモデルと比較することが好ましい。
【００５７】
上述したようなラテン語ベースの言語を含む「ラテン」言語グループの１つまたは複数のスクリプト範囲において主に文字から構成されるセグメントに対して、当該機能は、以下の表７に示したマッピングを利用し、セグメントのソース値を、ラテン語ベースの単一バイトの文字セットの言語を検出に対して表１で示したマッピングのように、同じ２８の目標値にマップする。
【００５８】
【表７】
0004638599.tif 000008
表７：ラテン語ベースのユニコードの言語を検出するためのマッピング
【００５９】
以下により詳細に述べるように、当該機能は、図３に従って当該機能によってすでに生成されたラテングループの言語の３次元モデルへマッピングすることを使用して、セグメントの３次元の特徴付けを比較することによってラテングループ内のラテンベースの言語を検出する。
【００６０】
ラテン言語のグループ以外の言語グループに対する複合言語スクリプトにおいて文字の値から主に構成されるセグメントに対して、当該機能は、言語グループの異なる言語の間を区別するように設計された方法で、その言語グループに対する特定の当該機能によって生成されるカスタムマッピングを使用する。表７で示したマッピングのようなこれらのカスタムマッピングは、すべての６５，５３６個のユニコード文字の値から２５６個ほどのずっと少数の目標値までマップする。言語グループのためのカスタムマッピングは、セグメントの１次元の特徴付けを構築するために使用されて、次に同じカスタムマッピングを使用して生成される言語グループの異なる言語の１次元モデルと比較される。
【００６１】
図１０は、言語グループの言語を区別するために使用されるユニコード言語グループに対するカスタム縮小マッピングを生成するためのトレーニングフェーズにおける当該機能によって実行される好適ステップを示すフロー図である。これらのステップは、同じスクリプト範囲に強く依存する各言語グループに対して実行されることが好ましい。例えば、中国語、日本語および韓国語は、すべて表６の「ＣＪＫ」言語グループに対して示されたスクリプト範囲に強く依存している。次の例のように、インド系言語のグループも、単一のスクリプト範囲に強く依存している。これらのステップは、各々のこのようなグループに対して一度実行されて、グループの言語を区別するように設計されたグループに対するカスタムマッピングを生成する。好ましい実施形態では、カスタムマッピングは２５６の目標値を持つ。代替実施形態では、カスタムマッピングは２５６より多いかまたは少ない目標値の数にマップする。
【００６２】
ステップ１００１〜１００４では、当該機能は、言語グループの各言語を繰り返す。ステップ１００２では、当該機能は、現在の言語の排他的なスクリプト範囲のあらゆるソース値をユニークな目標値に割り当てる。ステップ１００３では、当該機能は、各々の明白なソース値の発生数をカウントする。ステップ１００４では、追加の言語が処理されたまま残されている場合、当該機能は、ステップ１００１を続け、言語グループの次の言語を処理する。そうでなければ当該機能はステップ１００５を継続する。ステップ１００５〜１００８では、当該機能は、言語グループの各言語を再び繰り返す。ステップ１００６では、当該機能は、現在の言語の本体でのみ発生するソース値をユニークな目標値に割り当てる。ステップ１００７では、当該機能は、現在の言語の本体で最も発生する各グループの１００個のソース値をユニークな目標値に割り当てる。ステップ１００８では、追加の言語が処理されたまま残されている場合、当該機能は、ステップ１００５を続け、言語グループの次の言語を処理する。そうでなければ当該機能はステップ１００９を継続する。ステップ１００９では、当該機能は、残りのソース値を残りの目標値に割り当てる。ステップ１００９の後、カスタムマッピングは、各々のソース値を２５６の目標値の１つにマップして、これらのステップが終了する。
【００６３】
図１０に従って各々のユニコードの言語グループに対するカスタム縮小マッピングを生成した後に、当該機能は、各カスタムマッピングを使用し、言語グループの各言語の１次元の統計的モデルを生成することが好ましい。当該機能は、図３で示したステップに従ってこのような生成を実行する。
【００６４】
図１１は、ユニコードの文字セットで表示された入力デジタル文書表示で発生する言語を検出するために、その機能によって実行される好適ステップを示すフロー図である。ステップ１１０１では、当該機能は、約４００字の段落長のセグメントなどで、入力デジタル文書表示をセグメントに分割する。ステップ１１０２〜１１０４では、当該機能は、各セグメントを繰り返す。ステップ１１０３では、当該機能は、セグメントの言語を検出する。この検出プロセスを、図１２に従って以下でさらに述べる。ステップ１１０４では、追加のセグメントが処理されたまま残されている場合、当該機能は、ステップ１１０２を続け、次のセグメントを処理する。そうでなければ当該機能は、ステップ１１０５を継続する。ステップ１００５で、言語が検出されるセグメントの数の多い順に、当該機能は、ステップ１１０３で検出された言語の和集合をレポートする。ステップ１１０５の後、これらのステップは終了する。
【００６５】
図１２は、ユニコードの文字セットで表示された入力デジタル文書表示のセグメントの言語を検出するために、当該機能によって実行される好適ステップを示すフロー図である。ステップ１２０１〜１２０４では、当該機能は、表５および表６で示した各スクリプト範囲内にあるセグメントのユニコード文字の発生数をカウントする。ステップ１２０１〜１２０４では、当該機能は、セグメントのユニコード文字の発生毎に繰り返す。ステップ１２０２では、その文字の発生がスクリプト範囲にある場合、当該機能は、ステップ１２０３を続け、スクリプト範囲に対するカウンタを増加させる。そうでなければ当該機能は、ステップ１２０４を継続する。ステップ１２０４では、ユニコードの文字の発生が処理されたまま残されている場合、当該機能は、ステップ１２０１を続け、セグメントの次のユニコードの文字の発生を処理する。そうでなければ当該機能は、ステップ１２０５を継続する。ステップ１２０５では、最も高い値を持つカウンタのスクリプト範囲が単一言語のスクリプト範囲である場合、当該機能は、ステップ１２０６を継続し、そうでなければその最も高い値を持つカウンタのスクリプト範囲は、複合言語のスクリプト範囲であり、当該機能は、ステップ１２０７を継続する。ステップ１２０６では、当該機能は、単一の言語のスクリプト範囲の言語であるセグメントの言語を検出する。ステップ１２０６の後、これらのステップは終了する。
【００６６】
ステップ１２０７では、最も高い値を持つカウンタのスクリプト範囲の言語グループがラテン言語のグループである場合、当該機能はステップ１２０８を継続し、そうでなければ当該機能はステップ１２１０を継続する。ステップ１２０８では、当該機能は、ラテン言語のグループの言語を区別するために設計された、表７で示したマッピングを使用して、セグメントの３次元の特徴付けを生成する。ステップ１２０８は、上述のように図５で示したステップに従って実行される。ステップ１２０９では、図７で示したステップに従ってラテン語グループの言語の生成された３次元の特徴付けおよび３次元モデルを使用して、セグメントの言語を検出する。ステップ１２０９の後、これらのステップは終了する。
【００６７】
ステップ１２１０では、当該機能は、図１０に従ってトレーニングフェーズの間に生成された言語グループに対するカスタムマッピングを使用して、セグメントの１次元の特徴付けを生成する。ステップ１２１０は、上述のように図５で示したステップに従って実行される。ステップ１２１１では、当該機能は、ステップ１２１０で生成された１次元の特徴付け、および図７で示したステップに従って言語の１次元モデルを使用して、セグメントの言語を検出する。ステップ１２１１の後、これらのステップは終了する。
【００６８】
好ましい実施形態を参照して、本発明を示して述べてきたが、形式および細目におけるさまざまな変更または修正が本発明の範囲から逸脱することなく行われることは当業者によって理解されるであろう。例えば、上述した以上の長さのｎ−ｇｒａｍが、当該機能の正確性を増すために使用される。他方、より短いｎ−ｇｒａｍが、当該機能の記憶装置の要件を減少させるために使用される。さらに、デジタル文書表示の統計的な特徴付けと言語および／または文字セットの統計的なモデルが、０と２５５の間にある値の単一のまたは多次元の配列を使用することによって、当該機能において直接的に好ましく表示されるが、当該機能は異なるサイズの要素を持つ配列、部品配列または他のタイプのデータ構造などの他の記憶手段を使用するように直接的に適用することができる。さらに、ここで当該機能は、特定の書かれた自然言語および文字セットに関して述べているが、当該機能は、現在未使用のものを含むすべての種類の言語および文字セットをモデル化して検出するように直接的に適用される。
【図面の簡単な説明】
【図１】  当該機能が実行する好適なコンピュータシステムを示す高位概念のブロック図である。
【図２】  当該機能が動作するフェーズを示す概略フロー図である。
【図３】  トレーニングフェーズにおける当該機能によって実行される好適ステップを示すフロー図である。
【図４】  ステップ３０４に従って、特定のサンプルデジタル文書表示に対して特定された文字セットおよび第１言語のモデルを増やすために、当該機能によって実行される好適ステップを示すフロー図である。
【図５】  サンプルのデジタル文書表示の特徴付けを生成するために、当該機能によって実行される好適ステップを示すフロー図である。
【図６】  この情報が知られていない入力デジタル文書表示の文字セットおよび言語を特定するために、当該機能によって実行される好適ステップを示すフロー図である。
【図７】  入力デジタル文書表示の文字セットおよび／または言語を検出するために、当該機能によって実行される好適ステップを示すフロー図である。
【図８】  入力デジタル文書表示の文字セットと同様に、複合言語を検出するために、当該機能によって実行される好適ステップを示すフロー図である。
【図９】  入力デジタル文書表示のセグメントに対して検出されたこれら文字セットの中から、入力デジタル文書表示に対する文字セットを選択するために、当該機能によって実行される好適ステップを示すフロー図である。
【図１０】  言語グループの言語を区別するために使用されるユニコードの言語グループに対してカスタム縮小マッピングを生成するために、トレーニングフェーズにおいて当該機能によって実行される好適ステップを示すフロー図である。
【図１１】  ユニコードの文字セットで表示された入力デジタル文書表示で発生する言語を検出するために、当該機能によって実行される好適ステップを示すフロー図である。
【図１２】  ユニコードの文字セットで表示された入力デジタル文書表示のセグメントの言語を検出するために、当該機能によって実行される好適ステップを示すフロー図である。
【図１】
0004638599.tif 000009
【図２】
0004638599.tif 000010
【図３】
0004638599.tif 000011
【図４】
0004638599.tif 000012
【図５】
0004638599.tif 000013
【図６】
0004638599.tif 000014
【図７】
0004638599.tif 000015
【図８】
0004638599.tif 000016
【図９】
0004638599.tif 000017
【図１０】
0004638599.tif 000018
【図１１】
0004638599.tif 000019
【図１２】
0004638599.tif 000020