以下、図面を参照して本発明の実施の形態に必要とされる参考例を詳細に説明する。
<参考例の原理>
本参考例において、「崩れフレーズ・正規フレーズ」と「崩れ語・正規語」という言葉を用いる。図1に示すように、「崩れ語・正規語」を、崩れモデルを推定する際に、人手アノテーションによって抽出された正規文字列と崩れ文字列の単位と定義する。また、図2に示すように、「崩れフレーズ・正規フレーズ」を、崩れ語・正規語のペア(正解データ)を用いて、フレーズアライメントにより抽出した崩れ語・正規語中の部分文字列の単位と定義する。
基本的な解決方針として、下記(1)式に示すように、従来の形態素解析の目的関数に、正規フレーズが崩れフレーズに変換される確率をかけることにより、正規表記の品詞と正しい単語区切りを同時に推定する。
ただし、P(W|V)は、正規語Vが観測語Wに変換される単語変換確率であり、正規フレーズが崩れフレーズに変換される確率と等しい。また、P(T)は、正規表記の品詞の列Tの接続確率であり、P(V|T)が、正規表記の品詞の列Tが与えられたときの正規語Vの生起確率である。
また、単語変換確率を文字列(フレーズ)ごとに分解し、下記(2)式に示すように、フレーズ変換確率の積で単語変換確率を近似し、フレーズ確率をトランスリタレーションモデルで求める。
<第1の参考例に係るモデル学習装置の構成>
次に、第1の参考例に係るモデル学習装置の構成について説明する。図3に示すように、第1の参考例に係るモデル学習装置100は、CPUと、RAMと、後述する正規崩れフレーズモデル学習処理ルーチン及びフレーズフィルタモデル学習処理ルーチンを実行するためのプログラムや各種データを記憶したROMと、を含むコンピュータで構成することが出来る。このモデル学習装置100は、機能的には図3に示すように入力部10と、演算部20と、出力部50とを備えている。
入力部10は、図4に示すような、Twitter(登録商標)やブログなど、崩れ表記が含まれる文から、人手で抽出された崩れ語に対し、対応する正規語が付与されたフレーズ推定用の正解データである正規語崩れ語ペアデータを受け付ける。また、入力部10は、web上の複数分野の大量の文書群を受け付け、複数分野のコーパスとする。
演算部20は、初期設定部30と、フレーズアライメント部31と、変換確率算出部32と、反復判定部34と、正規崩れフレーズモデル記憶部36と、統計量算出部42と、データ生成部43と、モデル学習部44と、フレーズフィルタモデル記憶部46とを含んで構成されている。
初期設定部30は、入力部10において受け付けた正規語崩れ語ペアデータに基づいて、正規フレーズfvと崩れフレーズfwの全てのペアを求め、各ペアについて変換確率P(fw|fv)をランダムに設定し、正規フレーズと崩れフレーズのペアの変換確率を格納した変換確率テーブルを生成しメモリ(図示省略)に記憶する。なお、正規フレーズfvと崩れフレーズfwの各ペアの変換確率P(fw|fv)をヒューリスティックに設定してもよい。
フレーズアライメント部31は、正規語崩れ語ペアデータに含まれるペアの各々について、初期設定部30において生成された又は変換確率算出部32において更新された変換確率テーブルに基づいて、動的計画法により最適な対応関係である最適アライメントを求める。具体的には、動的計画法に基づいて、図5に示すような表を用いて最小コストの経路を探索し、文字間の対応関係を求める。経路の総コストは、経路上における文字列の対応コストの和で表される。コスト関数としては、例えば、図6のような確率値の対数をとった値が用いられる。この場合、最小コストの経路が経路1であるとすると、出力アライメントは、(か,か),(な,な),(ぁー,null),(り,り)となる。ただし、(null,x)はxの挿入、(y,null)はyの削除を表す。
変換確率算出部32は、フレーズアライメント部31においてt回目に求められた正規語崩れ語ペアデータに含まれるペアの各々の最適アライメントに基づいて、下記(3)式に従って、t回目の計算におけるP(fw|fv)の期待値Pt(fw|fv)を求め、メモリに記憶する。そして、求められた期待値Pt(fw|fv)の値により変換確率テーブルを更新メモリに記憶する。ただし、N(fw,fv)は、正規語崩れ語ペアデータの最適アライメントにおいて正規フレーズfvが崩れフレーズfwに変換された回数を表す。
反復判定部34は、変換確率算出部32において算出されたPt(fw|fv)に基づく尤度関数と、メモリに記憶されている前回算出されたPt−1(fw|fv)に基づく尤度関数との差分が予め定められた閾値ε(例えばε=0.05)以下か否か判定する。差分が閾値ε以下である場合には、反復終了条件が満たされたと判定し、図7に示すような、現在の変換確率テーブルを、正規崩れフレーズモデルとして正規崩れフレーズモデル記憶部36に記憶すると共に、出力部50に出力する。また、差分が閾値εよりも大きい場合には、反復終了条件が満たされていないと判定し、フレーズアライメント部31の処理と、変換確率算出部32の処理とを繰り返す。なお、尤度関数は、下記(4)式により表される。また、繰り返し回数が上限回数に達したことを反復終了条件としてもよい。
正規崩れフレーズモデル記憶部36には、正規崩れフレーズモデルが記憶されている。
統計量算出部42は、入力部10において受け付けた複数分野のコーパスに基づいて、全ての文字n‐gramについて、文字n‐gram統計量を算出する。例えば、対象文書として「そんなんやってらんねーよ」があった場合、文字2グラム統計量として、P(ん|そ)、P(な|ん)等を算出し、文字3グラム統計量として、P(な|そ,ん)、P(ん|ん,な)等を算出する。なお、形態素解析処理済みの複数分野のコーパスに基づいて、全ての単語表層n‐gramについて、単語表層n‐gram統計量を算出してもよい。
データ生成部43は、入力部10において受け付けた正規語崩れ語ペアデータに含まれるペアの各々について、正規崩れフレーズモデル記憶部36に記憶されている正規崩れフレーズモデルに基づいて、崩れ語の部分文字列のうち、崩れフレーズに該当する部分文字列を、当該崩れフレーズに対応する正規フレーズの部分文字列に変換する。そして、変換後の正規フレーズが当該崩れ語に対応する正規語に含まれるか否か判定し、含まれる場合には当該正規フレーズに対応する文字n‐gram統計量、及び当該崩れフレーズに対応する文字n‐gram統計量を含む学習データを正例データとして生成し、含まれない場合には当該正規フレーズに対応する文字n‐gram統計量及び崩れフレーズに対応する文字n‐gram統計量を含む学習データを、負例データとして生成する。
モデル学習部44は、データ生成部43において生成された正例データ及び負例データからなる学習データに基づいて、サポートベクタマシン等を用いて識別学習を行い、崩れフレーズを正規フレーズへ変換することの尤もらしさを判断するためのフレーズフィルタモデルを学習し、フレーズフィルタモデル記憶部46に記憶すると共に、出力部50に出力する。
フレーズフィルタモデル記憶部46には、モデル学習部44において学習されたフレーズフィルタモデル、及び統計量算出部42により算出された文字n‐gram統計量が記憶されている。
<第1の参考例に係る形態素解析装置の構成>
次に、第1の参考例に係る形態素解析装置の構成について説明する。図8に示すように、第1の参考例に係る形態素解析装置200は、CPUと、RAMと、後述する形態素解析処理ルーチンを実行するためのプログラムや各種データを記憶したROMと、を含むコンピュータで構成することが出来る。この形態素解析装置200は、機能的には図8に示すように入力部210と、演算部220と、出力部250とを備えている。
入力部210は、入力文を受け付ける。
演算部220は、解析候補生成部230と、正規崩れフレーズモデル記憶部232と、辞書データベース記憶部233と、算出部235と、フレーズフィルタモデル記憶部236と、解析対象抽出部238と、ラティス生成部239と、選択部240とを含んで構成されている。
解析候補生成部230は、正規崩れフレーズモデル記憶部232に記憶されている正規崩れフレーズモデルに基づいて、入力部10において受け付けた入力文から解析候補文を各々生成する。具体的には、入力部210において受け付けた入力文に、正規崩れフレーズモデルに含まれる崩れフレーズに一致する部分文字列がある場合には、部分文字列を当該崩れフレーズに対応する正規フレーズに変換することにより解析候補文を生成する。なお、解析候補文は、入力文に含まれる崩れフレーズのうち1か所のみ変更したものとし、崩れフレーズが複数ある場合には、崩れフレーズ毎に解析候補文が生成される。図9に具体例を示す。また、崩れフレーズに対応する正規フレーズが複数ある場合には、正規フレーズ毎に解析候補文が生成される。
正規崩れフレーズモデル記憶部232には、モデル学習装置100において学習された正規崩れフレーズモデルと同一の正規崩れフレーズモデルが記憶されている。
辞書データベース記憶部233には、形態素解析を行うために必要な辞書(読み、表記、品詞、コスト(生起確率))及び品詞ペアの各々の接続確率が記憶されている。
フレーズフィルタモデル記憶部236には、モデル学習装置100において学習されたフレーズフィルタモデル及び文字n‐gram統計量と同一のフレーズフィルタモデル及び文字n‐gram統計量が記憶されている。
解析対象抽出部238は、解析候補生成部230において生成された解析候補文の各々について、入力文と、フレーズフィルタモデル記憶部236に記憶されているフレーズフィルタモデル及び文字n‐gram統計量とに基づいて、崩れフレーズが正規フレーズへ正しく変換された解析候補文であるか否かを判定し、正しく変換された解析候補文であると判定された場合に、解析対象文として抽出し、正しく変換された解析候補文でないと判定された場合に、当該解析候補文を削除する。
例えば、入力文の崩れフレーズを変換した正規フレーズの文字n‐gram統計量と、入力文の崩れフレーズの文字n‐gram統計量と、フレーズフィルタモデル記憶部236に記憶されているフレーズフィルタモデルとに基づいて、当該崩れフレーズを当該正規フレーズへ変換した変換の尤もらしさを示すスコアを算出し、算出されたスコアが閾値以上であれば、正しく変換された解析対象文であると判定する。
ラティス生成部239は、入力部210において受け付けた入力文と、解析対象抽出部238において抽出された解析対象文の各々とに対して、辞書データベース記憶部233に記憶されている辞書を用いて辞書引きを行い、品詞が付与された各部分文字列に対応するノード及び連結される部分文字列に対応するノードを結んだエッジからなるグラフ構造であるラティスを生成する。作成したラティスの例を図10に示す。
選択部240は、ラティス生成部239において生成したラティスと、正規崩れフレーズモデル記憶部232に記憶されている正規崩れフレーズモデルの変換確率と、辞書データベース記憶部233に記憶されている辞書のコスト及び品詞ペアの接続確率とに基づいて、動的計画法に従って、上記(1)式の目的関数を最大化する、当該ラティスのノードを結んだ最適な経路を選択し、選択された経路が表す正規表記の品詞と単語区切りを、形態素解析結果として出力する。
<第1の参考例に係るモデル学習装置の作用>
次に、第1の参考例に係るモデル学習装置100の作用について説明する。入力部10において正規語崩れ語ペアデータを受け付けると、モデル学習装置100は、図11に示す正規崩れフレーズモデル学習処理ルーチンを実行する。
まず、ステップS100では、入力部10において受け付けた正規語崩れ語ペアデータに基づいて、正規フレーズfvと崩れフレーズfwの全てのペアを求め、各ペアについて変換確率P(fw|fv)をランダムに設定し、各ペアの変換確率を格納した変換確率テーブルを生成し、メモリに記憶する。
次に、ステップS104では、正規語崩れ語ペアデータに含まれるペアの各々について、ステップS100において生成した、又はステップS106において前回更新した変換確率テーブルに基づいて、動的計画法に従って、文字間の対応関係である最適アライメントを求める。
次に、ステップS106では、ステップS104において正規語崩れ語ペアデータに含まれるペアの各々の最適アライメントに基づいて、P(fw|fv)の期待値Pt(fw|fv)を求め、メモリに記憶し、求められた期待値Pt(fw|fv)の値により変換確率テーブルを更新する。
次に、ステップS108では、ステップS106において取得した正規フレーズと崩れフレーズペアの各々のP(fw|fv)の期待値Pt(fw|fv)に基づいて、上記(4)式に従って、尤度関数を算出する。
次に、ステップS110では、ステップS108において取得した尤度関数の値と、前回のステップS108において取得した尤度関数の値の差分が、予め定められた閾値ε以下か否かを判定する。差分が閾値ε以下である場合には反復終了条件が満たされたと判定し、ステップS110へ移行し、差分が閾値εよりも大きい場合には反復終了条件が満たされていないと判定し、ステップS104へ移行し、ステップS104〜ステップS110の処理を繰り返す。
次に、ステップS112では、ステップS106において最終的に更新された変換確率テーブルを、正規崩れフレーズモデルとして正規崩れフレーズモデル記憶部36に記憶する。
次に、ステップS114では、ステップS112において取得した正規崩れフレーズモデルを出力部50により出力して、処理を終了する。
次に、第1の参考例に係るモデル学習装置100の作用について説明する。入力部10において正規語崩れ語ペアデータ及び複数分野のコーパスを受け付けると、モデル学習装置100は、図12に示すフレーズフィルタモデル学習処理ルーチンを実行する。
まず、ステップS201では、正規崩れフレーズモデル記憶部36に記憶されている正規崩れフレーズモデルを読み込む。
次に、ステップS203では、入力部10において受け付けた複数分野のコーパスに基づいて、全ての文字n‐gramについて、文字n‐gram統計量を算出する。
次に、ステップS204では、入力部10において受け付けた正規語崩れ語ペアデータの処理対象のペアについて、ステップS201において取得した正規崩れフレーズモデルに基づいて、崩れ語の部分文字列のうち、崩れフレーズに該当する部分文字列を、当該崩れフレーズに対応する正規フレーズの部分文字列に変換する。
次に、ステップS205では、入力部10において受け付けた正規語崩れ語ペアデータの処理対象のペアについて、ステップS204において変換した正規フレーズの各々について、処理対象のペアの正規語に含まれるか否か判定し、含まれる場合には、ステップS203において取得した当該正規フレーズと当該崩れフレーズとの各々に対応する文字n‐gram統計量を含む学習データを正例データとして作成し、含まれない場合には、ステップS203において取得した当該正規フレーズと当該崩れフレーズとの各々に対応する文字n‐gram統計量を含む学習データを負例データとして作成する。
ステップ206では、正規語崩れ語ペアデータの全てのペアについて、上記ステップS204、S205の処理を実行したか否かを判定し、上記ステップS204、S205の処理を実行していないペアが存在する場合には、上記ステップS204へ戻り、当該ペアを、処理対象とする。一方、全てのペアについて、上記ステップS204、S205の処理を実行した場合には、ステップS207へ進む。
次に、ステップS207では、ステップS205において取得した正例データ及び負例データからなる学習データに基づいて、サポートベクタマシン等を用いて識別学習を行い、崩れフレーズを正規フレーズへ変換することの尤もらしさを判断するためのフレーズフィルタモデルを学習し、フレーズフィルタモデル記憶部46に記憶する。また、上記ステップS203で算出された文字n‐gram統計量を、フレーズフィルタモデル記憶部46に記憶する。
次に、ステップS208では、ステップS207において学習したフレーズフィルタモデル、及び上記ステップS203で算出された文字n‐gram統計量を出力部50により出力し、フレーズフィルタモデル学習処理ルーチンの処理を終了する。
<第1の参考例に係る形態素解析装置の作用>
次に、第1の参考例に係る形態素解析装置200の作用について説明する。まず、モデル学習装置100により出力された正規崩れフレーズモデルが、形態素解析装置200に入力され、正規崩れフレーズモデル記憶部232に記憶される。また、モデル学習装置100により出力されたフレーズフィルタモデル及び文字n‐gram統計量が、形態素解析装置200に入力され、フレーズフィルタモデル記憶部236に記憶される。そして、入力部210において入力文を受け付けると、形態素解析装置200は、図13に示す形態素解析処理ルーチンを実行する。
まず、ステップS300では、正規崩れフレーズモデル記憶部232に記憶されている正規崩れフレーズモデルを読み込む。
次に、ステップS301では、辞書データベース記憶部233に記憶されている辞書を読み込む。
次に、ステップS302では、フレーズフィルタモデル記憶部236に記憶されているフレーズフィルタモデル及び文字n‐gram統計量を読み込む。
次に、ステップS304では、入力部210において受け付けた入力文について、ステップS300において取得した正規崩れフレーズモデルに基づいて、解析候補文の各々を生成する。
次に、ステップS308では、ステップS304において取得した解析候補文の各々について、入力部210において受け付けた入力文と、ステップS302において取得したフレーズフィルタモデル及び文字n‐gram統計量とに基づいて、崩れフレーズが正規フレーズへ正しく変換された解析候補文であるか否かを判定し、正しく変換された解析候補文であると判定された場合に、解析対象文として抽出し、正しく変換された解析候補文でないと判定された場合に、当該解析候補文を削除する。
次に、ステップS310では、ステップS308において抽出された解析対象文の各々と、入力部210において受け付けた入力文とに対して、ステップS301において取得した辞書を用いて辞書引きを行い、品詞が付与された各部分文字列に対応するノード及び連結される部分文字列に対応するノードを結んだエッジからなるグラフ構造であるラティスを生成する。
次に、ステップS312では、ステップS310において取得したラティスと、ステップS300において取得した正規崩れフレーズモデルの変換確率と、ステップS301において取得した辞書のコスト及び品詞ペアの接続確率とに基づいて、動的計画法に従って、上記(1)式の目的関数を最大化する、当該ラティスのノードを結んだ最適な経路を選択する。
次に、ステップS314では、ステップS312において選択された経路が表わす正規表記の品詞と単語区切りを、形態素解析結果として出力部250により出力して形態素解析処理ルーチンを終了する。
上記の形態素解析処理ルーチンを実行することにより、例えば、入力文「そんなんやってらんねーよ」が入力された場合には、図14(B)に示すような、形態素解析結果が出力される。なお、比較例として、従来の形態素解析器を用いた場合の形態素解析結果を、図14(A)に示す。
また、入力文「次の日にはすーぐ行きてーw」が入力された場合には、図15(B)に示すような、形態素解析結果が出力される。一方、従来の形態素解析器を用いた場合には、図15(A)に示す形態素解析結果となる。
以上説明したように、第1の参考例に係る形態素解析装置によれば、正規崩れフレーズモデル及びフレーズフィルタモデルを用いることにより、揺らいだ表記である崩れ語を含む文字列に対しても、形態素解析を精度よく行うことができる。
また、第1の参考例に係るモデル学習装置によれば、揺らいだ表記である崩れ語を含む文字列に対しても形態素解析を精度よく行うことができる正規崩れフレーズモデル及びフレーズフィルタモデルを学習することができる。
また、文字列レベルの揺らぎモデルを正解データから自動構築し、形態素解析に組み込むことにより、崩れた表記にも頑健な形態素解析器の枠組みを提供できる。
また、正規表記と崩れ表記の正解ペアデータを用いてトランスリタレーションによるフレーズ変換モデルを導入することにより、ルールとルールごとのコスト設定を自動で行うことができる。
また、崩れフレーズであるとして正規フレーズに変換された箇所が、正しく変換された否かを判別するフレーズフィルタモデルを導入することにより、解析対象となる候補を削減することができ、解析時における計算コストを削減することが出来る。
また、トランスリタレーションモデルにより、正規フレーズ及び崩れフレーズのペア対と変換確率とを自動で獲得し、動的計画法との組み合わせにより処理速度と処理精度との向上を図ることができる。
次に、第2の参考例について説明する。なお、第1の参考例と同様の構成及び作用となる部分については、同一符号を付して説明を省略する。
第2の参考例では、文字n‐gram統計量をフレーズフィルタモデルとする点が第1の参考例と異なっている。
<第2の参考例に係るモデル学習装置の構成>
次に、第2の参考例に係るモデル学習装置300の構成について説明する。
第2の参考例に係るモデル学習装置300は、図16に示すように、入力部10と、演算部320と、出力部50とを備えている。
演算部320は、初期設定部30と、フレーズアライメント部31と、変換確率算出部32と、反復判定部34と、正規崩れフレーズモデル記憶部36と、統計量算出部342と、フレーズフィルタモデル記憶部346とを含んで構成されている。
統計量算出部342は、入力部10において受け付けた複数分野のコーパスに基づいて、全ての文字n‐gramについて、文字n−gram統計量を算出し、算出された文字n‐gram統計量の集合をフレーズフィルタモデルとしてフレーズフィルタモデル記憶部346に記憶する。
フレーズフィルタモデル記憶部346には、統計量算出部342において生成されたフレーズフィルタモデルが記憶されている。
<第2の参考例に係る形態素解析装置の構成>
次に、第2の参考例に係る形態素解析装置400の構成について説明する。
第2の参考例に係る形態素解析装置400は、図17に示すように、入力部210と、演算部420と、出力部50とを備えている。
演算部420は、解析候補生成部230と、正規崩れフレーズモデル記憶部232と、辞書データベース記憶部233と、算出部435と、フレーズフィルタモデル記憶部436と、解析対象抽出部438と、ラティス生成部239と、選択部240とを含んで構成されている。
算出部435は、解析候補生成部230により生成された解析候補文の各々について、入力文と、フレーズフィルタモデル記憶部436に記憶されている文字n‐gram統計量の集合であるフレーズフィルタモデルとに基づいて、入力文中の崩れフレーズに対応する文字n‐gram統計量P(変換前)と、当該解析候補文中の正規フレーズに対応する文字n‐gram統計量P(変換後)を用いて、フレーズ変換の尤もらしさを示す値として、P(変換後)/P(変換前)を算出する。例えば、入力文「やってらんねーよ」と解析候補文「やってらんないよ」が有る場合、入力文中の変換部分の変換文字列と周辺の文字列とからなる部分文字列に対応する文字n‐gram統計量、P(よ|ん,ね,ー)と、解析候補文中の変換文の返還文字列と周辺の文字列とからなる部分文字列に対応する文字n‐gram統計量、P(よ|ん,な,い)を用いて、P(よ|ん,な,い)/P(よ|ん,ね,ー)の値を算出する。
解析対象抽出部438は、解析候補文の各々について、算出部435において当該解析候補文について算出された、フレーズ変換の尤もらしさを示す値が閾値Tよりも大きいか否か判定する。閾値Tよりもフレーズ変換の尤もらしさを示す値が大きい場合、当該解析候補文を解析対象文として抽出し、算出されたフレーズ変換の尤もらしさを示す値が閾値T以下である場合、当該解析候補文を削除する。
<第2の参考例に係るモデル学習装置の作用>
次に、第2の参考例に係るモデル学習装置300の作用について説明する。入力部10において複数分野のコーパスを受け付けると、モデル学習装置300は、図18に示すフレーズフィルタモデル学習処理ルーチンを実行する。
ステップS400では、ステップS203において取得した文字n‐gram統計量の集合をフレーズフィルタモデルとしてフレーズフィルタモデル記憶部346に記憶する。
<第2の参考例に係る形態素解析装置の作用>
次に、第2の参考例に係る形態素解析装置400の作用について説明する。入力部210において入力文を受け付けると、形態素解析装置400は、図19に示す形態素解析処理ルーチンを実行する。
ステップS500では、入力部210において受け付けた入力文と、ステップS304において取得した解析候補文の各々と、ステップS302において取得したフレーズフィルタモデルとに基づいて、解析候補文の各々について、フレーズ変換の尤もらしさを示す値を算出する。
ステップS502では、ステップS500において算出した、フレーズ変換の尤もらしさを示す値が閾値Tよりも大きい値である解析候補文の各々を、解析対象文として抽出する。
以上説明したように、第2の参考例に係る形態素装置によれば、正規崩れフレーズモデル及び文字n‐gram統計量の集合からなるフレーズフィルタモデルを用いて、揺らいだ表記である崩れ語を含む文字列に対しても、形態素解析を精度よく行うことができる。
また、第2の参考例に係るモデル学習装置によれば、揺らいだ表記である崩れ語を含む文字列に対しても形態素解析を精度よく行うことができる正規崩れフレーズモデル及び文字n‐gram統計量の集合からなるフレーズフィルタモデルを学習することができる。
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
第2の参考例においては、フレーズ変換の尤もらしさを示す値を、P(変換後)/P(変換前)として算出し、当該値が閾値Tよりも大きい解析候補文を解析対象文として抽出する場合について説明したがこの限りでない。例えば、P(変換後)−P(変換前)の値が予め定められた閾値以上である解析候補文を解析対象文として抽出しても良い。
次に、第3の参考例について説明する。なお、第1の参考例と同様の構成及び作用となる部分については、同一符号を付して説明を省略する。
第3の参考例では、正規崩れフレーズモデルのみを用いる点が第1の参考例と異なっている。
<第3の参考例に係るモデル学習装置の構成>
次に、第3の参考例に係るモデル学習装置500の構成について説明する。
第3の参考例に係るモデル学習装置500は、図20に示すように、入力部10と、演算部520と、出力部50とを備えている。
演算部520は、初期設定部30と、フレーズアライメント部31と、変換確率算出部32と、反復判定部34と、正規崩れフレーズモデル記憶部36とを含んで構成されている。
<第3の参考例に係る形態素解析装置の構成>
次に、第3の参考例に係る形態素解析装置600の構成について説明する。
第3の参考例に係る形態素解析装置600は、図21に示すように、入力部10と、演算部620と、出力部50とを備えている。
演算部620は、解析候補生成部230と、正規崩れフレーズモデル記憶部232と、辞書データベース記憶部233と、ラティス生成部639と、選択部240とを含んで構成されている。
ラティス生成部639は、入力部210において受け付けた入力文と、解析候補生成部230において生成した解析候補文の各々とに対して辞書データベース記憶部233に記憶されている辞書を用いて辞書引きを行い、品詞が付与された各部分文字列に対応するノード及び連結される部分文字列に対応するノードを結んだエッジからなるグラフ構造であるラティスを生成する。
以上説明したように、第3の参考例に係る形態素装置によれば、正規崩れフレーズモデルを用いて、揺らいだ表記である崩れ語を含む文字列に対しても、形態素解析を精度よく行うことができる。
また、第3の参考例に係るモデル学習装置によれば、揺らいだ表記である崩れ語を含む文字列に対しても形態素解析を精度よく行うことができる正規崩れフレーズモデルを学習することができる。
次に、第4の参考例について説明する。なお、第1の参考例と同様の構成及び作用となる部分については、同一符号を付して説明を省略する。
第4の参考例では、正規崩れフレーズモデルの代わりに、予め人手で作成した正規崩れフレーズルールを用いる点が第1の参考例と異なっている。
<第4の参考例に係るモデル学習装置の構成>
次に、第4の参考例に係るモデル学習装置700の構成について説明する。
第4の参考例に係るモデル学習装置700は、図22に示すように、入力部10と、演算部720と、出力部50とを備えている。
演算部720は、正規崩れフレーズルール記憶部736と、統計量算出部42と、データ生成部743と、モデル学習部44と、フレーズフィルタモデル記憶部46とを含んで構成されている。
正規崩れフレーズルール記憶部736には、崩れフレーズと、当該崩れフレーズに対する正規フレーズとの複数のペアが、正規崩れフレーズルールとして予め記憶されている。
データ生成部743は、入力部10において受け付けた正規語崩れ語ペアデータに含まれるペアの各々について、正規崩れフレーズルール記憶部736に記憶されている正規崩れフレーズルールに基づいて、当該ペアの崩れ語の部分文字列のうち、崩れフレーズに該当する部分文字列を、当該崩れフレーズを対応する正規フレーズの部分文字列に変換する。そして、変換後の正規フレーズが当該ペアの正規語に含まれるか否か判定し、含まれる場合には当該正規フレーズに対応する文字n‐gram統計量、及び当該崩れフレーズに対応する文字n‐gram統計量を含む学習データを正例データとして生成し、含まれない場合には当該正規フレーズに対応する文字n‐gram統計量、及び崩れフレーズに対応する文字n‐gram統計量を含む学習データを負例データとして生成する。
<第4の参考例に係る形態素解析装置の構成>
次に、第4の参考例に係る形態素解析装置800の構成について説明する。
第4の参考例に係る形態素解析装置800は、図23に示すように、入力部210と、演算部820と、出力部50とを備えている。
演算部820は、解析候補生成部830と、正規崩れフレーズルール記憶部832と、辞書データベース記憶部233と、フレーズフィルタモデル記憶部236と、解析対象抽出部238と、ラティス生成部239と、選択部840とを含んで構成されている。
解析候補生成部830は、正規崩れフレーズルール記憶部832に記憶されている正規崩れフレーズルールに基づいて、入力部210において受け付けた入力文から解析候補文を各々生成する。
フレーズルール記憶部832には、モデル学習装置700のフレーズルール記憶部736に記憶されている正規崩れフレーズルールと同一の正規崩れフレーズルールが記憶されている。
選択部840は、ラティス生成部239において生成したラティスと、辞書データベース記憶部233に記憶されている辞書のコスト及び品詞ペアの接続確率とに基づいて、動的計画法に従って、上記(1)式の目的関数を最大化する、当該ラティスのノードを結んだ最適な経路を選択し、選択された経路が表す正規表記の品詞と単語区切りを、形態素解析結果として出力する。なお、上記(1)式において、各変換確率として一定値を用いればよい。
以上説明したように、第4の参考例に係る形態素装置によれば、正規崩れフレーズルール及びフレーズフィルタモデルを用いて、揺らいだ表記である崩れ語を含む文字列に対しても、形態素解析を精度よく行うことができる。
また、第4の参考例に係るモデル学習装置によれば、揺らいだ表記である崩れ語を含む文字列に対しても形態素解析を精度よく行うことができるフレーズフィルタモデルを学習することができる。
<第1の実施の形態>
次に、本発明の第1の実施の形態について説明する。なお、第1の参考例と同様の構成及び作用となる部分については、同一符号を付して説明を省略する。
<概要>
例えば、入力文「一人でかぅんたーなう」に含まれる「ぅ」を「う」に変換した場合、辞書に「かうんたー」という文字列が存在しないため、正しい候補である「カウンター」を列挙できないという課題がある。
そこで、第1の実施の形態では、辞書の「読み」を利用して文字種の展開を行うことで、文字種が異なっていても辞書引きができるように、文字種変換辞書を用いる。
また、例えば、入力文「ぁりがとぅー」に対して、「ありがとぅー」(ぁ→あ)及び「ぁりがとうー」(ぅ→う)のように各崩れフレーズの箇所ごとに変換を行った解析候補文が生成される。しかし、これらの解析候補文は、正しく変換された解析候補文であるか否かの判定の際に、いずれかが負例と判定される場合がある。そして、いずれかが負例と判定された場合には、正しい形態素解析結果「ありがとうー」が得られない、という課題がある。
そこで、第1の実施の形態では、複数の崩れフレーズの箇所を変換した解析候補文に対しても、正しく変換された解析候補文であるか否かの判定を行う。具体的には、入力文「ぁりがとぅー」に対して、「ありがとうー」(ぁ→あ、ぅ→う)と複数箇所を変換した解析候補文を生成し、正しく変換された解析候補文であるか否かの判定を行う。なお、文の変換確率を素性として用いる場合には、複数の崩れフレーズの箇所を変換した文の変換確率を用いるものとする。フレーズ変換確率を素性として用いる場合には、各フレーズの箇所ごとのフレーズ変換確率をかけ合わせた値を用いる。
<第1の実施の形態に係るモデル学習装置の構成>
次に、第1の実施の形態に係るモデル学習装置1000の構成について説明する。
本発明の第1の実施の形態に係るモデル学習装置1000は、図24に示すように、入力部10と、演算部1020と、出力部50とを備えている。
演算部1020は、初期設定部30と、フレーズアライメント部31と、変換確率算出部32と、反復判定部34と、正規崩れフレーズモデル記憶部36と、統計量算出部42と、データ生成部1043と、モデル学習部44と、フレーズフィルタモデル記憶部46とを含んで構成されている。
データ生成部1043は、入力部10において受け付けた正規語崩れ語ペアデータに含まれるペアの各々について、正規崩れフレーズモデル記憶部36に記憶されている正規崩れフレーズモデルに基づいて、崩れ語の部分文字列のうち、崩れフレーズに該当する部分文字列を、当該崩れフレーズに対応する正規フレーズの部分文字列に変換する。また、崩れ語において崩れフレーズに該当する部分文字列が複数箇所ある場合には、複数箇所の部分文字列の各々について、当該崩れフレーズに対応する正規フレーズの部分文字列に変換する。そして、変換後の正規フレーズが当該崩れ語に対応する正規語に含まれるか否か判定し、含まれる場合には当該正規フレーズに対応する文字n‐gram統計量、及び当該崩れフレーズに対応する文字n‐gram統計量を含む学習データを正例データとして生成し、含まれない場合には当該正規フレーズに対応する文字n‐gram統計量及び崩れフレーズに対応する文字n‐gram統計量を含む学習データを、負例データとして生成する。
<第1の実施の形態に係る形態素解析装置の構成>
次に、第1の実施の形態に係る形態素解析装置1100の構成について説明する。
本発明の第1の実施の形態に係る形態素解析装置1100は、図25に示すように、入力部210と、演算部1120と、出力部250とを備えている。
演算部1120は、解析候補生成部1130と、正規崩れフレーズモデル記憶部232と、辞書データベース記憶部233と、文字種変換辞書データベース記憶部934と、フレーズフィルタモデル記憶部236と、解析対象抽出部238と、ラティス生成部1139と、選択部240とを含んで構成されている。
文字種変換辞書データベース記憶部934は、文字列の文字種を展開するために必要な「漢字」「ひらがな」「カタカナ」の相互に対応する文字列の組み合わせであって、同一の読みとなる文字列の組み合わせが複数組格納された文字種変換辞書が記憶されている。
解析候補生成部1130は、正規崩れフレーズモデル記憶部232に記憶されている正規崩れフレーズモデルに基づいて、入力部210において受け付けた入力文から解析候補文を各々生成する。具体的には、入力部210において受け付けた入力文に、正規崩れフレーズモデルに含まれる崩れフレーズに一致する部分文字列がある場合には、部分文字列を当該崩れフレーズに対応する正規フレーズに変換することにより解析候補文を生成する。なお、解析候補文は、入力文において、崩れフレーズに該当する部分文字列が複数箇所ある場合には、解析候補生成部1130は、複数箇所の部分文字列の各々について、当該部分文字列のみを崩れフレーズに対応する正規フレーズに変換した解析候補文を生成すると共に、複数箇所の部分文字列を、崩れフレーズに対応する正規フレーズに変換した解析候補文を生成する。
ラティス生成部1139は、第1の参考例の形態素解析装置に係るラティス生成部239と同様に、入力部210において受け付けた入力文と、解析対象抽出部238において抽出された解析対象文の各々とに対して、辞書データベース記憶部233に記憶されている辞書を用いて辞書引きを行う。また、正規フレーズに変換したノードに対応する部分文字列について、文字種変換辞書を用いて、部分文字列の読みに基づいて展開を行う。「漢字」表記又は「カタカナ」表記から「ひらがな」表記を展開する。同様に、「漢字」表記又は「ひらがな」表記から「カタカナ」表記を展開する。例えば前者であれば「教科書→きょうかしょ」「バイト→ばいと」と展開し、後者であれば「先生→センセイ」「ありがとう→アリガトウ」と展開する。また、入力文が「一人でかぅんたーなう」である場合の一例として、崩れフレーズに対応する部分文字列である「ぅ」が正規フレーズ「う」に変換されることにより生成された解析候補文「一人でかうんたーなう」について、部分文字列の「かうんたー」を「カウンター」と展開する。
そして、ラティス生成部1139は、第1の参考例の形態素解析装置に係るラティス生成部239と同様に、品詞が付与された各部分文字列に対応するノード及び連結される部分文字列に対応するノードを結んだエッジからなるグラフ構造であるラティスを生成する。
なお、第1の実施の形態に係る形態素解析装置1100及びモデル学習装置1000の他の構成及び作用については、第1の参考例と同様であるため、説明を省略する。
以上説明したように、本発明の第1の実施の形態に係る形態素解析装置によれば、入正規崩れフレーズモデルに基づいて変換した正規フレーズについて、異なる文字種の部分文字列に展開して、ラティスを構築するため、形態素解析を精度よく行うことができる。また、文字列レベルの揺らぎモデルに加え、文字種変換候補展開を組み合わせることで、正規化解析可能な崩れ表記を拡大することができる。
また、第1の実施の形態に係る形態素解析装置によれば、崩れフレーズが複数箇所含まれる場合を考慮しているため、崩れフレーズを複数個所含む崩れ語を含む文字列に対しても形態素解析を精度よく行うことができる。
また、第1の実施の形態に係るモデル学習装置によれば、崩れフレーズが複数箇所含まれる場合を考慮しているため、崩れフレーズを複数個所含む崩れ語を含む文字列に対しても形態素解析を精度よく行うことができるフレーズフィルタモデルを学習することができる。
<第2の実施の形態>
次に、本発明の第2の実施の形態について説明する。なお、第1の参考例及び第1の実施の形態と同様の構成及び作用となる部分については、同一符号を付して説明を省略する。
<概要>
例えば、崩れフレーズを正規フレーズに変換する際、同じ「お→う」と変換する場合であっても、(おいしい→ういしい)という変換の起こりやすさと、(いこお→いこう)という変換の起こりやすさは異なっている。そのため、文字列の変換確率や文字n−gram確率のみに基づいて、正しく変換された解析候補文であるか否かを判定する場合には、形態素の文字位置情報や品詞情報などが欠落しているため正確に判定ができない、という課題がある。
そこで、第2の実施の形態では、崩れフレーズを正規フレーズに変換した部分文字列の形態素情報に基づいてノードに対応する部分文字列が正しく変換されているか否かを判定し、解析対象文の抽出を行う。具体的には、崩れフレーズを正規フレーズに変換した部分文字列ごとに辞書引きして得られた形態素の文字長さ、品詞、変換文字列の形態素内での位置等に基づいて、正しく変換された解析候補文であるか否かの判定を行い、解析対象文の抽出を行う。
<第2の実施の形態に係るモデル学習装置の構成>
次に、第2の実施の形態に係るモデル学習装置1200の構成について説明する。
本発明の第2の実施の形態に係るモデル学習装置1200は、図26に示すように、入力部10と、演算部1220と、出力部50とを備えている。
演算部1220は、初期設定部30と、フレーズアライメント部31と、変換確率算出部32と、反復判定部34と、正規崩れフレーズモデル記憶部36と、統計量算出部42と、形態素情報付与部1230と、データ生成部1234と、モデル学習部44と、フレーズフィルタモデル記憶部46とを含んで構成されている。
形態素情報付与部1230は、入力部10において受け付けた正規語崩れ語ペアデータに含まれるペアの各々について、正規崩れフレーズモデル記憶部36に記憶されている正規崩れフレーズモデルに基づいて、崩れ語の部分文字列のうち、崩れフレーズに該当する部分文字列を、当該崩れフレーズに対応する正規フレーズの部分文字列に変換する。そして、正規フレーズに変換された各部分文字列に対して辞書引きして、形態素情報を付与する。なお、形態素情報は形態素の文字長さ、品詞、変換文字列の形態素内での位置等を含むものとする。
データ生成部1234は、変換後の正規フレーズが当該崩れ語に対応する正規語に含まれるか否か判定し、含まれる場合には当該正規フレーズの形態素に対応する文字n‐gram統計量、当該崩れフレーズの形態素に対応する文字n‐gram統計量、及び形態素情報を含む学習データを正例データとして生成し、含まれない場合には当該正規フレーズに対応する文字n‐gram統計量、崩れフレーズに対応する文字n‐gram統計量、及び形態素情報を含む学習データを、負例データとして生成する。例えば、解析対象文が「ぁりがとぅー」である場合の学習データの一例として、図27、29に示すように、各部分文字列と部分文字列の形態素のペアにラベルとして正解である正例データには1を付与し、正解ではない負例データには0を付与して学習データを作成することができる。
<第2の実施の形態に係る形態素解析装置の構成>
次に、第2の実施の形態に係る形態素解析装置1300の構成について説明する。
本発明の第2の実施の形態に係る形態素解析装置1300は、図28に示すように、入力部210と、演算部1320と、出力部50とを備えている。
演算部1320は、解析候補生成部1130と、正規崩れフレーズモデル記憶部232と、辞書データベース記憶部233と、文字種変換辞書データベース記憶部934と、フレーズフィルタモデル記憶部236と、ラティス生成部1334と、算出部1336と、ノード抽出部1338と、選択部240とを含んで構成されている。
ラティス生成部1334は、第1の参考例の形態素解析装置に係るラティス生成部239と同様の処理を行って、入力部210において受け付けた入力文と、解析候補生成部1130によって生成された解析候補文の各々とに対して、辞書引きを行い、品詞が付与された各部分文字列に対応するノード及び連結される部分文字列に対応するノードを結んだエッジからなるグラフ構造であるラティスを生成する。また、ラティス生成部1334は、第1の実施の形態の形態素解析装置1100に係るラティス生成部1139と同様に正規フレーズに変換した部分文字列について文字種の展開を行い、変換された部分文字列について辞書引きを行って、品詞が付与されたノードを追加する。
算出部1336は、ラティス生成部1334によって生成されたノードのうち正規フレーズに変換された部分文字列に対応するノードの各々及び文字種の展開により追加されたノードの各々について、ノードに対応する部分文字列の正規フレーズに対し、フレーズフィルタモデル記憶部436に記憶されているフレーズフィルタモデル、及びラティス生成の際にノードに付与された品詞を含む形態素情報とに基づいて、当該ノードに対応する正規フレーズへ変換した変換の尤もらしさを示すスコアを算出する。
ノード抽出部1338は、ラティス生成部1334によって生成されたノードのうち正規フレーズに変換された部分文字列に対応するノードの各々について、算出部1336において当該ノードについて算出された、尤もらしさを示すスコアが閾値よりも大きいか否か判定する。閾値よりも尤もらしさを示すスコアが大きい場合、当該ノードを解析対象として抽出し、算出された尤もらしさを示すスコアが閾値以下である場合、当該ノードを削除する。そして、削除されたノードを除いて、抽出されたノード及び連結される部分文字列に対応するノードを結んだエッジからなるグラフ構造であるラティスを再構成する。
<第2の実施の形態に係るモデル学習装置の作用>
次に、第2の実施の形態に係るモデル学習装置1200の作用について説明する。まず、入力部10において正規語崩れ語ペアデータを受け付けると、モデル学習装置1200は、上記図11に示す正規崩れフレーズモデル学習処理ルーチンと同様の処理ルーチンを実行する。また、入力部10において複数分野のコーパスを受け付けると、モデル学習装置1200は、図30に示すフレーズフィルタモデル学習処理ルーチンを実行する。
ステップS600では、辞書データベース記憶部233に記憶されている辞書を読み込む。
ステップS602では、入力部10において受け付けた正規語崩れ語ペアデータの処理対象のペアについて、ステップS204において変換した正規フレーズの各々に対して、ステップS600で読み込んだ辞書を用いて辞書引きを行い、品詞を含む形態素情報を付与する。
次に、ステップS604では、入力部10において受け付けた正規語崩れ語ペアデータの処理対象のペアについて、ステップS204において変換した正規フレーズの各々について、処理対象のペアの正規語に含まれるか否か判定し、含まれる場合には、ステップS203において取得した当該正規フレーズと当該崩れフレーズとの各々に対応する文字n‐gram統計量とステップS602において付与した形態素情報とを含む学習データを正例データとして作成し、含まれない場合には、ステップS203において取得した当該正規フレーズと当該崩れフレーズとの各々に対応する文字n‐gram統計量とステップS602において付与した形態素情報とを含む学習データを負例データとして作成する。
<第2の実施の形態に係る形態素解析装置の作用>
次に、第2の実施の形態に係る形態素解析装置1300の作用について説明する。入力部210において入力文を受け付けると、形態素解析装置1300は、図31に示す形態素解析処理ルーチンを実行する。
ステップS700では、文字種変換辞書データベース記憶部934に記憶されている文字種変換辞書を読み込む。
ステップS702では、入力部210において受け付けた入力文について、ステップS300において取得した正規崩れフレーズモデルに基づいて、崩れフレーズに該当する部分文字列を、正規フレーズに変換した解析候補文の各々を生成する。
ステップS708では、ステップS702において生成された解析候補文の各々と、入力部210において受け付けた入力文とに対して、ステップS301において取得した辞書を用いて辞書引きを行い、品詞が付与された各部分文字列に対応するノード及び連結される部分文字列に対応するノードを結んだエッジからなるグラフ構造であるラティスを生成する。また、ラティスの生成にあたって、ステップS700において取得した、文字種変換辞書を用いて、ステップS702で正規フレーズに変換された部分文字列に対応する各ノードについて、読みが同一の異なる文字種の部分文字列に展開し、展開した部分文字列について辞書引きを行って、品詞が付与されたノードを追加する。
ステップS710では、ステップS708において生成したラティスのうち、正規フレーズに変換された部分文字列に対応する各ノード及び異なる文字種の部分文字列に展開されて追加された各ノードについて、入力部210において受け付けた入力文と、ステップS302において取得したフレーズフィルタモデル、文字n‐gram統計量及び形態素情報とに基づいて、崩れフレーズを正規フレーズへ変換した変換の尤もらしさを示すスコアを算出する。
ステップS712では、ステップS710において算出したスコアに基づいて、フレーズ変換の尤もらしさを示すスコアが閾値よりも大きい値であるノードの各々を抽出すると共に、フレーズ変換の尤もらしさを示すスコアが閾値以下の値であるノードの各々を削除して、ラティスを再構成する。
ステップS714では、ステップS712において再構成されたラティスと、ステップS300において取得した正規崩れフレーズモデルの変換確率と、ステップS301において取得した辞書のコスト及び品詞ペアの接続確率とに基づいて、動的計画法に従って、次の(5)式の目的関数を最小化する、当該ラティスのノードを結んだ最適な経路を選択する。
ただし、^wは最適単語及び最適品詞の列であり、Wは単語及び品詞の列を示す。また、λkはk番目の素性の重みであり、φk(w)はk番目の素性を示す。各素性としては、後述する第3の実施の形態で説明する複数の素性を用いればよい。
なお、第2の実施の形態に係る形態素解析装置1300及びモデル学習装置1200の他の構成及び作用については、第1の参考例と同様であるため、説明を省略する。
以上説明したように、本発明の第2の実施の形態に係る形態素解析装置によれば、生成したラティスにおける、崩れフレーズを正規フレーズに変換した部分文字列に対応するノードについて、当該部分文字列の形態素情報を考慮して、当該ノードに対応する正規フレーズへ変換した変換の尤もらしさを示すスコアを算出し、スコアが閾値以下のノードを削除することにより、精度よく形態素解析を行うことができる。
<第3の実施の形態>
次に、本発明の第3の実施の形態について説明する。なお、第1の参考例及び第1及び第2の実施の形態と同様の構成及び作用となる部分については、同一符号を付して説明を省略する。
<概要>
例えば、動的計画法に従って、ラティスのノードを結んだ最適な経路を選択しようとする場合、品詞連接コスト(各形態素の連接のしやすさを表す指標)と単語コスト(各形態素の生起のしやすさを表す指標)の和を用いて形態素列の尤もらしさを評価すると、文字列を変換して生成した解析候補文に対しても、変換前の解析候補文と同様のコストが与えられる。そのため、誤った候補が選択されやすくなってしまう、という課題がある。
また、文字種や部分文字列を変換することで展開されるノードの数が多くなる場合、適切なコスト付けの問題は重要な課題となる。
そこで、第3の実施の形態では、正規文の尤もらしさを判断するための複数の素性に関する重みを用いて最適な候補の選択を行う。最適な候補の選択は、上記(5)式に示すように素性関数と重みを掛け合わせた総コストの値を最小化するように行う。また、最適な重みを学習する。最適な重みの学習では、
MERTを用いて、以下(6)、(7)式に示すように正規文とシステム解析文との形態素解析結果の異なり数を最小化することで最適な重みを学習する。MERTによる学習は、非特許文献4(Machery W, Och F J, and Thayer I Uszkoreit J.Lattice-based minimum error rate training for statistical machine translation. In Proc. of EMNLP, Vol. 1,pp. 725-734, 2008.)に記載されているものと同様の手法を用いる。
ただし、Eは正規文の形態素解析結果を示す。Nは正規文の文数を表す。
本実施の形態においては、素性関数として、生成されたラティスにおけるノードを結んだ各経路についてのコストを算出するための素性関数において、複数の素性を用いる。具体的には、経路が表す品詞列に対して、品詞同士が連接する確率に関する品詞連接コストを示す第1素性φ1、経路が表す単語列に対して、単語が生起する確率に関する単語コストを示す第2素性φ2、経路が表す単語列に対して、n個の単語が生起したときに単語が生起する確率に関する単語表層n−gramに基づくコスト(本実施の形態では単語bi−gramを用いる)を示す第3素性φ3、崩れフレーズを正規フレーズに変換することについての変換確率及び崩れフレーズを正規フレーズへ変換した変換の尤もらしさを示すスコアを含む文字列変換コストを示す第4素性(φ4、φ5)、文字列が、文字種変換辞書に基づいて置き換えた部分文字列を含む場合における文字種変換コストを示す第5素性(φ6、φ7)を用いる。ここで、単語表層n−gramに基づくコストを示す第3素性φ3は、−log(単語bi−gram確率)の値である。また、文字列変換コストを示す第4素性は、−log(正規崩れフレーズモデルの変換確率)の値である素性φ4と、フレーズフィルタモデルに基づく崩れフレーズを正規フレーズへ変換した変換の尤もらしさを示すスコアである素性φ5とを含む。また、文字種変換コストを示す第5素性は、文字種がひらがなに変換された文字列に対して(1×単語コスト)となる値である素性φ6と、文字種がカタカナに変換された文字列に対して(1×単語コスト)となる値である素性φ7とを含む。
<第3の実施の形態に係るモデル学習装置の構成>
次に、第3の実施の形態に係るモデル学習装置1500の構成について説明する。
本発明の第3の実施の形態に係るモデル学習装置1500は、図32に示すように、入力部10と、演算部1520と、出力部50とを備えている。
演算部1520は、初期設定部30と、フレーズアライメント部31と、変換確率算出部32と、反復判定部34と、正規崩れフレーズモデル記憶部36と、統計量算出部42と、解析候補生成部1530と、辞書データベース記憶部233と、文字種変換辞書データベース記憶部934と、形態素情報付与部1230と、データ生成部1234と、モデル学習部44と、フレーズフィルタモデル記憶部46と、解析候補生成部1530と、ラティス生成部1532と、算出部1533と、ノード抽出部1534と、素性抽出部1536と、モデル推定部1538と、解析用識別モデル記憶部1542とを含んで構成されている。
入力部10は、正規語崩れ語ペアデータを受け付けると共に、web上の複数分野の大量の文書群を受け付け、複数分野のコーパスとする。また、入力部10は、崩れ文と対応する正規文に対する形態素解析結果とのペアである正規文崩れ文ペアの各々を受け付ける。
解析候補生成部1530は、入力部10によって受け付けた正規文崩れ文ペアの各々について、正規崩れフレーズモデル記憶部36に記憶されている正規崩れフレーズモデルに基づいて、上記の第2の実施の形態で説明した解析候補生成部1130と同様に、当該正規文崩れ文ペアの崩れ文に含まれる部分文字列のうち、崩れフレーズに該当する部分文字列を、当該崩れフレーズに対応する正規フレーズの部分文字列に変換することにより解析候補文を各々生成する。
ラティス生成部1532は、第1の参考例の形態素解析装置に係るラティス生成部239と同様の処理を行って、解析候補生成部1530によって生成された解析候補文に対して、辞書引きを行い、品詞が付与された各部分文字列に対応するノード及び連結される部分文字列に対応するノードを結んだエッジからなるグラフ構造であるラティスを生成する。また、第1の実施の形態の形態素解析装置1100に係るラティス生成部1139と同様に正規フレーズに変換した部分文字列について文字種の展開を行い、変換された部分文字列について辞書引きを行って、品詞が付与されたノードを追加する。なお、このとき文字種の展開履歴をメモリに記憶する。
算出部1533は、第2の実施の形態の形態素解析装置に係る算出部1336と同様の処理を行って、ノードに対応する正規フレーズへ変換した変換の尤もらしさを示すスコアを算出する。
ノード抽出部1534は、第2の実施の形態の形態素解析装置に係るノード抽出部1338と同様の処理を行って、ラティス生成部1532によって生成されたノードのうち正規フレーズに変換された部分文字列に対応するノードの各々について、算出部1533において当該ノードについて算出された、尤もらしさを示すスコアが閾値よりも大きいか否か判定する。閾値よりも尤もらしさを示すスコアが大きい場合、当該ノードを解析対象として抽出し、算出された尤もらしさを示すスコアが閾値以下である場合、当該ノードを削除する。そして、削除されたノードを除いて、抽出されたノード及び連結される部分文字列に対応するノードを結んだエッジからなるグラフ構造であるラティスを再構成する。
素性抽出部1536は、ノード抽出部1534で再構成したラティスについてのノードを結んだ各経路について、素性関数において用いられる複数の素性を抽出する。具体的には、ラティスの経路について、既存の構築した辞書に記憶された推定値に基づいて、品詞連接コストを示す第1素性、単語コストを示す第2素性、単語bi−gram確率を示す第3素性を抽出する。また、ラティスの経路について、正規崩れフレーズモデル及びフレーズフィルタモデルに基づいて、文字列変換コストを示す第4素性を抽出する。また、ラティスの経路について、ラティス生成部1532において文字種を展開した際にメモリに記憶した文字種の展開履歴に基づいて、文字種変換コストを示す第5素性を抽出する。なお、ノード抽出部1534によるノードの抽出を行わず、ラティス生成部1532によって生成されたラティスにおけるノードを結んだ各経路について、複数の素性の抽出を行ってもよい。
なお、文字列変換コストを示す第4素性は、解析候補生成部1530によって崩れフレーズを正規フレーズへ変換することで生成した部分文字列を含む経路についてのみ抽出し、文字種変換コストを示す第5素性は、ラティス生成部1532において文字種を変換した部分文字列を含む経路についてのみ抽出する。
上記の解析候補生成部1530、ラティス生成部1532、算出部1533、ノード抽出部1534、及び素性抽出部1536の各処理を、入力部10によって受け付けた正規文崩れ文ペアの各々について行う。
モデル推定部1538は、入力部10によって受け付けた正規文崩れ文ペアの各々における正規文に対する形態素解析結果と、正規文崩れ文ペアの各々に対し、素性抽出部1536によって各経路について抽出した複数の素性とに基づいて、MERTによる識別学習により、複数の素性を重み付け加算した値が最小となる経路が表す形態素解析結果と、入力された正規文の形態素解析結果との差分が最小になるように、複数の素性に対する重みの各々を学習し、正規文の尤もらしさを判断するための解析用識別モデルとして、解析用識別モデル記憶部1542に記憶すると共に、出力部50に出力する。なお、学習手法として構造化パーセプトロンを用いてもよい。
<第3の実施の形態に係る形態素解析装置の構成>
次に、第3の実施の形態に係る形態素解析装置1600の構成について説明する。
本発明の第3の実施の形態に係る形態素解析装置1600は、図33に示すように、入力部210と、演算部1620と、出力部50とを備えている。
演算部1620は、解析候補生成部1130と、正規崩れフレーズモデル記憶部232と、辞書データベース記憶部233と、文字種変換辞書データベース記憶部934と、フレーズフィルタモデル記憶部236と、ラティス生成部1334と、算出部1336と、ノード抽出部1338と、素性抽出部1640と、選択部1641と、解析用識別モデル記憶部1642とを含んで構成されている。
素性抽出部1640は、ノード抽出部1338によって再構成されたラティスについてのノードを結んだ各経路について、複数の素性を抽出する。なお、モデル学習装置1500に係る素性抽出部1536と同様の素性を抽出する。
選択部1641は、図36において示すように、ラティス生成部1334において生成したラティスと、解析用識別モデル記憶部1642に記憶されている複数の素性の重みと、素性抽出部1640によりラティスの各経路から抽出した複数の素性とに基づいて、入力された文について、動的計画法に従って、上記(5)式の損失関数を最小化する、当該ラティスのノードを結んだ最適な経路を選択し、選択された経路が表す正規表記の品詞と単語区切りを、形態素解析結果として出力する。
<第3の実施の形態に係るモデル学習装置の作用>
次に、第3の実施の形態に係るモデル学習装置1500の作用について説明する。まず、入力部10において正規語崩れ語ペアデータを受け付けると、モデル学習装置1500は、上記図11に示す正規崩れフレーズモデル学習処理ルーチンと同様の処理ルーチンを実行する。また、入力部10において複数分野のコーパスを受け付けると、モデル学習装置1500は、上記図30に示すフレーズフィルタモデル学習処理ルーチンと同様の処理ルーチンを実行する。
また、入力部10において複数の正規文崩れ文ペアを受け付けると、モデル学習装置1500は、図34に示す解析用識別モデル学習処理ルーチンを実行する。
まず、ステップS800では、正規崩れフレーズモデル記憶部36に記憶されている正規崩れフレーズモデルを読み込む。
次に、ステップS802では、辞書データベース記憶部233に記憶されている辞書を読み込む。
ステップS804では、文字種変換辞書データベース記憶部934に記憶されている辞書を読み込む。
ステップS806では、フレーズフィルタモデル記憶部46に記憶されているフレーズフィルタモデルを読み込む。
ステップS808では、入力部10において受け付けた正規文崩れ文ペアのうちの処理対象のペアについて、ステップS800において取得した正規崩れフレーズモデルに基づいて、当該ペアの崩れ文に含まれる部分文字列のうち、崩れフレーズに該当する部分文字列を、当該崩れフレーズに対応する正規フレーズの部分文字列に変換し、解析候補文を生成する。
ステップS810では、ステップS808において生成された解析候補文の各々と、入力部10において受け付けた正規文崩れ文ペアのうちの処理対象のペアの崩れ文とに対して、ステップS802において取得した辞書を用いて辞書引きを行い、品詞が付与された各部分文字列に対応するノード及び連結される部分文字列に対応するノードを結んだエッジからなるグラフ構造であるラティスを生成する。また、ラティスの生成にあたって、ステップS804において取得した、文字種変換辞書を用いて、ステップS808で正規フレーズに変換された部分文字列に対応する各ノードについて、読みが同一の異なる文字種の部分文字列に展開し、展開した部分文字列について辞書引きを行って、品詞が付与されたノードを追加する。また、文字種の展開履歴をメモリに記憶する。
ステップS811では、ステップS810において生成したラティスのうち、正規フレーズに変換された部分文字列に対応する各ノード及び異なる文字種の部分文字列に展開されて追加された各ノードについて、入力部10において受け付けた入力文と、ステップS806において取得したフレーズフィルタモデル、文字n‐gram統計量及び形態素情報とに基づいて、崩れフレーズを正規フレーズへ変換した変換の尤もらしさを示すスコアを算出する。
ステップS812では、ステップS811において算出したスコアに基づいて、フレーズ変換の尤もらしさを示すスコアが閾値よりも大きい値であるノードの各々を抽出すると共に、フレーズ変換の尤もらしさを示すスコアが閾値以下の値であるノードの各々を削除して、ラティスを再構成する。
ステップS814では、ステップS802において取得した辞書と、ステップS806において取得したフレーズフィルタモデルと、ステップS810において記憶した文字種の展開履歴とに基づいて、ステップS812において再構成されたラティスの各経路について、素性関数において用いられる複数の素性を抽出する。
ステップS816では、正規文崩れ文ペアの全てについて、上記ステップS808からS814の処理を実行したか否かを判定し、上記ステップS808からS814の処理を実行していないペアが存在する場合には、上記ステップS808へ戻り、当該ペアを、処理対象とする。一方、全てのペアについて、上記ステップS808からS814の処理を実行した場合には、ステップS818へ進む。
次に、ステップS818では、入力部10によって受け付けた正規文崩れ文ペアの各々における正規文に対する形態素解析結果と、ステップS814において正規文崩れ文ペアの各々に対して抽出した、各経路における複数の素性とに基づいて、MERTを用いた識別学習により、複数の素性を重み付け加算した値が作用となる経路が表す形態素解析結果と、入力された正規文の形態素解析結果との差分が最小になるように、複数の素性に対する重みの各々を学習し、解析用識別モデル記憶部1542に記憶する。
次に、ステップS820では、ステップS818において学習した重みを解析用識別モデルとして出力部50により出力し、解析用識別モデル学習処理ルーチンの処理を終了する。
<第3の実施の形態に係る形態素解析装置の作用>
次に、第3の実施の形態に係る形態素解析装置1600の作用について説明する。入力部210において入力文を受け付けると、形態素解析装置1600は、図35に示す形態素解析処理ルーチンを実行する。
ステップS900では、解析用識別モデル記憶部1642に記憶されているモデルを読み込む。
ステップS901では、入力部210において受け付けた入力文について、ステップS300において取得した正規崩れフレーズモデルに基づいて、解析候補文の各々を生成する。また、崩れフレーズが複数ある場合には複数箇所を変換した解析候補文を生成する。
ステップS708では、ステップS901において生成された解析候補文の各々と、入力部210において受け付けた入力文とに対して、ステップS301において取得した辞書を用いて辞書引きを行い、品詞が付与された各部分文字列に対応するノード及び連結される部分文字列に対応するノードを結んだエッジからなるグラフ構造であるラティスを生成する。また、ラティスの生成にあたって、ステップS700において取得した、文字種変換辞書を用いて、ステップS901で正規フレーズに変換された部分文字列に対応する各ノードについて、読みが同一の異なる文字種の部分文字列に展開し、展開した部分文字列について辞書引きを行って、品詞が付与されたノードを追加する。
ステップS710では、ステップS708において生成したラティスのうち、正規フレーズに変換された部分文字列に対応する各ノード及び異なる文字種の部分文字列に展開されて追加された各ノードについて、入力部210において受け付けた入力文と、ステップS302において取得したフレーズフィルタモデル、文字n‐gram統計量及び形態素情報とに基づいて、崩れフレーズを正規フレーズへ変換した変換の尤もらしさを示すスコアを算出する。
ステップS712では、ステップS710において算出したスコアに基づいて、フレーズ変換の尤もらしさを示すスコアが閾値よりも大きい値であるノードの各々を抽出すると共に、フレーズ変換の尤もらしさを示すスコアが閾値以下の値であるノードの各々を削除して、ラティスを再構成する。
次に、ステップS902では、ステップS712において再構成されたラティスの各経路について複数の素性を抽出する。
ステップS904では、ステップS900において取得した解析用識別モデルに記憶された素性の重みと、ステップS712において再構成されたラティスと、ステップS902において抽出したラティスの各経路における複数の素性とに基づいて、動的計画法に従って、上記(5)式の損失関数を最小化する、当該ラティスのノードを結んだ最適な経路を選択する。
上記の形態素解析処理ルーチンを実行することにより、例えば、入力文「そんなれべるにそまるのをなんとか避けなければ」が入力された場合には、図37(B)に示すような、形態素解析結果が出力される。なお、比較例として、従来の形態素解析器を用いた場合の形態素解析結果を、図37(A)に示す。
以上説明したように、本発明の第3の実施の形態に係るモデル学習装置によれば、崩れ文と、正規文に対する形態素解析結果とのペアを入力とし、ラティスにおける各経路うち、経路について抽出される複数の素性を重み付き加算した値が最小となるように経路が表す形態素解析結果と、入力された正規文の形態素解析結果との差分が最小になるように、各素性の重みを学習することにより、崩れ表記があっても精度よく形態素解析をするためのモデルを学習することができる。
また、本発明の第3の実施の形態に係る形態素解析装置によれば、ラティスにおけるノードを結んだ各経路についての複数の素性を用いて予め学習した解析用識別モデルの重みを用いて、揺らいだ表記である崩れ語を含む文字列に対しても、形態素解析を精度よく行うことができる。また、文字種変換候補展開を組み合わせて正規化解析の対象候補が増えたことに対して、ラティスの各経路から適切な素性を抽出することで、誤りの増加を抑えつつ解析可能な範囲を拡大することを可能とした。
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
例えば、上記の第3の実施の形態では、生成したラティスのノードについて、崩れフレーズを正規フレーズへ変換した変換の尤もらしさを示すスコアを算出し、スコアが閾値以下のノードを削除し、ラティスを再構成する場合を例に説明したが、これに限定されるものではない。例えば、上記の第3の実施の形態と同様に、ラティスを生成する前に、フレーズフィルタモデル、文字n‐gram統計量及び形態素情報とに基づいて、崩れフレーズを正規フレーズへ変換した変換の尤もらしさを示すスコアを算出し、尤もらしい解析候補文を抽出してから、ラティスを生成するようにしてもよい。
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能であるし、ネットワークを介して提供することも可能である。