(57)【要約】【課題】従来とは異なる手法で最適な平滑化パラメータを求め、求めた平滑化パラメータを用いて言語モデルを構築することにより言語モデルの性能改善が可能となる言語モデル構築装置等を提供する。【解決手段】言語モデル構築装置は、学習用テキストデータでの、n個の単語からなるn単語列の各出現頻度をカウントする単語連鎖出現頻度算出部と、出現頻度を用いて、学習用テキストデータとは独立の開発用テキストデータに対する評価値が最適値となるように平滑化パラメータを決定する平滑化パラメータ決定部と、を含む。言語モデル構築装置は、評価値が最適値となったときの平滑化パラメータと出現頻度とを用いて言語モデルを作成する。【選択図】図１
2018124797.tif 000002
【特許請求の範囲】
【請求項１】
n=1,2,…,Nであり、Nは2以上の整数の何れかであり、学習用テキストデータでの、n個の単語からなるn単語列の各出現頻度をカウントする単語連鎖出現頻度算出部と、
前記出現頻度を用いて、前記学習用テキストデータとは独立の開発用テキストデータに対する評価値が最適値となるように平滑化パラメータを決定する平滑化パラメータ決定部と、を含み、
評価値が最適値となったときの平滑化パラメータと前記出現頻度とを用いて言語モデルを作成する、
言語モデル構築装置。
【請求項２】
請求項１の言語モデル構築装置であって、
前記平滑化パラメータ決定部は、
平滑化パラメータの初期値を乱数により設定するパラメータ初期設定部と、
前記出現頻度と初期化または更新された平滑化パラメータとを用いて一時言語モデルを作成する一時モデル作成部と、
前記開発用テキストデータに対して、前記一時言語モデルの評価を行うモデル評価部と、
評価結果が収束していない場合には評価結果に基づいて前記平滑化パラメータを更新するパラメータ更新部と、を含む、
言語モデル構築装置。
【請求項３】
n=1,2,…,Nであり、Nは2以上の整数の何れかであり、学習用テキストデータでの、n個の単語からなるn単語列の各出現頻度をカウントする単語連鎖出現頻度算出ステップと、
前記出現頻度を用いて、前記学習用テキストデータとは独立の開発用テキストデータに対する評価値が最適値となるように平滑化パラメータを決定する平滑化パラメータ決定ステップと、を含み、
評価値が最適値となったときの平滑化パラメータと前記出現頻度とを用いて言語モデルを作成する、
言語モデル構築装置が実行する言語モデル構築方法。
【請求項４】
請求項３の言語モデル構築方法であって、
前記平滑化パラメータ決定ステップは、
平滑化パラメータの初期値を乱数により設定するパラメータ初期設定ステップと、
前記出現頻度と初期化または更新された平滑化パラメータとを用いて一時言語モデルを作成する一時モデル作成ステップと、
前記開発用テキストデータに対して、前記一時言語モデルの評価を行うモデル評価ステップと、
評価結果が収束していない場合には評価結果に基づいて前記平滑化パラメータを更新するパラメータ更新ステップと、を含む、
言語モデル構築方法。
【請求項５】
請求項１または請求項２の言語モデル構築装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ある単語列のi番目の単語wiの生起確率P(wi)は直前のN-1単語wi-N+1…wi-2wi-1だけに依存するという仮説に基づくモデルであるN-gramモデルの構築方法に関する。
【背景技術】
【０００２】
近年、音声認識、文字認識、機械翻訳等の分野において、単語間の連鎖関係を表す“言語モデル”を用いて精度を向上させる手法が盛んに検討されている。
【０００３】
言語モデルでは、辞書に登録された単語に対して、直前のN-1単語から次の単語への遷移確率を表すN-gram(エヌグラム)が盛んに用いられている。しかし、N-gramは、求めるべき確率の数が語彙サイズのN乗個となり非常に膨大な個数となる。このため、新聞記事やWebのデータ等の膨大なテキストを学習し各パラメータ値(確率)が推定されるが、語彙サイズが増大するに従って確率の数が爆発的に増大するため、有限のテキストデータから全ての確率を正しく求めることは現実的には不可能である。
【０００４】
この問題を解決するために、平滑化（非特許文献１参照）と呼ばれる技術が用いられる。平滑化は、テキストデータ上に出現しなかったN単語列に対しても、0でない確率を与えるための手法である。多くの平滑化手法が提案されているが、基本的には最尤推定により求まるN単語間の遷移確率を減じ（ディスカウンティング）、余剰の確率を低次の単語間の遷移確率で再配分する方法であり、Modified Kneser-Ney 平滑化（非特許文献２参照）はその代表的手法である。Modified Kneser-Ney をはじめ多くの平滑化手法では、学習に用いるテキストデータの単純な統計量を用いて平滑化のパラメータ(以下、平滑化パラメータともいう)を決定している。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】鹿野、伊藤、河原 他、「音声認識システム」、オーム社、2001年、pp.53-61
【非特許文献２】S.Chen & J.Goodman, "An empirical study of smoothing techniques for language modeling", Computer Speech and Language(1999) 13, pp. 359-394
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来技術で決定された平滑化パラメータが最適な値である保証は無く、さらなる性能改善の余地はあると考えられる。
【０００７】
本発明は、従来とは異なる手法で最適な平滑化パラメータを求め、求めた平滑化パラメータを用いて言語モデルを構築することにより言語モデルの性能改善が可能となる言語モデル構築装置、その方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記の課題を解決するために、本発明の一態様によれば、言語モデル構築装置は、n=1,2,…,Nであり、Nは2以上の整数の何れかであり、学習用テキストデータでの、n個の単語からなるn単語列の各出現頻度をカウントする単語連鎖出現頻度算出部と、出現頻度を用いて、学習用テキストデータとは独立の開発用テキストデータに対する評価値が最適値となるように平滑化パラメータを決定する平滑化パラメータ決定部と、を含む。言語モデル構築装置は、評価値が最適値となったときの平滑化パラメータと出現頻度とを用いて言語モデルを作成する。
【０００９】
上記の課題を解決するために、本発明の他の態様によれば、言語モデル構築装置が実行する言語モデル構築方法は、n=1,2,…,Nであり、Nは2以上の整数の何れかであり、学習用テキストデータでの、n個の単語からなるn単語列の各出現頻度をカウントする単語連鎖出現頻度算出ステップと、出現頻度を用いて、学習用テキストデータとは独立の開発用テキストデータに対する評価値が最適値となるように平滑化パラメータを決定する平滑化パラメータ決定ステップと、を含む。言語モデル構築方法は、評価値が最適値となったときの平滑化パラメータと出現頻度とを用いて言語モデルを作成する。
【発明の効果】
【００１０】
本発明によれば、言語モデルの性能改善が可能となるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】第一実施形態に係る言語モデル構築装置の機能ブロック図。
【図２】第一実施形態に係る言語モデル構築装置の処理フローの例を示す図。
【図３】第一実施形態に係る平滑化パラメータ決定部の機能ブロック図。
【図４】第一実施形態に係る平滑化パラメータ決定部の処理フローの例を示す図。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について、説明する。なお、以下の説明に用いる図面では、同じ機能を持つ構成部や同じ処理を行うステップには同一の符号を記し、重複説明を省略する。
【００１３】
＜第一実施形態＞
図１は第一実施形態に係る言語モデル構築装置１００の機能ブロック図を、図２はその処理フローを示す。
【００１４】
言語モデル構築装置１００は、CPUと、RAMと、以下の処理を実行するためのプログラムを記録したROMを備えたコンピュータで構成され、機能的には次に示すように構成されている。
【００１５】
言語モデル構築装置１００は、単語連鎖出現頻度算出部１０１、平滑化パラメータ決定部１０２、遷移確率計算部１０３を含む。
【００１６】
言語モデル構築装置１００は、大量の学習用テキストデータtexLと開発用テキストデータtexDとを入力とし、最適であると判断した平滑化パラメータを用いて計算した遷移確率からなる言語モデルΛを出力する。なお、開発用テキストデータtexDは、学習用テキストデータtexLとは独立のテキストデータであり、平滑化パラメータが適切な値となっているか否かを判定する際に用いるテキストデータである。また、学習用テキストデータtexLと開発用テキストデータtexDとは、言語モデルの構築に先立ち、予め図示しない記憶部に格納しておいてもよい。
【００１７】
＜単語連鎖出現頻度算出部１０１＞
単語連鎖出現頻度算出部１０１は、学習用テキストデータtexLを入力とし、学習用テキストデータtexL内での、n個の単語からなるn単語列wi-n+1iの出現頻度c(wi-n+1i)をカウントし、各単語列(単語連鎖)の出現頻度c(wi-n+1i)を求め(Ｓ１０１)、出力する。n=1,2,…,Nである。Nは2以上の整数の何れかであり、N-gramモデルにおけるNを表す。wi-n+1iは、n単語列wi-n+1wi-n+2…wiを表す。
【００１８】
例えば、最終的に求めるN-gramがトライグラム(N=3)であり、学習用テキストデータtexLに含まれるある文章が「学校/に/行/く」の場合、以下のように出現頻度c(wi-n+1i)をカウントする。ただし「/」は単語の分割位置を示す記号である。
【００１９】
1単語列(n=1)として、「学校」の出現頻度c(w11)、「に」の出現頻度c(w22)、「行」の出現頻度c(w33)、「く」の出現頻度c(w44)が、それぞれ一つカウントアップされる。
【００２０】
2単語列(n=2)として、「
,学校」の出現頻度c(w01)、「学校,に」の出現頻度c(w12)、「に,行」の出現頻度c(w23)、「行,く」の出現頻度c(w34)、「く,
」の出現頻度c(w45)が、それぞれ一つカウントアップされる。ただし、
,
はそれぞれ文頭、文末を示す特殊記号である。
【００２１】
3単語列(n=3=N)として、「
,
,学校」の出現頻度c(w-11)、「
,学校,に」の出現頻度c(w02)、「学校,に,行」の出現頻度c(w13)、「に,行,く」の出現頻度c(w24)、「行,く,
」の出現頻度c(w35)が、それぞれ一つカウントアップされる。
【００２２】
＜平滑化パラメータ決定部１０２＞
平滑化パラメータ決定部１０２は、開発用テキストデータtexDと出現頻度c(wi-n+1i)とを入力とし、出現頻度c(wi-n+1i)を用いて、開発用テキストデータtexDに対する評価値が最適値となるように平滑化パラメータpを決定し（Ｓ１０２）、出力する。
【００２３】
平滑化パラメータpは各次数n毎にパラメータが存在し、モデル全体を単純な式で表現することはできず最適なパラメータ値を求めることは困難である。従来技術(例えば非特許文献２)では統計量を用いて平滑化パラメータを決定しているが、必ずしも決定された平滑化パラメータが最適な値であるとは限らない。本実施形態では、焼きなまし法、遺伝的アルゴリズムや進化的戦略等の組み合わせ最適化の手法を用いることで準最適な値を求める。これら、組み合わせ最適化手法に共通している点は、最初はランダムな値でパラメータの初期設定を行い、評価を行ってパラメータを更新しながら最適解に近づけることである。なお、このような組み合わせ最適化手法を用いて最適な平滑化パラメータを求めるという発想自体が従来技術にはなかった本実施形態に特有の構成である。
【００２４】
図３は平滑化パラメータ決定部１０２の機能ブロック図を、図４はその処理フローの例を示す。
【００２５】
平滑化パラメータ決定部１０２は、パラメータ初期設定部１０２−１と、一時モデル作成部１０２−２と、モデル評価部１０２−３と、収束判定部１０２−４と、パラメータ更新部１０２−５とを含む。
【００２６】
＜パラメータ初期設定部１０２−１＞
パラメータ初期設定部１０２−１は、平滑化パラメータの初期値p(0)を設定し（Ｓ１０２−１）、出力する。なお、右上の添え字(x)のxは平滑化パラメータの更新回数を示す。初期値p(0)は例えば乱数により設定する。例えば、Modified Kneser-Ney平滑化の場合(非特許文献２参照)、統計量を用いて得られるD1〜D3+を平滑化パラメータとしているが、本実施形態を適用する場合には、まず、D1〜D3+に乱数を代入し初期値とする。その後、後述するようにD1〜D3+を更新し、D1〜D3+の最適値を求める。
【００２７】
＜一時モデル作成部１０２−２＞
一時モデル作成部１０２−２は、平滑化パラメータp(q)と出現頻度c(wi-n+1i)とを受け取り、これらの値を用いて、言語モデル平滑化処理を施し、一時言語モデルΛ(q)を作成し（Ｓ１０２−２）、出力する。なお、平滑化パラメータp(0)はパラメータ初期設定部１０２−１の出力値であり、平滑化パラメータp(q)(ただしq>0)はパラメータ更新部１０２−５の出力値である。なお、平滑化パラメータp(q)及び出現頻度c(wi-n+1i)を用いた言語モデルの作成方法、平滑化処理については、既存のいかなる技術を用いてもよく、利用環境等に合わせて最適なものを適宜選択すればよい。
【００２８】
＜モデル評価部１０２−３＞
モデル評価部１０２−３は、一時言語モデルΛ(q)と開発用テキストデータtexDとを受け取り、開発用テキストデータtexDに対して、一時言語モデルΛ(q)の評価を行い（Ｓ１０２−３）、評価結果R(q)を出力する。評価尺度は言語モデルの評価尺度として用いられるエントロピーやパープレキシティが考えられる。なお、評価方法については、既存のいかなる技術を用いてもよく、利用環境等に合わせて最適なものを適宜選択すればよい。評価時に学習用テキストデータtexLではなく開発用テキストデータtexDを用いることで、過学習等を防ぎ、より適切な平滑化パラメータを求めることができる。
【００２９】
＜収束判定部１０２−４＞
収束判定部１０２−４は、評価結果R(q)を受け取り、評価結果R(q)が収束したか否かを判定する（Ｓ１０２−４）。例えば、(1)繰り返し回数qが所定の回数以上となったときに評価結果R(q)が収束したと判定する。また、例えば、(2)評価結果R(q)が一定の所に収束した場合（例えば、１つ前の評価結果R(q-1)と評価結果R(q)との差分が所定の閾値以下となった場合）、評価結果R(q)が収束したと判定する。また、例えば、(3-1)上述の繰り返し回数qが所定の回数以上となったとき、かつ／または、(3-2)評価結果R(q)が一定の所に収束したとき、評価結果R(q)が収束したと判定する。
【００３０】
収束判定部１０２−４は、評価結果が収束していないと判断した場合には、パラメータ更新部１０２−５に対して評価結果R(q)に基づいて平滑化パラメータp(q)を更新するように制御信号と評価結果R(q)とを出力する。評価結果が収束したと判断した場合には、パラメータ更新部１０２−５に対してその評価結果R(q)が得られたときの平滑化パラメータp(q)を出力するように制御信号を出力する。
【００３１】
＜パラメータ更新部１０２−５＞
パラメータ更新部１０２−５は、評価結果が収束していないと判断された場合は制御信号と評価結果R(q)とを受け取り、評価結果が収束したと判断された場合は制御信号を受け取る。パラメータ更新部１０２−５は、制御信号に従って、(1)評価結果R(q)に基づき平滑化パラメータp(q)を更新（Ｓ１０２−５）し、更新した平滑化パラメータp(q+1)を一時モデル作成部１０２−２に出力するか、または、(2)制御信号を受け取ったときの平滑化パラメータp(q)を評価値が最適値となったときの平滑化パラメータpとして遷移確率計算部１０３に出力する。なお、評価結果に基づきパラメータを更新する方法については、既存のいかなる技術(焼きなまし法、遺伝的アルゴリズムや進化的戦略等の組み合わせ最適化手法)を用いてもよく、利用環境等に合わせて最適なものを適宜選択すればよい。
【００３２】
＜遷移確率計算部１０３＞
遷移確率計算部１０３は、平滑化パラメータpと出現頻度c(wi-n+1i)とを入力とし、平滑化パラメータpを用いて、実際の平滑化パラメータに代入し、言語モデル全体の遷移確率を計算し（Ｓ１０３）、計算の結果得られる言語モデルΛを言語モデル構築装置１００の出力値として出力する。なお、言語モデルΛを図示しない記憶部等に格納(出力)しておき、利用時に取り出す構成としてもよい。
【００３３】
＜効果＞
以上の構成により、言語モデルの性能改善が可能となる。
【００３４】
＜変形例＞
なお、本実施形態では平滑化アルゴリズムの例としてModified Kneser-Ney を挙げて説明したが、ここで示した処理は他の平滑化アルゴリズムにおいても、単純な統計量で決定される平滑化パラメータがあれば、それを最適な値を決定するのに適用可能な手法である。
【００３５】
収束判定部１０２−４は、評価結果R(q)が収束したと判断した場合には、一時モデル作成部１０２−２に対して、その評価結果R(q)が得られたときの一時言語モデルΛ(q)を、言語モデル構築装置１００の出力値である言語モデルΛとして出力するように制御信号を出力してもよい。この場合、一時モデル作成部１０２−２は、制御信号に従って、一時言語モデルΛ(q)を言語モデルΛとして出力する。このような構成の場合、改めて言語モデル全体の遷移確率を計算する必要がないため、言語モデル構築装置１００は、遷移確率計算部１０３を備えなくともよい。本実施形態の場合も、この変形例の場合も、評価値が最適値となったときの平滑化パラメータと前記出現頻度とを用いて言語モデルを作成していると言える。
【００３６】
言語モデル構築装置は、音声認識装置と同一の装置内に構成してもよいし、別装置として構成してもよい。言語モデル構築装置を音声認識装置と同一の装置内に構成した場合、言語モデル構築装置は、同一の装置内の音声認識装置や記憶部に言語モデルΛを出力しておき、音声認識時や音声認識装置を構築する際に利用すればよい。
【００３７】
＜その他の変形例＞
本発明は上記の実施形態及び変形例に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
【００３８】
＜プログラム及び記録媒体＞
また、上記の実施形態及び変形例で説明した各装置における各種の処理機能をコンピュータによって実現してもよい。その場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
【００３９】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【００４０】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させてもよい。
【００４１】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶部に格納する。そして、処理の実行時、このコンピュータは、自己の記憶部に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実施形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよい。さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、プログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００４２】
また、コンピュータ上で所定のプログラムを実行させることにより、各装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【図１】
2018124797.tif 000003
【図２】
2018124797.tif 000004
【図３】
2018124797.tif 000005
【図４】
2018124797.tif 000006