(57)【特許請求の範囲】
【請求項１】
文字の入力ストリングを受信するステップと、
名前検出モデルを複数の文字を有する前記入力ストリングに適用するステップと
を具備し、
前記名前検出モデルを適用するステップは、
１又は複数の名前を含まない、前記複数の文字の最も尤もらしい区分化を特定するステップと、
１又は複数の名前を潜在的に含むとして、前記複数の文字のうちの１又は複数の文字シーケンスを検出するステップと、
１又は複数の名前を潜在的に含んでいる、前記複数の文字の区分化を特定するステップと、
１又は複数の名前を潜在的に含む前記区分化の尤度が、１又は複数の名前を含まない最も尤もらしい区分化の尤度より大きいとき、１又は複数の名前を含むとして、前記複数の文字を区分するステップと、
前記複数の文字が１又は複数の名前を含むとして区分されるとき、１又は複数の名前を検出するステップと
を具備することを特徴とする方法。
【請求項２】
文字の入力ストリングを受信する手段と、
名前検出モデルを複数の文字を有する前記入力ストリングに適用する手段と
を備え、
前記名前検出モデルを適用する手段は、
１又は複数の名前を含まない、前記複数の文字の最も尤もらしい区分化を特定する手段と、
１又は複数の名前を潜在的に含むとして、前記複数の文字のうちの１又は複数の文字シーケンスを検出する手段と、
１又は複数の名前を潜在的に含んでいる、前記複数の文字の区分化を特定する手段と、
１又は複数の名前を潜在的に含む前記区分化の尤度が、１又は複数の名前を含まない最も尤もらしい区分化の尤度より大きいとき、１又は複数の名前を含むとして、前記複数の文字を区分する手段と、
前記複数の文字が１又は複数の名前を含むとして区分されるとき、１又は複数の名前を検出する手段と
を備えることを特徴とするシステム。
【請求項３】
コンピュータプログラムであって、
有形のプログラムキャリア上にコード化され、
文字の入力ストリングを受信するステップと、
名前検出モデルを複数の文字を有する前記入力ストリングに適用するステップと
を具備するオペレーションをデータ処理装置に実行させ、
前記名前検出モデルを適用するステップは、
１又は複数の名前を含まない、前記複数の文字の最も尤もらしい区分化を特定するステップと、
１又は複数の名前を潜在的に含むとして、前記複数の文字のうちの１又は複数の文字シーケンスを検出するステップと、
１又は複数の名前を潜在的に含んでいる、前記複数の文字の区分化を特定するステップと、
１又は複数の名前を潜在的に含む前記区分化の尤度が、１又は複数の名前を含まない最も尤もらしい区分化の尤度より大きいとき、１又は複数の名前を含むとして、前記複数の文字を区分するステップと、
前記複数の文字が１又は複数の名前を含むとして区分されるとき、１又は複数の名前を検出するステップと
を具備することを特徴とするコンピュータプログラム。
【請求項４】
システムであって、
文字の入力ストリングを受信するステップと、
名前検出モデルを複数の文字を有する前記入力ストリングに適用するステップと
を具備するオペレーションを実行するように構成された１又は複数のコンピュータを備え、
前記名前検出モデルを適用するステップは、
１又は複数の名前を含まない、前記複数の文字の最も尤もらしい区分化を特定するステップと、
１又は複数の名前を潜在的に含むとして、前記複数の文字のうちの１又は複数の文字シーケンスを検出するステップと、
１又は複数の名前を潜在的に含んでいる、前記複数の文字の区分化を特定するステップと、
１又は複数の名前を潜在的に含む前記区分化の尤度が、１又は複数の名前を含まない最も尤もらしい区分化の尤度より大きいとき、１又は複数の名前を含むとして、前記複数の文字を区分するステップと、
前記複数の文字が１又は複数の名前を含むとして区分されるとき、１又は複数の名前を検出するステップと
を具備することを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、名前検出に関し、特に、中国、日本、および韓国(「CJK」)の言語のための名前検出に関する。
【０００２】
名前検出は、自然言語処理で通常使用される(例えば、自動音声認識(ASR)、機械翻訳(MT)、光学文字認識(OCR)、文の構文解析、非ローマ字インプットメソッドエディタ(IME)、およびWebサーチアプリケーション)。
【０００３】
単純ベイズ式分類法(Naive Bayesian classification method)を使用して、文字のシーケンス「X」が名前を特定するか否かを検出することができる(そのコンテキスト(例えば、「X」の前または後に出現する文字)を付与された名前を特定する「X」の確率と、そのコンテキストを付与された名前を特定しない「X」の確率との比率によって)。言語モデルを使用して、これらの条件付き確率を計算する。代表的な統計的言語モデルは、その履歴(例えば、データのコレクションにおける、以前の単語又は文字シーケンスの出現)を付与された、単語又は文字シーケンスの確率測定である。特に、マルコフの仮定に基づく従来のn-グラム言語モデルを使用して、単語又は文字シーケンスを予測する。
【０００４】
n-グラムは、n個の連続したトークン(例えば、単語または文字)のシーケンスである。nグラムは、順序を有する(n-グラムの中のトークンの数である)。例えば、1グラム(または、ユニグラム)は1つのトークンを含み、2グラム(または、バイグラム)は2つのトークンを含んでいる。
【０００５】
所定のn-グラムは、n-グラムの異なった部分に従って、記述することができる。n-グラムは、コンテキストおよび将来のトークン(コンテキスト、c)として記述することができ、ここで、コンテキストは長さn-1を有し、かつ、cは将来のトークンを表す。例えば、3グラム「x y z」は、n-グラムコンテキストおよび将来のトークンの観点から記述することができる。n-グラムコンテキストは、n-グラムの最後のトークンに先行するn-グラムのすべてのトークンを含んでいる。所定の例で、「x y」がコンテキストである。コンテキストの中の左端のトークンが、左のトークンと称される。将来のトークンは、n-グラムの最後のトークンであり、例では「z」である。また、n-グラムは、右のコンテキストおよびバックオフ(backed off)コンテキストに関して記述することができる。右のコンテキストは、n-グラムの第１トークンに続くn-グラムのすべてのトークンを含む((n-l)グラムとして表される)。上記した例では、「y z」が右のコンテキストである。さらに、バックオフコンテキストは、コンテキストの中の左端のトークンを差し引いた、n-グラムのコンテキストである。上記した例では、「y」がバックオフコンテキストである。
【０００６】
各n-グラムは、トレーニングデータにおけるn-グラム相対度数の関数として計算される、関連した確率評価を有する。例えば、L個のトークンのストリングが、
【０００７】
【数１】
0005770753.tif 000002
【０００８】
として表される。ストリング
【０００９】
【数２】
0005770753.tif 000003
【００１０】
に以下として、
【００１１】
【数３】
0005770753.tif 000004
【００１２】
確率を割り当てることができる。ここで、近似は、ストリングにおける次のトークンを予測するとき、直前の(n-1)トークンだけが関連しているというマルコフの仮定に基づき、かつ、Pに対する「＾」という記号は確率関数の近似であることを示す。
【００１３】
CJK言語では、文には単語境界がない。その結果、文は、人々の名前の検出の前に、自動的に区分される必要がある。したがって、区分化エラーは名前検出に伝播する。
【００１４】
CJK名前は、大規模な統計から得ることができる形態学的な法則を有する。例えば、300個の一般的な中国人の姓が、人口の99%以上をカバーしている。多くの場合、女性の名前は、
【００１５】
【数４】
0005770753.tif 000005
【００１６】
(na, hong, bing, li)などの文字を含んでいる。通常、一般的な名は姓から独立している。例えば、
【００１７】
【数５】
0005770753.tif 000006
【００１８】
という姓、および、
【００１９】
【数６】
0005770753.tif 000007
【００２０】
という名の組合せに対する統計が利用可能である場合、名前を特定する他の
【００２１】
【数７】
0005770753.tif 000008
【００２２】
という姓、および、
【００２３】
【数８】
0005770753.tif 000009
【００２４】
という名の組合せを、姓を特定する
【００２５】
【数９】
0005770753.tif 000010
【００２６】
の統計および、名を特定する
【００２７】
【数１０】
0005770753.tif 000011
【００２８】
の統計を使用することで予測することができる。さらに、中国語の一部の単語は、人の名前又は通常の単語のどちらでもあり得る。例えば、
【００２９】
【数１１】
0005770753.tif 000012
【００３０】
は、中国の有名な歌手の名前か、又は、夜明けを意味する一般的な単語のどちらでもあり得る。そのような名前の検出は、コンテキストに大いに依存する。
【００３１】
加えて、一般に、CJK名前は、2グラム(バイグラム)又は3グラム(トリグラム)を使用することで特定される。左から右にCJKテキストを読むことの水平の慣例を仮定すれば、コンテキストの中の左端の文字は姓である。右のコンテキストは名である。例えば、「x y z」がCJK名前である場合、次いで、「x」は姓であり、かつ、「y z」は名である。更なる例として、「x y」がCJK名前である場合、次いで、「x」は姓であり、かつ、「y」は名である。
【発明の概要】
【課題を解決するための手段】
【００３２】
名前検出のためのシステム、方法、およびコンピュータプログラム製品が提供され、特に、表意文字(例えば、漢字)で作られた名前を検出するのに役立つ。一般に、1態様では、方法が提供される。方法は、姓のコレクションと、n-グラムのコレクションを含む注釈付コーパスとを使用することで、未加工(raw)名前検出モデルを生成するステップを具備し、各n-グラムは、注釈付コーパスにおいて名前として出現することの対応する確率を有する。また、方法は、未加工名前検出モデルを準構造化データのコレクションに適用して、注釈付準構造化データを形成するステップを具備し、注釈付準構造化データは、名前を特定するn-グラムと名前を特定しないn-グラムとを特定する。また、方法は、未加工名前検出モデルを大規模な注釈のないコーパスに適用して、名前を特定する大規模な注釈のないコーパスのn-グラムと、名前を特定しないn-グラムとを特定する大規模な注釈付コーパスデータを形成するステップを具備している。また、方法は、名前を特定する注釈付準構造化データ、および名前を特定する大規模な注釈付コーパスデータを使用することで名前モデルを導出するステップと、名前を特定しない準構造化データを使用することで非名前モデルを導出するステップと、大規模な注釈付コーパスを使用することで言語モデルを導出するステップとを含む、名前検出モデルを生成するステップを具備している。この態様の他の具体化例は、システムおよびコンピュータプログラム製品を含んでいる。
【００３３】
態様の具体化例は、以下の特徴のうちの１又は複数を含むことができる。態様は、名前検出モデルを準構造化データのコレクションに適用して、注釈付準構造化データを形成するステップと、名前検出モデルを大規模な注釈のないコーパスに適用して、名前を特定する大規模な注釈のないコーパスのn-グラムと、名前を特定しないn-グラムとを特定する大規模な注釈付コーパスデータを形成するステップと、改良された名前検出モデルを生成するステップとをさらに具備することができ、注釈付準構造化データは、名前を特定するn-グラムと名前を特定しないn-グラムとを特定する。改良された名前検出モデルを生成するステップは、名前を特定する注釈付準構造化データ、および名前を特定する大規模な注釈付コーパスデータを使用することで改良された名前モデルを導出するステップと、名前を特定しない準構造化データを使用することで改良された非名前モデルを導出するステップと、大規模な注釈付コーパスを使用することで改良された言語モデルを導出するステップとを具備することができる。
【００３４】
名前モデルは、名前を特定する注釈付準構造化データ、および名前を特定する大規模な注釈付コーパスからのn-グラムのコレクションを具備することができ、ここで、各n-グラムは、左の文字として姓、および右のコンテキストとして名を含み、かつ、各n-グラムは名前を特定することの対応する確率を有する。非名前モデルは、名前を特定しない注釈付準構造化データからのn-グラムのコレクションを具備することができ、ここで、各n-グラムは、左の文字として姓、および右のコンテキストとして名を含み、かつ、各n-グラムは、名前を特定しないことの対応する確率を有する。未加工名前モデルは、注釈付コーパスからのn-グラムのコレクションを含むことができ、ここで、各n-グラムは、姓のコレクションからの姓である左の文字を含み、かつ、各n-グラムは、注釈付コーパスにおける名前の相対度数に従って、名前を特定することの対応する確率を有する。未加工名前モデルは、外国人の姓のコレクションを使用することで生成することができる。
【００３５】
姓のコレクションは、複数の疎な姓を含むことができ、かつ、未加工名前検出モデルは、名前を特定する各n-グラムの確率(疎な姓である左の文字を含んでいる)を特定するために、複数の疎な姓のうちの特定の疎な姓の計算された確率の代わりに、すべての疎な姓の単一の確率を使用する。姓のコレクションは、複数の外国人の姓を含むことができる。
【００３６】
一般に、１態様では、方法が提供される。方法は、文字の入力ストリングを受信するステップと、名前検出モデルを複数の文字を有する入力ストリングに適用するステップとを含んでいる。名前検出モデルを適用するステップは、１又は複数の名前を含まない、複数の文字の最も尤もらしい区分化を特定するステップと、１又は複数の名前を潜在的に特定するとして、複数の文字のうちの１又は複数の文字シーケンスを検出するステップと、１又は複数の潜在的な名前を含んでいる、複数の文字の区分化を特定するステップと、潜在的な１又は複数の名前を含む区分化の尤度が、１又は複数の名前を含まない最も尤もらしい区分化より大きいとき、１又は複数の名前を含むとして、複数の文字を区分するステップとを具備する。この態様の他の具体化例は、システムおよびコンピュータプログラム製品を含んでいる。
【００３７】
態様の具体化例は、以下の特徴のうちの１又は複数を含むことができる。態様は、複数の文字が１又は複数の名前を含んでいるとして区分されるとき、１又は複数の名前を検出するステップをさらに含むことができる。態様は、複数の文字を含むストリングを受信するステップと、ストリングの特定のシーケンスが名前を特定する確率を計算するステップとをさらに具備し、名前は姓および名を含み、コーパスにおいて特定のシーケンスの頻度がしきい値より少ないとき、名を表すシーケンスの部分があらゆる姓と共に出現する相対度数と、姓を表すシーケンスの部分の相対度数との関数として、特定のシーケンスが名前を特定する確率を決定するステップを含んでいる。
【００３８】
態様は、ユーザ入力データを受信するステップと、未加工名前検出モデルをユーザ入力データに適用して、注釈付ユーザ入力データを形成するステップとをさらに具備し、注釈付ユーザ入力データは、名前を特定するn-グラム、および名前を特定しないn-グラムを特定する。名前検出モデルを生成するステップは、名前を特定する注釈付ユーザ入力データを使用することで名前モデルを導出するステップと、名前を特定しない注釈付ユーザ入力データを使用することで非名前モデルを導出するステップと、注釈付ユーザ入力データを使用することで言語モデルを導出するステップとをさらに具備することができる。
【００３９】
本明細書に記載された本発明の特定の具体化例は、以下の利点のうちの１又は複数を実現するように実施することができる。CJK名前検出は、入力テキストを単語にあらかじめ区分するステップの有無にかかわらず実行することができ、名前検出エラーを生じさせる単語区分化エラーを回避する。名前検出モデルをトレーニングするステップは、多量の人間による注釈付データを必要としない。一部のトレーニングデータは、準構造化データ(例えば、xmlファイルにおける、ダウンロードの記述)に適用することができる。膨大な注釈のないデータ(特に、インプットメソッドエディタ(IME)ユーザ入力、IMEユーザ辞書、ウェブページ、サーチクエリーログ、電子メール、ブログ、インスタントメッセージ(IM)、およびニュース記事)を使用して、名前検出モデルをトレーニングすることができる。このデータの使用は、名前検出において、高い精度および高い再現度の両方を保証する。また、名前検出モデルを使用して、疎な姓を有する名前および外国人の名前を検出することができる。加えて、CJK名前検出は、名前検出モデルをさらに改良するために繰り返しトレーニングをして、以前の名前検出モデルに追加された名前を検出するステップを含んでいる。
【００４０】
本明細書に記載された本発明の１又は複数の具体化例の詳細は、添付図面および以下の記載で説明される。本発明の他の特徴、態様および利点は、記載、図面および特許請求の範囲から明らかになる。
【図面の簡単な説明】
【００４１】
【図１Ａ】例の中国語のテキストを示している。
【図１Ｂ】例の中国語のテキストを示している。
【図２】未加工名前検出モデルの例の生成を図示したブロック図である。
【図３】名前検出モデルの例の生成を図示したブロック図である。
【図４】例の名前検出モデルのコンポーネントを図示したブロック図である。
【図５】観測された漢字シーケンスのための例の隠れマルコフモデルを図示したブロック図である。
【図６】名前を検出するための例のプロセスを示したフローチャートである。
【図７】CJK名前検出の例のシステムである。
【発明を実施するための形態】
【００４２】
様々な図面の類似の参照番号及び記号は類似の要素を示す。
【００４３】
§名前を検出するための数式
中国語の一部の単語は、人の名前又は通常の単語のどちらでもあり得る。例えば、
【００４４】
【数１２】
0005770753.tif 000013
【００４５】
は、中国の有名な歌手の名前か、又は夜明けを意味する一般的な単語のどちらでもあり得る。例えば、図1Aは、夜明けを意味する文字シーケンス
【００４６】
【数１３】
0005770753.tif 000014
【００４７】
100を含む中国語テキストを示している。別の例として、図1Bは、中国の有名な歌手の名前として、文字シーケンス
【００４８】
【数１４】
0005770753.tif 000015
【００４９】
102を含む中国語テキストを示している。これらの文字シーケンスは、名前を特定するか、又は名前を特定しないとして、どちらにでも分類することができる。
【００５０】
特に、n-グラムは名前を特定するか、又は名前を特定しないとして、どちらにでも分類される。所定のn-グラムwは、ベイズ規則を使用することで、名前を特定するか(NAME)、又は、名前を特定しない(NOTNAME)として、どちらにでも分類することができる。ベイズ規則は、コンテキストを付与された名前を特定する所定のn-グラムwの確率を以下のように定義することができると定める。
【００５１】
【数１５】
0005770753.tif 000016
【００５２】
同様に、名前を特定しない所定のn-グラムの確率を以下のように定義することができる。
【００５３】
【数１６】
0005770753.tif 000017
【００５４】
その上、比率を以下のように定義することができる。
【００５５】
【数１７】
0005770753.tif 000018
【００５６】
１実施例では、結果とした生じた比率値が１以上である場合、次いで、n-グラムは名前を特定するとして分類される。換言すれば、n-グラムwが名前を特定するコスト加重尤度(cost-weighted likelihood)は、n-グラムwが名前を特定しないコスト加重尤度より大きい。そうでなければ、n-グラムは名前を特定しないとして分類される。Lは、特定の損失関数を表す。一部の実施例では、損失関数は、以下のように方程式を単純化することができるように定数である。
【００５７】
【数１８】
0005770753.tif 000019
【００５８】
ここで、cは定数である。結合確率(P(w=NAME, context)およびP(w = NOTNAME, context))は、名前検出モデルからの出力として、もうけることができる(図2乃至4に関して以下に詳細に説明する)。
【００５９】
初期の概要として、名前検出モデルは、名前モデルと、非名前モデルと、言語モデルとを具備している。未加工名前モデルは、注釈付コーパスのn-グラムが名前を特定するか否かを特定するために、事前に定義された姓のコレクションと、注釈付コーパスとを使用することで生成される。未加工名前モデルは、準構造化データおよび大規模な注釈のないデータに適用されて、名前検出モデルを生成する。
【００６０】
特に、名前検出モデルは、確率評価を、P(w = NAME, context)及びP(w = NOTNAME, context)から導出する。特に、結合確率P(w = NAME, context)を以下のように書き直すことができる。
Pname(W, context) = Pname(prefix)Pname(W | prefix)Pname(suffix | W, prefix).
Pname(W, context)は、以下のようにさらに近似することができる。
Pname(prefix)Pname(family_name, given name | prefix)Pname(suffix | family_name, given_name)Pname      式(1)
加えて、結合確率P(w = NOTNAME, context)を同様に以下のように近似することができる。
Pnotname(prefix)Pnotname (family_name, given_name | prefix)Pnotname (suffix | family_name, given_name)      式(2)
【００６１】
§未加工名前検出モデル
図2は、未加工名前検出モデル206の例の生成を図示したブロック図200である。便宜上、未加工名前検出モデル206の生成は、生成を実行するシステムに関して説明される。
【００６２】
CJKテキストでは、所定のn-グラムは、n-グラムにおける左の文字が姓である場合にだけ、名前を特定することができる。右のコンテキストは名である。したがって、事前に定義された姓のコレクション204を使用して、未加工名前検出モデル206を生成する。システムは、少量の注釈付トレーニングデータを使用することで、未加工名前検出モデル206を生成することができる。システムは、注釈付コーパス(例えば、少量の注釈付コーパス202)と、事前に定義された姓のコレクション204とを使用することによって、未加工名前モデル206をトレーニングする。
【００６３】
事前に定義された姓204は、１又は複数のCJK言語の姓のコレクションを含んでいる。例えば、中国の名前検出モデルのために、事前に定義された姓204は、300個の一般的な中国の姓のコレクションを含むことができ、所定の人口における99%以上の可能性のある中国の姓を統計的にカバーする。小規模な注釈付コーパス202は、テキストデータの小規模なコレクション(例えば、ウェブドキュメントまたはサーチクエリー)を含んでいる。小規模な注釈付コーパス202のテキストデータは、名前を特定するか、又は名前を特定しないとして特定された(例えば、注釈される)n-グラムを含んでいる。例えば、名前は、１又は複数の個人によって手動で特定することができる。
【００６４】
生成後に、未加工名前検出モデル206は、(姓204のコレクションで見つけられる左の文字で)名前を特定する小規模な注釈付コーパス202におけるn-グラムと、名前と名前を特定しないn-グラムとの相対度数の関数として計算される確率評価を含む。したがって、未加工名前モデル206を使用して、入力n-グラムが名前を特定するか、又は名前を特定しない確率を計算することができる (例えば、上記した比率に基づく名前を検出する)。しかしながら、これは、小規模な注釈付コーパスの確率によって制限され、データの大規模なコレクションで正確でない。その結果、未加工名前検出モデル206は、トレーニングデータにさらに適用されて、名前検出モデルを生成する(図3に関して以下でさらに詳細を論じる)。
【００６５】
§トレーニングデータ
図3は、名前検出モデル314の例の生成を図示したブロック図300である。注釈プロセス316(例えば、未加工名前検出モデル206によって実行される)が、拡張名前検出モデルを生成するために、注釈のないデータに適用される。準構造化データ302及び大規模な注釈のないコーパス308を、注釈のないデータとして使用することができる。
【００６６】
準構造化データ302は、例えばxmlファイルを含むことができる。準構造化データ302は、多くの異なったフィールドを有するデータを含むことができる。特定のフィールドを使用して、名前および非名前を特定することができる。例えば、準構造化データ302は、フィールドのうちの1つがアーティストフィールドである音楽情報を特定するXMLファイルを含むことができる。
【００６７】
大規模な注釈のないコーパス308は、ターゲット言語(例えば、中国語、日本語、または韓国語)でテキストのコレクションを提供する。大規模な注釈のないコーパス308は、多くの異なったソースのテキスト(例えば、ウェブクエリー、ウェブページ、及びニュース記事を含む)を具備することができる。一部の実施例では、大規模な注釈のないコーパス308は、およそ数百から数千億の(又はさらに多くの)文字のテキストを含む。
【００６８】
注釈プロセス316は、適用され、かつ、名前検出モデル314のサブモデルをトレーニングするために使用されるトレーニングデータのサブセットを形成する。特に、名前を特定するn-グラムと名前を特定しないn-グラムとの確率評価(未加工名前検出モデル206を生成するために、小規模な注釈付コーパス202から決定される)を使用して、名前を特定するトレーニングデータ、および名前を特定しないトレーニングデータにトレーニングデータを分離する。
【００６９】
システムは、注釈付準構造化データ(例えば、304及び306)を形成するために、注釈プロセス316を準構造化データ302に適用する。特に、未加工名前検出モデル206を使用して、準構造化データ302を分離し、かつ、名前304を特定するn-グラムを含んでいる注釈付準構造化データのサブセットを形成し、かつ、名前306を特定しないn-グラムを含んでいる注釈付準構造化データのサブセットを形成する。例えば、xmlファイルが「アーティスト: c1 c2 c3」というn-グラムを含み、ここで、「c1 c2 c3」がCJK名前である場合、n-グラムは、名前304を特定するn-グラムを含んでいる注釈付準構造化データのサブセットに配置される。別の例として、xmlファイルが「タイトル: c4 c5」というn-グラムも含み、ここで、「c4 c5」が名前(例えば、歌のタイトル)を特定しない場合、n-グラムは、名前306を特定しないn-グラムを含んでいる注釈付準構造化データのサブセットに配置される。
【００７０】
また、システムは、大規模な注釈付コーパスデータ(例えば、310及び312)を形成するために、大規模な注釈のないコーパス308に注釈プロセス316を適用する。特に、未加工名前検出モデル206を使用して、名前310を特定するn-グラムを含んでいる1セットの大規模な注釈付コーパスデータ、および名前312を特定しないn-グラムを含んでいる1セットの大規模な注釈付データに、大規模な注釈のないコーパスを分離する。例えば、ウェブページ文が文字シーケンス「c1 c2 c3 c4 c5 c6」(ここで、「c2 c3 c4」はCJK名前である)を含んでいる場合、次いで、文は、名前310を特定するn-グラムを含んでいる大規模な注釈付コーパスデータのセットの中に配置される。代わりに、文に適用されるとき、注釈プロセス316が名前を検出しない場合、文は、名前312を特定しないn-グラムを含んでいる大規模な注釈付コーパスデータのセットの中に配置される。
【００７１】
トレーニングプロセス318は、名前検出モデル314を生成するために、注釈付準構造データ(例えば、304及び306)と大規模な注釈付コーパスデータ(例えば、310及び312)とを使用する(図4に関して以下で詳細に論じる)。
【００７２】
一部の実施例では、注釈のないデータは、ユーザ入力データ(例えば、IMEのスクリプト、及び、単語又は句のユーザによって編集されたリストを含む)を具備することができる。システムは、名前を特定する注釈付ユーザ入力データと、名前を特定しない注釈付ユーザ入力データとを形成するために、注釈プロセス316をユーザ入力データに適用する。次いで、トレーニングプロセス318は、名前検出モデル314を生成するために、注釈付ユーザ入力データを使用する。
【００７３】
§名前検出モデル
図4は、例の名前検出モデル314のコンポーネントを図示したブロック図である。名前検出モデル314は、名前モデル402と、非名前モデル404と、言語モデル406とを具備している。
【００７４】
§§名前モデル
名前304を特定するn-グラムを含んでいる準構造化データのサブセットと、名前310を特定するn-グラムを含んでいる大規模な注釈付コーパスデータのセットとを使用して、名前モデル402を導出する。システムは、姓および名を含むn-グラムが名前を特定する確率、又は、Pname(family_name, given_name)を決定するために、これらのデータのセットを使用する。
【００７５】
特に、名前304を特定するn-グラムを含んでいる準構造化データのサブセットと、名前を特定するn-グラムを含んでいる大規模な注釈付コーパスデータのセットとを使用して、データのセットにおいて出現する名前を特定するn-グラムの相対度数の関数として、確率評価を生成する。
【００７６】
一部の実施例では、注釈付ユーザ入力を使用して、確率評価を生成する。
【００７７】
§§非名前モデル
名前を特定しないnグラムを含んでいる準構造化データのサブセットを使用して、非名前モデル404を導出する。システムは、姓および名を含むn-グラムが名前を特定しない確率、又は、Pnotname(family_name, given_name)を決定するために、このデータのサブセットを使用する。
【００７８】
特に、このデータのサブセットを使用して、データのサブセットにおいて名前を特定するn-グラムの相対度数の関数として確率評価を生成する。
【００７９】
一部の実施例では、注釈付ユーザ入力を使用して、確率評価を生成する。
【００８０】
§§言語モデル
大規模な注釈付データ(例えば、310及び312)のセットを使用して、言語モデル406を導出する。システムは、コンテキストを使用することで確率(n-グラムが名前を特定するか、または名前を特定しない)を決定するために、これらのデータのセットを使用する。特に、システムは、名前を伴う言語サブモデルを導出するために、確率(接尾語が名前候補を付与された名前を特定し、かつ、名前候補が接頭語を付与された名前を特定する)、又は、Pname(suffix | name)およびPname(name | prefix)を決定する。
【００８１】
その上、システムは、名前を伴わない言語サブモデルを導出するために、確率(接尾語が名前候補を付与された名前を特定せず、かつ、名前候補が接頭語を付与された名前を特定しない)、又は、Pnotname(suffix | name)およびPnotname(name | prefix)を決定する。
【００８２】
接頭語は、nグラム名前候補に先行する文字シーケンスのうちの１又は複数の文字である。接尾語は、n-グラム候補に続く文字シーケンスのうちの１又は複数の文字である。例えば、「c1 c2 c3 c4 c5 c6 c7」という文字シーケンスに対しては、名前候補は「c3 c4 c5」であり、接頭語は「c1 c2」であり、かつ、接尾語は「c6 c7」である。
【００８３】
名前310を特定するn-グラムを含んでいる大規模な注釈付データのセットを使用して、特定の接頭語又は接尾語を付与されたデータのセットにおいて名前であるn-グラムの相対度数の関数として確率評価を生成する。また、名前312を特定しないn-グラムを含んでいる大規模な注釈付データのセットを使用して、特定の接頭語又は接尾語を付与されたデータのセットにおいて名前でないn-グラムの相対度数の関数として確率評価を生成する。
【００８４】
一部の実施例では、注釈付ユーザ入力を使用して、確率評価を生成する。
【００８５】
要約すれば、未加工名前検出モデル206を注釈プロセス316で使用して、準構造化データ302と、大規模な注釈のないコーパス308とを分離し、かつ、注釈付準構造化データ(304及び306)と、大規模な注釈付コーパス(310及び312)とを形成する。システムは、名前モデル402、非名前モデル404、および言語モデル406を含む名前検出モデル314をトレーニングするために、この注釈付データとトレーニングプロセス318とを使用する。
【００８６】
§名前を検出するための改良された数式
名前モデルおよび言語モデルからの確率評価を使用して、P(NAME | context)を決定する。例えば、文字シーケンスが「c1 c2 c3 c4 c5 c6 c7」であり、かつ、「c3 c4 c5」が名前である場合、次いで、「c3 c4 c5」がコンテキストを付与された名前である(即ち、接頭語が「c1 c2」であり、かつ、接尾語が「c6 c7」である)確率、又は、P(NAME | context)は、上記した式(1)から導出することができる。P(NAME | context)は、以下として表現することができる。
Pname(c3 | prefix)Pname(c4 c5 | c3)Pname(suffix | c3, c4 c5)
【００８７】
この式は、一般的に以下のように書き直すことができる。
Pname(family_name | prefix)Pname(given_name | family_name)Pname(suffix | family_name, given_name)
ここで、
【００８８】
【数１９】
0005770753.tif 000020
【００８９】
である。
【００９０】
上記したように、名前モデルをトレーニングして、Pname(family_name, given_name)を決定することができる。その上、言語モデルをトレーニングして、Pname(family_name | prefix)およびPname(suffix | family, given_name)を決定することができる。
【００９１】
同じように、名前モデルおよび言語モデルからの確率評価を使用して、P(NOTNAME | context)を決定する。例えば、文字シーケンスが「c1 c2 c3 c4 c5 c6 c7」であり、かつ、「c3 c4 c5」が名前でない場合、次いで、「c3 c4 c5」がコンテキストを付与された名前でない(すなわち、接頭語が「c1 c2」であり、かつ、接尾語が「c6 c7」である)確率、又は、P(NOTNAME | context)は、上記した式(2)から導出することができる。P(NOTNAME | context)は、以下として表現することができる。
Pnotname(c3 | prefix)Pnotname(c4 c5 | c3)Pnotname(suffix | c4 c5)
【００９２】
この式は、一般に以下のように書き直すことができる。
Pnotname(family_name | prefix)Pnotname(given_name |family_name)Pnotname(suffix | family_name, given_name)
【００９３】
上記したように、非名前モデルをトレーニングして、Pnotname(family_name, given_name)を決定することができる。その上、言語モデルをトレーニングして、Pnotname(family_name | prefix)および Pnotname(suffix | family_name, given_name)を決定することができる。
【００９４】
§トレーニング繰り返し
一部の実施例では、名前検出モデル314をさらに使用して、準構造化データ302と大規模な注釈のないコーパス308とを、注釈付準構造化データ(304及び306)と大規模な注釈付コーパス(310及び312)とに分離する。例えば、図3では、名前検出モデル314は、注釈プロセス316で使用されて、準構造化データ302と大規模な注釈のないコーパス308とを分離する。一部の実施例では、これらの新しいトレーニングデータのセットを使用して、より改良された名前検出モデルを生成する。より改良された名前検出モデルは、名前を特定するか、または名前を特定しないn-グラムの確率評価を導出するために、より大規模なトレーニングデータの使用によって、未加工名前検出モデルより広い適用範囲を有する。
【００９５】
一部の実施例では、注釈付ユーザ入力を使用して、より改良された名前検出モデルを生成する。
【００９６】
名前検出モデルの更なる改良は、2回以上の繰り返しで、名前検出モデルをトレーニングすることによって達成することができる。各繰り返しは、名前モデルの適用範囲を向上させる。一部の実施例では、繰り返しの回数(例えば、3回の繰り返し)を指定することができる。代わりに、繰り返しの回数は条件に基づくことができる(例えば、名前検出モデルによる出力として提供される確率評価が、繰り返し間にしきい値以上に変化しないという条件)。
【００９７】
§名前検出モデルへの更なる改良
相対度数は、特定の名前(例えば、トレーニングデータにおいて低い出現頻度を有する疎な名前、疎な姓、または外国人の名前)に対して低い場合がある。その結果、対応する確率評価は不正確であり得る。これは、追加的な疎データ問題をもたらす。したがって、平滑化技術を使用して、低頻度、または疎な名前を計上することができる。トレーニングデータに出現する文字シーケンスの頻度がしきい値より低い場合、平滑化技術を使用することができる。
【００９８】
§§疎な名前
一部の実施例では、出現する名前の確率は、出現する姓および出現する名の確率から独立している。例えば、「y」が姓「x」に対する名である場合、次いで、名前は「xy」である。その上、「z」は疎な姓である。名前「zy」は疎な姓「z」及び名「y」を表し、ここで、疎な姓「z」は、サンプリングされなかったか、または低頻度でサンプリングされる(例えば、指定されたしきい値頻度より低い)。１実施例では、システムは、「zy」の確率を近似するために、「xy」の確率を使用する。特に、「x」が姓であるというイベントと、「y」が名であるというイベントとの確率は、独立して扱われる。
【００９９】
その結果、疎な姓「z」を付与された出現する名「y」の確率、又は、P(y| z)は、「xy」の統計の形で近似することができる。ここで、
【０１００】
【数２０】
0005770753.tif 000021
【０１０１】
である。
【０１０２】
例えば、トレーニングデータにおいて「zy」の頻度がしきい値より低い場合、「z y」が名前である確率は、「y」があらゆる名前に対して名である確率と、姓「z」出現の確率との関数である。
【０１０３】
例えば、名前を検出するために改良された数式に戻れば、Pnotname(suffix | family _name, given_name)は、正確に推定できないかもしれない。一部の実施例では、Pnotname(suffix | family _name, given_name)が以下として表すことができるように、バックオフストラテジーを実施することができる。
BackoffWeight(family_name, given_name)Pnotname(suffix | all_family_names, given_name).
【０１０４】
§§疎な姓
一部の実施例では、すべての疎な姓の確率は、単一の疎な姓の確率のための置換として使用される。例えば、「a」は名であり、かつ、「b」は姓である。コンテキストを付与された出現する名前の確率を、P(a | b)P(b | context)によって表すことができる。「b」が疎な姓である場合、確率P(a | b)は不正確である場合がある。この実施例では、所定のコンテキストで出現する名前の確率は、確率(すべての疎な姓がコンテキストを付与されたトレーニングデータにおいて出現する)によって多重化されたすべての疎な姓を付与されたトレーニングデータにおいて「a」が出現する確率、又は、
P(a | all_sparse_family_name)P(b | all_sparse_family)P(all_sparse_family_name | context)
を使用することによってより正確に表される。
【０１０５】
§§外国人の名前検出モデル
外国人の名前(例えば、翻訳された名前)の相対度数も低く、不正確な確率評価をもたらす。したがって、外国人の名前検出モデルを、名前検出モデル314を生成するステップに関して上記した同じステップに従って、生成することができる。特に、未加工外国人の名前検出モデルは、未加工名前検出モデル206を生成するステップと同じように、外国人の姓の事前に定義されたコレクションから生成される。未加工外国人の名前検出モデルを他のデータ(例えば、大規模な注釈のないデータおよび準構造化データ)に適用して、名前検出モデル314を生成するステップと同じように、外国人の名前検出モデルを生成することができる。
【０１０６】
§区分化
n-グラムの所定の入力シーケンスに対して名前を検出するために、名前検出モデルを使用するとき、名前を特定するか、または名前を特定しないn-グラムの確率評価を使用して、文字シーケンスを単語に区分し、かつ、同時に、名前を検出する。
【０１０７】
一部の実施例では、CJK文字シーケンスは隠れマルコフモデルで配列される。隠れマルコフモデルは、隠されたパラメタと観測可能なパラメタとを含んでいる統計モデルである。例えば、観測可能なパラメタはCJK文字シーケンスであり、かつ、隠されたパラメタはCJK単語の可能性のあるシーケンスである。特に、CJK文字又はCJK文字の組み合わせが異なった意味を持つことができるので、CJKの文字の特定のシーケンスは、単語の１又は複数のシーケンスをもたらすことができる。例えば、文字シーケンス「c1 c2 c3」はCJK単語の可能性のあるシーケンスである。さらに、「c1 c2」も、別のCJK単語の可能性のあるシーケンスであり得る。
【０１０８】
一部の実施例では、ビタビアルゴリズムを使用して、隠れマルコフモデルを区分する。ビタビアルゴリズムは、観測されたイベントのシーケンスをもたらす隠された状態の最も尤もらしいシーケンス(例えば、区分化経路)を見つけ出すための動的プログラミングアルゴリズムである。例えば、ビタビアルゴリズムを使用して、CJK文字のシーケンスをもたらすCJK単語の最も尤もらしいシーケンスを見つけ出す。
【０１０９】
CJK単語の最も尤もらしいシーケンスを以下のように書くことができる。
【０１１０】
【数２１】
0005770753.tif 000022
【０１１１】
これは、CJK単語のシーケンスである、W(CJK単語のすべての可能性のあるシーケンスの中から)を記述し、P(W | C)のための最高値を提供し、ここで、W= w1, w2, ...wMであり、かつ、Cは、C=c1,c2, ...cLによって表されるCJK単語のシーケンスである。加えて、ベイズ規則は、
【０１１２】
【数２２】
0005770753.tif 000023
【０１１３】
を提供する。
【０１１４】
言語モデルはP(W)を提供する。ベイズ規則を使用することで、CJK文字のシーケンスを付与された、CJK単語の最も尤もらしいシーケンスを以下として書き直すことができる。
【０１１５】
【数２３】
0005770753.tif 000024
【０１１６】
その結果、最も尤もらしいW(すなわち、CJK単語の最も尤もらしいシーケンス)は、Wが出現する確率と、WがCからなる確率(すなわち、CJK単語の所定のシーケンスが、CJK文字のシーケンスを写像する確率)との積を最大化するものである。
【０１１７】
CJK名前検出は、それが文字シーケンスを単語に区分しているとしてCJK名前を検出する。
【０１１８】
図5を参照すれば、例えば、観測されたCJK文字502の入力ストリングは、
【０１１９】
【数２４】
0005770753.tif 000025
【０１２０】
を含み、ここで、
【０１２１】
【数２５】
0005770753.tif 000026
【０１２２】
はシーケンスの開始を指定する識別子<S>によって先行され、かつ、
【０１２３】
【数２６】
0005770753.tif 000027
【０１２４】
はシーケンスの終了を指定する識別子<E>が後に続いている。
【０１２５】
文字シーケンス
【０１２６】
【数２７】
0005770753.tif 000028
【０１２７】
および
【０１２８】
【数２８】
0005770753.tif 000029
【０１２９】
がトレーニングにおいて以前に検出された単語であると仮定する。さらに、
【０１３０】
【数２９】
0005770753.tif 000030
【０１３１】
および
【０１３２】
【数３０】
0005770753.tif 000031
【０１３３】
が潜在的名前であると仮定する(すなわち、トレーニングデータにおいて名前を特定するとして、検出された)。単純モデルでは、
【０１３４】
【数３１】
0005770753.tif 000032
【０１３５】
および
【０１３６】
【数３２】
0005770753.tif 000033
【０１３７】
が単語として検出されなかった場合、
【０１３８】
【数３３】
0005770753.tif 000034
【０１３９】
および
【０１４０】
【数３４】
0005770753.tif 000035
【０１４１】
が単語であるという確率は低く、かつ、文字シーケンスは、単一の文字におそらく区分される。この区分化スキームの後に名前を検出するステップはエラーを生じさせる。
【０１４２】
単純モデルでは、隠れマルコフモデル(例えば、隠れマルコフモデル500)における単語の一部の例の区分化は、
【０１４３】
【数３５】
0005770753.tif 000036
【０１４４】
である。
【０１４５】
しかし、名前検出モデルを組み込めば、文字シーケンス
【０１４６】
【数３６】
0005770753.tif 000037
【０１４７】
は、潜在的に名前を特定する文字として検出することができ、かつ、文字シーケンス
【０１４８】
【数３７】
0005770753.tif 000038
【０１４９】
も潜在的に名前を特定する文字として検出することができる。これらの文字シーケンスは、単語であることの関連付けられた確率を有する(文字シーケンスが、潜在的に名前を特定することの関連付けられた確率を有するという意味で)。
【０１５０】
したがって、単語の他の例の区分化がモデルに追加される。この改良された隠れマルコフモデルでは、単語の区分の追加例は以下の通りである。
【０１５１】
【数３８】
0005770753.tif 000039
【０１５２】
このモデルを使用して、文字シーケンスを区分するステップは、潜在的な名前を含む区分の尤度によって、文字シーケンスを単語に区分するステップを含んでいる。潜在的な名前を含んでいる他の尤もらしいシーケンスの導入は、前述の区分化エラーが名前検出に伝播するのを回避させる。名前を含む区分経路が、名前を含んでいない分割経路より出現しそうである場合、次いで、名前を含む区分経路は使用され、かつ、名前は検出される。検出された名前を特定する文字シーケンスと、名前を特定することのその対応する確率とは、名前検出モデル314に追加される。
【０１５３】
一部の実施例では、名前検出モデル314を使用して、入力テキストで名前を検出する。例えば、検出器は、同時に、CJK入力テキストを単語に区分し、かつ、CJK入力テキストから名前を検出するために、CJK入力テキストを受信し、かつ、名前検出モデル314を使用する。
【０１５４】
図6は、名前を検出するための例のプロセス600を示したフローチャートである。便宜上、名前を検出するためのプロセス600は、検出を実行するシステムに関して説明される。名前を検出するためのプロセス600の間、システムは、名前のためのシーケンスの開始からシーケンスの終了まで、受信された文字シーケンスをスキャンする。
【０１５５】
システムは、文字シーケンス(例えば、漢字シーケンス)を受信する602。特に、システムは、シーケンスの第1文字を特定する604。システムは、特定された文字が姓の候補であるか否かを決定する606。文字が姓の候補である場合(例えば、姓のコレクション204の中の文字)、システムは、上記したように、名前を検出するための改良された数式(例えば、改良を伴う比率)を使用することで名前を検出する614。
【０１５６】
文字が姓の候補でない場合、次いで、システムは、文字が姓の候補の接頭語であるか否かを決定する608。文字が姓の候補の接頭語である場合、次いで、システムは、上記したように、名前を検出するための改良された数式(例えば、改良を伴う比率)を使用することで名前を検出する614。
【０１５７】
文字が姓の候補の接頭語でない場合、次いで、システムは、システムが文字シーケンスの終端に達した否かを決定する610。また、同様に、名前を検出するための改良された数式を使用することで名前を検出した614後に、システムは、システムが文字シーケンスの終端に達したか否かを決定する610。システムがシーケンスの終端に達した場合、プロセスは終了する616。システムが文字シーケンスの終端に達していない場合、次いで、システムは、シーケンスの次の文字を特定し612、かつ、シーケンスの終端に達するまで、シーケンスの他の文字に対して、ステップ606、608、610、および選択的に614を繰り返す。
【０１５８】
§例のシステム
図7は、CJK名前検出の例のシステム700である。データ処理装置710は、検出プログラム720を含む、ハードウェア/ファームウェア、オペレーティングシステム、および１又は複数のプログラムを含むことができる。検出プログラム720は、本明細書に記載されたオペレーションを実行するために、データ処理装置710に関連して、動作する。その結果、検出プログラム720は、１又は複数のプロセッサおよびコンピュータ可読媒体(例えば、メモリ)を組み合わせて、システム700の１又は複数の構造上のコンポーネントを表す。
【０１５９】
検出プログラム720は、検出処理アプリケーション、または部分であってもよい。本明細書で使用されるように、アプリケーションは、ユーザが定義された目的に使用される異なったコンピュータツールとして知覚するコンピュータプログラムである。アプリケーションは、データ処理装置710のオペレーティングシステム(OS)に完全に組み込むことができ、または、アプリケーションは、異なったロケーションに配置された異なったコンポーネントを有することができ(例えば、OS又はカーネルモードにおける1部分、ユーザモードにおける1部分、およびリモートサーバにおける1部分)、かつ、アプリケーションは、装置710のソフトウェアプラットホームとして機能するランタイムライブラリ上に組み込むことができる。そのうえ、アプリケーション処理は、１又は複数のプロセッサ790を使用することでネットワーク780の上に分散することができる。例えば、検出プログラム720の言語モデルは、１又は複数のプロセッサ790上で分配的にトレーニングすることができる。
【０１６０】
データ処理装置710は、１又は複数のプロセッサ730と、少なくとも1つのコンピュータ可読媒体740 (例えば、ランダムアクセスメモリ、ストレージデバイスなど)とを備えている。また、データ処理装置710は、通信インターフェース750、１又は複数のユーザインターフェースデバイス760、および１又は複数の追加デバイス770を備えることができる。ユーザインターフェースデバイス760は、ディスプレイスクリーン、キーボード、マウス、スタイラス、またはこれらの組み合わせを備えることができる。
【０１６１】
いったんプログラムされると、データ処理装置710は、言語モデル、名前モデル、および外国人の名前モデルを生成するよう動作する。
【０１６２】
本発明の実施例及び本明細書に開示された機能操作は、本明細書で開示された構造又はそれらの構造的等価物、又は、それらの１又は複数の組合せを含む、デジタル電子回路又はコンピュータソフトウェア、ファームウェア又はハードウェアで実行することができる。本明細書に開示された本発明の実施例は、１又は複数のコンピュータプログラム製品として実行することができる(即ち、データ処理装置によって実行するためか、又は、その動作を制御するために、有形のプログラムキャリア上にコード化されたコンピュータプログラム命令の１又は複数のモジュール)。有形のプログラムキャリアは、伝播信号又はコンピュータ可読媒体であり得る。伝播信号は、例えば、機械により発生された電気的、光学的又は電磁的信号等の人工的に発生された信号であり、好適な受信装置への転送用に情報を符号化するために発生される。コンピュータ可読媒体は、マシーン可読記憶装置、マシーン可読記憶基板、メモリ装置、又は、マシーン可読伝播信号を生じるものの構成、又は、それらの１又は複数の組み合わせであり得る。用語「データ処理装置」は、例として、プログラム可能プロセッサ、コンピュータ、又は、多重プロセッサ又は多重コンピュータを含む、データを処理するための全ての装置、デバイス及びマシーンを包含する。装置は、ハードウェアに加えて、問題になっているコンピュータプログラムのための実行環境を創り出すコード(例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、又は、それらの１又は複数の組合せを構成するコード)を含むことができる。
【０１６３】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、又はコードとしても知られる)は、コンパイル又はインタープリタ言語を含むどのような形式のプログラミング言語ででも書くことができ、スタンドアローンプログラムとして、又は、モジュール、コンポーネント、サブルーチンとして、又は、コンピュータ環境での使用に好適な他のユニットを含む形式で配備することができる。コンピュータプログラムは必ずしもファイルシステム中のファイルに対応しなくてもよい。プログラムは、他のプログラム又はデータを保持するファイルの一部に(例えば、マークアップ言語文書中に蓄積された１又は複数のスクリプト)、問題になっているプログラムに専用の単一のファイルに、又は、複数の組織的なファイル(例えば、１又は複数のモジュール、サブプログラム、又はコードの一部を格納するファイル)に、蓄積することができる。コンピュータプログラムは、１つのコンピュータ、又は、複数のコンピュータ(１つのサイトに配置されたか、又は、複数サイトにわたって分散され、かつ、通信ネットワークによって相互接続された)で実行するために配備することができる。
【０１６４】
本明細書で説明したプロセスおよび論理の流れは、入力データに対して動作して出力を生成することにより機能を実行する１又は複数のコンピュータプログラムを実行する、１又は複数のプログラム可能なプロセッサによって実行することができる。例えば、ＦＰＧＡ(Field Programmable Gate Array、フィールドプログラマブルゲートアレイ)又はＡＳＩＣ(Application-Specific Integrated Circuit、特定用途向け集積回路)等の特定用途論理回路により、そのプロセスおよび論理の流れを実行することもでき、装置を実装することもできる。
【０１６５】
コンピュータプログラムの実行に好適なプロセッサには、例として、汎用および特定目的用の両方のマイクロプロセッサ、及び、どのような種類のデジタルコンピュータでも１又は複数のプロセッサが含まれる。一般に、プロセッサは読み出し専用メモリ又はランダムアクセスメモリ又はその両方から、命令及びデータを受け取る。コンピュータの本質的要素は、命令を実行するプロセッサ、及び、命令及びデータを格納する１又は複数のメモリである。コンピュータはまた、一般に、データを格納するための１又は複数の大容量記憶装置(例えば、磁気、磁気光学ディスク、又は光学ディスク)を含むか、又は、それらからデータを受信し又はそれらへデータを送信し、又は、その両方を実行できるようそれらに接続される。しかし、コンピュータはそのような装置を持たなくてもよい。さらに、コンピュータは、他の装置(例えば、例を挙げると、ＰＤＡ(Personal Digital Assistance、携帯型情報端末)、ＧＰＳ(Global Positioning System、全地球測位システム))に組み込むことができる。
【０１６６】
コンピュータプログラム命令及びデータを格納するのに好適なコンピュータ可読媒体には、全ての形態の不揮発性メモリ、媒体及びメモリ装置(例としては、ＥＰＲＯＭ、ＥＥＰＲＯＭ、及びフラッシュメモリ装置等の半導体メモリ装置、内蔵ハードディスク又は取り外し可能ディスク等の磁気ディスク装置、磁気光学ディスク、及び、ＣＤ−ＲＯＭ及びＤＶＤ−ＲＯＭディスクを含む)が含まれる。プロセッサ及びメモリは、特定用途論理回路で補足することができ、又は、それに組み込むことができる。
【０１６７】
ユーザとの相互作用に備えて、開示された実施例は、コンピュータ(情報をユーザに提示するための表示装置、例えば、ＣＲＴ(cathode ray tube、陰極線管)又はＬＣＤ(liquid crystal display、液晶ディスプレイ)モニタ、及び、ユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、例えば、マウスまたはトラックボールを備えた)上で実行することができる。その他の種類の装置もまたユーザとの相互作用に備えて使用することができ、例えば、ユーザに提供されるフィードバックは、例えば、視覚的フィードバック、聴覚的フィードバック、又は触覚的フィードバック等のどのような形式の感覚フィードバックであってもよく、かつ、ユーザからの入力は、音響、音声又は触覚入力を含むどのような形式で受信されてもよい。
【０１６８】
本明細書に開示された本発明の実施例は、コンピュータシステム(バックエンド構成要素、例えば、データサーバ等、を含む、又は、ミドルウェア構成要素、例えば、アプリケーションサーバ、を含む、又は、フロントエンド構成要素、例えば、ユーザが本明細書に開示された本発明の実施例と相互作用できるようにするためのグラフィカルユーザインタフェース又はウェブブラウザを有するクライアントコンピュータ、を含む)において実行することができ、又は、そのようなバックエンド、ミドルウェア、又はフロントエンド構成要素の１又は複数のどのような組合せでも実行することができる。システムの構成要素は、通信ネットワーク等のデジタルデータ通信のどのような形態又は媒体によってでも相互接続することができる。通信ネットワークの例には、ローカルエリアネットワーク(「ＬＡＮ」）及びインターネット等の広域ネットワーク（「ＷＡＮ」）が含まれる。
【０１６９】
コンピュータシステムはクライアント及びサーバを含むことができる。クライアント及びサーバは、一般には相互に遠く離れており、通常は通信ネットワークを通して相互作用する。クライアント及びサーバの関係は、それぞれのコンピュータ上で実行され、かつ、相互にクライアント−サーバ関係にあるコンピュータプログラムによって、発生する。
【０１７０】
本明細書は多くの詳細を含むが、これらは、特許請求の範囲を限定するものとして解釈されてはならず、むしろ、特定の実施例に固有の特徴の説明として解釈されなければならない。別々の実施例との関連で本明細書に説明されたある特徴は、単一の実施例に組み合わせて実行することもできる。逆に、単一の実施例との関連で説明された種々の特徴は、多様な実施例に別々で、又は、適切なサブコンビネーションで実行することもできる。さらに、特徴がある組み合わせで動作するように上記され、かつ、さらにそのように初期に請求されるが、請求された組み合わせから１又は複数の特徴が、一部の場合は、組み合わせから切り取られることが可能であり、かつ、請求された組み合わせは、サブコンビネーション又はサブコンビネーションの変形例に導かれる。
【０１７１】
同様に、操作が特定の順序で図面に示されているが、これは、所望の結果を得るために、そのような操作が図示された特定の順序又は起こった順番で実行されるか、又は、図示された全操作が実行される必要があると理解されてはならない。ある環境では、マルチタスク及びパラレル処理が好ましい。さらに、上記した実施例の種々のシステムコンポーネントの分離は、全ての実施例にそのような分離が必要であると理解されてはならず、かつ、上記したプログラムコンポーネント及びシステムは、一般に、単一のソフトウェア製品に一緒に組み込まれるか、又は、複数のソフトウェア製品にパッケージ化されることが可能である。
【０１７２】
このように、特定の実施例について説明がなされた。他の実施例も添付の特許請求の範囲の範囲に含まれている。例えば、請求項に記載されたアクションは、異なった順序で実行することができ、所望の結果をまだ達成させる。１例として、添付図面に示されたプロセスは、示された特定の順序、シーケンシャルの順序を必ずしも必要とすることなく、所望の結果を達成させる。ある実施例では、マルチタスクおよび並列処理が好都合であってもよい。
【符号の説明】
【０１７３】
202  小規模な注釈付コーパス
204  姓のコレクション
206  名のコレクション
402  名前モデル
404  非名前モデル
406  言語モデル
【図１Ａ】
0005770753.tif 000040
【図１Ｂ】
0005770753.tif 000041
【図２】
0005770753.tif 000042
【図３】
0005770753.tif 000043
【図４】
0005770753.tif 000044
【図５】
0005770753.tif 000045
【図６】
0005770753.tif 000046
【図７】
0005770753.tif 000047