(57)【要約】【課題】形態素辞書の被覆率に関わらず、総じて高い解析精度を達成することができる。【解決手段】形態素予測部３８が、ベクトル合成部３６によって文字毎に生成された合成ベクトルを、系列予測器に入力して、順次計算して、形態素ラベル列を、入力文章の形態素解析結果として出力する。このとき、文字ベクトルと形態素情報ベクトルとを合成した合成ベクトルであって、所定の確率で、形態素情報ベクトルを合成せずに生成された合成ベクトルを、系列予測器に入力して、順次計算することにより得られる形態素ラベル列が、学習データの形態素ラベル列となるように予め学習された系列予測器を用いる。【選択図】図２
2019144844.tif 000002
【特許請求の範囲】
【請求項１】
学習用入力文章と、前記学習用入力文章の形態素解析結果である形態素ラベル列とのペアである学習データを取得するサンプリング部と、
前記学習データの学習用入力文章を文字単位に分割する分割部と、
前記学習用入力文章の文字毎に文字ベクトルを取得する文字ベクトル取得部と、
前記学習用入力文章の部分文字列毎に、形態素辞書から、前記部分文字列と一致する形態素情報を取得し、取得した形態素情報を表す形態素ベクトルを取得する辞書ベクトル取得部と、
前記学習用入力文章の文字毎に、文字ベクトルと形態素情報ベクトルとを合成した合成ベクトルを生成するベクトル合成部であって、所定の確率で、形態素情報ベクトルを合成せずに前記合成ベクトルを生成するベクトル合成部と、
前記ベクトル合成部によって文字毎に生成された合成ベクトルを、形態素ラベルを付与するための符号化ユニットを用いた系列予測器であって、かつ、前記符号化ユニットは、一つ前の前記符号化ユニットの出力を入力とする前記系列予測器に入力して、順次計算することにより得られる形態素ラベル列が、前記学習データの形態素ラベル列となるように、前記系列予測器のパラメータを学習するパラメータ学習部と、
を含む形態素解析学習装置。
【請求項２】
前記ベクトル合成部は、ランダムに、文字ベクトルと形態素情報ベクトルとを合成した前記合成ベクトルを生成するか、形態素情報ベクトルを合成せずに前記合成ベクトルを生成するかを決定して、前記合成ベクトルを生成する請求項１記載の形態素解析学習装置。
【請求項３】
前記ベクトル合成部は、文字ベクトルと形態素情報ベクトルとを合成した前記合成ベクトルを生成する場合と、形態素情報ベクトルを合成せずに前記合成ベクトルを生成する場合とが均等になるように、前記合成ベクトルを生成する請求項１記載の形態素解析学習装置。
【請求項４】
入力文章を文字単位に分割する分割部と、
文字毎に文字ベクトルを取得する文字ベクトル取得部と、
部分文字列毎に、形態素辞書から、前記部分文字列と一致する形態素情報を取得し、取得した形態素情報を表す形態素ベクトルを取得する辞書ベクトル取得部と、
文字毎に、文字ベクトルと形態素情報ベクトルとを合成した合成ベクトルを生成するベクトル合成部と、
前記ベクトル合成部によって文字毎に生成された合成ベクトルを、形態素ラベルを付与するための符号化ユニットを用いた系列予測器であって、かつ、前記符号化ユニットは、一つ前の前記符号化ユニットの出力を入力とする前記系列予測器に入力して、順次計算して、形態素ラベル列を、前記入力文章の形態素解析結果として出力する形態素予測部と、
を含む形態素解析装置であって、
前記系列予測器は、
学習用入力文章と、前記学習用入力文章の形態素解析結果である形態素ラベル列とのペアである学習データの前記学習用入力文章の文字毎に、文字ベクトルと形態素情報ベクトルとを合成した合成ベクトルであって、所定の確率で、形態素情報ベクトルを合成せずに生成された前記合成ベクトルを、前記系列予測器に入力して、順次計算することにより得られる形態素ラベル列が、前記学習データの形態素ラベル列となるように予め学習されたものである
形態素解析装置。
【請求項５】
サンプリング部が、学習用入力文章と、前記学習用入力文章の形態素解析結果である形態素ラベル列とのペアである学習データを取得し、
分割部が、前記学習データの学習用入力文章を文字単位に分割し、
文字ベクトル取得部が、前記学習用入力文章の文字毎に文字ベクトルを取得し、
辞書ベクトル取得部が、前記学習用入力文章の部分文字列毎に、形態素辞書から、前記部分文字列と一致する形態素情報を取得し、取得した形態素情報を表す形態素ベクトルを取得し、
ベクトル合成部が、前記学習用入力文章の文字毎に、文字ベクトルと形態素情報ベクトルとを合成した合成ベクトルを生成するベクトル合成部であって、所定の確率で、形態素情報ベクトルを合成せずに前記合成ベクトルを生成し、
パラメータ学習部が、前記ベクトル合成部によって文字毎に生成された合成ベクトルを、形態素ラベルを付与するための符号化ユニットを用いた系列予測器であって、かつ、前記符号化ユニットは、一つ前の前記符号化ユニットの出力を入力とする前記系列予測器に入力して、順次計算することにより得られる形態素ラベル列が、前記学習データの形態素ラベル列となるように、前記系列予測器のパラメータを学習する
形態素解析学習方法。
【請求項６】
分割部が、入力文章を文字単位に分割し、
文字ベクトル取得部が、文字毎に文字ベクトルを取得し、
辞書ベクトル取得部が、部分文字列毎に、形態素辞書から、前記部分文字列と一致する形態素情報を取得し、取得した形態素情報を表す形態素ベクトルを取得し、
ベクトル合成部が、文字毎に、文字ベクトルと形態素情報ベクトルとを合成した合成ベクトルを生成し、
形態素予測部が、前記ベクトル合成部によって文字毎に生成された合成ベクトルを、形態素ラベルを付与するための符号化ユニットを用いた系列予測器であって、かつ、前記符号化ユニットは、一つ前の前記符号化ユニットの出力を入力とする前記系列予測器に入力して、順次計算して、形態素ラベル列を、前記入力文章の形態素解析結果として出力する
形態素解析方法であって、
前記系列予測器は、
学習用入力文章と、前記学習用入力文章の形態素解析結果である形態素ラベル列とのペアである学習データの前記学習用入力文章の文字毎に、文字ベクトルと形態素情報ベクトルとを合成した合成ベクトルであって、所定の確率で、形態素情報ベクトルを合成せずに生成された前記合成ベクトルを、前記系列予測器に入力して、順次計算することにより得られる形態素ラベル列が、前記学習データの形態素ラベル列となるように予め学習されたものである
形態素解析方法。
【請求項７】
コンピュータを、請求項１〜請求項３のいずれか１項に記載の形態素解析学習装置、又は請求項４に記載の形態素解析装置の各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、形態素解析学習装置、形態素解析装置、方法、及びプログラムに係り、特に、入力文章の形態素解析を行うための形態素解析学習装置、形態素解析装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
自然言語とは、日本語や英語など人間が通常使う言語のことである。自然言語で記述された文章を文法や意味的に解析する技術は、例えば、その言語の成り立ちや構造を理解するという言語学的な観点で学術的な意義は高い。また近年では、人間が生成した文章を、文法・意味的に自動で解析し、その結果を利用して提供する様々なサービスが、主にweb 上で展開されるようになってきた。
【０００３】
例えば、翻訳サイト、人や商品の評判分析サイト、ある特定の事象に対する要約サイトなどのサービスが、これに相当する。これらのサービスでは、人間が生成した電子的な文章をシステム内部で文法、意味的に解析し、それらを利用し実際のサービスを提供する。その意味で、自然言語を文法、意味的に解析する技術は、これらサービスの根幹の技術であり、情報処理分野でも非常に重要な位置を占めるようになった。
【０００４】
一概に自然言語を解析するといっても、単語区切りや品詞推定といった表層的な解析から、語や節間の係り受け関係の推定といったより高度な解析を行うものまで含まれる。例えば、文章から文の区切りを推定する「文区切り」、単語の区切りを推定する「単語区切り」、単語の品詞を推定する品詞付与、単語や節間の関係を推定する係り受け解析などがある。これらの例を図７に示す。
【０００５】
本発明では、特に日本語の形態素解析に焦点をあてる。日本語の形態素解析器は、主に形態素の区切り、品詞推定、活用形推定、読み推定、基本形推定などを全て含めた処理をさす。従来の日本語形態素解析は、図８に示すように、形態素辞書に登録されている形態素を候補とし、入力文に対する最適な形態素列を選択する問題とみなして解く方法が、現在最も主流な解析方式といえる（非特許文献１）。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Taku Kudo, Kaoru Yamamoto, Yuji Matsumoto, Applying Conditional Random Fields to Japanese Morpho-logical Analysis, Proceedings of the 2004 Conference on Empirical Methods in Natural Language Processing (EMNLP-2004) , pp,230-237 (2004) .
【非特許文献２】Chiu, Jason and Nichols, Eric, Named Entity Recognition with Bidirectional LSTM-CNNs, Transactions of the Association for Computational Linguistics, volume 4, pp. 357-370, (2016).
【発明の概要】
【発明が解決しようとする課題】
【０００７】
前述の通り、従来の日本語形態素解析の主流な方式では、形態素辞書に登録されている形態素のみで文章が構成される場合には非常に効果的な方法として知られている。一方、形態素辞書に登録されていない形態素、いわゆる未知語を多く含む場合には、良好な解析結果が得られない場合が多いこともよく指摘されている。相対的に未知語に強い解析方法として形態素辞書に依存しない文字単位の解析方式も提案されているが、形態素辞書に登録されている語が多い文章に対しては解析精度が相対的に低くなるトレードオフが一般的には存在する（図９参照）。
【０００８】
解析の対象となる文章によって、文章中に出現する形態素が辞書に登録されているかどうかの率（以下、形態素辞書の被覆率と呼ぶ）は大きく違うことはよく知られている。例えば、新聞記事のように比較的標準の日本語文法に即して記述されている文章の場合は、形態素辞書の被覆率はかなり高くなる。一方で、ブログといった一般エンドユーザが生成する記事などは、誤記や誤用、口語的な表現などが多く含まれ、相対的に崩れた表現が多くなることで、形態素辞書の被覆率は低くなる。
【０００９】
このようにある程度、解析する対象によって形態素辞書の被覆率の大まかな高い低いは推定できるが、厳密には不明な場合がほとんどであり、かつ、解析対象がどのような筆者や状況に応じて書かれているかを知るすべがない場合も少なくない。
【００１０】
本発明は、上記の事情を鑑みて成されたものであり、形態素辞書の被覆率に関わらず、総じて高い解析精度を達成することができる形態素解析学習装置、形態素解析装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明に係る形態素解析学習装置は、学習用入力文章と、前記学習用入力文章の形態素解析結果である形態素ラベル列とのペアである学習データを取得するサンプリング部と、前記学習データの学習用入力文章を文字単位に分割する分割部と、前記学習用入力文章の文字毎に文字ベクトルを取得する文字ベクトル取得部と、前記学習用入力文章の部分文字列毎に、形態素辞書から、前記部分文字列と一致する形態素情報を取得し、取得した形態素情報を表す形態素ベクトルを取得する辞書ベクトル取得部と、前記学習用入力文章の文字毎に、文字ベクトルと形態素情報ベクトルとを合成した合成ベクトルを生成するベクトル合成部であって、所定の確率で、形態素情報ベクトルを合成せずに前記合成ベクトルを生成するベクトル合成部と、前記ベクトル合成部によって文字毎に生成された合成ベクトルを、形態素ラベルを付与するための符号化ユニットを用いた系列予測器であって、かつ、前記符号化ユニットは、一つ前の前記符号化ユニットの出力を入力とする前記系列予測器に入力して、順次計算することにより得られる形態素ラベル列が、前記学習データの形態素ラベル列となるように、前記系列予測器のパラメータを学習するパラメータ学習部と、を含んで構成されている。
【００１２】
また、本発明に係る形態素解析学習方法は、サンプリング部が、学習用入力文章と、前記学習用入力文章の形態素解析結果である形態素ラベル列とのペアである学習データを取得し、分割部が、前記学習データの学習用入力文章を文字単位に分割し、文字ベクトル取得部が、前記学習用入力文章の文字毎に文字ベクトルを取得し、辞書ベクトル取得部が、前記学習用入力文章の部分文字列毎に、形態素辞書から、前記部分文字列と一致する形態素情報を取得し、取得した形態素情報を表す形態素ベクトルを取得し、ベクトル合成部が、前記学習用入力文章の文字毎に、文字ベクトルと形態素情報ベクトルとを合成した合成ベクトルを生成するベクトル合成部であって、所定の確率で、形態素情報ベクトルを合成せずに前記合成ベクトルを生成し、パラメータ学習部が、前記ベクトル合成部によって文字毎に生成された合成ベクトルを、形態素ラベルを付与するための符号化ユニットを用いた系列予測器であって、かつ、前記符号化ユニットは、一つ前の前記符号化ユニットの出力を入力とする前記系列予測器に入力して、順次計算することにより得られる形態素ラベル列が、前記学習データの形態素ラベル列となるように、前記系列予測器のパラメータを学習する。
【００１３】
また、本発明に係る形態素解析装置は、入力文章を文字単位に分割する分割部と、文字毎に文字ベクトルを取得する文字ベクトル取得部と、部分文字列毎に、形態素辞書から、前記部分文字列と一致する形態素情報を取得し、取得した形態素情報を表す形態素ベクトルを取得する辞書ベクトル取得部と、文字毎に、文字ベクトルと形態素情報ベクトルとを合成した合成ベクトルを生成するベクトル合成部と、前記ベクトル合成部によって文字毎に生成された合成ベクトルを、形態素ラベルを付与するための符号化ユニットを用いた系列予測器であって、かつ、前記符号化ユニットは、一つ前の前記符号化ユニットの出力を入力とする前記系列予測器に入力して、順次計算して、形態素ラベル列を、前記入力文章の形態素解析結果として出力する形態素予測部と、を含む形態素解析装置であって、前記系列予測器は、学習用入力文章と、前記学習用入力文章の形態素解析結果である形態素ラベル列とのペアである学習データの前記学習用入力文章の文字毎に、文字ベクトルと形態素情報ベクトルとを合成した合成ベクトルであって、所定の確率で、形態素情報ベクトルを合成せずに生成された前記合成ベクトルを、前記系列予測器に入力して、順次計算することにより得られる形態素ラベル列が、前記学習データの形態素ラベル列となるように予め学習されたものである。
【００１４】
本発明に係る形態素解析方法は、分割部が、入力文章を文字単位に分割し、文字ベクトル取得部が、文字毎に文字ベクトルを取得し、辞書ベクトル取得部が、部分文字列毎に、形態素辞書から、前記部分文字列と一致する形態素情報を取得し、取得した形態素情報を表す形態素ベクトルを取得し、ベクトル合成部が、文字毎に、文字ベクトルと形態素情報ベクトルとを合成した合成ベクトルを生成し、形態素予測部が、前記ベクトル合成部によって文字毎に生成された合成ベクトルを、形態素ラベルを付与するための符号化ユニットを用いた系列予測器であって、かつ、前記符号化ユニットは、一つ前の前記符号化ユニットの出力を入力とする前記系列予測器に入力して、順次計算して、形態素ラベル列を、前記入力文章の形態素解析結果として出力する形態素解析方法であって、前記系列予測器は、学習用入力文章と、前記学習用入力文章の形態素解析結果である形態素ラベル列とのペアである学習データの前記学習用入力文章の文字毎に、文字ベクトルと形態素情報ベクトルとを合成した合成ベクトルであって、所定の確率で、形態素情報ベクトルを合成せずに生成された前記合成ベクトルを、前記系列予測器に入力して、順次計算することにより得られる形態素ラベル列が、前記学習データの形態素ラベル列となるように予め学習されたものである。
【００１５】
また、本発明に係るプログラムは、コンピュータを、上記の形態素解析学習装置、又は上記の形態素解析装置の各部として機能させるためのプログラムである。
【発明の効果】
【００１６】
本発明の形態素解析学習装置、方法、及びプログラムによれば、文字ベクトルと形態素情報ベクトルとを合成した合成ベクトルであって、所定の確率で、形態素情報ベクトルを合成せずに生成された前記合成ベクトルを、前記系列予測器に入力して、順次計算することにより得られる形態素ラベル列が、前記学習データの形態素ラベル列となるように系列予測器のパラメータを学習することにより、形態素辞書の被覆率に関わらず、総じて高い解析精度を達成することができる系列予測器を学習することができる、という効果が得られる。
【００１７】
また、本発明の形態素解析装置、方法、及びプログラムによれば、文字ベクトルと形態素情報ベクトルとを合成した合成ベクトルであって、所定の確率で、形態素情報ベクトルを合成せずに生成された前記合成ベクトルを、前記系列予測器に入力して、順次計算することにより得られる形態素ラベル列が、前記学習データの形態素ラベル列となるように予め学習された系列予測器を用いることにより、形態素辞書の被覆率に関わらず、総じて高い解析精度を達成することができる、という効果が得られる。
【図面の簡単な説明】
【００１８】
【図１】入力文章及び文字単位の一例を示す図である。
【図２】本発明の実施の形態に係る形態素解析装置の構成を示すブロック図である。
【図３】本発明の実施の形態に係る形態素解析学習装置の構成を示すブロック図である。
【図４】本発明の実施の形態に係る形態素解析学習装置における形態素解析学習処理ルーチンを示すフローチャートである。
【図５】本発明の実施の形態に係る形態素解析学習装置における形態素解析を行う処理ルーチンを示すフローチャートである。
【図６】本発明の実施の形態に係る形態素解析装置における形態素解析学習処理ルーチンを示すフローチャートである。
【図７】形態素解析の一例を示す図である。
【図８】最適な形態素列を選択する問題の一例を示す図である。
【図９】形態素辞書の被覆率に応じた正解率を示すグラフである。
【発明を実施するための形態】
【００１９】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００２０】
＜本発明の実施の形態に係る概要＞
まず、本発明の実施の形態における概要を説明する。
【００２１】
本発明の実施の形態では、まずベースの形態素解析器としてニューラルネットに基づく系列ラベル予測器を用いる(非特許文献２)。その上で、形態素辞書に登録されている形態素情報をニューラルネットに基づく系列ラベル予測器の特徴量として活用する。これにより、形態素辞書の被覆率が比較的高めの状況で、従来法と同等の解析精度を達成することが可能となる。
【００２２】
しかし、これだけでは、形態素辞書の被覆率が低めのデータに対しては、むしろ解析精度が劣化することを招いてしまう。これは、学習時に形態素辞書の情報を利用して学習を行なっているため辞書情報が存在しない文章に対しては、情報が欠損している状況と同じになるためである。
【００２３】
この状況を解決するために、本発明の実施の形態においては、一定の確率で学習データ中の辞書情報を部分的、あるいは、完全に隠蔽した状態の学習データを用いて学習を行うことにより、擬似的に形態素辞書の被覆率が高い場合と低い場合の状況を作り出し、形態素解析器の学習を行う。
【００２４】
詳細な処理方式については、以下にて述べる。
【００２５】
＜本発明の実施の形態の原理＞
形態素解析システムは、入力文章を受け取り、事前に定義された形態素の単位に分割し、品詞、活用形、読み、基本形などを付与する処理である。ここでは、ニューラルネットに基づく系列予測器（非特許文献２）をベースの方法論として用いた形態素解析システムを例に本発明の実施の形態の説明を述べる。
【００２６】
[形態素解析の処理手順]
入力文章に形態素を付与する処理の手順は大まかに以下のように記述できる。
【００２７】
入力として日本語の文章を受け付ける。
処理1: 入力された文章を文字単位に分割する。
処理2: 各文字に割り当てられているベクトルを取得し、入力文章に対するベクトルのリストを構築する。
処理3: 入力文章の全部分文字列に形態素辞書のエントリのマッチングを行い、各部分文字列に対してマッチしたエントリに対応するベクトルのリストを構築する。
処理4: 上記処理2 と処理3 で構築したベクトルのリストを入力し、合成したベクトルのリストを生成する。
処理5: 上記処理4 で構築したベクトルのリストを入力し、事前に決められた系列予測器の計算処理を行い、入力文章に対する形態素ラベル列の予測結果を生成する。
系列予測器により生成された形態素ラベル列を出力する。
【００２８】
＜入力＞
本発明の実施の形態に関わるシステムへの入力は、自然言語で記述された日本語の文章である。ここでは、主にニュース記事やブログ記事といったものが入力されたことを想定して説明する。
【００２９】
＜処理1＞
入力文章を文字単位に分割する。文字単位への分割は、電子化された文章に対しては非常に安易な方法である。
【００３０】
例えば、テキストエディタやブラウザなどが文章を表示できることからも容易に推測できるように、計算機の中でバイト列で表現されたものを、文字に変換する変換テーブルは文字コードに依存して一意に変換することができる。ここでは、例えば、unicodeに基づいて記述された文章が入力されると仮定する。ただし、本発明の実施の形態で必要な処理は、文字コードの種類に依存しないので、何を使ってもよい。
【００３１】
unicode では、バイト列から文字の区切りを一意に読み取ることが可能である（図１参照）。
【００３２】
ここではc を文字を表す記号とする。また、文字の集合をCで表す。つまりc∈Cである。次に、入力文章の文字数をIとする。iを1からIまでの変数とし、i番目の処理単位の文字列をciと表すこととする。よって、入力文章は、処理単位の文字列のリスト(ci)Ii=1=(c1,...,cI)と表現することができる。
【００３３】
本処理での出力は、入力文章を文字単位に分割した文字のリスト(ci)Ii=1である、
【００３４】
＜処理2＞
文字単位に分割されたリスト(ci)Ii=1を受け取り、各文字に対応する文字ベクトルを獲得する処理を行う。
【００３５】
まず、
2019144844.tif 000003
は、予め学習されたニューラルネットワークのパラメータであり、
2019144844.tif 000004
をD×N行列とする。Dは任意の自然数、Nは文字の集合Ｃの要素数である。ここでの処理として、入力文章中の各文字ciに、それぞれ対応する文字ベクトルを取得する。対応する文字ベクトルというのは、文字ciの種類に応じて事前に決められているものとする。例えば、入力文章中のi番目の文字ciが、文字の集合C中のn番目の文字とする。
【００３６】
この場合、行列
2019144844.tif 000005
のn列目に相当するベクトルをeiとしてciに割り当てる処理を行う。この処理は数式的には以下のように書くことができる。
【００３７】
【数１】
2019144844.tif 000006
【００３８】
ただし、xiはciの語彙中の番号nにしたがって、n番目の要素が1で残りが全て0のベクトルとする。
【００３９】
これを全ての文字に対して行うので、処理2の出力となる文字ベクトルのリストは(ei)Ii=1=(e1,...,eI)と書ける。ここで、もしciとcjが同じ文字の場合、ei=ejである。
【００４０】
処理2の最終的な出力は、取得した文字ベクトルのリスト(ei)Ii=1となる。
【００４１】
＜処理3＞
処理1の文字単位に分割した入力文章(ci)Ii=1を受け取り、入力文章の部分文字列にマッチする形態素を形態素辞書から抽出する。
【００４２】
まず、形態素辞書をTとする。また、形態素辞書のエントリ数をSで表す。s番目のエントリをtsで表す。全てのsに対してt∈Tである。ただしsは1からSまでの整数である。
【００４３】
例えば、ある辞書エントリtsが文字列(ts,1,...，ts,n)で構成されているとする。この時、入力文章の文字列(ci)Ii=1中のある部分文字列(ci,...,cj)が(ts,1，・・・,ts,n)と完全に一致した場合、エントリtsは部分文字列(ci,…,cj)にマッチしたと判定する。
【００４４】
次に、zをS次元のベクトルとする。zの要素は、マッチした辞書エントリの形態素辞書内の番号と一致する要素が1、それ以外が0のベクトルとする。次に、
2019144844.tif 000007
は、予め学習されたニューラルネットワークのパラメータであり、
2019144844.tif 000008
を形態素辞書の各エントリに対応するベクトルで構成されるD×S行列とする。
【００４５】
この時、入力文章中のi番目の文字に対する形態素辞書情報として、以下の式で形態素ベクトルを取得する。
【００４６】
【数２】
2019144844.tif 000009
【００４７】
つまりfiはD次元のベクトルで、i番目の文字にマッチした全ての形態素辞書のエントリを加算したベクトルに相当する。
【００４８】
処理3の最終的な出力は、取得した形態素ベクトルのリスト(fi)Ii=1となる。
【００４９】
＜処理4＞
処理2の最終的な出力である、文字ベクトルのリスト(ei)Ii=1と、処理3の最終的な出力である形態素ベクトルのリスト(fi)Ii=1を組み合わせる。組み合わせには各文字の位置i毎に以下の計算を行う。
【００５０】
【数３】
2019144844.tif 000010
【００５１】
この時、
2019144844.tif 000011
は予め学習されたニューラルネットワークのパラメータであり、文字情報と辞書情報を組み合わせた合成ベクトルgiを生成する。
2019144844.tif 000012
をH×D次元の変換行列とし、Hは任意の自然数である。また、pは、0または1をとる変数とする。pの値の決定方法としては、学習時には確率的に0 または1の値が割り振られる。一方、実際に形態素解析を行う評価時は、必ず1の値が割り振られる。学習時にpの値をどのように確率的に割り振るかは、学習処理の説明にて述べる。
【００５２】
処理4 の最終的な出力は、取得した合成ベクトルのリスト(gi)Ii=1となる。
【００５３】
＜処理5＞
次に、処理4 で取得した合成ベクトルのリスト(gi)Ii=1を入力とし、事前に決定された系列予測器の計算手順にしたがって計算を行う。実際に用いる系列予測器の構成は多くの種類が考えられるが、ここでは、系列予測器としてよく用いられるLSTM(Long Short Term Memory)を用いた場合の例を示す。i番目の文字位置の入力はgi 及び、一時刻前のLSTMの状態hi-1である。ただし、i=0の時は零ベクトルを割り当てる。つまり、h0=0 である。
【００５４】
また、W1,W2,W3,W4,V1,V2,V3,V4をそれぞれH×H行列、b1,b2, b3,b4をH次元のベクトルとする。これらは、LSTM内で用いられるパラメータとする。この時、LSTMは以下の計算を行う。
【００５５】
【数４】
2019144844.tif 000013
(4)
【００５６】
最終的にhiがi番目の処理の出力となる。
【００５７】
ここで、σ1(x)は、ベクトルx を入力として受け取り、入力ベクトルx の各要素xiに対してシグモイド関数
2019144844.tif 000014
を計算し、新たなベクトルとして返す処理を行う関数とする。同様にσ2(・)は、入力ベクトルの各要素xに対してtanh関数
2019144844.tif 000015
を計算し、新たなベクトルとして返す処理を行う関数とする。本発明の実施の形態では、符号化ユニットの入力がgiとhi-1であり、出力がhiの形式で書ける符号化ユニットであれば、基本的になんでもいい。この処理で、全ての処理単位iに関するhiのリストを獲得する。つまり、(hi)Ii-1=(h1,...,hI)である。このベクトルのリストを用いて各文字に付与すべきラベルを予測する。まず、各文字に付与すべき形態素のラベル集合をY で表す。また形態素のラベル集合の要素数をMとする。参照するために、mを形態素ラベルの番号を表す変数とし、m番目の形態素ラベルをymと表すこととする。
【００５８】
次に、^yiを、i番目の文字に対する形態素ラベルとする。全てのiに対して^yi∈Yである。
【００５９】
この時、oi,mを、入力文章の先頭からi番目の文字に対応する出力として、形態素辞書Ｔのm番目の形態素ラベルが選択されるスコアを表すこととする。簡単のため、入力文章のi番目の文字に対して、形態素ラベルY中の1 番目からM番目までの全ラベルのスコアを並べてベクトル表記したものをoとする。
【００６０】
つまり、
【００６１】
【数５】
2019144844.tif 000016
【００６２】
である。
【００６３】
次に、oiの計算方法は以下の通りである。
【００６４】
【数６】
2019144844.tif 000017
【００６５】
ただし、W(o)は予め学習されたニューラルネットワークのパラメータであり、W(o)をM×H行列とし、b(o)をは予め学習されたニューラルネットワークのパラメータであり、b(o)をM次元のベクトルとする。
【００６６】
最終的に、i番目の処理単位の形態素ラベルを選択する処理には、以下の式を計算する。
【００６７】
【数７】
2019144844.tif 000018
【００６８】
この式は、もっとも値の大きい要素番号mに対応する形態素ラベルを選択する処理に相当する。
【００６９】
＜出力＞
式(7)にしたがって、^yiを出力する処理をi=1からIまで繰り返し並べた形態素ラベル列が形態素解析結果となる。
【００７０】
[系列予測器のパラメータ学習処理]
前述のように、ここでの形態素解析の各構成要素はニューラルネットワークであるため、それぞれ学習用データを使って機械学習法によりニューラルネットワークのパラメータを決定する。ここで、学習データをDで表す。また個々の学習データは、入力文章Xとそれに対応する形態素ラベル列Yのペア(X,Y)で構成される。つまり、例えば、N個の学習データがある場合、D=｛(Xn,Yn)｝Nn-1と記述することができる。この場合、(Xn,Yn)は学習データ中のn番目のデータを表すとする。
【００７１】
一般形として、ニューラルネットによる文字ベースの形態素解析システム内のパラメータは以下の目的関数の最小化問題の解として決定される。
【００７２】
【数８】
2019144844.tif 000019
【００７３】
ただし、ここでは、Wを全てのパラメータの集合を表す記号とし、W^を最適化の結果得られた最適なパラメータの集合を表す記号とする。また、一般的にLを損失関数と呼び、ここではWとDを変数としてとる。つまり、パラメータWの学習とは、損失関数Lがなるべく小さな値を取るようにWを更新していく処理となる。
【００７４】
まず、非特許文献２で提案されている従来法に相当するモデルを利用する場合、以下の損失関数を用いる。
【００７５】
【数９】
2019144844.tif 000020
2019144844.tif 000021
【００７６】
ただし、yiは正解である形態素ラベル列Ｙのi番目の形態素ラベルであり、P(yi|X,W)は現在のパラメータWで入力文章Xが与えられた際に、正解であるyiが^yiとして推定される確率である。
【００７７】
これに対して、本発明の実施の形態では、形態素辞書情報が一部隠蔽された状態の学習データも用いて、以下の式に示す損失を小さくするように系列予測器の学習を行う。
【００７８】
【数１０】
2019144844.tif 000022
【００７９】
ただし、pは処理4で説明したpである。このpをどのように決めるかは様々な場合を考えることができるが、ここでは、乱数を用いてランダムに決める場合を考える。
【００８０】
【数１１】
2019144844.tif 000023
【００８１】
ここで、Rand(0,1)は0または1を等確率で出力する関数とする。
【００８２】
また、乱数を使わずに、学習データとして事前に準備しておく方法を用いることも可能である。このとき、以下の式に示す損失を小さくするように系列予測器の学習を行う。
【００８３】
【数１２】
2019144844.tif 000024
【００８４】
この場合は、学習データとして、形態素辞書情報を使う場合と形態素辞書情報を使わない場合の両方を均等に用いて学習することを意味する。
【００８５】
具体的なパラメータ学習処理は、以下の通りである。
【００８６】
1．学習用データDからデータ(X,Y)を一つ選択する。
2．選択したデータ(X,Y)を用いて式(11)に示す損失を計算する。
3．式(11)の損失の値が小さくなるようにWを更新する。
4．事前に定義した終了条件を満たせば終了、満たさない場合は1に戻る。
【００８７】
3の処理は、様々な方法が利用できるが、もっとも単純な方法としては、パラメータに対する勾配を計算し、その勾配の方向にパラメータを微小に更新する、勾配法に基づく方法を用いれば良い。また、4の終了条件に関しては、パラメータの更新変化量の総量がある一定の値ε以下になった際に終了とし、それ以外は繰り返し計算をするようにすれば良い。
【００８８】
最終的に得られたパラメータ^Wは固定され、前述した要約文の生成処理に用いられる。
【００８９】
＜本発明の実施の形態に係る形態素解析装置の構成＞
次に、本発明の実施の形態に係る形態素解析装置の構成について説明する。図２に示すように、本発明の実施の形態に係る形態素解析装置１００は、ＣＰＵと、ＲＡＭと、後述する形態素解析処理ルーチンを実行するためのプログラムや各種データを記憶したＲＯＭと、を含むコンピュータで構成することが出来る。この形態素解析装置１００は、機能的には図２に示すように入力部１０と、演算部２０と、出力部５０とを備えている。
【００９０】
入力部１０は、形態素解析を行いたい入力文章を受け付ける。
【００９１】
演算部２０は、分割部２２と、解析部２４とを備えている。
【００９２】
分割部２２は、入力文章を文字単位に分割する。
【００９３】
解析部２４は、文字ベクトル記憶部２６と、文字ベクトル取得部２８と、形態素辞書３０と、形態素ベクトル記憶部３２と、辞書ベクトル取得部３４と、ベクトル合成部３６と、形態素予測部３８とを備えている。
【００９４】
文字ベクトル記憶部２６は、文字毎に、文字ベクトルを記憶している。
【００９５】
文字ベクトル取得部２８は、文字ベクトル記憶部２６から、入力文章の文字毎に、文字ベクトルを取得し、文字ベクトルのリストを出力する。
【００９６】
形態素辞書３０は、形態素毎に、形態素情報を記憶している。
【００９７】
形態素ベクトル記憶部３２は、形態素毎に、形態素ベクトルを記憶している。
【００９８】
辞書ベクトル取得部３４は、入力文章の部分文字列毎に、形態素辞書３０から、当該部分文字列と一致する形態素情報のエントリを取得し、取得した形態素情報を表すベクトルを、形態素ベクトル記憶部３２から取得し、入力文章の文字毎に、当該文字を含む部分文字列にマッチした形態素情報のエントリに対応するベクトルを加算した形態素ベクトルを求め、形態素ベクトルのリストを出力する。
【００９９】
ベクトル合成部３６は、入力文章の文字毎に、上記式（３）に従って、文字ベクトルと形態素情報ベクトルとを合成した合成ベクトルを生成し、合成ベクトルのリストを出力する。
【０１００】
形態素予測部３８は、ベクトル合成部３６によって文字毎に生成された合成ベクトルを、形態素ラベルを付与するための符号化ユニットを用いた系列予測器であって、かつ、符号化ユニットは、一つ前の符号化ユニットの出力を入力とする系列予測器に入力して、上記（４）式に従って順次計算すると共に、上記（７）式に従って、形態素ラベルを順次選択し、形態素ラベル列を、入力文章の形態素解析結果として出力部５０により出力する。形態素予測部３８で用いる系列予測器のパラメータは、後述する形態素解析学習装置１５０により予め学習されている。
【０１０１】
＜本発明の実施の形態に係る形態素解析学習装置の構成＞
次に、本発明の実施の形態に係る形態素解析学習装置の構成について説明する。図３に示すように、本発明の実施の形態に係る形態素解析学習装置１５０は、ＣＰＵと、ＲＡＭと、後述する形態素解析学習処理ルーチンを実行するためのプログラムや各種データを記憶したＲＯＭと、を含むコンピュータで構成することが出来る。この形態素解析学習装置１５０は、機能的には図３に示すように入力部６０と、演算部７０とを備えている。
【０１０２】
入力部６０は、学習用入力文章と、前記学習用入力文章の形態素解析結果である形態素ラベル列とのペアである学習データをＮ個受け付ける。
【０１０３】
演算部７０は、サンプリング部７２と、分割部７４と、解析部７６と、パラメータ学習部７８とを備えている。
【０１０４】
サンプリング部７２は、入力部６０により受け付けたＮ個の学習データから、１つの学習データを取得する。
【０１０５】
分割部７４は、サンプリング部７２により取得した学習データの学習用入力文章を文字単位に分割する。
【０１０６】
解析部７６は、形態素解析装置１００の解析部２４と同様に、文字ベクトル記憶部と、文字ベクトル取得部と、形態素辞書と、形態素ベクトル記憶部と、辞書ベクトル取得部と、ベクトル合成部と、形態素予測部とを備えている。
【０１０７】
すなわち、文字ベクトル取得部は、文字ベクトル記憶部から、学習用入力文章の文字毎に、文字ベクトルを取得し、文字ベクトルのリストを出力する。
【０１０８】
また、辞書ベクトル取得部は、学習用入力文章の部分文字列毎に、形態素辞書から、当該部分文字列と一致する形態素情報のエントリを取得し、取得した形態素情報を表すベクトルを、形態素ベクトル記憶部から取得し、学習用入力文章の文字毎に、当該文字を含む部分文字列にマッチした形態素情報のエントリに対応するベクトルを加算した形態素ベクトルを求め、形態素ベクトルのリストを出力する。
【０１０９】
また、ベクトル合成部は、学習用入力文章の文字毎に、上記式（３）に従って、文字ベクトルと形態素情報ベクトルとを合成した合成ベクトルを生成し、合成ベクトルのリストを出力する。
【０１１０】
このとき、ベクトル合成部は、上記（１２）式に従ってｐを決定することにより、ランダムに、文字ベクトルと形態素情報ベクトルとを合成した合成ベクトルを生成するか、形態素情報ベクトルを合成せずに合成ベクトルを生成するかを決定して、合成ベクトルを生成する。
【０１１１】
あるいは、ベクトル合成部は、文字ベクトルと形態素情報ベクトルとを合成した合成ベクトルを生成する場合と、形態素情報ベクトルを合成せずに合成ベクトルを生成する場合との両方を均等に用いるように、合成ベクトルを生成する。
【０１１２】
また、形態素予測部は、ベクトル合成部によって文字毎に生成された合成ベクトルを、形態素ラベルを付与するための符号化ユニットを用いた系列予測器であって、かつ、符号化ユニットは、一つ前の符号化ユニットの出力を入力とする系列予測器に入力して、上記（４）式に従って順次計算すると共に、上記（７）式に従って、形態素ラベルを順次選択し、形態素ラベル列を、学習用入力文章の形態素解析結果として出力する。
【０１１３】
パラメータ学習部７８は、解析部７６により得られる形態素ラベル列が、学習データの形態素ラベル列となるように、上記（１１）式に従って、系列予測器のパラメータを学習する。なお、解析部７６のベクトル合成部が、文字ベクトルと形態素情報ベクトルとを合成した合成ベクトルを生成する場合と、形態素情報ベクトルを合成せずに合成ベクトルを生成する場合との両方を均等に用いるように、合成ベクトルを生成する場合には、上記（１３）式に従って、系列予測器のパラメータを学習する。
【０１１４】
上記のサンプリング部７２、分割部７４、解析部７６、及びパラメータ学習部７８の各処理が、終了条件を満たすまで繰り返される。
【０１１５】
＜本発明の実施の形態に係る形態素解析学習装置の作用＞
次に、本発明の実施の形態に係る形態素解析学習装置１５０の作用について説明する。入力部６０においてＮ個の学習データを受け付けると、形態素解析学習装置１５０は、図４に示す形態素解析学習処理ルーチンを実行する。
【０１１６】
まず、ステップＳ１００では、入力部６０において受け付けたＮ個の学習データのうち、１つの学習データを取得する。
【０１１７】
ステップＳ１０２では、上記ステップＳ１００で取得した学習データの学習用入力文章について、形態素解析を行う。
【０１１８】
ステップＳ１０２は、図５に示す処理ルーチンにより実現される。
【０１１９】
ステップＳ１１０では、上記ステップＳ１００で取得した学習データの学習用入力文章を文字単位に分割する。
【０１２０】
ステップＳ１１２では、文字ベクトル記憶部から、学習用入力文章の文字毎に、文字ベクトルを取得し、文字ベクトルのリストを出力する。
【０１２１】
ステップＳ１１４では、学習用入力文章の部分文字列毎に、形態素辞書から、当該部分文字列と一致する形態素情報のエントリを取得し、取得した形態素情報を表すベクトルを、形態素ベクトル記憶部から取得し、学習用入力文章の文字毎に、当該文字を含む部分文字列にマッチした形態素情報のエントリに対応するベクトルを加算した形態素ベクトルを求め、形態素ベクトルのリストを出力する。
【０１２２】
ステップＳ１１６では、学習用入力文章の文字毎に、上記（１２）式に従ってｐを決定することにより、ランダムに、文字ベクトルと形態素情報ベクトルとを合成した合成ベクトルを生成するか、形態素情報ベクトルを合成せずに合成ベクトルを生成するかを決定する。
【０１２３】
ステップＳ１１８では、学習用入力文章の文字毎に、上記式（３）に従って、文字ベクトルと形態素情報ベクトルとを合成した合成ベクトルを生成し、合成ベクトルのリストを出力する。
【０１２４】
ステップＳ１２０では、文字毎に生成された合成ベクトルを、形態素ラベルを付与するための符号化ユニットを用いた系列予測器であって、かつ、符号化ユニットは、一つ前の符号化ユニットの出力を入力とする系列予測器に入力して、上記（４）式に従って順次計算すると共に、上記（７）式に従って、形態素ラベルを順次選択し、形態素ラベル列を、学習用入力文章の形態素解析結果として出力する。
【０１２５】
そして、上記図４のステップＳ１０４では、上記ステップＳ１２０で得られた形態素ラベル列と、学習データの形態素ラベル列とに基づいて、上記（１１）式に従って、損失を計算する。
【０１２６】
ステップＳ１０６では、上記ステップＳ１０４で計算された損失が小さくなる方向に系列予測器のパラメータを更新する。
【０１２７】
ステップＳ１０８では、終了条件を満たしたか否かを判定し、終了条件を満たさない場合には、上記ステップＳ１００へ戻る。一方、終了条件を満たす場合には、形態素解析学習処理ルーチンを終了する。
【０１２８】
＜本発明の実施の形態に係る形態素解析装置の作用＞
次に、本発明の実施の形態に係る形態素解析装置１００の作用について説明する。まず、形態素解析学習装置１５０により学習された系列予測器のパラメータが形態素解析装置１００に設定される。そして、入力部１０において入力文章を受け付けると、形態素解析装置１００は、図６に示す形態素解析処理ルーチンを実行する。
【０１２９】
まず、ステップＳ１３０では、入力部１０において受け付けた入力文章を文字単位に分割する。
【０１３０】
ステップＳ１３２では、文字ベクトル記憶部２６から、入力文章の文字毎に、文字ベクトルを取得し、文字ベクトルのリストを出力する。
【０１３１】
ステップＳ１３４では、入力文章の部分文字列毎に、形態素辞書３０から、当該部分文字列と一致する形態素情報のエントリを取得し、取得した形態素情報を表すベクトルを、形態素ベクトル記憶部３２から取得し、入力文章の文字毎に、当該文字を含む部分文字列にマッチした形態素情報のエントリに対応するベクトルを加算した形態素ベクトルを求め、形態素ベクトルのリストを出力する。
【０１３２】
ステップＳ１３６では、入力文章の文字毎に、上記式（３）に従って、文字ベクトルと形態素情報ベクトルとを合成した合成ベクトルを生成し、合成ベクトルのリストを出力する。
【０１３３】
ステップＳ１３８では、文字毎に生成された合成ベクトルを、形態素ラベルを付与するための符号化ユニットを用いた系列予測器であって、かつ、符号化ユニットは、一つ前の前記符号化ユニットの出力を入力とする系列予測器に入力して、上記（４）式に従って順次計算すると共に、上記（７）式に従って、形態素ラベルを順次選択し、形態素ラベル列を、入力文章の形態素解析結果として出力部５０により出力し、形態素解析処理ルーチンを終了する。
【０１３４】
以上説明したように、本発明の実施の形態に係る形態素解析学習装置によれば、文字ベクトルと形態素情報ベクトルとを合成した合成ベクトルであって、所定の確率で、形態素情報ベクトルを合成せずに生成された前記合成ベクトルを、前記系列予測器に入力して、順次計算することにより得られる形態素ラベル列が、前記学習データの形態素ラベル列となるように系列予測器のパラメータを学習することにより、形態素辞書の被覆率に関わらず、総じて高い解析精度を達成することができる系列予測器を学習することができる。
【０１３５】
また、擬似的に形態素辞書の被覆率が高い場合と低い場合の状況を作り出し、形態素解析器の学習を行うことで、形態素辞書の被覆率によらず高い解析精度を達成することが可能となる。また、形態素辞書の被覆率が高い場合は、従来法と同等の解析精度を維持し、被覆率が低い場合でも解析精度の劣化を大幅に低減することができる。
【０１３６】
また、本発明の実施の形態に係る形態素解析装置によれば、文字ベクトルと形態素情報ベクトルとを合成した合成ベクトルであって、所定の確率で、形態素情報ベクトルを合成せずに生成された前記合成ベクトルを、前記系列予測器に入力して、順次計算することにより得られる形態素ラベル列が、前記学習データの形態素ラベル列となるように予め学習された系列予測器を用いることにより、形態素辞書の被覆率に関わらず、総じて高い解析精度を達成することができる。
【０１３７】
また、本発明の実施の形態では、ここで述べた未知語に対する解析精度のトレードオフという課題を改善することを主たる目的とし、あらゆる形態素辞書の被覆率の状況でも総じて高い解析精度を達成することができる。
【０１３８】
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【０１３９】
例えば、上述した実施の形態では、形態素解析学習装置及び形態素解析装置を別々の装置として構成しているが、一つの装置として構成してもよい。
【０１４０】
また、上述の形態素解析学習装置、形態素解析装置は、内部にコンピュータシステムを有しているが、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
【０１４１】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能である。
【符号の説明】
【０１４２】
１０   入力部
２０   演算部
２２   分割部
２４   解析部
２６   文字ベクトル記憶部
２８   文字ベクトル取得部
３０   形態素辞書
３２   形態素ベクトル記憶部
３４   辞書ベクトル取得部
３６   ベクトル合成部
３８   形態素予測部
５０   出力部
６０   入力部
７０   演算部
７２   サンプリング部
７４   分割部
７６   解析部
７８   パラメータ学習部
１００ 形態素解析装置
１５０ 形態素解析学習装置
【図１】
2019144844.tif 000025
【図２】
2019144844.tif 000026
【図３】
2019144844.tif 000027
【図４】
2019144844.tif 000028
【図５】
2019144844.tif 000029
【図６】
2019144844.tif 000030
【図７】
2019144844.tif 000031
【図８】
2019144844.tif 000032
【図９】
2019144844.tif 000033