(57)【要約】【課題】アプリケーションに適したサイズに言語モデルを枝刈りできる言語モデルの枝刈り方法及び装置を提供する。【解決手段】（ａ）複数のｎ（ｎは２以上の任意の整数）及び複数のｎ´（ｎ´は１≦ｎ´＜ｎを満たす整数）−グラムと、各ｎ−グラムの確率及び各ｎ´−グラムの確率とを含む言語モデルに基づき、前記複数のｎ−グラム及び各ｎ−グラムの確率を含まない初期のベースモデルを生成し、（ｂ）複数のトレーニングデータ及びその標準解答を含むトレーニングコーパスを用いて、前記複数のｎ−グラムのそれぞれに、対象アプリケーションに関する重要度を計算し、（ｃ）前記複数のｎ−グラムのうち高い重要度をもつ少なくとも１つのｎ−グラム及びその確率を前記ベースモデルに追加することにより、枝刈りされた自然言語モデルを得る。【選択図】図１
2008234657.tif 000002
【特許請求の範囲】
【請求項１】
複数のｎ（ｎは２以上の任意の整数）−グラム及び複数のｎ´（ｎ´は１≦ｎ´＜ｎを満たす整数）−グラムと、各ｎ−グラムの確率及び各ｎ´−グラムの確率とを含む言語モデルを枝刈りする方法であって、
前記言語モデルに基づき、前記複数のｎ−グラム及び各ｎ−グラムの確率を含まない初期のベースモデルを生成する生成ステップと、
複数のトレーニングデータ及びその標準解答を含むトレーニングコーパスを用いて、前記複数のｎ−グラムのそれぞれに、対象アプリケーションに関する重要度を計算する計算ステップと、
前記複数のｎ−グラムのうち高い重要度をもつ少なくとも１つのｎ−グラム及びその確率を前記ベースモデルに追加することにより、枝刈りされた自然言語モデルを得るステップと、
を含む言語モデルの枝刈り方法。
【請求項２】
前記計算ステップは、
各トレーニングデータに対し、前記ベースモデルを用いて前記対象アプリケーションを実行するときの誤りの尤度を計算するステップと、
前記トレーニングコーパスにおける前記ｎ−グラムの発生回数を計算するステップと、
前記対象アプリケーションにおける前記ｎ−グラムの発生回数を計算するステップと、
を含み、前記誤りの尤度、前記トレーニングコーパスにおける前記ｎ−グラムの発生回数、及び前記対象アプリケーションにおける前記ｎ−グラムの発生回数に基づき、前記重要度を計算する請求項１記載の言語モデルの枝刈り方法。
【請求項３】
前記計算ステップは、
前記ベースモデルを用いて、前記ｎ−グラムの確率を計算するステップ、
をさらに含み、前記誤りの尤度、前記トレーニングコーパスにおける前記ｎ−グラムの発生回数、前記対象アプリケーションにおける前記ｎ−グラムの発生回数、前記言語モデルにおける前記ｎ−グラムの確率、及び前記ベースモデルを用いて計算された前記ｎ−グラムの確率に基づき、前記重要度を計算する請求項２記載の言語モデルの枝刈り方法。
【請求項４】
前記対象アプリケーションはアジア言語の単語分割であり、
前記トレーニングデータは未分割文字列であり、
前記トレーニングデータの前記標準解答は、前記未分割文字列を分割することにより得られた標準単語列であり、
前記計算ステップは、
前記ベースモデルに基づく前記標準単語列の評価スコアを計算するステップと、
前記ベースモデルを用いて前記未分割文字列を分割することにより得られた複数の単語列候補の前記ベースモデルに基づく平均評価スコアを計算するステップと、
を含む請求項３記載の言語モデルの枝刈り方法。
【請求項５】
前記トレーニングコーパスにおける前記ｎ−グラムの発生回数を計算するステップは、前記標準単語列における前記ｎ−グラムの発生回数を計算する請求項４記載の言語モデルの枝刈り方法。
【請求項６】
前記対象アプリケーションにおける前記ｎ−グラムの発生回数を計算するステップは、前記ベースモデルを用いて前記未分割文字列を分割することにより得られた複数の単語列候補における前記ｎ−グラムの発生回数を計算する請求項４記載の言語モデルの枝刈り方法。
【請求項７】
前記対象アプリケーションは音声認識であり、
前記トレーニングデータは入力音声であり、
前記トレーニングデータの前記標準解答は、前記入力音声を認識することにより得られた標準テキストであり、
前記計算ステップは、
前記ベースモデルに基づく前記標準テキストの評価スコアを計算するステップと、
前記ベースモデルを用いて前記入力音声を認識することにより得られた複数のテキスト候補の前記ベースモデルに基づく平均評価スコアを計算するステップと、
を含む請求項３記載の言語モデルの枝刈り方法。
【請求項８】
前記トレーニングコーパスにおける前記ｎ−グラムの発生回数を計算するステップは、前記標準テキストにおける前記ｎ−グラムの発生回数を計算する請求項７記載の言語モデルの枝刈り方法。
【請求項９】
前記対象アプリケーションにおける前記ｎ−グラムの発生回数を計算するステップは、前記ベースモデルを用いて前記入力音声を認識することにより得られた複数のテキスト候補における前記ｎ−グラムの平均発生回数を計算する請求項７記載の言語モデルの枝刈り方法。
【請求項１０】
前記対象アプリケーションはアジア言語のＩＭＥ（input method editor）であり、
前記トレーニングデータは音素記号列であり、
前記トレーニングデータの前記標準解答は、前記音素記号列を変換することにより得られた標準単語列であり、
前記計算ステップは、
前記ベースモデルに基づく前記標準単語列の評価スコアを計算するステップと、
前記ベースモデルを用いて前記音素記号列を変換することにより得られた複数の単語列候補の前記ベースモデルに基づく平均評価スコアを計算するステップと、
を含む請求項３記載の言語モデルの枝刈り方法。
【請求項１１】
前記トレーニングコーパスにおける前記ｎ−グラムの発生回数を計算するステップは、前記標準単語列における前記ｎ−グラムの発生回数を計算する請求項１０記載の言語モデルの枝刈り方法。
【請求項１２】
前記対象アプリケーションにおける前記ｎ−グラムの発生回数を計算するステップは、前記ベースモデルを用いて前記音素記号列を変換することにより得られた複数の単語列候補における前記ｎ−グラムの発生回数を計算する請求項１０記載の言語モデルの枝刈り方法。
【請求項１３】
前記生成ステップは、前記言語モデルから前記複数のｎ−グラム及び各ｎ−グラムの確率を削除することにより、前記初期のベースモデルを生成する請求項１記載の言語モデルの枝刈り方法。
【請求項１４】
前記トレーニングデータの前記標準解答は、前記言語モデルから求めた標準解答または該トレーニングデータに対し与えられた適正な解答である請求項１記載の言語モデルの枝刈り方法。
【請求項１５】
前記言語モデル及び前記枝刈りされた言語モデルに基づき、追加すべき複数のｎ−グラム及び各ｎ−グラムの確率を得る取得ステップと、
前記トレーニングコーパスを用いて、前記追加すべき複数のｎ−グラムのそれぞれに、前記対象アプリケーションに関する重要度を計算する第２の計算ステップと、
前記追加すべき複数のｎ−グラムのうち高い重要度をもつ少なくとも１つのｎ−グラム及びその確率を前記枝刈りされた言語モデルに追加するステップと、
さらに含む請求項１記載の言語モデルの枝刈り方法。
【請求項１６】
前記追加すべき複数のｎ−グラムは、前記言語モデルに含まれているが、前記枝刈りされた言語モデルには含まれていない複数のｎ−グラムである請求項１５記載の言語モデルの枝刈り方法。
【請求項１７】
前記取得ステップから前記追加ステップを繰り返す請求項１６記載の言語モデルの枝刈り方法。
【請求項１８】
前記枝刈りされた言語モデルが予め定められたサイズになるまで、前記取得ステップから前記追加ステップを繰り返す請求項１６記載の言語モデルの枝刈り方法。
【請求項１９】
複数のｎ（ｎは２以上の任意の整数）−グラム及び複数のｎ´（ｎ´は１≦ｎ´＜ｎを満たす整数）−グラムと、各ｎ−グラムの確率及び各ｎ´−グラムの確率とを含む言語モデルを枝刈りする装置であって、
前記言語モデルに基づき、前記複数のｎ−グラム及び各ｎ−グラムの確率を含まない初期のベースモデルを生成する生成手段と、
複数のトレーニングデータ及びその標準解答を含むトレーニングコーパスを用いて、前記複数のｎ−グラムのそれぞれに、対象アプリケーションに関する重要度を計算する計算手段と、
前記複数のｎ−グラムのうち高い重要度をもつ少なくとも１つのｎ−グラム及びその確率を前記ベースモデルに追加することにより、枝刈りされた自然言語モデルを得る追加手段と、
を含む言語モデル枝刈り装置。
【請求項２０】
前記計算手段は、
各トレーニングデータに対し、前記ベースモデルを用いて前記対象アプリケーションを実行するときの誤りの尤度を計算し、
前記トレーニングコーパスにおける前記ｎ−グラムの発生回数を計算し、
前記対象アプリケーションにおける前記ｎ−グラムの発生回数を計算し、
前記誤りの尤度、前記トレーニングコーパスにおける前記ｎ−グラムの発生回数、及び前記対象アプリケーションにおける前記ｎ−グラムの発生回数に基づき、前記重要度を計算する請求項１９記載の言語モデル枝刈り装置。
【請求項２１】
前記計算手段は、
さらに、前記ベースモデルを用いて前記ｎ−グラムの確率を計算し、
前記誤りの尤度、前記トレーニングコーパスにおける前記ｎ−グラムの発生回数、前記対象アプリケーションにおける前記ｎ−グラムの発生回数、前記言語モデルにおける前記ｎ−グラムの確率、及び前記ベースモデルを用いて計算された前記ｎ−グラムの確率に基づき、前記重要度を計算する請求項２０記載の言語モデル枝刈り装置。
【請求項２２】
前記対象アプリケーションはアジア言語の単語分割であり、
前記トレーニングデータは未分割文字列であり、
前記トレーニングデータの前記標準解答は、前記未分割文字列を分割することにより得られた標準単語列であり、
前記計算手段は、
前記ベースモデルに基づく前記標準単語列の評価スコアを計算し、
前記ベースモデルを用いて前記未分割文字列を分割することにより得られた複数の単語列候補の前記ベースモデルに基づく平均評価スコアを計算する
請求項２１記載の言語モデルの枝刈り方法。
【請求項２３】
前記トレーニングコーパスにおける前記ｎ−グラムの発生回数は、前記標準単語列における前記ｎ−グラムの発生回数であることを特徴とする請求項２２記載の言語モデル枝刈り装置。
【請求項２４】
前記対象アプリケーションにおける前記ｎ−グラムの発生回数は、前記ベースモデルを用いて前記未分割文字列を分割することにより得られた複数の単語列候補における前記ｎ−グラムの発生回数であることを特徴とする請求項２２記載の言語モデル枝刈り装置。
【請求項２５】
前記対象アプリケーションは音声認識であり、
前記トレーニングデータは入力音声であり、
前記トレーニングデータの前記標準解答は、前記入力音声を認識することにより得られた標準テキストであり、
前記計算手段は、
前記ベースモデルに基づく前記標準テキストの評価スコアを計算し、
前記ベースモデルを用いて前記入力音声を認識することにより得られた複数のテキスト候補の前記ベースモデルに基づく平均評価スコアを計算する請求項２１記載の言語モデル枝刈り装置。
【請求項２６】
前記トレーニングコーパスにおける前記ｎ−グラムの発生回数は、前記標準テキストにおける前記ｎ−グラムの発生回数であることを特徴とする請求項２５記載の言語モデル枝刈り装置。
【請求項２７】
前記対象アプリケーションにおける前記ｎ−グラムの発生回数は、前記ベースモデルを用いて前記入力音声を認識することにより得られた複数のテキスト候補における前記ｎ−グラムの平均発生回数であることを特徴とする請求項２５記載の言語モデル枝刈り装置。
【請求項２８】
前記対象アプリケーションはアジア言語のＩＭＥ（input method editor）であり、
前記トレーニングデータは音素記号列であり、
前記トレーニングデータの前記標準解答は、前記音素記号列を変換することにより得られた標準単語列であり、
前記計算手段は、
前記ベースモデルに基づく前記標準単語列の評価スコアを計算し、
前記ベースモデルを用いて前記音素記号列を変換することにより得られた複数の単語列候補の前記ベースモデルに基づく平均評価スコアを計算する請求項２１記載の言語モデル枝刈り装置。
【請求項２９】
前記トレーニングコーパスにおける前記ｎ−グラムの発生回数は、前記標準単語列における前記ｎ−グラムの発生回数であることを特徴とする請求項２８記載の言語モデル枝刈り装置。
【請求項３０】
前記対象アプリケーションにおける前記ｎ−グラムの発生回数は、前記ベースモデルを用いて前記音素記号列を変換することにより得られた複数の単語列候補における前記ｎ−グラムの発生回数であることを特徴とする請求項２８記載の言語モデル枝刈り装置。
【請求項３１】
前記生成手段、前記言語モデルから前記複数のｎ−グラム及び各ｎ−グラムの確率を削除することにより、前記初期のベースモデルを生成する請求項１９記載の言語モデル枝刈り装置。
【請求項３２】
前記トレーニングデータの前記標準解答は、前記言語モデルから求めた標準解答または該トレーニングデータに対し与えられた適正な解答である請求項１９記載の言語モデル枝刈り装置。
【請求項３３】
前記言語モデル及び前記枝刈りされた言語モデルに基づき、追加すべき複数のｎ−グラム及び各ｎ−グラムの確率を得る取得手段をさらに含み、
前記計算手段は、前記トレーニングコーパスを用いて、前記追加すべき複数のｎ−グラムのそれぞれに、前記対象アプリケーションに関する重要度を計算し、
前記追加手段は、前記追加すべき複数のｎ−グラムのうち高い重要度をもつ少なくとも１つのｎ−グラム及びその確率を前記枝刈りされた言語モデルに追加する、
請求項１９記載の言語モデル枝刈り装置。
【請求項３４】
前記追加すべき複数のｎ−グラムは、前記言語モデルに含まれているが、前記枝刈りされた言語モデルには含まれていない複数のｎ−グラムである請求項３３記載の言語モデル枝刈り装置。
【請求項３５】
前記取得手段、前記計算手段、及び前記追加手段により、前記枝刈りされた言語モデルへの前記ｎ−グラム及びその確率の追加が繰り返される請求項３４記載の言語モデル枝刈り装置。
【請求項３６】
前記取得手段、前記計算手段、及び前記追加手段により、前記枝刈りされた言語モデルが予め定められたサイズになるまで、前記枝刈りされた言語モデルへの前記ｎ−グラム及びその確率の追加が繰り返される請求項３４記載の言語モデル枝刈り装置。
【請求項３７】
複数のｎ（ｎは２以上の任意の整数）−グラム及び複数のｎ´（ｎ´は１≦ｎ´＜ｎを満たす整数）−グラムと、各ｎ−グラムの確率及び各ｎ´−グラムの確率とを含む言語モデルを枝刈りするプログラムであって、
コンピュータに、
前記言語モデルに基づき、前記複数のｎ−グラム及び各ｎ−グラムの確率を含まない初期のベースモデルを生成する生成ステップと、
複数のトレーニングデータ及びその標準解答を含むトレーニングコーパスを用いて、前記複数のｎ−グラムのそれぞれに、対象アプリケーションに関する重要度を計算する計算ステップと、
前記複数のｎ−グラムのうち高い重要度をもつ少なくとも１つのｎ−グラム及びその確率を前記ベースモデルに追加することにより、枝刈りされた自然言語モデルを得るステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自然言語処理に関し、特に言語モデルの枝刈り技術に関する。
【背景技術】
【０００２】
言語モデルは、アジア言語での単語分割、音声認識、アジア言語のインプットメソッドエディター（ＩＭＥ）など、自然言語処理のアプリケーションにおいて広く用いられている（例えば、非特許文献１、非特許文献２参照）。しかし、枝刈りされていない言語モデルは通常大規模であり、実際に個々のアプリケーションに適用する場合には、計算資源の制限のために直接用いることは多くの場合困難である。従って、言語モデルの枝刈り技術は、大規模モデルを枝刈りしてモデルを小さくする際に用いられる。枝刈り手法は、モデルのサイズを削減するという目的を達成するために、いくつかの枝刈り基準に従って、一般に、言語モデルに含まれているパラメータの数を削減する。
【０００３】
従来、言語モデルの枝刈り技術は、種々の枝刈り基準に従って、言語モデルの各パラメータを枝刈りすべきか否かを決定する。推奨される枝刈り基準には、主に、カウント・カットオフや、ＫＬ（カルバック・ライブラー）距離（Kullback-Leibler Distance）などがある。
【０００４】
カウント・カットオフ基準は、例えば非特許文献３に記載されている。
【０００５】
ＫＬ距離基準は、例えば非特許文献４に記載されている。
【０００６】
しかし、言語モデルにとってこれらの基準はどれも一般的、汎用的な基準であり、個々の実際のアプリケーションにおいて要求される言語モデルの性能（パフォーマンス）を達成することができるように最適化するものではないので、従来は、モデルの枝刈りにより必然的にパフォーマンスロスがもたらされていた。
【０００７】
さらに、言語のモデル化方法は、非特許文献５に記載されている。確率的言語モデルにおいて、バックオフは、散在するデータ問題に対処するために広く用いられている方法である。非特許文献５には、バックオフのプロセスが記載されている。また、非特許文献６には、散在するデータから確率を推定する手法が記載されている。
【非特許文献１】“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)
【非特許文献２】“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)
【非特許文献３】“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.
【非特許文献４】“Entropy-based Pruning of Backoff Language Models”, Andreas Stolcke, In Proc. of DARPA News Transcription and Understanding Workshop, pages 270-274, 1998.
【非特許文献５】“Improved Backing-Off for M-Gram Language Modeling” ,Reinhard Kneser and Hermann Hey, IEEE, pages 181-184, 1995.
【非特許文献６】“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.)
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、上述したような従来の問題点を解決するためになされたもので、対象とする実際のアプリケーションに適したサイズに言語モデルを枝刈りできる言語モデルの枝刈り方法及び装置を提供する。
【課題を解決するための手段】
【０００９】
複数のｎ−（ｎは２以上の任意の整数）グラム及び複数のｎ´（ｎ´は１≦ｎ´＜ｎを満たす整数）−グラムと、各ｎ−グラムの確率及び各ｎ´−グラムの確率を含む言語モデルを枝刈りする方法は、
前記言語モデルに基づき、前記複数のｎ−グラム及び各ｎ−グラムの確率を含まない初期のベースモデルを生成し、
複数のトレーニングデータ及びその標準解答を含むトレーニングコーパスを用いて、前記複数のｎ−グラムのそれぞれに、対象アプリケーションに関する重要度を計算し、
前記複数のｎ−グラムのうち高い重要度をもつ少なくとも１つのｎ−グラム及びその確率を前記ベースモデルに追加することにより、枝刈りされた自然言語モデルを得る。
【発明の効果】
【００１０】
アプリケーションに適したサイズに言語モデルを枝刈りできる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施形態について、図面を参照して説明する。
【００１２】
［言語モデルの枝刈り方法］
図１は、本実施形態に係る言語モデルの枝刈り方法を説明するためのフローチャートである。図１において、まず、ステップＳ１０１では、言語モデルに基づき、初期のベース（base）モデルを生成する。
【００１３】
上記言語モデルは、例えば、非特許文献１や非特許文献２に記載されているように、例えば、アジア言語における単語分割、音声認識、アジア言語のＩＭＥなどの実際のアプリケーションに広く用いられている、ｎ−グラム言語モデルである。なお、本実施形態における言語モデルは、これらに限定するものではない。
【００１４】
言語モデルは、例えば、図７に示すように、任意の文字列に対しその確率を与えるものである。
【００１５】
一般に、頻繁に用いられる文字列は高い確率をもち、風変わりな文字列は低い確率をもつ。
【００１６】
種々の言語モデルが存在するが、その中で最も成功しているものが、ｎ−グラム言語モデルである。ｎ−グラム言語モデルは、ＨＭＭ(Hidden Markov Model)の推定を適用し、入力された単語列に対する確率を、各単語についてその前のｎ−１個の単語を条件とする当該単語の確率の積に分割する。例えば、ｎ＝２（バイグラム）の場合、単語列“I like playing football”の確率は、
Pr( “I like playing football”) = Pr(I)×Pr(like | I)×Pr(playing | like)×Pr(football | playing)              （ａ１）
となる。
【００１７】
ｎ＝３の場合、各単語の確率は、当該単語の前の２単語を条件とする確率となり、上式（ａ１）において、例えばPr(playing | like)の代わりに Pr(playing | like, I) を用いる。
【００１８】
あらゆる入力列に対し確率を生成するために、全てのバイグラムの確率がバイグラム言語モデルに記憶されている必要がある。また、全てのトリグラム（ｎ＝３）の確率がトリグラム言語モデルに記憶されている必要がある。しかし、これは、全単語を記憶するためのサイズが膨大であるために現実的ではない。１００Ｋワードの単語群でも１０Ｇの確率を記憶する必要があるのである。１つの確率を、Ｃ＋＋におけるフロートナンバー（４バイトを占める）により表すと、４０Gバイトのディスクサイズが要求される。
【００１９】
この問題を解決するために、頻繁に使用されるグラム群のみを記憶する。頻繁には使用されないグラムは、バックオフによりオンラインで計算される。例えば、トリグラム(I, like, playing)の確率が、トリグラム言語モデルに含まれていない場合、次のようにしてバックオフされる。
【００２０】
Pr (playing | like, I) →Pr(playing | like)×alpha(like, I)
ここで、alpha(like, I) は、バックオフ係数である。
【００２１】
さらに、(like, playing)の確率が、トリグラム言語モデルに存在しない場合にもバックオフされる。
【００２２】
Pr(playing | like) → Pr(playing)×alpha(like)
ユニグラム（ｎ＝１）に対する全ての確率はあらゆるｎグラム言語モデルに記憶されていることが保証されている。
【００２３】
バックオフ係数alphaは、次のようにして計算される。
【数１】
2008234657.tif 000003
【００２４】
従来技術に関するより詳細な説明は、非特許文献６を参照されたい。
【００２５】
以上説明したように、トリグラム言語モデルは、複数のトリグラム確率（トリグラム及びその確率）と、複数のバイグラム確率（バイグラム及びその確率）及びバックオフ係数と、全てのユニグラム確率（ユニグラム及びその確率）及びバックオフ係数を含む。当該複数のトリグラム確率は通常、記憶領域のほとんどを占める。トリグラムモデルを枝刈りするということは、要するに、当該モデルからいくつかのトリグラム確率を取り除くことを意味する。同様に、バイグラム言語モデルは複数のバイグラム確率と、全てのユニグラム確率及びバックオフ係数とを含み、この中で、当該バイグラム確率が記憶領域のほとんどの部分を占める。バイグラムモデルを枝刈りするということは、要するに、当該モデルからいくつかのバイグラムを取り除くことを意味する。
【００２６】
ｎ（ｎ＞ｎ´）−グラム言語モデルは、全てのユニグラム確率（ユニグラム（ｎ´＝１）及びその確率）及びバックオフ係数、複数のバイグラム確率（バイグラム（ｎ´＝２）及びその確率）及びバックオフ係数、…複数のｎ−グラム確率（ｎ＞ｎ´）−グラム及びその確率）とを含む。ｎ−グラム言語モデルでは、トップオーダ（最上位）のグラムはｎ−グラムであり、最下位のグラムはユニグラムである。
【００２７】
また、トリグラム（ｎ＝３）言語モデルでは、トップオーダ（最上位）のグラムはトリグラムであり、これより小さいグラムとしてバイグラム（ｎ´＝２）と、最下位のユニグラム（ｎ´＝１）とがある。
【００２８】
本実施形態によれば、ｎ−グラム言語モデルから、ｎ個の言語単位（文字単位、単語単位など）からなる複数のトップオーダ（最上位）グラム（複数のｎ−グラム）を取り除くことにより、ｎ−グラム言語モデルが枝刈りされる。ここで、ｎは１，２，３，…である。枝刈りは、あらゆるオーダのｎ−グラム言語モデルに関して行うことができる。例えば、本実施形態ではバイグラム（ｎ＝２）言語モデルに関し枝刈りを行っているが、この場合に限るものではない。
【００２９】
以下の説明では、言語モデルに符号Ｍ０を付して、言語モデルＭ０と呼ぶ。
【００３０】
ステップＳ１０１では、上述のｎ−グラム言語モデルＭ０から全ての最上位のグラム（ｎ−グラム）とそのそれぞれの確率を削除することにより、初期のベースモデルＭ２を生成する。すなわち、上記ｎ−グラム言語モデルＭ０のコンテンツから、最上位のｎ−グラム及びその確率が除かれて、初期のベースモデルＭ２は、ｎより少ないｎ´（ｎ´は１≦ｎ´＜ｎを満たす整数）個の言語単位からなる複数のｎ´−グラム及びその確率を含む。しかし、この場合に限らず、初期のベースモデルＭ２は、言語モデルＭ０から、実際の要求に応じて、一部のｎ−グラム及びその確率を削除することにより生成してもよい。
【００３１】
本実施形態では、枝刈り前のｎ−グラム言語モデルＭ０から全ての最上位グラムを取り除くことにより、ベースモデルＭ２を得る。ｎ＝２の場合、枝刈り前の言語モデルには複数のバイグラム確率と、複数のユニグラム確率及びバックオフ係数とが含まれている。ベースモデルでは上記複数のバイグラム確率が除かれている。バイグラムモデルを枝刈りする目的は、ベースモデルにいくつかの最も重要なバイグラム確率を追加して、これを枝刈りされた言語モデルとすることにある。
【００３２】
次に、ステップＳ１０５では、トレーニングコーパスＭ１を用いて、各ｎ−グラムに、対象アプリケーションに関する重要度を計算する。トレーニングコーパスＭ１は、トレーニングデータ及び標準解答を含む。標準解答は、対象アプリケーションにおいて、トレーニングデータの標準的な結果である。本実施形態では、トレーニングコーパスＭ１の標準解答は、例えば、上述の枝刈り前の言語モデルＭ０または公知技術の方法を用いることにより得られる標準解答や、マニュアルで当該トレーニングデータに対し与えられた（例えばユーザにより入力された）適正な解答であるが、これらに限定するものではない。トレーニングデータ及び標準解答については、以降の対象アプリケーションに関連して説明する。
【００３３】
本実施形態では、対象アプリケーションは、アジア言語での単語分割、音声認識、アジア言語のＩＭＥや、公知のまたは今後開発されるであろう他のアプリケーションなど、公知の言語モデルを用いた任意のアプリケーションからなる。
【００３４】
ステップＳ１０５におけるトレーニングコーパスＭ１を用いて、対象アプリケーションに関する上述のｎ−グラムの重要度の計算するプロセスについて、図２を参照して詳細に説明する。図２は、本実施形態に係るバイグラムの重要度の計算例を示したものである。ここでは、中国語単語分割、日本語単語分割、韓国語単語分割などのアジア言語での単語分割を例にとり説明する。以下、中国語単語分割、バイグラム言語モデルを例にとり説明するが、本発明は、この場合に限定するものではなく、他の実際のアプリケーションにおけるどのｎ−グラムにも適用可能である。
【００３５】
特に、中国語単語分割における上述のトレーニングコーパスＭ１のトレーニングデータは、未分割の１または複数の文字列である。各文字列は、１つの文からなる。トレーニングコーパスＭ１の各標準解答は、枝刈り前のバイグラム言語モデルを用いて各未分割文字列を分割することにより得られた標準単語列、またはマニュアルで当該未分割文字列を分割することにより当該未分割文字列に対し与えられた適正な単語列である。または、標準解答は、次のような単語列候補のなかから選択された標準単語列である。例えば、次のような単語列候補に公知の編集距離（Edit Distance）を用いて、未分割文字列に最も距離の近い単語列候補を選択し、これをトレーニングコーパスＭ１の上述の標準解答とする。本実施形態では、実際のアプリケーションに応じて、言語モデルＭ０がトレーニングコーパスＭ１を用いて枝刈りされるのであれば、トレーニングコーパスＭ１の標準解答に何ら限定を加えるものでない。
【００３６】
未分割文字列とそれに対応する標準単語列の一例を次に示す。
【数２】
2008234657.tif 000004
【００３７】
図２に示すように、最初のステップＳ２０１では、複数のバイグラムのそれぞれの重要度の値を「０」に初期化する。
【００３８】
以下の処理は、トレーニングコーパスＭ１中の各文について行う。
【００３９】
まず、ステップＳ２０３において、ステップＳ１０１で生成された初期のベースモデルＭ２を用いて、トレーニングコーパスＭ１中の現在の文、すなわち、未分割文字列について、Ｎ個の単語列候補を生成する。Ｎ個の単語列候補を生成する方法は、単語列候補が生成できるのであれば、ベースモデルＭ２を用いた公知のいかなる単語分割方法を用いてもよい。
【００４０】
例えば、まず、当該未分割文字列について、全ての候補単語を求める。上記（ａ）の未分割文字列の場合、次のような候補単語が含まれている。
【数３】
2008234657.tif 000005
【００４１】
次に、これら単語から、有り得る全てのセグメンテーションパスを求める。求めた各セグメンテーションパスに対し、当該セグメンテーションパスが発生し得る確率を計算し、この確率が最も高いものから順にＮ個のパスを上述のＮ個の単語列候補として用いる。ここで、各セグメンテーションパスの確率を計算する方法は、公知のいかなる方法を用いてもよい。例えば、上記（ｃ）の候補単語から、次に示すような単語列候補を含むＮ個の単語列候補が得られる。
【数４】
2008234657.tif 000006
【００４２】
次に、ステップＳ２０４では、現在の文に対し、ベースモデルＭ２を用いて中国語単語分割を実施（実行）するときの誤りの尤度（誤りの発生する度合い）を計算する。例えば、ここでは、この誤りの尤度を、次式（１）に示すような誤分類関数を用いて計算される値で表す。
【数５】
2008234657.tif 000007
【００４３】
式（１）において、ｄは誤分類関数値（すなわち、誤りの尤度）を表し、ｇ0は標準単語列に対するベースモデルＭ２に基づく評価スコアを表し、ｇrは上述のＮ個の単語列候補のうちのｒ番目の単語列候補のベースモデルＭ２に基づく評価スコアを表し、ηは定数である。
【００４４】
ここで、ベースモデルＭ２に基づき、標準単語列や単語列候補を評価する方法は、標準単語列や単語列候補による分割結果の善し悪しを評価して、そのスコアが得られるのであれば、公知のどのような技術を用いてもよく、特に限定しない。
【００４５】
例えば、中国語単語分割に適用する場合、上記（ａ）に示すような未分割文字列が入力されたとき、上記（ｄ）に示すような２つの単語列候補が得られたとする（標準単語列のスコアもこのようにして推定することができる）。この２つの単語列候補は、単語列により示すことができる。これらのスコアにより当該２つの単語列候補のうちの１つが出力として選択される。また、スコアを推定する最も簡単な方法は、ｎ−グラム言語モデルの確率の対数を採用することであるが、他のいくつかの要因を考慮してスコアを推定する複雑な方法もいくつかある。言語モデルを枝刈りする作業において、これらの要因は定数であり、何ら影響はない。
【００４６】
最も単純な場合を考えると、
【数６】
2008234657.tif 000008
【００４７】
と定義できる。ｎ＝２の場合には、２番目の単語列候補の確率は、
【数７】
2008234657.tif 000009
【００４８】
となる。
【００４９】
従って、この単語列候補のスコアは、
【数８】
2008234657.tif 000010
【００５０】
と推定できる。
【００５１】
枝刈り前のバイグラムモデルを適用した場合、この中に（wx,wy）の確率（PF(wy,wx)と示す）が存在していると想定すると、この確率をこのまま用いる。すなわち、
【数９】
2008234657.tif 000011
【００５２】
ベースモデルを適用した場合、ベースモデルにはバイグラム確率が含まれていないので、全てのバイグラム確率はバックオフにより計算する必要がある。すなわち、
【数１０】
2008234657.tif 000012
【００５３】
ここで、下付文字の“Ｂ”はベースモデルから生ずるパラメータを表す。
【００５４】
特定のバイグラム（wx,wy）に対し、確率の差分、すなわち、
【数１１】
2008234657.tif 000013
【００５５】
は、バイグラムの重要度を計算するための不可欠な要因である。そして、この要因は、式（４）に用いられる。
【００５６】
上記ベースモデルに基づき上記標準単語列の推定スコアを計算する方法は、次式により表すことができる。
【数１２】
2008234657.tif 000014
【００５７】
複数の単語列候補の平均推定スコアは、式（１）の一部として計算される。すなわち、
【数１３】
2008234657.tif 000015
【００５８】
ここで、grはg0と同様に計算される。
【００５９】
上記ベースモデルを用いることにより上記ｎ−グラムの確率を計算する方法は（バイグラムモデルの枝刈りについては）、次式により表すことができる。すなわち、
【数１４】
2008234657.tif 000016
【００６０】
さらに、ここでは、ベースモデルＭ２が用いて中国語単語分割を実施するときの誤りの尤度を、誤分類関数を用いて計算しているが、この場合に限らず、ベースモデルＭ２を用いて中国語単語分割を実施（実行）するときの誤りの尤度を表すことができるのであれば、どのような方法を用いて計算してもよい。
【００６１】
好ましくは、ステップＳ２０５において、誤分類関数値は、次式（２）に示す損失関数Ｌを用いて、損失関数値に変換する。
【数１５】
2008234657.tif 000017
【００６２】
ここで、Ｌ（ｄ）は損失関数値を表し、γは傾き係数を表す定数である。損失関数を用いることにより、誤分類関数値は、「０」と「１」との間の値をとり、実際、誤分類関数値ｄの曲線は滑らかになる。なお、ステップＳ２０５は必ずしも必要ではなく、なくてもよい。
【００６３】
次に各バイグラムについて、以下のステップＳ２０７〜ステップＳ２１０の処理を行う。
【００６４】
ステップＳ２０７では、現在のバイグラムに対し、トレーニングコーパス中での当該バイグラムの発生回数を計算する。ここでは、現在のバイグラムに対し、標準単語列中での当該バイグラムの発生回数ｎ0を計算する。
【００６５】
次に、ステップＳ２０８では、当該バイグラムに対し、対象アプリケーションにおける当該バイグラムの平均発生回数を計算する。ここでは、当該バイグラムに対し、Ｎ個の単語列候補中での当該バイグラムの平均発生回数ｎ’を計算する。平均発生回数は次式（３）により計算される。
【数１６】
2008234657.tif 000018
【００６６】
ここで、ｎrはＮ個の単語列候補のうちのｒ番目の候補単語列において当該バイグラムが発生する回数を表す。ηは触れ係数を表す定数であり、ηが大きいほど、ｎ’はより第１位の単語列候補へ振れる。
【００６７】
ステップＳ２０９では、次式（４）により、現在の文に対する当該バイグラムの重要度を計算する。
【数１７】
2008234657.tif 000019
【００６８】
ここで、ｉｍｐ（ｗｘｗｙ；Ｓｉ）は、当該バイグラムの重要度を表し、ｗｘは当該バイグラムの１番目の語を表し、ｗｙは当該バイグラムの２番目の語を表す。ＳｉはトレーニングコーパスＭ１中のｉ番目の文、すなわち、現在の文を表し、ＰF(ｗｘ｜ｗｙ)は上述のバイグラム言語モデルＭ０における当該バイグラムの確率を表す。
【００６９】
ｌｏｇＰB（ｗｙ）＋ｌｏｇαB（ｗｘ）は、ベースモデルＭ２に基づき計算された、当該バイグラムの確率を表し、ＰB（ｗｙ）はベースモデルＭ２におけるユニグラムの確率であり、αBはベースモデルＭ２でのバックオフ係数である。
【００７０】
ここで、バイグラムの確率は、ベースモデルＭ２に基づくバックオフ方法により計算する。バックオフ方法は、例えば非特許文献５に記載されているような公知の方法を用いることができ、その詳細は上述した。
【００７１】
次に、ステップＳ２１０では、トレーニングコーパスＭ１に対する当該バイグラムの重要度ｉｍｐ（ｗｘｗｙ）を次式（５）により更新する。
【数１８】
2008234657.tif 000020
【００７２】
ステップＳ２１０では、トレーニングコーパスＭ１中の各文に対する当該バイグラムの重要度を累積加算して、トレーニングコーパスＭ１に対する当該バイグラムの重要度が得られる。
【００７３】
ステップＳ２１１では、計算すべき全てのバイグラムの重要度が計算されたか否かを決定する。ステップＳ２１１において、まだ重要度の計算されていないバイグラムが存在する場合には、ステップＳ２０６へ戻り、当該バイグラムの重要度を計算する。ステップＳ２１１において、全てのバイグラムの重要度が計算されている場合には、ステップＳ２１２へ進む。
【００７４】
ステップＳ２１２では、トレーニングコーパスＭ１中の各文に対し、各バイグラムの重要度が計算されたか否かを決定する。ステップＳ２１２において、まだ重要度の計算を実施していないトレーニング文が存在する場合には、ステップＳ２０２へ戻り、続くステップＳ２０３以下の処理で、まだ重要度の計算を行っていないトレーニング文について（これを現在の文とし）、上述のように各バイグラムの重要度を計算する。ステップＳ２１２において、トレーニングコーパスＭ１中の全ての文に対し、各バイグラムの重要度を計算した場合には、処理を終了する。
【００７５】
バイグラムの重要度の計算方法は上述の通りであるが、他のあらゆるオーダのｎ−グラム(例えばユニグラム、トリグラムなど)についても、図２と同様の方法により、その重要度を計算することができる。
【００７６】
また、中国語の単語分割におけるｎ−グラムの重要度の計算方法は上述通りであるが、例えば、日本語における単語分割、韓国語における単語分割など、他のアジア言語におけるに単語分割においても、図２と同様の方法により、ｎ−グラムの重要度を計算することができる。
【００７７】
さらに、音声認識、アジア言語のＩＭＥなどの他の対象アプリケーションにおいて、図２に示した方法は適用可能である。音声認識において異なる点は、上述のトレーニングコーパスＭ１中のトレーニングデータは、入力音声であり、上述のトレーニングコーパスＭ１中の標準解答は、枝刈りされていないバイグラム言語モデルを用いて各入力音声を認識することにより得られた標準テキスト、または、当該入力音声に対しマニュアルで（例えばユーザが）認識して、当該入力音声に対し与えられた適正なテキストである。または、標準解答は、複数のテキスト候補のなかから選択された標準テキストである。例えば、公知の編集距離を用いて求めた複数のテキスト候補のなかから最も距離の近いテキスト候補を標準テキストとして選択し、これを上述のトレーニングコーパスＭ１中の標準解答として用いてもよい。従って、音声認識におけるｎ−グラムの重要度もまた、図２のフローチャートに従って計算することができる。
【００７８】
アジア言語のＩＭＥでは、上述のトレーニングコーパスＭ１中のトレーニングデータは、１または複数の音素記号を含む音素記号列である。例えば、中国語のＩＭＥでは、音素記号列はピンイン（Pinyin）列であり、日本語のＩＭＥでは、音素記号列はひらがな列やカタカナ列である。上述のトレーニングコーパスＭ１中の標準解答は、枝刈りされていないｎ−グラム言語モデルを用いて各音素記号列を変換することにより得られた標準単語列、または当該音素記号列をマニュアルで変換する（例えばユーザが変換する）ことにより当該音素記号列に対し与えられた適正な単語列である。または、標準解答は、複数の単語列候補のなかから選択された標準単語列である。例えば、公知の編集距離を用いて求めた複数の単語列候補のなかから最も距離の近い単語列候補を標準単語列として選択し、これを上述のトレーニングコーパス中の標準解答として用いてもよい。
【００７９】
例えば、ピンイン列は中国語の単語列に変換され、ひらがな列やカタカナ列は日本語の単語列に変換される。従って、アジア言語のＩＭＥにおけるｎ−グラムの重要度もまた、図２のフローチャートに従って計算することができる。
【００８０】
図１の説明に戻り、ステップＳ１１０では、上記複数のｎ−グラムのうち高い重要度（例えば、予め定められた値以上の重要度）をもつ１つまたは複数のｎ−グラム及びその確率を、上記ベースモデルＭ２に追加し、枝刈りされた言語モデルを得る。
【００８１】
なお、ステップＳ１１０では、例えば、重要度の高いものから順にｎ−グラムを選択し、所望のサイズの言語モデルとなるまで、選択したｎ−グラム及びその確率をベースモデルＭ２に追加するようにしてもよい。
【００８２】
図３は、他の言語モデルの枝刈り方法を説明するためのフローチャートである。
【００８３】
図３において、まず、ステップＳ３０１では、枝刈り前の言語モデルＭ０と枝刈りされた言語モデルＭ２とを基に、追加すべき最上位の複数のｎ−グラムと、そのそれぞれの確率を得る。なお、ここで、追加すべき最上位の複数のｎ−グラムは、上記枝刈りされた言語モデルＭ２には含まれていないが、上記枝刈り前の言語モデルＭ０に含まれている全てのｎ−グラムである。
【００８４】
次に、ステップＳ３０５へ進み、トレーニングコーパスを用いて、得られた追加すべき複数の最上位のｎ−グラムのそれぞれに対象アプリケーションに関する重要度を計算する。ここで、得られた追加すべき複数の最上位のｎ−グラムのそれぞれに対象アプリケーションに関する重要度を計算する方法は、上述の図１のステップＳ１０５における計算方法と同様である。
【００８５】
さらにステップＳ３１０では、上記追加すべき複数の最上位のｎ−グラムのうち高い重要度（例えば、予め定められた値以上の重要度）をもつ１つまたは複数の最上位のｎ−グラムと、そのそれぞれの確率とを、上記枝刈りされた言語モデルＭ２に追加する。
【００８６】
ステップＳ３１５では、上記枝刈りされた言語モデルＭ２のサイズが予め定められたサイズに達しているかどうかをチェックする。この予め定められたサイズは、対象アプリケーションに応じて決定されたものであれば、どのようなサイズであってもよい。枝刈りされた言語モデルＭ２のサイズが、上記予め定められたサイズよりも小さいときには、ステップＳ３０１へ戻り、上述のステップＳ３０１〜ステップＳ３１５の処理を繰り返す。枝刈りされた言語モデルＭ２のサイズが、上記予め定められたサイズより大きいときには、上記予め定められたサイズに等しくなるまで上述の処理で追加された最上位のｎ−グラム及びその確率を（例えば、重要度が最も低いものから順に）当該枝刈りされた言語モデルＭ２から削除する。枝刈りされた言語モデルＭ２のサイズが、上記予め定められたサイズと一致するときには、処理を終了する。この結果、上記予め定められたサイズの枝刈りされた言語モデルＭ２を得る。
【００８７】
図３に示した言語モデルの枝刈り方法では、枝刈り基準は、対象アプリケーションにおける言語モデルのパフォーマンスに基づき最適化されているので、同じサイズであっても、図１や図３に示した方法で枝刈りされた言語モデルの方が、従来の手法で枝刈りされた言語モデルよりも、言語モデルのパフォーマンスロスは低減される。一方、同じパフォーマンスを達成するために必要なデータ量（サイズ）は、図１や図３に示した方法で枝刈りされた言語モデルの方が、従来の手法で枝刈りされた言語モデルよりも小さくてすむ。
【００８８】
［言語モデルの枝刈り装置］
次に、上述した言語モデル枝刈り方法を用いた言語モデルの枝刈り装置について説明する。
【００８９】
複数のｎ（ｎは２以上の任意の整数）−グラム及び複数のｎ´（ｎ´は１≦ｎ´＜ｎを満たす整数）−グラムと、各ｎ−グラムの確率及び各ｎ´−グラムの確率を含むｎ−グラム言語モデルＭ０を枝刈りする言語モデル枝刈り装置の構成例を図４に示す。
【００９０】
図４に示す言語モデル枝刈り装置４００は、ベースモデル生成部４０１、重要度計算部４０５、追加部４１０、記憶部４１２を含む。記憶部４１２は、上記言語モデルＭ０、上記トレーニングコーパスＭ１を予め記憶するとともに、ベースモデル生成部４０１で生成されるベースモデルＭ２を記憶する。
【００９１】
ベースモデル生成部４０１は、上記言語モデルＭ０に基づき初期のベースモデルＭ２を生成する。初期のベースモデルＭ２には、上記言語モデルＭ０中の複数の最上位のｎ−グラムを除く、ｎよりも少ない数（ｎ´（ｎ´は１≦ｎ´＜ｎを満たす整数）個）の言語単位からなる複数のｎ´−グラムとそのそれぞれの確率が含まれている。重要度計算部４０５は、上記トレーニングコーパスＭ１を用いて、上記複数のｎ−グラムのそれぞれに対し、対象アプリケーションに関する重要度を計算する。上記トレーニングコーパスＭ１は、トレーニングデータ及び標準解答を含む。追加部４１０は、上記複数のｎ−グラムのうち、高い重要度をもつ少なくとも１つのｎ−グラム及びその確率を上記ベースモデルＭ２に追加することにより、枝刈りされた言語モデルを求める。
【００９２】
図４に示す言語モデル枝刈り装置４００は、後述するように、追加部４１０が、ベースモデル生成部４０１で生成されたベースモデルＭ２にｎ−グラム及びその確率を追加することにより、枝刈りされた言語モデルを生成・構築する。
【００９３】
上記言語モデルは、前述したように、例えば、アジア言語における単語分割、音声認識、アジア言語のＩＭＥなどのアプリケーションに広く用いられている、ｎ−グラム言語モデルである。
【００９４】
ベースモデル生成部４０１は、上記ｎ−グラム言語モデルＭ０から全ての最上位のｎ−グラムとそのそれぞれの確率を取り除くことにより、初期のベースモデルＭ２を生成する。すなわち、初期のベースモデルＭ２は、上記ｎ−グラム言語モデルのコンテンツのうち、上述の最上位のｎ−グラム及びその確率を除く、ｎよりも少ない数（ｎ´個）の言語単位からなる複数のｎ´−グラム及びその確率を含む。しかし、この場合に限らず、ベースモデル生成部４０１は、上記言語モデルＭ０から、実際の要求に応じて、一部のｎ−グラム及びその確率を取り除くことにより、上記初期のベースモデルＭ２を生成してもよい。
【００９５】
重要語計算部４０５は、記憶部４１２に記憶されているトレーニングコーパスＭ１を用いて、各ｎ−グラムに対し、対象アプリケーションに関する重要度を計算する。
【００９６】
重要度計算部４０５における、中国語の単語分割におけるバイグラムの重要度の計算処理プロセスは、図２に示した通りである。また、他のｎ−グラム(例えばユニグラム、トリグラムなど)についても、図２と同様にして、その重要度を計算することができる。
【００９７】
また、重要度計算部４０５での中国語の単語分割におけるｎ−グラムの重要度の計算処理は図２の通りであるが、例えば、日本語における単語分割、韓国語における単語分割など、他のアジア言語におけるにおける単語分割においても、重要度計算部４０５は、図２と同様の処理を行う。
【００９８】
さらに、音声認識、アジア言語のＩＭＥなどの他の実際のアプリケーションにおいても、重要度計算部４０５は、図２と同様に、ｎ−グラムの重要度の計算処理を行うことは前述の通りである。
【００９９】
追加部４１０は、上記複数のｎ−グラムのうち高い重要度（例えば、予め定められた値以上の重要度）をもつ１つまたは複数のｎ−グラム及びその確率を、記憶部４１２に記憶されている上記ベースモデルＭ２に追加して、枝刈りされた言語モデルを得る。
【０１００】
なお、追加部４１０は、例えば、重要度の高いものから順にｎ−グラムを選択し、所望のサイズの言語モデルとなるまで、選択したｎ−グラム及びその確率をベースモデルＭ２に追加するようにしてもよい。
【０１０１】
図５は、他の実施形態に係る言語モデル枝刈り装置４００の構成例を示したものである。なお、図５において、図４と同一部分には同一符号を付し、異なる部分について説明する。
【０１０２】
図５に示す言語モデル枝刈り装置４００は、枝刈り前の言語モデルＭ０及び枝刈りされた言語モデルＭ２を基に、追加すべき複数のｎ−グラム及びそのそれぞれの確率を取得する追加ｎ−グラム取得部４０３をさらに含む。追加ｎ−グラム取得部４０３で得る追加すべき複数のｎ−グラムは、上記枝刈りされた言語モデルＭ２には含まれていないが、上記言語モデルＭ０に含まれている全てまたは一部のｎ−グラムであるが、これに限定するものではない。
【０１０３】
図５の重要度計算部４０５は、記憶部４１２に記憶されているトレーニングコーパスＭ１を用いて、追加ｎ−グラム取得部４０３で得られた追加すべき複数のｎ−グラムのそれぞれに対象アプリケーションに関する重要度を計算する。ここで、得られた追加すべき複数のｎ−グラムのそれぞれに対象アプリケーションに関する重要度を計算する方法は、上述の図１のステップＳ１０５における計算方法と同様である。
【０１０４】
図５の追加部４１０は、上記追加すべき複数のｎ−グラムのうち高い重要度（例えば、予め定められた値以上の重要度）をもつ１つまたは複数のｎ−グラムと、そのそれぞれの確率とを、上記枝刈りされた言語モデルＭ２に追加する。
【０１０５】
なお、図５の追加部４１０は、上記追加すべき複数のｎ−グラムのなかから、例えば、重要度の高いものから順にｎ−グラムを選択し、所望のサイズの言語モデルとなるまで、選択したｎ−グラム及びその確率を枝刈りされた言語モデルＭ２に追加するようにしてもよい。
【０１０６】
または、言語モデルの枝刈り装置４００は、例えば、図６に示すように構成されていてもよい。なお、図６において、図５と同一部分には同一符号を付し、図５と異なる部分について説明する。すなわち、図６では、追加部４１０は、枝刈りされた言語モデルのサイズが予め定められたサイズに達しているかどうかをチェックし、枝刈りされた言語モデルのサイズが、上記予め定められたサイズよりも小さいときには、追加ｎ−グラム取得部４０３、重要度計算部４０５、及び追加部４１０では上述の処理を枝刈りされた言語モデルのサイズが予め定められたサイズに達するまで繰り返すように構成されている。枝刈りされた言語モデルのサイズが、上記予め定められたサイズと一致するときには、処理を終了する。この結果、上記予め定められたサイズの枝刈りされた言語モデルを得る。
【０１０７】
なお、この予め定められたサイズは、対象アプリケーションに応じて決定されたものであれば、どのようなサイズであってもよい。
【０１０８】
図４乃至図６に示した言語モデルの枝刈り装置４００の各構成部は、ＡＳＩＣ（Application Specific Integrated Circuit）で構成することができる。
【０１０９】
また、上述の手法を、コンピュータ／プロセッサに実行させることのできるプログラムとして、コンピュータ／プロセッサに実行さえることにより、図４乃至図６に示した構成の言語モデル枝刈り装置を実現することができる。
【０１１０】
例えば、コンピュータ／プロセッサに図１や図３に示した処理を実行させるためのプログラムを、コンピュータ／プロセッサに実行させることにより、コンピュータを図４〜図６に示した言語モデルの枝刈り装置４００として機能させることができる。
【０１１１】
図４乃至図６に示した言語モデル枝刈り装置４００では、枝刈り基準は、対象アプリケーションにおける言語モデルのパフォーマンスに基づき最適化されているので、同じサイズであっても、言語モデル枝刈り装置４００で枝刈りされた言語モデルの方が、従来の手法で枝刈りされた言語モデルよりも、言語モデルのパフォーマンスロスは低減される。一方、同じパフォーマンスを達成するために必要なデータ量（サイズ）は、言語モデル枝刈り装置４００で枝刈りされた言語モデルの方が、従来の手法で枝刈りされた言語モデルよりも小さくてすむ。
【０１１２】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【０１１３】
【図１】本発明の実施形態に係る言語モデルの枝刈り方法を説明するためのフローチャート。
【図２】バイグラム（２−グラム）の重要度の計算方法を説明するためのフローチャート。
【図３】他の言語モデルの枝刈り方法を説明するためのフローチャート。
【図４】言語モデルの枝刈り装置の構成例を示す図。
【図５】言語モデルの枝刈り装置の他の構成例を示す図。
【図６】言語モデルの枝刈り装置のさらに他の構成例を示す図。
【図７】言語モデルを説明するための図。
【符号の説明】
【０１１４】
４０１…ベースモデル生成部
４０３…追加ｎ−グラム取得部
４０５…重要度計算部
４１０…追加部
４１２…記憶部
Ｍ０…言語モデル
Ｍ１…トレーニングコーパス
Ｍ２…ベースモデル
【図１】
2008234657.tif 000021
【図２】
2008234657.tif 000022
【図３】
2008234657.tif 000023
【図４】
2008234657.tif 000024
【図５】
2008234657.tif 000025
【図６】
2008234657.tif 000026
【図７】
2008234657.tif 000027