JP5199901B2 - 言語モデル作成方法、言語モデル作成装置および言語モデル作成プログラム - Google Patents

言語モデル作成方法、言語モデル作成装置および言語モデル作成プログラム Download PDF

Info

Publication number
JP5199901B2
JP5199901B2 JP2009010931A JP2009010931A JP5199901B2 JP 5199901 B2 JP5199901 B2 JP 5199901B2 JP 2009010931 A JP2009010931 A JP 2009010931A JP 2009010931 A JP2009010931 A JP 2009010931A JP 5199901 B2 JP5199901 B2 JP 5199901B2
Authority
JP
Japan
Prior art keywords
character string
language model
sentence
word
probability
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009010931A
Other languages
English (en)
Other versions
JP2010170252A (ja
Inventor
大地 持橋
武士 山田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2009010931A priority Critical patent/JP5199901B2/ja
Publication of JP2010170252A publication Critical patent/JP2010170252A/ja
Application granted granted Critical
Publication of JP5199901B2 publication Critical patent/JP5199901B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Machine Translation (AREA)

Description

本発明は、任意の自然言語における文字列または一般の離散的記号の時系列(例えば、DNA(Deoxyribo Nucleic Acid)配列やビット列等)が与えられたとき、それを単語または同等の単位に分割する情報処理技術に関する。
自然言語処理において、文の文字列を単語に分割することは、最も基本的かつ重要な処理である。特に、言語モデル(文において、ある単語の次にどのような単語が来るかを推測するためのモデル)を作成する際に、この単語分割の問題は非常に重要である。日本語や中国語等の言語では、分かち書き(単語の区切り目に空白を挟んで記述すること)が行われないので、単語分割が不可欠である。また、西欧語のように、分かち書きを行う言語の場合も「hot dog」や「with respect to」等の名詞や慣用句、「the united states of america」のような固有名詞は、本来1つの単語として見なすべきである。よって、このような言語においても単語分割の問題は重要である。
従来、このような単語分割を行うためには形態素解析器が用いられていた。この形態素解析器は、予め人手で分割された学習データおよび単語辞書等の教師データの利用を前提としていた。この教師データの構築、精度の保証、メンテナンスには多大なコストがかかり、また、単語分割の基準も曖昧で、本質的に主観的なものにならざるを得ない。さらに、これらの教師データは未知の言語や、話し言葉のように文法や、単語境界が明らかでない言語や、古文等については作成することが困難である。また、この教師データは、人手で単語分割した新聞記事等をもとに作成されており、新聞記事として掲載される可能性の低い内容に関する文については、高精度な単語分割は困難である。このような問題は、中国語や、英語等、日本語以外の言語でも同様に存在する。
このような問題を解決するため、教師データを必要としない単語分割技術が研究されている(非特許文献1,2参照)。また、近年、英語の単語分割について、ベイズ学習を用いる方法も提案されている(非特許文献3参照)。
松原勇介他、「最小記述長原理に基づいた日本語話し言葉の単語分割」、言語処理学会、言語処理学会第13回年次大会発表論文集、2007年 永田昌明、「単語出現頻度の期待値に基づくテキストからの語彙獲得」、情報処理学会、情報処理学会論文誌、40(9):3373-3386,1999年 Sharon Goldwater, Thomas L. Griffiths, Mark Johnson、「Contextual Dependencies in Unsupervised Word Segmentation」、p.673-680、ACL/COLING、2006
しかし、非特許文献1,2に記載の技術において、単語分割は、発見的な基準に基づくものであり、また、最初に教師データを必要するという問題があった。また、この非特許文献1,2に記載の技術は、推論の際に、最尤推定に基づくEM(Expectation Maximization)アルゴリズムが使われており、局所解に陥りやすいという問題があった。例えば、文中に登場する「東京都」という文字列について、「東京都」を単語とする解と、「東京」を単語とする解の両方の解があってよいような場合に、最尤推定に基づくEMアルゴリズムによれば、「東京都」を単語とする解しか出力されない場合もあるという問題があった。また、非特許文献3に記載の技術は、単語として分割する位置を一文字一文字変えていくため、莫大な計算量を要するという問題があった。また、単語分割のためには、アニーリング(大域的最適解を求めること)等、正解に近い結果を得るような工夫が必要であり、そのやり方によっては計算結果が大きく異なる可能性もある。
そこで、本発明は、前記した課題を解決し、教師データを用いずとも、精度の高い言語モデルの作成と単語分割とを効率的に行えるようにすることを目的とする。
前記した課題を解決するため、請求項1に記載の発明は、文を構成する文字列を単語ごとに分割し、単語列データに対し単語列確率を与えるための単語nグラムモデルと、単語nグラムモデルを構成する単語の文字列データそれぞれに文字列確率を与えるための文字nグラムモデルとを含む言語モデルを作成する、単語nグラムモデルにおける文全体を1つの単語とみなした初期状態の言語モデルが記憶部に記憶された言語モデル作成装置が、学習データである複数の文の入力を受け付けるステップと、入力された複数の文から処理対象の文を選択する処理対象文選択ステップと、言語モデルを参照して、以下の式(1)により、選択した文における1番目からt番目までの文字列S 1:t において、t文字の文字列の末尾k文字が1単語として生成される確率α[t][k]をt=1〜Nについて実行した結果を示した確率テーブルを作成し、記憶部に記憶するForwardパス実行ステップ、および、
Figure 0005199901
確率テーブルを参照して、選択した文の文末に続く単語の文字数の確率を読み出し、この読み出した確率に基づき、選択した文の文末の単語候補の文字数kを選択した後、(1)確率テーブルを参照して、選択した文字数kの単語候補に続く単語候補の文字数の確率を読み出し、(2)この読み出した確率に基づき、選択した文字数kの単語候補に続く単語候補の文字数k´を選択する処理を、選択した文の先頭に来るまで繰り返す確率的Backwardパス実行ステップ、を実行することにより、選択した文の文字列分割パターンを選択する文字列分割パターン選択ステップと、記憶部に記憶されている言語モデルから選択した文に対する文字列分割パターンを削除し、選択した文字列分割パターンを新たにその言語モデルに与えることにより言語モデルを更新するステップとを実行し、選択した文字列分割パターンを用いて、言語モデルを更新するステップを入力された複数の文すべてについて実行することを繰り返した後、文字列分割パターン選択ステップで得られた選択した文に対する選択した文字列分割パターンでの分割結果の尤度が所定の値を超えてない場合、もしくは、言語モデルを更新するステップを入力された複数の文すべてについて実行した回数が所定回数よりも少ない場合には、処理対象文選択ステップからの処理を繰り返し、分割結果の尤度が所定の値を超えていた場合、もしくは、言語モデルを更新するステップを入力された複数の文すべてについて実行した回数が所定回数以上の場合には、最終的に更新した言語モデルを出力することを特徴とする言語モデル作成方法とした。
請求項に記載の発明は、文を構成する文字列を単語ごとに分割し、単語列データに対し単語列確率を与えるための単語nグラムモデルと、単語nグラムモデルを構成する単語の文字列データそれぞれに文字列確率を与えるための文字nグラムモデルとを含む言語モデルを作成する、単語nグラムモデルにおける文全体を1つの単語とみなした初期状態の言語モデルが記憶部に記憶された言語モデル作成装置であって、学習データである複数の文の入力を受け付ける入力部と、入力された複数の文から処理対象の文を選択する文選択部と、言語モデルを参照して、以下の式(1)により、選択した文における1番目からt番目までの文字列S 1:t において、t文字の文字列の末尾k文字が1単語として生成される確率α[t][k]をt=1〜Nについて実行した結果を示した確率テーブルを作成し、記憶部に記憶する確率計算部と、
Figure 0005199901
確率テーブルを参照して、選択した文の文末に続く単語の文字数の確率を読み出し、この読み出した確率に基づき、選択した文の文末の単語候補の文字数kを選択した後、(1)確率テーブルを参照して、選択した文字数kの単語候補に続く単語候補の文字数の確率を読み出し、(2)この読み出した確率に基づき、選択した文字数kの単語候補に続く単語候補の文字数k´を選択する処理を、選択した文の先頭に来るまで繰り返すことにより、選択した文の文字列分割パターンを選択する文字列分割パターン選択部と、記憶部に記憶されている言語モデルから選択した文に対する文字列分割パターンを削除し、選択した文字列分割パターンを新たにその言語モデルに与えることにより言語モデルを更新する言語モデル更新部と、言語モデル更新部が、選択した文字列分割パターンを用いて、言語モデルを更新する処理を入力された複数の文すべてについて実行することを繰り返した後、選択した文に対する選択した文字列分割パターンでの分割結果の尤度が所定の値を超えているか否か、もしくは、言語モデルを更新する処理が入力された複数の文すべてについて実行した回数が所定回数以上であるか否かを判定する収束判定部と、更新した言語モデルを出力する出力処理部とを備え、収束判定部が、分割結果の尤度が所定の値を超えてない、もしくは、言語モデルを更新する処理を入力された複数の文すべてについて実行した回数が所定回数よりも少ないと判定した場合に、分割結果が収束していないとして、文選択部、確率計算部および文字列分割パターン選択部が各処理を再度実行した上で、収束判定部による判定を実行し、収束判定部が、分割結果の尤度が所定の値を超えている、もしくは、言語モデルを更新する処理を入力された複数の文すべてについて実行した回数が所定回数以上であると判定した場合に、分割結果が収束したとして、出力処理部、言語モデル更新部により最終的に更新された言語モデルを出力することを特徴とする。
このようにすることで、言語モデル作成装置は、教師データを用いずとも、文の単語分割と言語モデルの作成とを行うことができる。また、このとき、言語モデル作成装置は、言語モデルを参照して、計算した文字列分割パターンごとに、選択した文が、その文字列分割パターンに該当する確率を計算しておく。そして、その計算した確率に従い、文字列分割パターン群の中から、文字列分割パターンを選択する(文字列分割サンプリング処理を実行する)。例えば、選択した文が文字列分割パターンAにあてはまる確率が0.5であり、文字列分割パターンBにあてはまる確率が0.3であり、文字列分割パターンCにあてはまる確率が0.2であるとき、文字列分割パターンA,B,Cそれぞれを選択する確率を5:3:2として選択する。そして、その選択した文字列分割パターンに基づき、言語モデルを更新する。このように確率的に文字列分割パターンを選択する処理を行うことで、文字列分割の結果が、局所解に陥ることがなくなる。また、文字列分割サンプリング処理を実行するたび、その処理結果を用いて言語モデルを更新する処理を繰り返すので、精度の高い言語モデルを効率よく作成できる。
また、このように言語モデル作成装置が、Forwardパスにより作成しておいた確率テーブルを用いて、確率的Backwardパスを実行することで、前後複数の単語同士の関係を考慮して単語分割を推定できる。つまり、より精度の高い単語分割の推定を行うことができる。また、言語モデル作成装置がBackwardパスを実行し、文字数k(k´)の単語候補に続く単語候補の文字数を、確率テーブルを用いて、確率的に選択するので、単語分割が局所解に陥ることを防止できる。
請求項2に記載の発明は、請求項1に記載の言語モデル作成方法において、言語モデル作成装置が、最終的に更新した言語モデルを用いて、学習データとして入力された文それぞれについて、ビタビアルゴリズムにより、その文字列分割の確率を最大にする単語分割を計算し、出力することを特徴とする。
このようにすることで、言語モデル作成装置は、最終的に更新した言語モデル、つまり最適化された言語モデルを用いて、単語分割を行うので、精度の高い単語分割を行うことができる。
請求項に記載の発明は、請求項1または請求項2に記載の言語モデル作成方法において、言語モデル作成装置が、文字列分割パターン選択ステップの替わりに、Particle MCMC(Markov Chain Monte Carlo)法により、言語モデルを参照して、選択した文の文頭から順に文末まで、単語候補wの後に続く単語候補の文字数kを確率的に選択する処理を、当該選択した文それぞれについて所定数ずつ実行することにより、当該選択した文1つあたり、所定数の文字列分割パターン群を作成する文字列分割パターン作成ステップと、作成した文字列分割パターン群の文字列分割パターンそれぞれの確率の平均値Z(S)を計算するステップと、今回作成した文字列分割パターン群の文字列分割パターンそれぞれの確率の平均値Z(S)と、過去に作成した文字列分割パターン群の文字列分割パターンそれぞれの確率の平均値Z^(S)とを比較して、Z(S)の値がZ^(S)の値よりも大きかったとき、今回作成した文字列パターン群の文字列分割パターンそれぞれの確率に従い、この文字列分割パターン群の中から文字列分割パターンを選択し、Z(S)の値を、Z^(S)として置き換えて記憶部に記憶した後、文字列分割パターン作成ステップに戻るステップと、Z(S)とZ^(S)とを比較して、Z(S)の値がZ^(S)の値以下だったとき、ベルヌーイ試行によりZ(S)/Z^(S)の確率で、今回作成した文字列分割パターン群を選択するか否かを決定し、(1)今回作成した文字列パターン群を選択すると決定した場合、この文字列分割パターン群の文字列分割パターンそれぞれの確率に従い、この文字列分割パターン群の中から文字列分割パターンを選択し、(2)ベルヌーイ試行の結果、今回作成した文字列分割パターン群を選択しないと決定した場合、そのまま処理を終了するステップと、を実行することにより、選択した文の文字列分割パターンを選択する第2の文字列分割パターン選択ステップを実行することを特徴とする。
このようにすることで、言語モデル作成装置は、言語モデルを参照して、選択した文の文頭から順に単語候補の文字数を確率的に選択して文字列分割パターンを作成するので、文字列分割パターン作成のための計算量を低減できる。また、言語モデル作成装置は、文字列分割パターンを作成するとき、その文字列分割パターンの確率についても、計算できるので、文字列分割パターンのサンプリングを効率的に行うことができる。ここで、言語モデル作成装置は、今回作成した文字列分割パターン群の確率の平均値(Z(S))と、前回作成した文字列分割パターン群の確率の平均値(Z^(S))とを比較し、今回作成した文字列分割パターン群の確率の平均値(Z(S))が前回作成した文字列分割パターン群の確率の平均値(Z^(S))よりも高い値であることを確認した上で、この今回作成した文字列分割パターン群の方を用いてサンプリングを行う。このようにすることで、言語モデル作成装置は、今回作成した所定数(J個)の文字列分割パターン群が、たまたま確率の低い文字列分割パターン群であった場合に、その文字列分割パターン群をサンプリングの対象にしないようにできる。なお、Z(S)がZ^(S)以下だった場合は、言語モデル作成装置は、ベルヌーイ試行によりZ(S)/Z^(S)の確率で、今回作成した文字列分割パターン群を選択するか否かを決定する。このようにすることで、言語モデル作成装置は、サンプリングに用いる文字列分割パターン群を真の分布に近いものとすることができる。
請求項に記載の発明は、コンピュータを請求項に記載の言語モデル作成装置として機能させるための言語モデル作成プログラムとした。
このようなプログラムによれば、一般的なコンピュータを請求項に記載の言語モデル作成装置として機能させることができる。
本発明によれば、教師データを用いずとも、精度の高い言語モデルの作成と単語分割とを実現できる。また、教師データを用いる必要がないので、任意の言語および離散記号列の言語モデルの作成と単語分割とを実現できる。
各実施の形態における言語モデルを模式的に示した図である。 各実施の形態の言語モデル作成装置の処理手順の概要を示したフローチャートである。 図3は、第1の実施の形態の言語モデル作成装置の構成を示したブロック図である。 図3の言語モデル作成装置による文字列分割サンプリング処理の詳細を示したフローチャートである。 図3の確率テーブルを例示した図である。 図3の言語モデル作成装置におけるα[t][k]の計算処理を概念的に説明した図である。 図3の言語モデル作成装置における分割サンプリング処理を概念的に説明した図である。 第2の実施の形態の言語モデル作成装置におけるサンプリング処理を概念的に説明した図である。 第2の実施の形態の言語モデル作成装置の構成を示したブロック図である。 図9の言語モデル作成装置の処理手順を示したフローチャートである。 図10のS306およびS307の処理の詳細を示したフローチャートである。
以下、本発明を実施するための形態を、第1の実施の形態および第2の実施の形態に分けて説明する。まず、第1の実施の形態の言語モデル作成装置および第2の実施の形態の言語モデル作成装置に共通する部分を、図1および図2を用いて説明する。以下、概要を説明すると、言語モデル作成装置は、まず、文字列データに格納された複数の文をランダムな順に選択し、言語モデルを用いて、この選択した文における単語の区切り目の候補となる文字列を示した文字列分割パターン群を作成する。また、その文がその文字列分割パターン群の文字列分割パターンに該当する確率を記憶部に記録しておき、この確率に従って、文字列分割パターン群の中から、文字列分割パターンを選択する。そして、この選択した文字列分割パターンを用いて言語モデルを更新する。このような処理を、文字列データに格納された複数の文すべてについて実行することを繰り返し、言語モデルを最適化する。そして、言語モデル作成装置は、このようにして最適化された言語モデルを用いて、文の最尤単語分割を実行する。
ここで、言語モデル作成装置における単語分割(統計的単語分割)は、文を構成する文字列S=s…sを分割した単語列W=w…wの確率P(W|S)が最大になる分割W^を求めることにより行われる。すなわち、W^は以下の式(2)により表される。
Figure 0005199901
例えば、文Sの文字列=「彼女の言った話は…」の単語分割として、W=「彼女|の|言った|話|は|…」、W=「彼|女の言|っ|た話|は|…」等が考えられる。しかし、学習データとして読み込まれた様々な文を調べることで、P(W|S)>P(W|S)であることが分かる。つまり、学習データとして読み込まれた多数の文の文字列の並びを統計解析することで、「彼」と「女」が切れる確率よりも、「彼女」というひとかたまりの文字列として登場する確率が高く、「女の言」というひとかたまりの文字列として登場する確率よりも「女」は「彼女」という文字列に含まれる確率が高く、また、「の」は助詞として、いったん切れ、「言」は「言った」という文字列に含まれる確率が高いことが確認できる。このように学習データをもとに、確率が最大になるW^を求めることが単語分割の問題である。
ここで各実施の形態の言語モデル作成装置の扱う言語モデルは、確率P(W|S)を、単語nグラム−文字nグラムとして階層化した言語モデルであるものとする。この階層化した言語モデルは、階層Pitman−Yor過程によるnグラム言語モデル(Yee Whyeteh、A Hierarchical Bayesian Language Model based on Pitman-Yor Processes. In Proc of COLING/ACL 2006, p985-992, 2006参照)を応用することにより実現可能である。図1に示すように、言語モデルは、単語列(単語列データ)に対し単語列確率を与えるための単語nグラムモデルと、その単語nグラムモデルを構成する単語の文字列データそれぞれに文字列確率を与えるための文字nグラムモデルとを含んで構成される。このように、言語モデルを、単語に関する単語nグラムモデルと、その単語nグラムモデルを構成する単語の文字列データそれぞれに対する文字nグラムモデルとの2つの階層からなるものとすることで、この言語モデルを用いた単語分割の推測精度を向上させることができる。
ここで、言語モデル作成装置は、図2に示す手順により、MCMC(Markov Chain Monte Carlo、マルコフ連鎖モンテカルロ)法によって、P(W|S)を最大化する分割Wを計算し、言語モデルの最適化を行う。
まず、言語モデル作成装置は、文字列データ131から学習データである複数の文(まだ、単語分割されてない文)の読み込みを行う(S101)。
次に、言語モデル作成装置は、言語モデル132を参照して、文字列分割サンプリング処理を行う(S102)。この文字列分割サンプリング処理の詳細は後記するが、言語モデル作成装置が選択した文について、その文における単語の区切り目の候補を示した文字列分割パターンを所定数作成する。そして、この作成した文字列分割パターンそれぞれについて、選択した文が、その文字列分割パターンに該当する確率を計算する。そして、言語モデル作成装置は、その計算した確率に従い、文字列分割パターン群の中から、その文の文字列分割パターンを選択する。
次に、言語モデル作成装置は、S102で各文の文字列分割パターンが選択されるたびに(つまり、各文が分割されるたびに)、その分割結果(文字列分割パターン)を用いて言語モデル132を更新する(S103)。なお、初期状態において言語モデル132は、まだ単語が未学習の状態であるため、言語モデル作成装置は、言語モデル132の単語nグラムモデルにおける文全体を1つの単語としてみなす。そして、その単語(ここでは文全体)の中身が文字nグラムモデルによって解析し、その解析結果をもとに言語モデル132を更新するものとする。ここでの言語モデルの更新は、言語モデル132が与えた、以前のその文の文字列分割パターン(最初は、文全体が1つの単語であるような文字列分割パターン)によるデータを、言語モデル132から削除し、新たな文字列分割パターンを言語モデル132に与えることにより行われる。なお、言語モデル作成装置は、この言語モデル132の更新において、単語モデルにひもづく文字モデル(図1参照)も併せて更新する。
ここで、言語モデル作成装置は、すべての文の文字列の分割が完了したか否かを確認し(S104)、まだ分割していない文があれば(S104のNo)、S102へ戻る。一方、すべての文の文字列の分割が完了していれば(S104のYes)、言語モデル作成装置は文字列の分割の収束判定を行う(S105)。ここでの収束判定は、例えば、S102で行った文字列サンプリング処理により得られた文字列の分割結果の尤度が所定の閾値を超えたことをもって、文字列の分割結果が収束したと判定してもよいし、S102〜S104までの処理を所定回数繰り返し実行したことをもって収束したと判定してもよい。
このS105において、言語モデル作成装置が、各文の文字列の分割が収束したと判定したとき(S105のYes)、言語モデル作成装置は、言語モデル132が最適化されたと判定し、最終的に更新された言語モデル132に基づき、ビタビアルゴリズムにより、最尤単語分割の計算を行う(S106)。つまり、言語モデル作成装置は、最適化された言語モデル132に基づき、P(W|S)を最大化する分割Wを計算する。そして、その計算結果(単語分割W)を出力する。また、言語モデル作成装置は、この最適化された言語モデル132を出力する(S107)。一方、S105において、文字列の分割がまだ収束していないと判定したとき(S105のNo)、S102へ戻る。
以上のように、言語モデル作成装置は、学習用データである複数の文それぞれに対し、文字列分割サンプリング処理を実行し、その結果を用いて言語モデル132を更新するので、効率よく、言語モデル132を最適化できる。また、このように最適化された言語モデル132を用いて、単語分割を行うので精度の高い単語分割結果を得ることができる。なお、図2のS102の文字列分割サンプリング処理において、複数の文それぞれについて、この文における単語の区切り目の候補を示した文字列分割パターンを作成する。ここで処理対象の文が、この作成した文字列分割パターンに該当する確率を記憶部の所定領域に記録しておき、その確率をもとに、この処理対象の文の文字列分割パターンを選択する。つまり、言語モデル作成装置は、その文に該当する文字列分割パターンについて確率的なサンプリングを行う。よって、サンプリングの結果が局所解に陥ることがなくなる。つまり、前記した例でいうと、文Sに登場する「東京都」という文字列について、「東京都」を1つの単語とする確率Aと、「東京」を1つの単語とする確率Bとに基づき、確率的に「東京都」を1つの単語とするという解、または「東京」を1つの単語とするという解を選択する。よって、従来、確率Aの方が、確率Bよりも高い値であれば、「東京都」を1つの単語とするという解しか選択されず、局所解に陥っていたが、この言語モデル作成装置によれば、「東京」を1つの単語とするという解も選択される可能性がある。つまり、サンプリングの結果が局所解に陥ることがなくなる。また、言語モデル作成装置は、教師データを用いないので、様々な言語データ、例えば、未知の言語、話し言葉、古文、口語等の単語分割および言語モデルの作成を実現できる。
<第1の実施の形態>
次に、第1の実施の形態の言語モデル作成装置10を説明する。第1の実施の形態の言語モデル作成装置10は、前記した図2のS102において、隠れマルコフモデルのForward Fitering-Backward Sampling法(Steven L. Scott .Bayesian Methods for Hidden Markov Models Journal of the American Statistical Association,97:337-351,2007参照)を用いたサンプリングを行うことを特徴とする。ここで、言語モデル作成装置10は、Backward Sampling(Backwardパス)を確率的に行うことで、サンプリングの結果が局所解に陥らないようしている。
図3に示すように、言語モデル作成装置10の機能は、大きく、入出力部11、処理部12および記憶部13に分けられる。入出力部11は、この学習データである文字列データの入力を受け付けたり、文の分割結果、最適化された言語モデル132等を出力したりする。処理部12は、言語モデル作成装置10全体の制御を司り、ここでは、主に各文の文字列分割パターンの作成や、その文字列分割パターンの確率を用いて選択した文字列分割パターンを用いて言語モデルの更新を行う。記憶部13は、文字列分割パターンの作成や、言語モデル132の更新に必要な各種データを記憶する。
入出力部11は、入出力インタフェースから構成される。また、処理部12は、この言語モデル作成装置10が備えるCPU(Central Processing Unit)による、実行処理や、専用回路等により実現される。さらに、記憶部13は、RAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリ等の記憶媒体から構成される。なお、言語モデル作成装置10をプログラム実行処理により実現する場合、記憶部13には、この言語モデル作成装置10の機能を実現するためのプログラムが格納される。
処理部12は、パラメータ読み込み部120、文選択部121、文字列分割パターン作成部122、確率計算部123、文字列分割パターン選択部124、言語モデル更新部125、収束判定部126、最尤単語分割計算部127および出力処理部128を含んで構成される。
パラメータ読み込み部120は、言語モデル132の各種パラメータを読み込む。
文選択部121は、文字列データ131として格納される複数の文から、文を選択する。このときの文の選択順はランダムな順とする。
文字列分割パターン作成部122は、文選択部121により選択された文について、言語モデル132を参照して、この文における単語の区切り目の候補を示した文字列分割パターンを所定数作成する。
確率計算部123は、文字列分割パターン作成部122により作成された文字列分割パターンそれぞれについて、選択した文が、その文字列分割パターンに該当する確率を計算する。計算した確率については、確率テーブル133に記憶しておく。このときの確率計算の詳細は、フローチャートを用いて後記する。
文字列分割パターン選択部124は、文字列分割パターン作成部122により作成された文字列分割パターンそれぞれについて、現在の言語モデルを参照して、確率計算部123により計算された確率に従い、この作成した文字列分割パターンの中から文字列分割パターンを選択する。すなわち、文字列分割パターン選択部124は、同じ文に関する複数の文字列分割パターン群の中から、この確率テーブル133に示される確率が高い文字列分割パターンほど高い確率で、その文字列分割パターンを選択する。このように、文字列分割パターン選択部124が、確率的に文字列分割パターンの選択を行うことで、文字列分割の結果が局所解に陥ることがなくなる。
言語モデル更新部125は、文字列分割パターン選択部124により選択された文字列分割パターン(文字列分割結果)に基づき、言語モデル132の更新を行う。なお、更新された言語モデル132は、文字列データ131の他の文の文字列分割において参照される。
収束判定部126は、文字列分割結果の収束判定を行う。例えば、収束判定部126は、図2のS102〜S104までの処理を所定回数繰り返し実行したときに、文字列分割結果が収束したとみなす。
最尤単語分割計算部127は、言語モデル更新部125により最終的に更新された言語モデル132に基づき、文字列データ131に格納される各文ごとに、ビタビアルゴリズムにより、P(W|S)を最大化する分割Wを計算する。
出力処理部128は、言語モデル更新部125により更新された言語モデル132や、最尤単語分割計算部127により計算された各文ごとのP(W|S)を最大化する分割Wの計算結果を、入出力部11経由で外部装置等に出力する。
記憶部13は、文字列データ131、言語モデル132および確率テーブル133を記憶する。
文字列データ131は、この言語モデル作成装置10の学習データである複数の文である。この文は、入出力部11経由で入力される。
言語モデル132は、単語列(単語列データ)に対し単語列確率を与えるための言語モデルであり、単語nグラムモデルと、その単語nグラムモデルの単語の文字列データそれぞれの文字列確率を与えるための文字nグラムモデルとを含んで構成される(図1参照)。この言語モデル132は、初期状態においては、まだ単語が未学習の状態であるため、単語nグラムモデルにおける文全体を1つの単語としてみなすような言語モデルとなっている。その後、言語モデル更新部125が、文それぞれの文字列分割サンプリング処理の結果をもとに言語モデル132の更新をすることで、より精度の高い単語分割を行えるような言語モデルへ更新されていく。
確率テーブル133は、文選択部121により選択された文についての文字列分割パターンごとに、その文字列分割パターンの確率を示した情報である。この確率テーブル133は、図5に例示するように、文字列データ131として格納される文S(S、S、…、S)ごとに作成される。そして、その文Sの文頭から文末までの文字列の長さtごとに、その文の末尾k文字が単語を構成する文字列分割パターンとなる確率α[t][k]を示したものである。この確率テーブル133に示される確率は、文字列分割パターン選択部124が、各文ごとに、この文の文字列分割パターンを選択するときに参照される。
次に、このような言語モデル作成装置10による文字列分割サンプリング処理(図2のS102)を、図4を用いて説明する。なお、言語モデル作成装置10の全体の処理の流れは図2に示したとおりであるので省略する。ここでの文字列分割サンプリング処理は、確率テーブル計算処理により確率テーブル133を作成する(Forwardパス)と、この作成した確率テーブル133を参照した、分割サンプリング処理(Backwardパス)とに分けられる。
図4に示すように、まず図3の言語モデル作成装置10のパラメータ読み込み部120は、現在の言語モデル132から、この言語モデル132のパラメータを読み込む(S201)。
そして、言語モデル作成装置10は、確率テーブル計算処理を実行する(S202)。すなわち、まず、言語モデル作成装置10の文選択部121は、図2のS101で読み込まれた複数の文の中から、ランダムに文を選択する。そして、文字列分割パターン作成部122は、この選択された文に対し、パラメータ読み込み部120により読み込まれた言語モデル132のパラメータを用いて、文字列分割パターンを作成する。そして、確率計算部123は、その文字列分割パターンごとに確率(α[t][k])を計算し、確率テーブル133に記録していく。このときのForwardパス(確率テーブル133の作成)は、以下のようになる。
前記した図2のS102で選択された文Sについて、その文Sの文字数をN文字とする。このN文字の文Sのt文字目までの文字列(s1:t)において、このt文字目までのk文字(1≦k≦t)の文字列が単語として生成された確率を、α[t][k]とする。ここで、k文字より前の単語境界すべてについて周辺化されているので、このα[t][k]は、以下の式(1)により計算される。
Figure 0005199901
図4の説明に戻る。このようにして、確率計算部123が確率テーブル133を作成すると、文字列分割パターン選択部124は、分割サンプリング処理を行う(S203)。つまり、文字列分割パターン選択部124は、確率テーブル133に示される文Sの確率(α[t][k])の値を参照して、文Sの末尾側からの単語分割Wを確率的にサンプリングする。つまり、前記したS202の処理により、文Sの末尾k文字の文字列SN-k+1:Nが1単語となる確率が確率テーブル133に記録されている。よって、文字列分割パターン選択部124は、この確率テーブル133に示される確率に従い、文末を表す特殊文字w=EOS(End Of Sentence)から、その文の文頭まで確率的にkをサンプルする。つまり、文字列分割パターン選択部124は、まず、確率テーブル133に示される文Sのw=EOSに続く確率P(w=EOS|sN-k+1:N)・α[N][k]に比例してkを確率的にサンプリングする。例えば、EOSに続く確率P(w=EOS|SN-k+1:N)・α[N][k]に基づき、図7の符号701,702,703,704に示す文字列それぞれからEOSに続く確率に比例して、EOSに続く文字列を選択する。このようにして、文字列分割パターン選択部124は、w=EOSに続く単語の文字列w=SN-k+1:Nを選択すると、次に、このw=sN-k+1:Nに続く単語をp(ポインタ)=N−kとおいて、前記した手順と同様の手順により、wに続く確率P(w|sp−k+1:p)・α[p][k]に従って、kを選ぶ。
図4の説明に戻る。文字列分割パターン選択部124は、以上のような処理を文Sの文字列すべてを使い切るまで、つまり、p(ポインタ)が文Sの文頭に来るまで実行する。ここで、まだp(ポインタ)が文Sの文頭に来ていないとき(S204のNo)、S203に戻る。一方、p(ポインタ)が文Sの文頭に来たとき(S204のYes)、文字列分割パターン選択部124は、この文字列の分割(文字列分割パターン)を出力し(S205)、文字列分割サンプリング処理を終了する。
文字列分割パターン選択部124は、具体的には、以下の処理を行う。
=EOS、p=N、i=0とする。但し、p:ポインタ、i:インデクスである。
以下の式(3)に従って、文末からの文字列kをサンプリングする。
P(k)∝P(w|sp-k+1:p,Θ)・α[p][k]…式(3)
但し、1≦k≦pとする。
次に、w=sp-k+1:p、p=p−k、i=i+1に更新する。ここで、p>0ならば、再度、文末側から文字列kをサンプリングする。そうでなければ終了する。つまり、pが文Sの文頭に来た段階で、W=wi−2…wが得られている。この後、図2のS103へ進み、言語モデル更新部125は、言語モデル132を更新する。
このようにすることで、言語モデル作成装置10は、教師データを用いることなく、精度の高い言語モデルの作成および単語分割を行うことができる。また、言語モデル作成装置10は、動的計画法により単語分割のサンプリングを行うので、効率よく単語分割の推測を行うことができる。
<第2の実施の形態>
次に、第2の実施の形態の言語モデル作成装置10Aを説明する。言語モデル作成装置10Aは、図2のS102における文字列分割サンプリング処理において、Particle MCMC法(Arnaud Doucet, Christophe Andrieu,and Roman Holenstein .Particle Markov Chain Monte Carlo,in submission,2008参照)を用いて文字列分割のサンプリングを行うことを特徴とする。
このParticle MCMC法は、粒子と呼ばれるモンテカルロサンプルを、1つの文につき所定数(ここでは、J個)、並列にサンプリングを行う。ここでのモンテカルロサンプリングの概要を、図8を用いて説明する。
言語モデル作成装置10Aは、与えられた文Sについて、言語モデル132に基づく単語分割を、文字列先頭から文字列末まで確率的にJ通り行う。つまり、言語モデル作成装置10Aは、動的計画法によらず、J個の粒子(文字列分割パターン)を並列に作成する。このとき、言語モデル作成装置10Aは、このJ通りの文字列分割パターンW(j)を作成するとともに、その確率P(W(j)|S)を得ることができる。この後、言語モデル作成装置10Aは、このP(W(j)|S)に基づいた文Sの分割について、W(1)(2)…W(J)(粒子#1〜#J)の中から、確率P(W(1)|S)P(W(2)|S)…P(W(J)|S)に比例してランダムに選択すればよい。
但し、このJ通りの文字列分割パターンが、目的とする確率分布P(W|S)からの正しいサンプル群でない可能性もある。つまり、言語モデル作成装置10Aが、たまたま確率P(W(j)|S)の低い文字列分割パターン群を作成している可能性もある。そこで、まず、言語モデル作成装置10Aは、J通りの文字列分割パターン(粒子#1〜#J)の分割確率P(W(j)|S)の平均値を以下の式(4)により計算する。
Figure 0005199901
また、言語モデル作成装置10Aは、前回作成した文字列分割パターン群と、その文字列分割パターン群の分割確率P(W(j)|S)の平均値Z^(S)とを記憶しておく。なお、言語モデル作成装置10Aが最初に文字列分割パターン群を作成するときには、文字列分割パターン群の作成を2回実行し、最初に作成した文字列分割パターン群のP(W(j)|S)の平均値Z(S)を、Z^(S)とする。
そして、言語モデル作成装置10Aは、このZ(S)とZ^(S)とを比較し、(1)Z(S)>Z^(S)であれば、今回作成した文字列分割パターン群による分割を受理する。つまり、言語モデル作成装置10Aは、今回作成した文字列分割パターン群W(1)(2)…W(J)の中から、確率P(W(1)|S)P(W(2)|S)…P(W(J)|S)に比例して、文字列分割パターンを選択し、Z^(S)をZ(S)に置き換える。
一方、(2)Z(S)≦Z^(S)であれば、言語モデル作成装置10Aは、Z(S)/Z^(S)の確率で分割を受理する。つまり、Z(S)/Z^(S)の確率でベルヌーイ試行を行い、今回作成した文字列分割パターン群を受理するか否かを決定する。ここで、今回作成した文字列分割パターン群による分割を受理すると決定したとき、前記したとおり、文字列分割パターン群W(1)(2)…W(J)の中から、文字列分割パターンを選択し、Z(S)をZ^(S)とする。一方、今回作成した文字列分割パターン群による分割を受理しないと決定したときは、そのまま処理を終了する。このようにすることで、言語モデル作成装置10Aは、正しいMCMC法となり、真の分布に近い確率で文字列分割パターンを選択できる。
このような言語モデル作成装置10Aの構成を、図9に示す。前記した実施の形態と同様の構成要素は、同じ符号を付して説明を省略する。ここで、言語モデル作成装置10Aは、図3の文字列分割パターン作成部122にかえて、文字列分割パターン作成部122Aを備える。この文字列分割パターン作成部122Aは、前記したParticle MCMC法により1つの文につき所定数(J個)のモンテカルロサンプル(文字列分割パターン)を作成する。さらに、言語モデル作成装置10Aは、図3の確率テーブル133にかえて、確率テーブル133Aを備える。この確率テーブル133Aは、Particle MCMC法により得られた各文字列分割パターンおよびその文字列分割パターンの確率を記録したものである。また、言語モデル作成装置10Aは、今回作成した文字列分割パターン群による文字列分割を受理するか否かを判定する分割受理判定部129を備える。この分割受理判定部129は、今回作成した文字列分割パターン群の分割確率P(W(j)|S)の平均値Z(S)と、前回作成した文字列分割パターン群の分割確率P(W(j)|S)の平均値Z^(S)とを比較して、Z(S)>Z^(S)であれば、今回作成した文字列分割パターン群による分割を受理する。一方、Z(S)≦Z^(S)であれば、Z(S)/Z^(S)の確率でベルヌーイ試行を行い、文字列分割パターン群による分割を受理するか否かを決定する。なお、言語モデル作成装置10Aの文字列分割パターン作成部122Aは、文字列分割パターン群の作成とともにその文字列分割パターンの確率の計算も行うので、言語モデル作成装置10の確率計算部123を含まない構成となっている。
このような言語モデル作成装置10Aによる文字列分割サンプリング処理(図2のS102)を、図10を用いて説明する。ここでも言語モデル作成装置10Aは、J通りの文字列分割パターン(粒子#1〜#J)を作成するものとする。
まず、図9の言語モデル作成装置10Aのパラメータ読み込み部120は、言語モデル132からパラメータの読み込みを行う(S301)。そして、文字列分割パターン作成部122Aは、まず、j=1をセットする(S302)。次に、文字列分割パターン作成部122Aは、S301で読み込まれた言語モデル132のパラメータに基づき、粒子jの文字列分割処理を実行する(S303)。つまり、文字列分割パターン作成部122Aは、文Sについて、文頭文字列から文末文字列まで、言語モデル132のパラメータに基づき、文字列分割を行い、粒子jである文字列分割パターンを作成する。このとき、作成した文字列分割パターンと、その確率P(W(j)|S)とを確率テーブル133Aに記録しておく。そして、jの値を1加算し(S304)、j=Jでなければ(S305のNo)、S303へ戻る。一方、j=Jであるとき(S305のYes)、つまり、文字列分割パターン作成部122AがJ通りの文字列分割パターン群(粒子)の作成を完了したとき、分割受理判定部129は、この文字列分割パターン群による分割を受理するか否かを判断する(S306)。S306の処理の詳細は、後記する。
そして、S306において、分割受理判定部129が、今回作成した文字列分割パターン群による分割を受理すると判断したとき(S306のYes)、この文字列分割パターン群の中から選択した単語分割Wを出力する(S307)。つまり、文字列分割パターン選択部124は、確率テーブル133Aに示される、今回作成した文字列分割パターン群の文字列分割パターンそれぞれの分割確率に従い、この文字列分割パターン群の中から文字列分割パターンを選択する。そして、その選択した文字列分割パターンを記憶部13に出力する。また、記憶部13に記憶されたZ^(S)を、今回作成した文字列分割パターン群のZ(S)の値に置き換える。このZ^(S)の値は、次回作成される文字列分割パターン群の確率の平均値(Z(S))との比較に用いられる。一方、S306において、分割受理判定部129が今回作成した文字列分割パターン群による分割を受理しないと判断したとき(S306のNo)、S307を実行せず、処理を終了する。この場合、分割受理判定部129は、記憶部13に記憶された、前回の文字列分割パターン群から選択した文字列分割パターン(単語分割W)を、言語モデル更新部125へ出力する。そして、言語モデル更新部125は、この出力された単語分割Wを用いて言語モデル132を更新することになる。このような処理を繰り返すことで、この言語モデル作成装置10Aは、確率の平均値がたまたま低くなってしまった文字列分割パターン群をサンプリングの対象外とし、真の分布に近い文字列分割パターン群からのサンプリングを実行できる。
次に、図11を用いて、図10のS306の分割受理の判定およびS307の単語分割の出力の詳細を説明する。まず、図9の分割受理判定部129は、前記した式(4)に基づき、文字列分割パターン群の確率P(W(j)|S)の平均値Z(S)を計算する(S401)。そして、分割受理判定部129は、記憶部13に記憶された、前回作成した文字列分割パターン群の確率P(W(j)|S)の平均値Z^(S)の計算結果を読み出す(S402)。次に、分割受理判定部129は、このZ(S)とZ^(S)とを比較し、Z(S)>Z^(S)であれば(S403のYes)、今回作成した文字列分割パターン群による分割を受理し、この文字列分割パターン群による単語分割Wを記憶部13へ出力し、また、Z^(S)=Z(S)に置き換える(S406)。
一方、S403において、Z(S)≦Z^(S)であれば(S403のNo)、分割受理判定部129は、Z(S)/Z^(S)の確率で、今回作成した文字列分割パターン群による分割を受理する(S404)。つまり、分割受理判定部129は、Z(S)/Z^(S)の確率でベルヌーイ試行を実行し、今回作成した文字列分割パターン群による分割を受理するか否かを決定する。すなわち、分割受理判定部129は、Z(S)がZ^(S)に近い値であれば、高い確率で今回の文字列分割パターン群による分割を受理し、Z(S)がZ^(S)よりもはるかに低い値であれば、それに応じて低い確率で今回作成した文字列分割パターン群による分割を受理する。ここで、分割受理判定部129が、今回作成した文字列分割パターン群による分割を受理すると決定したときには(S405のYes)、S406へ進む。一方、分割受理判定部129が、今回作成した文字列分割パターン群による分割を受理しないと決定したときは(S405のNo)、S406を実行せず、処理を終了する。
ここで、図10に示した処理を具体的に説明する。まず、図9の文字列分割パターン選択部124は、以下の処理手順でサンプリングを行う。
(1)文頭を表す特殊文字を文末と同じEOSとして、i(単語のインデックス)=0、j=1、P(W(j)|S)=1、w (j)=EOSとする(図10のS301)。
(2)次に、文Sにおいて、wに続くべき文字列の長さkを、言語モデル132の予測確率に従ってサンプリングする。すなわち、wに続くべき文字列の長さkをP(sp:p+k−1|w (j),…,w (j))に従ってサンプリングする(S303)。ここで、wに続くべき文字列の長さkは、これまでに予測が確定した単語文脈(w (j),…,w (j))すべてに依存し、着目している単語の1単語までまたは2単語までという制約は必要ない。
(3)そして、P(W(j)|S)=P(W(j)|S)・P(Sp:p+k−1|w (j),…,w (j))、w (j)=sp:p+k−1、p=p+k、i=i+1に更新する。
(4)ここで、p<N(N=文Sの文字列の長さ)ならば、(2)へ戻る。p=Nならば、文字列分割パターンが1つ完成したことになるので、j=j+1に更新する(S304)。
(5)ここで、j=Jならば文字列分割パターン(粒子)をJ通り作成したことになるので(S305のYes)、(6)へ進む。一方、j=Jでなければ(S305のNo)、つまり、文字列分割パターンをJ通り作成していなければ、(2)へ戻る。
次に、分割受理判定部129は、以下の手順により、(5)までの処理で作成した文字列分割パターン群による分割を受理するか否かを決定する(S306)。すなわち、
(6)文字列分割パターン群の確率P(W(j)|S)の平均値Z(S)について、二値変数aを、ベルヌーイ試行Bernoulli(min(1,Z(S)/Z^(S)))によりサンプリングする。なお、Z^(S)は、前記したとおり、MCMC法で前回作成した文字列分割パターン群の確率P(W(j)|S)の平均値Z(S)であり、MCMC法の最初の繰り返しでは、この値を1とする。ここで、min(1,Z(S)/Z^(S))であるので、Z(S)<Z^(S)であれば、Z(S)/Z^(S)が選択されることになる。そして、ベルヌーイ試行の結果、得られた二値変数a=0ならば、ここで処理を終了する。つまり、文字列分割パターン作成部122Aによる文字列分割パターン郡の作成は行わず、分割受理判定部129は、記憶部13に記憶された、前回の文字列分割パターン群から選択した文字列分割パターン(単語分割W)を、言語モデル更新部125へ出力する。そして、言語モデル更新部125は、この文字列分割パターン(単語分割W)により言語モデル132を更新する(図2のS103)。一方、得られた二値変数a=1ならば、今回作成した文字列分割パターン群のW(1)(2)…W(J)の中から、確率P(W(1)|S)P(W(2)|S)…P(W(J)|S)に比例して、文字列分割パターン(単語分割W)を選択し、出力する。そして、Z^(S)=Z(S)に置き換える。
このように言語モデル作成装置10Aは、Particle MCMC法によりサンプリングを行うので、言語モデル132が3グラム以上の言語モデルであっても、言語モデルの最適化のための計算量が膨大になることがない。また、この言語モデル作成装置10Aは、確率の平均値がたまたま低くなってしまった文字列分割パターン群をサンプリングの対象外とするので、言語モデル作成装置10Aは、真の分布に近い文字列分割パターン群からサンプリングを実行できる。
なお、前記した各実施の形態において、言語モデル作成装置10,10Aが学習用データとして用いるデータは、主に自然言語の文字列であるものとして説明したが、マルコフ性(将来の状態の条件付確率分布が現在の状態のみに依存する)離散データ一般に適用可能である。例えば、DNAの時系列データ、音符の時系列データ、二進ビット列等を適切な単位に分割し、その間の遷移関係を与えるモデルを最適化する場合にも適用可能である。
また、言語モデル作成装置10で扱う言語モデル132は、2グラムの場合を例に説明したが、3グラムであってもよい。この場合、文Sのt番目の文字列のk文字前に単語境界、さらにそのj文字前に単語境界がある確率をα[t][k][j]とすることで、同様の分割サンプリング処理を実行することができる。
本実施の形態に係る言語モデル作成装置10,10Aは、前記したような処理を実行させるプログラムによって実現することができ、そのプログラムをコンピュータによる読み取り可能な記録媒体(CD−ROM等)に記憶して提供することが可能である。
10,10A 言語モデル作成装置
11 入出力部
12 処理部
13 記憶部
120 パラメータ読み込み部
121 文選択部
122,122A 文字列分割パターン作成部
123 確率計算部
124 文字列分割パターン選択部
125 言語モデル更新部
126 収束判定部
127 最尤単語分割計算部
128 出力処理部
129 分割受理判定部
131 文字列データ
132 言語モデル
133,133A 確率テーブル

Claims (5)

  1. 文を構成する文字列を単語ごとに分割し、単語列データに対し単語列確率を与えるための単語nグラムモデルと、前記単語nグラムモデルを構成する単語の文字列データそれぞれに文字列確率を与えるための文字nグラムモデルとを含む言語モデルを作成する、前記単語nグラムモデルにおける文全体を1つの単語とみなした初期状態の前記言語モデルが記憶部に記憶された言語モデル作成装置が、
    学習データである複数の文の入力を受け付けるステップと、
    前記入力された複数の文から処理対象の文を選択する処理対象文選択ステップと、
    前記言語モデルを参照して、以下の式(1)により、前記選択した文における1番目からt番目までの文字列S 1:t において、t文字の文字列の末尾k文字が1単語として生成される確率α[t][k]をt=1〜Nについて実行した結果を示した確率テーブルを作成し、前記記憶部に記憶するForwardパス実行ステップ、および、
    Figure 0005199901
    前記確率テーブルを参照して、前記選択した文の文末に続く単語の文字数の確率を読み出し、この読み出した確率に基づき、前記選択した文の文末の単語候補の文字数kを選択した後、(1)前記確率テーブルを参照して、前記選択した文字数kの単語候補に続く単語候補の文字数の確率を読み出し、(2)この読み出した確率に基づき、前記選択した文字数kの単語候補に続く単語候補の文字数k´を選択する処理を、前記選択した文の先頭に来るまで繰り返す確率的Backwardパス実行ステップを、実行することにより、前記選択した文の文字列分割パターンを選択する文字列分割パターン選択ステップと、
    前記記憶部に記憶されている前記言語モデルから前記選択した文に対する文字列分割パターンを削除し、前記選択した文字列分割パターンを新たにその言語モデルに与えることにより前記言語モデルを更新するステップとを実行し、
    前記選択した文字列分割パターンを用いて、前記言語モデルを更新するステップを前記入力された複数の文すべてについて実行することを繰り返した後、
    前記文字列分割パターン選択ステップで得られた前記選択した文に対する前記選択した文字列分割パターンでの分割結果の尤度が所定の値を超えてない場合、もしくは、前記言語モデルを更新するステップを前記入力された複数の文すべてについて実行した回数が所定回数よりも少ない場合には、前記処理対象文選択ステップからの処理を繰り返し、
    前記分割結果の尤度が所定の値を超えていた場合、もしくは、前記言語モデルを更新するステップを前記入力された複数の文すべてについて実行した回数が所定回数以上の場合には、最終的に更新した言語モデルを出力することを特徴とする言語モデル作成方法。
  2. 前記言語モデル作成装置が、最終的に更新した言語モデルを用いて、前記学習データとして入力された文それぞれについて、ビタビアルゴリズムにより、その文字列分割の確率を最大にする単語分割を計算し、出力することを特徴とする請求項1に記載の言語モデル作成方法。
  3. 前記言語モデル作成装置が、前記文字列分割パターン選択ステップの替わりに
    Particle MCMC(Markov Chain Monte Carlo)法により、前記言語モデルを参照して、前記選択した文の文頭から順に文末まで、単語候補wの後に続く単語候補の文字数kを確率的に選択する処理を、当該選択した文それぞれについて所定数ずつ実行することにより、当該選択した文1つあたり、所定数の文字列分割パターン群を作成する文字列分割パターン作成ステップと、
    前記作成した文字列分割パターン群の文字列分割パターンそれぞれの確率の平均値Z(S)を計算するステップと、
    今回作成した文字列分割パターン群の文字列分割パターンそれぞれの確率の平均値Z(S)と、過去に作成した文字列分割パターン群の文字列分割パターンそれぞれの確率の平均値Z^(S)とを比較して、前記Z(S)の値が前記Z^(S)の値よりも大きかったとき、
    今回作成した文字列パターン群の文字列分割パターンそれぞれの確率に従い、この文字列分割パターン群の中から文字列分割パターンを選択し、前記Z(S)の値を、前記Z^(S)として置き換えて前記記憶部に記憶した後、前記文字列分割パターン作成ステップに戻るステップと、
    前記Z(S)と前記Z^(S)とを比較して、前記Z(S)の値が前記Z^(S)の値以下だったとき、ベルヌーイ試行によりZ(S)/Z^(S)の確率で、今回作成した文字列分割パターン群を選択するか否かを決定し、(1)今回作成した文字列パターン群を選択すると決定した場合、この文字列分割パターン群の文字列分割パターンそれぞれの確率に従い、この文字列分割パターン群の中から文字列分割パターンを選択し、(2)前記ベルヌーイ試行の結果、今回作成した文字列分割パターン群を選択しないと決定した場合、そのまま処理を終了するステップと、を実行することにより、前記選択した文の文字列分割パターンを選択する第2の文字列分割パターン選択ステップを実行することを特徴とする請求項1または請求項2の言語モデル作成方法。
  4. 文を構成する文字列を単語ごとに分割し、単語列データに対し単語列確率を与えるための単語nグラムモデルと、前記単語nグラムモデルを構成する単語の文字列データそれぞれに文字列確率を与えるための文字nグラムモデルとを含む言語モデルを作成する、前記単語nグラムモデルにおける文全体を1つの単語とみなした初期状態の前記言語モデルが記憶部に記憶された言語モデル作成装置であって、
    学習データである複数の文の入力を受け付ける入力部と、
    前記入力された複数の文から処理対象の文を選択する文選択部と、
    前記言語モデルを参照して、以下の式(1)により、前記選択した文における1番目からt番目までの文字列S 1:t において、t文字の文字列の末尾k文字が1単語として生成される確率α[t][k]をt=1〜Nについて実行した結果を示した確率テーブルを作成し、前記記憶部に記憶する確率計算部と、
    Figure 0005199901
    前記確率テーブルを参照して、前記選択した文の文末に続く単語の文字数の確率を読み出し、この読み出した確率に基づき、前記選択した文の文末の単語候補の文字数kを選択した後、(1)前記確率テーブルを参照して、前記選択した文字数kの単語候補に続く単語候補の文字数の確率を読み出し、(2)この読み出した確率に基づき、前記選択した文字数kの単語候補に続く単語候補の文字数k´を選択する処理を、前記選択した文の先頭に来るまで繰り返すことにより、前記選択した文の文字列分割パターンを選択する文字列分割パターン選択部と、
    前記記憶部に記憶されている前記言語モデルから前記選択した文に対する文字列分割パターンを削除し、前記選択した文字列分割パターンを新たにその言語モデルに与えることにより前記言語モデルを更新する言語モデル更新部と、
    記言語モデル更新部が、前記選択した文字列分割パターンを用いて、前記言語モデルを更新する処理を前記入力された複数の文すべてについて実行することを繰り返した後、前記選択した文に対する前記選択した文字列分割パターンでの分割結果の尤度が所定の値を超えているか否か、もしくは、前記言語モデルを更新する処理が前記入力された複数の文すべてについて実行した回数が所定回数以上であるか否かを判定する収束判定部と、
    前記更新した言語モデルを出力する出力処理部とを備え、
    前記収束判定部が、前記分割結果の尤度が所定の値を超えてない、もしくは、前記言語モデルを更新する処理を前記入力された複数の文すべてについて実行した回数が所定回数よりも少ないと判定した場合に、前記分割結果が収束していないとして、前記文選択部、前記確率計算部および前記文字列分割パターン選択部が各処理を再度実行した上で、前記収束判定部による判定を実行し、
    前記収束判定部が、前記分割結果の尤度が所定の値を超えている、もしくは、前記言語モデルを更新する処理を前記入力された複数の文すべてについて実行した回数が所定回数以上であると判定した場合に、前記分割結果が収束したとして、前記出力処理部、前記言語モデル更新部により最終的に更新された言語モデルを出力することを特徴とする言語モデル作成装置。
  5. コンピュータを請求項に記載の言語モデル作成装置として機能させるための言語モデル作成プログラム。
JP2009010931A 2009-01-21 2009-01-21 言語モデル作成方法、言語モデル作成装置および言語モデル作成プログラム Expired - Fee Related JP5199901B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009010931A JP5199901B2 (ja) 2009-01-21 2009-01-21 言語モデル作成方法、言語モデル作成装置および言語モデル作成プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009010931A JP5199901B2 (ja) 2009-01-21 2009-01-21 言語モデル作成方法、言語モデル作成装置および言語モデル作成プログラム

Publications (2)

Publication Number Publication Date
JP2010170252A JP2010170252A (ja) 2010-08-05
JP5199901B2 true JP5199901B2 (ja) 2013-05-15

Family

ID=42702363

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009010931A Expired - Fee Related JP5199901B2 (ja) 2009-01-21 2009-01-21 言語モデル作成方法、言語モデル作成装置および言語モデル作成プログラム

Country Status (1)

Country Link
JP (1) JP5199901B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6093542A (ja) * 1983-10-27 1985-05-25 Tokyo Electric Co Ltd キ−ボ−ド装置
JP6312467B2 (ja) * 2014-03-04 2018-04-18 株式会社デンソーアイティーラボラトリ 情報処理装置、情報処理方法、およびプログラム
CN109359274B (zh) * 2018-09-14 2023-05-02 蚂蚁金服(杭州)网络技术有限公司 一种对批量生成的字符串进行识别的方法、装置及设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003263427A (ja) * 2002-03-07 2003-09-19 Advanced Telecommunication Research Institute International 単語分割モデルの生成方法
JP3998668B2 (ja) * 2004-07-14 2007-10-31 沖電気工業株式会社 形態素解析装置、方法及びプログラム

Also Published As

Publication number Publication date
JP2010170252A (ja) 2010-08-05

Similar Documents

Publication Publication Date Title
JP6493866B2 (ja) 情報処理装置、情報処理方法、およびプログラム
US7957953B2 (en) Weighted linear bilingual word alignment model
JP4532863B2 (ja) 2言語コーパスを整列させるための方法および装置
JP3998668B2 (ja) 形態素解析装置、方法及びプログラム
US7480612B2 (en) Word predicting method, voice recognition method, and voice recognition apparatus and program using the same methods
JP5071373B2 (ja) 言語処理装置、言語処理方法および言語処理用プログラム
US20060277028A1 (en) Training a statistical parser on noisy data by filtering
JP6312467B2 (ja) 情報処理装置、情報処理方法、およびプログラム
CN113574545A (zh) 用于训练模型的训练数据修改
JP5319141B2 (ja) 言語モデルの枝刈り方法及び装置
JP5199901B2 (ja) 言語モデル作成方法、言語モデル作成装置および言語モデル作成プログラム
JP5441937B2 (ja) 言語モデル学習装置、言語モデル学習方法、言語解析装置、及びプログラム
US20140214397A1 (en) Sampling and optimization in phrase-based machine translation using an enriched language model representation
JP5565827B2 (ja) 統計的機械翻訳のための言語独立な単語セグメント化のための文分離器トレーニング装置、そのためのコンピュータプログラム及びコンピュータ可読媒体。
JP5885210B2 (ja) 基本周波数モデルパラメータ推定装置、方法、及びプログラム
US20130110491A1 (en) Discriminative learning of feature functions of generative type in speech translation
JP2005092682A (ja) 翻字装置、及び翻字プログラム
JP4976789B2 (ja) トークン列中の境界検出方法、装置、プログラム、記録媒体
JP2016133956A (ja) 形態素解析モデル生成装置、形態素解析モデル生成方法、及び、プログラム
JP3953772B2 (ja) 読みがな付与装置およびプログラム
WO2014030258A1 (ja) 形態素解析装置、テキスト分析方法、及びそのプログラム
JP2007004446A (ja) 機械翻訳装置、その方法およびプログラム
JP4769286B2 (ja) かな漢字変換装置およびかな漢字変換プログラム
Virpioja et al. Unsupervised Morpheme Discovery with Allomorfessor.
JP7327523B2 (ja) 生成装置、生成方法及び生成プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101215

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110819

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121113

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130109

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130129

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130208

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160215

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5199901

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130201

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees