説明

言語モデルの枝刈り方法及び装置

【課題】アプリケーションに適したサイズに言語モデルを枝刈りできる言語モデルの枝刈り方法及び装置を提供する。
【解決手段】(a)複数のn(nは2以上の任意の整数)及び複数のn´(n´は1≦n´<nを満たす整数)−グラムと、各n−グラムの確率及び各n´−グラムの確率とを含む言語モデルに基づき、前記複数のn−グラム及び各n−グラムの確率を含まない初期のベースモデルを生成し、(b)複数のトレーニングデータ及びその標準解答を含むトレーニングコーパスを用いて、前記複数のn−グラムのそれぞれに、対象アプリケーションに関する重要度を計算し、(c)前記複数のn−グラムのうち高い重要度をもつ少なくとも1つのn−グラム及びその確率を前記ベースモデルに追加することにより、枝刈りされた自然言語モデルを得る。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自然言語処理に関し、特に言語モデルの枝刈り技術に関する。
【背景技術】
【0002】
言語モデルは、アジア言語での単語分割、音声認識、アジア言語のインプットメソッドエディター(IME)など、自然言語処理のアプリケーションにおいて広く用いられている(例えば、非特許文献1、非特許文献2参照)。しかし、枝刈りされていない言語モデルは通常大規模であり、実際に個々のアプリケーションに適用する場合には、計算資源の制限のために直接用いることは多くの場合困難である。従って、言語モデルの枝刈り技術は、大規模モデルを枝刈りしてモデルを小さくする際に用いられる。枝刈り手法は、モデルのサイズを削減するという目的を達成するために、いくつかの枝刈り基準に従って、一般に、言語モデルに含まれているパラメータの数を削減する。
【0003】
従来、言語モデルの枝刈り技術は、種々の枝刈り基準に従って、言語モデルの各パラメータを枝刈りすべきか否かを決定する。推奨される枝刈り基準には、主に、カウント・カットオフや、KL(カルバック・ライブラー)距離(Kullback-Leibler Distance)などがある。
【0004】
カウント・カットオフ基準は、例えば非特許文献3に記載されている。
【0005】
KL距離基準は、例えば非特許文献4に記載されている。
【0006】
しかし、言語モデルにとってこれらの基準はどれも一般的、汎用的な基準であり、個々の実際のアプリケーションにおいて要求される言語モデルの性能(パフォーマンス)を達成することができるように最適化するものではないので、従来は、モデルの枝刈りにより必然的にパフォーマンスロスがもたらされていた。
【0007】
さらに、言語のモデル化方法は、非特許文献5に記載されている。確率的言語モデルにおいて、バックオフは、散在するデータ問題に対処するために広く用いられている方法である。非特許文献5には、バックオフのプロセスが記載されている。また、非特許文献6には、散在するデータから確率を推定する手法が記載されている。
【非特許文献1】“Statistical Language Modeling” (Yoshihiko Gotoh and Steve Renals, Text and Speech Triggered Information Access, S. Renals and G. Grefenstette (eds.), pages 78-105, Springer 2003)
【非特許文献2】“Improved Source-channel Models for Chinese Word Segmentation” (Jianfeng Gao, Mu Li and Chang-Ning Huang, In Proc. of the 41st Annual Meeting of Association for Computational Linguistics (ACL-2003), pages 272-279)
【非特許文献3】“Self-organized language modeling for speech recognition”, Fredrick Jelinek, In Alexander Waibel and Kai-Fu Lee (Eds.), Readings in Speech Recognition, pages 450-506, 1990.
【非特許文献4】“Entropy-based Pruning of Backoff Language Models”, Andreas Stolcke, In Proc. of DARPA News Transcription and Understanding Workshop, pages 270-274, 1998.
【非特許文献5】“Improved Backing-Off for M-Gram Language Modeling” ,Reinhard Kneser and Hermann Hey, IEEE, pages 181-184, 1995.
【非特許文献6】“Estimation of Probabilities from Sparse Data for the Language Model Component of a Speech Recognizer” (Slava M. Katz. IEEE TRANSACTIONS ON ACOUSTICS, SPEECH, AND SIGNAL PROCESSING, VOL. ASP-35, NO. 3, MARCH 1987.)
【発明の開示】
【発明が解決しようとする課題】
【0008】
本発明は、上述したような従来の問題点を解決するためになされたもので、対象とする実際のアプリケーションに適したサイズに言語モデルを枝刈りできる言語モデルの枝刈り方法及び装置を提供する。
【課題を解決するための手段】
【0009】
複数のn−(nは2以上の任意の整数)グラム及び複数のn´(n´は1≦n´<nを満たす整数)−グラムと、各n−グラムの確率及び各n´−グラムの確率を含む言語モデルを枝刈りする方法は、
前記言語モデルに基づき、前記複数のn−グラム及び各n−グラムの確率を含まない初期のベースモデルを生成し、
複数のトレーニングデータ及びその標準解答を含むトレーニングコーパスを用いて、前記複数のn−グラムのそれぞれに、対象アプリケーションに関する重要度を計算し、
前記複数のn−グラムのうち高い重要度をもつ少なくとも1つのn−グラム及びその確率を前記ベースモデルに追加することにより、枝刈りされた自然言語モデルを得る。
【発明の効果】
【0010】
アプリケーションに適したサイズに言語モデルを枝刈りできる。
【発明を実施するための最良の形態】
【0011】
以下、本発明の実施形態について、図面を参照して説明する。
【0012】
[言語モデルの枝刈り方法]
図1は、本実施形態に係る言語モデルの枝刈り方法を説明するためのフローチャートである。図1において、まず、ステップS101では、言語モデルに基づき、初期のベース(base)モデルを生成する。
【0013】
上記言語モデルは、例えば、非特許文献1や非特許文献2に記載されているように、例えば、アジア言語における単語分割、音声認識、アジア言語のIMEなどの実際のアプリケーションに広く用いられている、n−グラム言語モデルである。なお、本実施形態における言語モデルは、これらに限定するものではない。
【0014】
言語モデルは、例えば、図7に示すように、任意の文字列に対しその確率を与えるものである。
【0015】
一般に、頻繁に用いられる文字列は高い確率をもち、風変わりな文字列は低い確率をもつ。
【0016】
種々の言語モデルが存在するが、その中で最も成功しているものが、n−グラム言語モデルである。n−グラム言語モデルは、HMM(Hidden Markov Model)の推定を適用し、入力された単語列に対する確率を、各単語についてその前のn−1個の単語を条件とする当該単語の確率の積に分割する。例えば、n=2(バイグラム)の場合、単語列“I like playing football”の確率は、
Pr( “I like playing football”) = Pr(I)×Pr(like | I)×Pr(playing | like)×Pr(football | playing) (a1)
となる。
【0017】
n=3の場合、各単語の確率は、当該単語の前の2単語を条件とする確率となり、上式(a1)において、例えばPr(playing | like)の代わりに Pr(playing | like, I) を用いる。
【0018】
あらゆる入力列に対し確率を生成するために、全てのバイグラムの確率がバイグラム言語モデルに記憶されている必要がある。また、全てのトリグラム(n=3)の確率がトリグラム言語モデルに記憶されている必要がある。しかし、これは、全単語を記憶するためのサイズが膨大であるために現実的ではない。100Kワードの単語群でも10Gの確率を記憶する必要があるのである。1つの確率を、C++におけるフロートナンバー(4バイトを占める)により表すと、40Gバイトのディスクサイズが要求される。
【0019】
この問題を解決するために、頻繁に使用されるグラム群のみを記憶する。頻繁には使用されないグラムは、バックオフによりオンラインで計算される。例えば、トリグラム(I, like, playing)の確率が、トリグラム言語モデルに含まれていない場合、次のようにしてバックオフされる。
【0020】
Pr (playing | like, I) →Pr(playing | like)×alpha(like, I)
ここで、alpha(like, I) は、バックオフ係数である。
【0021】
さらに、(like, playing)の確率が、トリグラム言語モデルに存在しない場合にもバックオフされる。
【0022】
Pr(playing | like) → Pr(playing)×alpha(like)
ユニグラム(n=1)に対する全ての確率はあらゆるnグラム言語モデルに記憶されていることが保証されている。
【0023】
バックオフ係数alphaは、次のようにして計算される。
【数1】

【0024】
従来技術に関するより詳細な説明は、非特許文献6を参照されたい。
【0025】
以上説明したように、トリグラム言語モデルは、複数のトリグラム確率(トリグラム及びその確率)と、複数のバイグラム確率(バイグラム及びその確率)及びバックオフ係数と、全てのユニグラム確率(ユニグラム及びその確率)及びバックオフ係数を含む。当該複数のトリグラム確率は通常、記憶領域のほとんどを占める。トリグラムモデルを枝刈りするということは、要するに、当該モデルからいくつかのトリグラム確率を取り除くことを意味する。同様に、バイグラム言語モデルは複数のバイグラム確率と、全てのユニグラム確率及びバックオフ係数とを含み、この中で、当該バイグラム確率が記憶領域のほとんどの部分を占める。バイグラムモデルを枝刈りするということは、要するに、当該モデルからいくつかのバイグラムを取り除くことを意味する。
【0026】
n(n>n´)−グラム言語モデルは、全てのユニグラム確率(ユニグラム(n´=1)及びその確率)及びバックオフ係数、複数のバイグラム確率(バイグラム(n´=2)及びその確率)及びバックオフ係数、…複数のn−グラム確率(n>n´)−グラム及びその確率)とを含む。n−グラム言語モデルでは、トップオーダ(最上位)のグラムはn−グラムであり、最下位のグラムはユニグラムである。
【0027】
また、トリグラム(n=3)言語モデルでは、トップオーダ(最上位)のグラムはトリグラムであり、これより小さいグラムとしてバイグラム(n´=2)と、最下位のユニグラム(n´=1)とがある。
【0028】
本実施形態によれば、n−グラム言語モデルから、n個の言語単位(文字単位、単語単位など)からなる複数のトップオーダ(最上位)グラム(複数のn−グラム)を取り除くことにより、n−グラム言語モデルが枝刈りされる。ここで、nは1,2,3,…である。枝刈りは、あらゆるオーダのn−グラム言語モデルに関して行うことができる。例えば、本実施形態ではバイグラム(n=2)言語モデルに関し枝刈りを行っているが、この場合に限るものではない。
【0029】
以下の説明では、言語モデルに符号M0を付して、言語モデルM0と呼ぶ。
【0030】
ステップS101では、上述のn−グラム言語モデルM0から全ての最上位のグラム(n−グラム)とそのそれぞれの確率を削除することにより、初期のベースモデルM2を生成する。すなわち、上記n−グラム言語モデルM0のコンテンツから、最上位のn−グラム及びその確率が除かれて、初期のベースモデルM2は、nより少ないn´(n´は1≦n´<nを満たす整数)個の言語単位からなる複数のn´−グラム及びその確率を含む。しかし、この場合に限らず、初期のベースモデルM2は、言語モデルM0から、実際の要求に応じて、一部のn−グラム及びその確率を削除することにより生成してもよい。
【0031】
本実施形態では、枝刈り前のn−グラム言語モデルM0から全ての最上位グラムを取り除くことにより、ベースモデルM2を得る。n=2の場合、枝刈り前の言語モデルには複数のバイグラム確率と、複数のユニグラム確率及びバックオフ係数とが含まれている。ベースモデルでは上記複数のバイグラム確率が除かれている。バイグラムモデルを枝刈りする目的は、ベースモデルにいくつかの最も重要なバイグラム確率を追加して、これを枝刈りされた言語モデルとすることにある。
【0032】
次に、ステップS105では、トレーニングコーパスM1を用いて、各n−グラムに、対象アプリケーションに関する重要度を計算する。トレーニングコーパスM1は、トレーニングデータ及び標準解答を含む。標準解答は、対象アプリケーションにおいて、トレーニングデータの標準的な結果である。本実施形態では、トレーニングコーパスM1の標準解答は、例えば、上述の枝刈り前の言語モデルM0または公知技術の方法を用いることにより得られる標準解答や、マニュアルで当該トレーニングデータに対し与えられた(例えばユーザにより入力された)適正な解答であるが、これらに限定するものではない。トレーニングデータ及び標準解答については、以降の対象アプリケーションに関連して説明する。
【0033】
本実施形態では、対象アプリケーションは、アジア言語での単語分割、音声認識、アジア言語のIMEや、公知のまたは今後開発されるであろう他のアプリケーションなど、公知の言語モデルを用いた任意のアプリケーションからなる。
【0034】
ステップS105におけるトレーニングコーパスM1を用いて、対象アプリケーションに関する上述のn−グラムの重要度の計算するプロセスについて、図2を参照して詳細に説明する。図2は、本実施形態に係るバイグラムの重要度の計算例を示したものである。ここでは、中国語単語分割、日本語単語分割、韓国語単語分割などのアジア言語での単語分割を例にとり説明する。以下、中国語単語分割、バイグラム言語モデルを例にとり説明するが、本発明は、この場合に限定するものではなく、他の実際のアプリケーションにおけるどのn−グラムにも適用可能である。
【0035】
特に、中国語単語分割における上述のトレーニングコーパスM1のトレーニングデータは、未分割の1または複数の文字列である。各文字列は、1つの文からなる。トレーニングコーパスM1の各標準解答は、枝刈り前のバイグラム言語モデルを用いて各未分割文字列を分割することにより得られた標準単語列、またはマニュアルで当該未分割文字列を分割することにより当該未分割文字列に対し与えられた適正な単語列である。または、標準解答は、次のような単語列候補のなかから選択された標準単語列である。例えば、次のような単語列候補に公知の編集距離(Edit Distance)を用いて、未分割文字列に最も距離の近い単語列候補を選択し、これをトレーニングコーパスM1の上述の標準解答とする。本実施形態では、実際のアプリケーションに応じて、言語モデルM0がトレーニングコーパスM1を用いて枝刈りされるのであれば、トレーニングコーパスM1の標準解答に何ら限定を加えるものでない。
【0036】
未分割文字列とそれに対応する標準単語列の一例を次に示す。
【数2】

【0037】
図2に示すように、最初のステップS201では、複数のバイグラムのそれぞれの重要度の値を「0」に初期化する。
【0038】
以下の処理は、トレーニングコーパスM1中の各文について行う。
【0039】
まず、ステップS203において、ステップS101で生成された初期のベースモデルM2を用いて、トレーニングコーパスM1中の現在の文、すなわち、未分割文字列について、N個の単語列候補を生成する。N個の単語列候補を生成する方法は、単語列候補が生成できるのであれば、ベースモデルM2を用いた公知のいかなる単語分割方法を用いてもよい。
【0040】
例えば、まず、当該未分割文字列について、全ての候補単語を求める。上記(a)の未分割文字列の場合、次のような候補単語が含まれている。
【数3】

【0041】
次に、これら単語から、有り得る全てのセグメンテーションパスを求める。求めた各セグメンテーションパスに対し、当該セグメンテーションパスが発生し得る確率を計算し、この確率が最も高いものから順にN個のパスを上述のN個の単語列候補として用いる。ここで、各セグメンテーションパスの確率を計算する方法は、公知のいかなる方法を用いてもよい。例えば、上記(c)の候補単語から、次に示すような単語列候補を含むN個の単語列候補が得られる。
【数4】

【0042】
次に、ステップS204では、現在の文に対し、ベースモデルM2を用いて中国語単語分割を実施(実行)するときの誤りの尤度(誤りの発生する度合い)を計算する。例えば、ここでは、この誤りの尤度を、次式(1)に示すような誤分類関数を用いて計算される値で表す。
【数5】

【0043】
式(1)において、dは誤分類関数値(すなわち、誤りの尤度)を表し、g0は標準単語列に対するベースモデルM2に基づく評価スコアを表し、grは上述のN個の単語列候補のうちのr番目の単語列候補のベースモデルM2に基づく評価スコアを表し、ηは定数である。
【0044】
ここで、ベースモデルM2に基づき、標準単語列や単語列候補を評価する方法は、標準単語列や単語列候補による分割結果の善し悪しを評価して、そのスコアが得られるのであれば、公知のどのような技術を用いてもよく、特に限定しない。
【0045】
例えば、中国語単語分割に適用する場合、上記(a)に示すような未分割文字列が入力されたとき、上記(d)に示すような2つの単語列候補が得られたとする(標準単語列のスコアもこのようにして推定することができる)。この2つの単語列候補は、単語列により示すことができる。これらのスコアにより当該2つの単語列候補のうちの1つが出力として選択される。また、スコアを推定する最も簡単な方法は、n−グラム言語モデルの確率の対数を採用することであるが、他のいくつかの要因を考慮してスコアを推定する複雑な方法もいくつかある。言語モデルを枝刈りする作業において、これらの要因は定数であり、何ら影響はない。
【0046】
最も単純な場合を考えると、
【数6】

【0047】
と定義できる。n=2の場合には、2番目の単語列候補の確率は、
【数7】

【0048】
となる。
【0049】
従って、この単語列候補のスコアは、
【数8】

【0050】
と推定できる。
【0051】
枝刈り前のバイグラムモデルを適用した場合、この中に(wx,wy)の確率(PF(wy,wx)と示す)が存在していると想定すると、この確率をこのまま用いる。すなわち、
【数9】

【0052】
ベースモデルを適用した場合、ベースモデルにはバイグラム確率が含まれていないので、全てのバイグラム確率はバックオフにより計算する必要がある。すなわち、
【数10】

【0053】
ここで、下付文字の“B”はベースモデルから生ずるパラメータを表す。
【0054】
特定のバイグラム(wx,wy)に対し、確率の差分、すなわち、
【数11】

【0055】
は、バイグラムの重要度を計算するための不可欠な要因である。そして、この要因は、式(4)に用いられる。
【0056】
上記ベースモデルに基づき上記標準単語列の推定スコアを計算する方法は、次式により表すことができる。
【数12】

【0057】
複数の単語列候補の平均推定スコアは、式(1)の一部として計算される。すなわち、
【数13】

【0058】
ここで、grはg0と同様に計算される。
【0059】
上記ベースモデルを用いることにより上記n−グラムの確率を計算する方法は(バイグラムモデルの枝刈りについては)、次式により表すことができる。すなわち、
【数14】

【0060】
さらに、ここでは、ベースモデルM2が用いて中国語単語分割を実施するときの誤りの尤度を、誤分類関数を用いて計算しているが、この場合に限らず、ベースモデルM2を用いて中国語単語分割を実施(実行)するときの誤りの尤度を表すことができるのであれば、どのような方法を用いて計算してもよい。
【0061】
好ましくは、ステップS205において、誤分類関数値は、次式(2)に示す損失関数Lを用いて、損失関数値に変換する。
【数15】

【0062】
ここで、L(d)は損失関数値を表し、γは傾き係数を表す定数である。損失関数を用いることにより、誤分類関数値は、「0」と「1」との間の値をとり、実際、誤分類関数値dの曲線は滑らかになる。なお、ステップS205は必ずしも必要ではなく、なくてもよい。
【0063】
次に各バイグラムについて、以下のステップS207〜ステップS210の処理を行う。
【0064】
ステップS207では、現在のバイグラムに対し、トレーニングコーパス中での当該バイグラムの発生回数を計算する。ここでは、現在のバイグラムに対し、標準単語列中での当該バイグラムの発生回数n0を計算する。
【0065】
次に、ステップS208では、当該バイグラムに対し、対象アプリケーションにおける当該バイグラムの平均発生回数を計算する。ここでは、当該バイグラムに対し、N個の単語列候補中での当該バイグラムの平均発生回数n’を計算する。平均発生回数は次式(3)により計算される。
【数16】

【0066】
ここで、nrはN個の単語列候補のうちのr番目の候補単語列において当該バイグラムが発生する回数を表す。ηは触れ係数を表す定数であり、ηが大きいほど、n’はより第1位の単語列候補へ振れる。
【0067】
ステップS209では、次式(4)により、現在の文に対する当該バイグラムの重要度を計算する。
【数17】

【0068】
ここで、imp(w;S)は、当該バイグラムの重要度を表し、wは当該バイグラムの1番目の語を表し、wは当該バイグラムの2番目の語を表す。SはトレーニングコーパスM1中のi番目の文、すなわち、現在の文を表し、PF(w|w)は上述のバイグラム言語モデルM0における当該バイグラムの確率を表す。
【0069】
logPB(w)+logαB(w)は、ベースモデルM2に基づき計算された、当該バイグラムの確率を表し、PB(w)はベースモデルM2におけるユニグラムの確率であり、αBはベースモデルM2でのバックオフ係数である。
【0070】
ここで、バイグラムの確率は、ベースモデルM2に基づくバックオフ方法により計算する。バックオフ方法は、例えば非特許文献5に記載されているような公知の方法を用いることができ、その詳細は上述した。
【0071】
次に、ステップS210では、トレーニングコーパスM1に対する当該バイグラムの重要度imp(w)を次式(5)により更新する。
【数18】

【0072】
ステップS210では、トレーニングコーパスM1中の各文に対する当該バイグラムの重要度を累積加算して、トレーニングコーパスM1に対する当該バイグラムの重要度が得られる。
【0073】
ステップS211では、計算すべき全てのバイグラムの重要度が計算されたか否かを決定する。ステップS211において、まだ重要度の計算されていないバイグラムが存在する場合には、ステップS206へ戻り、当該バイグラムの重要度を計算する。ステップS211において、全てのバイグラムの重要度が計算されている場合には、ステップS212へ進む。
【0074】
ステップS212では、トレーニングコーパスM1中の各文に対し、各バイグラムの重要度が計算されたか否かを決定する。ステップS212において、まだ重要度の計算を実施していないトレーニング文が存在する場合には、ステップS202へ戻り、続くステップS203以下の処理で、まだ重要度の計算を行っていないトレーニング文について(これを現在の文とし)、上述のように各バイグラムの重要度を計算する。ステップS212において、トレーニングコーパスM1中の全ての文に対し、各バイグラムの重要度を計算した場合には、処理を終了する。
【0075】
バイグラムの重要度の計算方法は上述の通りであるが、他のあらゆるオーダのn−グラム(例えばユニグラム、トリグラムなど)についても、図2と同様の方法により、その重要度を計算することができる。
【0076】
また、中国語の単語分割におけるn−グラムの重要度の計算方法は上述通りであるが、例えば、日本語における単語分割、韓国語における単語分割など、他のアジア言語におけるに単語分割においても、図2と同様の方法により、n−グラムの重要度を計算することができる。
【0077】
さらに、音声認識、アジア言語のIMEなどの他の対象アプリケーションにおいて、図2に示した方法は適用可能である。音声認識において異なる点は、上述のトレーニングコーパスM1中のトレーニングデータは、入力音声であり、上述のトレーニングコーパスM1中の標準解答は、枝刈りされていないバイグラム言語モデルを用いて各入力音声を認識することにより得られた標準テキスト、または、当該入力音声に対しマニュアルで(例えばユーザが)認識して、当該入力音声に対し与えられた適正なテキストである。または、標準解答は、複数のテキスト候補のなかから選択された標準テキストである。例えば、公知の編集距離を用いて求めた複数のテキスト候補のなかから最も距離の近いテキスト候補を標準テキストとして選択し、これを上述のトレーニングコーパスM1中の標準解答として用いてもよい。従って、音声認識におけるn−グラムの重要度もまた、図2のフローチャートに従って計算することができる。
【0078】
アジア言語のIMEでは、上述のトレーニングコーパスM1中のトレーニングデータは、1または複数の音素記号を含む音素記号列である。例えば、中国語のIMEでは、音素記号列はピンイン(Pinyin)列であり、日本語のIMEでは、音素記号列はひらがな列やカタカナ列である。上述のトレーニングコーパスM1中の標準解答は、枝刈りされていないn−グラム言語モデルを用いて各音素記号列を変換することにより得られた標準単語列、または当該音素記号列をマニュアルで変換する(例えばユーザが変換する)ことにより当該音素記号列に対し与えられた適正な単語列である。または、標準解答は、複数の単語列候補のなかから選択された標準単語列である。例えば、公知の編集距離を用いて求めた複数の単語列候補のなかから最も距離の近い単語列候補を標準単語列として選択し、これを上述のトレーニングコーパス中の標準解答として用いてもよい。
【0079】
例えば、ピンイン列は中国語の単語列に変換され、ひらがな列やカタカナ列は日本語の単語列に変換される。従って、アジア言語のIMEにおけるn−グラムの重要度もまた、図2のフローチャートに従って計算することができる。
【0080】
図1の説明に戻り、ステップS110では、上記複数のn−グラムのうち高い重要度(例えば、予め定められた値以上の重要度)をもつ1つまたは複数のn−グラム及びその確率を、上記ベースモデルM2に追加し、枝刈りされた言語モデルを得る。
【0081】
なお、ステップS110では、例えば、重要度の高いものから順にn−グラムを選択し、所望のサイズの言語モデルとなるまで、選択したn−グラム及びその確率をベースモデルM2に追加するようにしてもよい。
【0082】
図3は、他の言語モデルの枝刈り方法を説明するためのフローチャートである。
【0083】
図3において、まず、ステップS301では、枝刈り前の言語モデルM0と枝刈りされた言語モデルM2とを基に、追加すべき最上位の複数のn−グラムと、そのそれぞれの確率を得る。なお、ここで、追加すべき最上位の複数のn−グラムは、上記枝刈りされた言語モデルM2には含まれていないが、上記枝刈り前の言語モデルM0に含まれている全てのn−グラムである。
【0084】
次に、ステップS305へ進み、トレーニングコーパスを用いて、得られた追加すべき複数の最上位のn−グラムのそれぞれに対象アプリケーションに関する重要度を計算する。ここで、得られた追加すべき複数の最上位のn−グラムのそれぞれに対象アプリケーションに関する重要度を計算する方法は、上述の図1のステップS105における計算方法と同様である。
【0085】
さらにステップS310では、上記追加すべき複数の最上位のn−グラムのうち高い重要度(例えば、予め定められた値以上の重要度)をもつ1つまたは複数の最上位のn−グラムと、そのそれぞれの確率とを、上記枝刈りされた言語モデルM2に追加する。
【0086】
ステップS315では、上記枝刈りされた言語モデルM2のサイズが予め定められたサイズに達しているかどうかをチェックする。この予め定められたサイズは、対象アプリケーションに応じて決定されたものであれば、どのようなサイズであってもよい。枝刈りされた言語モデルM2のサイズが、上記予め定められたサイズよりも小さいときには、ステップS301へ戻り、上述のステップS301〜ステップS315の処理を繰り返す。枝刈りされた言語モデルM2のサイズが、上記予め定められたサイズより大きいときには、上記予め定められたサイズに等しくなるまで上述の処理で追加された最上位のn−グラム及びその確率を(例えば、重要度が最も低いものから順に)当該枝刈りされた言語モデルM2から削除する。枝刈りされた言語モデルM2のサイズが、上記予め定められたサイズと一致するときには、処理を終了する。この結果、上記予め定められたサイズの枝刈りされた言語モデルM2を得る。
【0087】
図3に示した言語モデルの枝刈り方法では、枝刈り基準は、対象アプリケーションにおける言語モデルのパフォーマンスに基づき最適化されているので、同じサイズであっても、図1や図3に示した方法で枝刈りされた言語モデルの方が、従来の手法で枝刈りされた言語モデルよりも、言語モデルのパフォーマンスロスは低減される。一方、同じパフォーマンスを達成するために必要なデータ量(サイズ)は、図1や図3に示した方法で枝刈りされた言語モデルの方が、従来の手法で枝刈りされた言語モデルよりも小さくてすむ。
【0088】
[言語モデルの枝刈り装置]
次に、上述した言語モデル枝刈り方法を用いた言語モデルの枝刈り装置について説明する。
【0089】
複数のn(nは2以上の任意の整数)−グラム及び複数のn´(n´は1≦n´<nを満たす整数)−グラムと、各n−グラムの確率及び各n´−グラムの確率を含むn−グラム言語モデルM0を枝刈りする言語モデル枝刈り装置の構成例を図4に示す。
【0090】
図4に示す言語モデル枝刈り装置400は、ベースモデル生成部401、重要度計算部405、追加部410、記憶部412を含む。記憶部412は、上記言語モデルM0、上記トレーニングコーパスM1を予め記憶するとともに、ベースモデル生成部401で生成されるベースモデルM2を記憶する。
【0091】
ベースモデル生成部401は、上記言語モデルM0に基づき初期のベースモデルM2を生成する。初期のベースモデルM2には、上記言語モデルM0中の複数の最上位のn−グラムを除く、nよりも少ない数(n´(n´は1≦n´<nを満たす整数)個)の言語単位からなる複数のn´−グラムとそのそれぞれの確率が含まれている。重要度計算部405は、上記トレーニングコーパスM1を用いて、上記複数のn−グラムのそれぞれに対し、対象アプリケーションに関する重要度を計算する。上記トレーニングコーパスM1は、トレーニングデータ及び標準解答を含む。追加部410は、上記複数のn−グラムのうち、高い重要度をもつ少なくとも1つのn−グラム及びその確率を上記ベースモデルM2に追加することにより、枝刈りされた言語モデルを求める。
【0092】
図4に示す言語モデル枝刈り装置400は、後述するように、追加部410が、ベースモデル生成部401で生成されたベースモデルM2にn−グラム及びその確率を追加することにより、枝刈りされた言語モデルを生成・構築する。
【0093】
上記言語モデルは、前述したように、例えば、アジア言語における単語分割、音声認識、アジア言語のIMEなどのアプリケーションに広く用いられている、n−グラム言語モデルである。
【0094】
ベースモデル生成部401は、上記n−グラム言語モデルM0から全ての最上位のn−グラムとそのそれぞれの確率を取り除くことにより、初期のベースモデルM2を生成する。すなわち、初期のベースモデルM2は、上記n−グラム言語モデルのコンテンツのうち、上述の最上位のn−グラム及びその確率を除く、nよりも少ない数(n´個)の言語単位からなる複数のn´−グラム及びその確率を含む。しかし、この場合に限らず、ベースモデル生成部401は、上記言語モデルM0から、実際の要求に応じて、一部のn−グラム及びその確率を取り除くことにより、上記初期のベースモデルM2を生成してもよい。
【0095】
重要語計算部405は、記憶部412に記憶されているトレーニングコーパスM1を用いて、各n−グラムに対し、対象アプリケーションに関する重要度を計算する。
【0096】
重要度計算部405における、中国語の単語分割におけるバイグラムの重要度の計算処理プロセスは、図2に示した通りである。また、他のn−グラム(例えばユニグラム、トリグラムなど)についても、図2と同様にして、その重要度を計算することができる。
【0097】
また、重要度計算部405での中国語の単語分割におけるn−グラムの重要度の計算処理は図2の通りであるが、例えば、日本語における単語分割、韓国語における単語分割など、他のアジア言語におけるにおける単語分割においても、重要度計算部405は、図2と同様の処理を行う。
【0098】
さらに、音声認識、アジア言語のIMEなどの他の実際のアプリケーションにおいても、重要度計算部405は、図2と同様に、n−グラムの重要度の計算処理を行うことは前述の通りである。
【0099】
追加部410は、上記複数のn−グラムのうち高い重要度(例えば、予め定められた値以上の重要度)をもつ1つまたは複数のn−グラム及びその確率を、記憶部412に記憶されている上記ベースモデルM2に追加して、枝刈りされた言語モデルを得る。
【0100】
なお、追加部410は、例えば、重要度の高いものから順にn−グラムを選択し、所望のサイズの言語モデルとなるまで、選択したn−グラム及びその確率をベースモデルM2に追加するようにしてもよい。
【0101】
図5は、他の実施形態に係る言語モデル枝刈り装置400の構成例を示したものである。なお、図5において、図4と同一部分には同一符号を付し、異なる部分について説明する。
【0102】
図5に示す言語モデル枝刈り装置400は、枝刈り前の言語モデルM0及び枝刈りされた言語モデルM2を基に、追加すべき複数のn−グラム及びそのそれぞれの確率を取得する追加n−グラム取得部403をさらに含む。追加n−グラム取得部403で得る追加すべき複数のn−グラムは、上記枝刈りされた言語モデルM2には含まれていないが、上記言語モデルM0に含まれている全てまたは一部のn−グラムであるが、これに限定するものではない。
【0103】
図5の重要度計算部405は、記憶部412に記憶されているトレーニングコーパスM1を用いて、追加n−グラム取得部403で得られた追加すべき複数のn−グラムのそれぞれに対象アプリケーションに関する重要度を計算する。ここで、得られた追加すべき複数のn−グラムのそれぞれに対象アプリケーションに関する重要度を計算する方法は、上述の図1のステップS105における計算方法と同様である。
【0104】
図5の追加部410は、上記追加すべき複数のn−グラムのうち高い重要度(例えば、予め定められた値以上の重要度)をもつ1つまたは複数のn−グラムと、そのそれぞれの確率とを、上記枝刈りされた言語モデルM2に追加する。
【0105】
なお、図5の追加部410は、上記追加すべき複数のn−グラムのなかから、例えば、重要度の高いものから順にn−グラムを選択し、所望のサイズの言語モデルとなるまで、選択したn−グラム及びその確率を枝刈りされた言語モデルM2に追加するようにしてもよい。
【0106】
または、言語モデルの枝刈り装置400は、例えば、図6に示すように構成されていてもよい。なお、図6において、図5と同一部分には同一符号を付し、図5と異なる部分について説明する。すなわち、図6では、追加部410は、枝刈りされた言語モデルのサイズが予め定められたサイズに達しているかどうかをチェックし、枝刈りされた言語モデルのサイズが、上記予め定められたサイズよりも小さいときには、追加n−グラム取得部403、重要度計算部405、及び追加部410では上述の処理を枝刈りされた言語モデルのサイズが予め定められたサイズに達するまで繰り返すように構成されている。枝刈りされた言語モデルのサイズが、上記予め定められたサイズと一致するときには、処理を終了する。この結果、上記予め定められたサイズの枝刈りされた言語モデルを得る。
【0107】
なお、この予め定められたサイズは、対象アプリケーションに応じて決定されたものであれば、どのようなサイズであってもよい。
【0108】
図4乃至図6に示した言語モデルの枝刈り装置400の各構成部は、ASIC(Application Specific Integrated Circuit)で構成することができる。
【0109】
また、上述の手法を、コンピュータ/プロセッサに実行させることのできるプログラムとして、コンピュータ/プロセッサに実行さえることにより、図4乃至図6に示した構成の言語モデル枝刈り装置を実現することができる。
【0110】
例えば、コンピュータ/プロセッサに図1や図3に示した処理を実行させるためのプログラムを、コンピュータ/プロセッサに実行させることにより、コンピュータを図4〜図6に示した言語モデルの枝刈り装置400として機能させることができる。
【0111】
図4乃至図6に示した言語モデル枝刈り装置400では、枝刈り基準は、対象アプリケーションにおける言語モデルのパフォーマンスに基づき最適化されているので、同じサイズであっても、言語モデル枝刈り装置400で枝刈りされた言語モデルの方が、従来の手法で枝刈りされた言語モデルよりも、言語モデルのパフォーマンスロスは低減される。一方、同じパフォーマンスを達成するために必要なデータ量(サイズ)は、言語モデル枝刈り装置400で枝刈りされた言語モデルの方が、従来の手法で枝刈りされた言語モデルよりも小さくてすむ。
【0112】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【0113】
【図1】本発明の実施形態に係る言語モデルの枝刈り方法を説明するためのフローチャート。
【図2】バイグラム(2−グラム)の重要度の計算方法を説明するためのフローチャート。
【図3】他の言語モデルの枝刈り方法を説明するためのフローチャート。
【図4】言語モデルの枝刈り装置の構成例を示す図。
【図5】言語モデルの枝刈り装置の他の構成例を示す図。
【図6】言語モデルの枝刈り装置のさらに他の構成例を示す図。
【図7】言語モデルを説明するための図。
【符号の説明】
【0114】
401…ベースモデル生成部
403…追加n−グラム取得部
405…重要度計算部
410…追加部
412…記憶部
M0…言語モデル
M1…トレーニングコーパス
M2…ベースモデル

【特許請求の範囲】
【請求項1】
複数のn(nは2以上の任意の整数)−グラム及び複数のn´(n´は1≦n´<nを満たす整数)−グラムと、各n−グラムの確率及び各n´−グラムの確率とを含む言語モデルを枝刈りする方法であって、
前記言語モデルに基づき、前記複数のn−グラム及び各n−グラムの確率を含まない初期のベースモデルを生成する生成ステップと、
複数のトレーニングデータ及びその標準解答を含むトレーニングコーパスを用いて、前記複数のn−グラムのそれぞれに、対象アプリケーションに関する重要度を計算する計算ステップと、
前記複数のn−グラムのうち高い重要度をもつ少なくとも1つのn−グラム及びその確率を前記ベースモデルに追加することにより、枝刈りされた自然言語モデルを得るステップと、
を含む言語モデルの枝刈り方法。
【請求項2】
前記計算ステップは、
各トレーニングデータに対し、前記ベースモデルを用いて前記対象アプリケーションを実行するときの誤りの尤度を計算するステップと、
前記トレーニングコーパスにおける前記n−グラムの発生回数を計算するステップと、
前記対象アプリケーションにおける前記n−グラムの発生回数を計算するステップと、
を含み、前記誤りの尤度、前記トレーニングコーパスにおける前記n−グラムの発生回数、及び前記対象アプリケーションにおける前記n−グラムの発生回数に基づき、前記重要度を計算する請求項1記載の言語モデルの枝刈り方法。
【請求項3】
前記計算ステップは、
前記ベースモデルを用いて、前記n−グラムの確率を計算するステップ、
をさらに含み、前記誤りの尤度、前記トレーニングコーパスにおける前記n−グラムの発生回数、前記対象アプリケーションにおける前記n−グラムの発生回数、前記言語モデルにおける前記n−グラムの確率、及び前記ベースモデルを用いて計算された前記n−グラムの確率に基づき、前記重要度を計算する請求項2記載の言語モデルの枝刈り方法。
【請求項4】
前記対象アプリケーションはアジア言語の単語分割であり、
前記トレーニングデータは未分割文字列であり、
前記トレーニングデータの前記標準解答は、前記未分割文字列を分割することにより得られた標準単語列であり、
前記計算ステップは、
前記ベースモデルに基づく前記標準単語列の評価スコアを計算するステップと、
前記ベースモデルを用いて前記未分割文字列を分割することにより得られた複数の単語列候補の前記ベースモデルに基づく平均評価スコアを計算するステップと、
を含む請求項3記載の言語モデルの枝刈り方法。
【請求項5】
前記トレーニングコーパスにおける前記n−グラムの発生回数を計算するステップは、前記標準単語列における前記n−グラムの発生回数を計算する請求項4記載の言語モデルの枝刈り方法。
【請求項6】
前記対象アプリケーションにおける前記n−グラムの発生回数を計算するステップは、前記ベースモデルを用いて前記未分割文字列を分割することにより得られた複数の単語列候補における前記n−グラムの発生回数を計算する請求項4記載の言語モデルの枝刈り方法。
【請求項7】
前記対象アプリケーションは音声認識であり、
前記トレーニングデータは入力音声であり、
前記トレーニングデータの前記標準解答は、前記入力音声を認識することにより得られた標準テキストであり、
前記計算ステップは、
前記ベースモデルに基づく前記標準テキストの評価スコアを計算するステップと、
前記ベースモデルを用いて前記入力音声を認識することにより得られた複数のテキスト候補の前記ベースモデルに基づく平均評価スコアを計算するステップと、
を含む請求項3記載の言語モデルの枝刈り方法。
【請求項8】
前記トレーニングコーパスにおける前記n−グラムの発生回数を計算するステップは、前記標準テキストにおける前記n−グラムの発生回数を計算する請求項7記載の言語モデルの枝刈り方法。
【請求項9】
前記対象アプリケーションにおける前記n−グラムの発生回数を計算するステップは、前記ベースモデルを用いて前記入力音声を認識することにより得られた複数のテキスト候補における前記n−グラムの平均発生回数を計算する請求項7記載の言語モデルの枝刈り方法。
【請求項10】
前記対象アプリケーションはアジア言語のIME(input method editor)であり、
前記トレーニングデータは音素記号列であり、
前記トレーニングデータの前記標準解答は、前記音素記号列を変換することにより得られた標準単語列であり、
前記計算ステップは、
前記ベースモデルに基づく前記標準単語列の評価スコアを計算するステップと、
前記ベースモデルを用いて前記音素記号列を変換することにより得られた複数の単語列候補の前記ベースモデルに基づく平均評価スコアを計算するステップと、
を含む請求項3記載の言語モデルの枝刈り方法。
【請求項11】
前記トレーニングコーパスにおける前記n−グラムの発生回数を計算するステップは、前記標準単語列における前記n−グラムの発生回数を計算する請求項10記載の言語モデルの枝刈り方法。
【請求項12】
前記対象アプリケーションにおける前記n−グラムの発生回数を計算するステップは、前記ベースモデルを用いて前記音素記号列を変換することにより得られた複数の単語列候補における前記n−グラムの発生回数を計算する請求項10記載の言語モデルの枝刈り方法。
【請求項13】
前記生成ステップは、前記言語モデルから前記複数のn−グラム及び各n−グラムの確率を削除することにより、前記初期のベースモデルを生成する請求項1記載の言語モデルの枝刈り方法。
【請求項14】
前記トレーニングデータの前記標準解答は、前記言語モデルから求めた標準解答または該トレーニングデータに対し与えられた適正な解答である請求項1記載の言語モデルの枝刈り方法。
【請求項15】
前記言語モデル及び前記枝刈りされた言語モデルに基づき、追加すべき複数のn−グラム及び各n−グラムの確率を得る取得ステップと、
前記トレーニングコーパスを用いて、前記追加すべき複数のn−グラムのそれぞれに、前記対象アプリケーションに関する重要度を計算する第2の計算ステップと、
前記追加すべき複数のn−グラムのうち高い重要度をもつ少なくとも1つのn−グラム及びその確率を前記枝刈りされた言語モデルに追加するステップと、
さらに含む請求項1記載の言語モデルの枝刈り方法。
【請求項16】
前記追加すべき複数のn−グラムは、前記言語モデルに含まれているが、前記枝刈りされた言語モデルには含まれていない複数のn−グラムである請求項15記載の言語モデルの枝刈り方法。
【請求項17】
前記取得ステップから前記追加ステップを繰り返す請求項16記載の言語モデルの枝刈り方法。
【請求項18】
前記枝刈りされた言語モデルが予め定められたサイズになるまで、前記取得ステップから前記追加ステップを繰り返す請求項16記載の言語モデルの枝刈り方法。
【請求項19】
複数のn(nは2以上の任意の整数)−グラム及び複数のn´(n´は1≦n´<nを満たす整数)−グラムと、各n−グラムの確率及び各n´−グラムの確率とを含む言語モデルを枝刈りする装置であって、
前記言語モデルに基づき、前記複数のn−グラム及び各n−グラムの確率を含まない初期のベースモデルを生成する生成手段と、
複数のトレーニングデータ及びその標準解答を含むトレーニングコーパスを用いて、前記複数のn−グラムのそれぞれに、対象アプリケーションに関する重要度を計算する計算手段と、
前記複数のn−グラムのうち高い重要度をもつ少なくとも1つのn−グラム及びその確率を前記ベースモデルに追加することにより、枝刈りされた自然言語モデルを得る追加手段と、
を含む言語モデル枝刈り装置。
【請求項20】
前記計算手段は、
各トレーニングデータに対し、前記ベースモデルを用いて前記対象アプリケーションを実行するときの誤りの尤度を計算し、
前記トレーニングコーパスにおける前記n−グラムの発生回数を計算し、
前記対象アプリケーションにおける前記n−グラムの発生回数を計算し、
前記誤りの尤度、前記トレーニングコーパスにおける前記n−グラムの発生回数、及び前記対象アプリケーションにおける前記n−グラムの発生回数に基づき、前記重要度を計算する請求項19記載の言語モデル枝刈り装置。
【請求項21】
前記計算手段は、
さらに、前記ベースモデルを用いて前記n−グラムの確率を計算し、
前記誤りの尤度、前記トレーニングコーパスにおける前記n−グラムの発生回数、前記対象アプリケーションにおける前記n−グラムの発生回数、前記言語モデルにおける前記n−グラムの確率、及び前記ベースモデルを用いて計算された前記n−グラムの確率に基づき、前記重要度を計算する請求項20記載の言語モデル枝刈り装置。
【請求項22】
前記対象アプリケーションはアジア言語の単語分割であり、
前記トレーニングデータは未分割文字列であり、
前記トレーニングデータの前記標準解答は、前記未分割文字列を分割することにより得られた標準単語列であり、
前記計算手段は、
前記ベースモデルに基づく前記標準単語列の評価スコアを計算し、
前記ベースモデルを用いて前記未分割文字列を分割することにより得られた複数の単語列候補の前記ベースモデルに基づく平均評価スコアを計算する
請求項21記載の言語モデルの枝刈り方法。
【請求項23】
前記トレーニングコーパスにおける前記n−グラムの発生回数は、前記標準単語列における前記n−グラムの発生回数であることを特徴とする請求項22記載の言語モデル枝刈り装置。
【請求項24】
前記対象アプリケーションにおける前記n−グラムの発生回数は、前記ベースモデルを用いて前記未分割文字列を分割することにより得られた複数の単語列候補における前記n−グラムの発生回数であることを特徴とする請求項22記載の言語モデル枝刈り装置。
【請求項25】
前記対象アプリケーションは音声認識であり、
前記トレーニングデータは入力音声であり、
前記トレーニングデータの前記標準解答は、前記入力音声を認識することにより得られた標準テキストであり、
前記計算手段は、
前記ベースモデルに基づく前記標準テキストの評価スコアを計算し、
前記ベースモデルを用いて前記入力音声を認識することにより得られた複数のテキスト候補の前記ベースモデルに基づく平均評価スコアを計算する請求項21記載の言語モデル枝刈り装置。
【請求項26】
前記トレーニングコーパスにおける前記n−グラムの発生回数は、前記標準テキストにおける前記n−グラムの発生回数であることを特徴とする請求項25記載の言語モデル枝刈り装置。
【請求項27】
前記対象アプリケーションにおける前記n−グラムの発生回数は、前記ベースモデルを用いて前記入力音声を認識することにより得られた複数のテキスト候補における前記n−グラムの平均発生回数であることを特徴とする請求項25記載の言語モデル枝刈り装置。
【請求項28】
前記対象アプリケーションはアジア言語のIME(input method editor)であり、
前記トレーニングデータは音素記号列であり、
前記トレーニングデータの前記標準解答は、前記音素記号列を変換することにより得られた標準単語列であり、
前記計算手段は、
前記ベースモデルに基づく前記標準単語列の評価スコアを計算し、
前記ベースモデルを用いて前記音素記号列を変換することにより得られた複数の単語列候補の前記ベースモデルに基づく平均評価スコアを計算する請求項21記載の言語モデル枝刈り装置。
【請求項29】
前記トレーニングコーパスにおける前記n−グラムの発生回数は、前記標準単語列における前記n−グラムの発生回数であることを特徴とする請求項28記載の言語モデル枝刈り装置。
【請求項30】
前記対象アプリケーションにおける前記n−グラムの発生回数は、前記ベースモデルを用いて前記音素記号列を変換することにより得られた複数の単語列候補における前記n−グラムの発生回数であることを特徴とする請求項28記載の言語モデル枝刈り装置。
【請求項31】
前記生成手段、前記言語モデルから前記複数のn−グラム及び各n−グラムの確率を削除することにより、前記初期のベースモデルを生成する請求項19記載の言語モデル枝刈り装置。
【請求項32】
前記トレーニングデータの前記標準解答は、前記言語モデルから求めた標準解答または該トレーニングデータに対し与えられた適正な解答である請求項19記載の言語モデル枝刈り装置。
【請求項33】
前記言語モデル及び前記枝刈りされた言語モデルに基づき、追加すべき複数のn−グラム及び各n−グラムの確率を得る取得手段をさらに含み、
前記計算手段は、前記トレーニングコーパスを用いて、前記追加すべき複数のn−グラムのそれぞれに、前記対象アプリケーションに関する重要度を計算し、
前記追加手段は、前記追加すべき複数のn−グラムのうち高い重要度をもつ少なくとも1つのn−グラム及びその確率を前記枝刈りされた言語モデルに追加する、
請求項19記載の言語モデル枝刈り装置。
【請求項34】
前記追加すべき複数のn−グラムは、前記言語モデルに含まれているが、前記枝刈りされた言語モデルには含まれていない複数のn−グラムである請求項33記載の言語モデル枝刈り装置。
【請求項35】
前記取得手段、前記計算手段、及び前記追加手段により、前記枝刈りされた言語モデルへの前記n−グラム及びその確率の追加が繰り返される請求項34記載の言語モデル枝刈り装置。
【請求項36】
前記取得手段、前記計算手段、及び前記追加手段により、前記枝刈りされた言語モデルが予め定められたサイズになるまで、前記枝刈りされた言語モデルへの前記n−グラム及びその確率の追加が繰り返される請求項34記載の言語モデル枝刈り装置。
【請求項37】
複数のn(nは2以上の任意の整数)−グラム及び複数のn´(n´は1≦n´<nを満たす整数)−グラムと、各n−グラムの確率及び各n´−グラムの確率とを含む言語モデルを枝刈りするプログラムであって、
コンピュータに、
前記言語モデルに基づき、前記複数のn−グラム及び各n−グラムの確率を含まない初期のベースモデルを生成する生成ステップと、
複数のトレーニングデータ及びその標準解答を含むトレーニングコーパスを用いて、前記複数のn−グラムのそれぞれに、対象アプリケーションに関する重要度を計算する計算ステップと、
前記複数のn−グラムのうち高い重要度をもつ少なくとも1つのn−グラム及びその確率を前記ベースモデルに追加することにより、枝刈りされた自然言語モデルを得るステップと、
を実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2008−234657(P2008−234657A)
【公開日】平成20年10月2日(2008.10.2)
【国際特許分類】
【出願番号】特願2008−72463(P2008−72463)
【出願日】平成20年3月19日(2008.3.19)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】