(57)【特許請求の範囲】
【請求項１】
仮名漢字混じり文字列としての解析文字列を単語に分割した場合の考えられる全ての単語列のうち、もっともらしい単語列を選択して出力する形態素解析装置において、単語の表記，品詞，単語の出現し易さを表わす単語コストなどの単語情報が記憶されている単語辞書と、単語辞書を検索しながら、解析文字列の部分文字列を表記とする単語候補を生成する単語候補生成部と、単語間の接続のし易さを表わす接続コストなどの接続情報が記憶されている接続表と、単語候補生成部で生成された単語候補を単語のコストや単語間の接続コストなどを参照して絞り込む単語候補検証部とを有し、前記単語候補生成部は、解析対象となる解析文字列を受け取ると、解析文字列中の所定文字位置ｊ（ｊ≧１）から始まる部分文字列を表記とする単語候補を単語辞書を検索して生成し、これを単語候補検証部に渡すようになっており、前記単語候補検証部は、現在解析途中の文字位置ｊ(ｊ＞１)において、該文字位置ｊをまたぐ単語候補が存在せず、かつ、文字位置ｊ−１で終わる単語候補と文字位置ｊで始まる単語候補との接続状態が全て文節の切れ目になる場合に、文字位置ｊ−１を確定位置とするようになっており、解析文字列の文字位置ｊ(ｊ＞１)から始まる単語候補が生成される度に、1つ前の文字位置ｊ−１が確定位置になるか否かをチェックし、文字位置ｊ−１が確定位置になる場合は、文字位置ｊ−１までの単語列を形態素解析結果として出力した後に、メモリ消費量を小さく抑えるために文字位置ｊ−１までの解析履歴情報を破棄し、文字位置ｊを解析の先頭として解析を進めることを特徴とする形態素解析装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、テキスト音声合成，機械翻訳などの言語解析処理の分野に利用される形態素解析装置に関する。
【０００２】
【従来の技術】
文字列として与えられた文を単語列に分解する形態素解析処理では、単語列への分解の仕方は、通常、複数通り存在するので、これらを単語の文法的な接続条件などを用いて絞り込む必要がある。この手法の１つとして、単語列のもっともらしさを表わす指標（以後、これを単語列のコスト値と呼ぶ）を定め、考えられる全ての単語列のうち、コスト値が最小のものを最適解として選択するコスト最小法が知られている。コスト最小法は、コスト値をうまく与えてやることができれば、解析系を統一的な枠組みで扱うことができ、複数解をもっともらしさの指標をつけて出力することができるという利点がある。
【０００３】
【発明が解決しようとする課題】
しかしながら、従来、コスト最小法により形態素解析を行なう場合には、多くの単語候補や単語候補間の接続情報を保持していなければならないので、計算量およびメモリ消費量が大きくなるという欠点があった。
【０００４】
本発明は、考えられる全ての単語列のうち、複数解をもっともらしさの指標をつけて出力することができ、かつ、計算量およびメモリ消費量を小さく抑えることの可能な形態素解析装置を提供することを目的としている。
【０００５】
【課題を解決するための手段および作用】
上記目的を達成するために、請求項１記載の発明は、解析文字列の文字位置ｊ（ｊ＞１）から始まる単語候補が生成される度に、１つ前の文字位置ｊ−１が確定位置になるか否かをチェックし、文字位置ｊ−１が確定位置になる場合は、文字位置ｊ−１までの単語列を形態素解析結果として出力した後に、文字位置ｊ−１までの解析履歴を破棄し、文字位置ｊを解析の先頭として解析を進めるようになっている。これにより、解析範囲を短く保ち、計算量，メモリ消費量を小さく抑えることができる。
【０００６】
また、請求項１記載の発明は、現在解析途中の文字位置ｊ（ｊ＞１）において、該文字位置ｊをまたぐ単語候補が存在せず、かつ、文字位置ｊ−１で終わる単語候補と文字位置ｊで始まる単語候補との接続状態が全て文節の切れ目になる場合に、文字位置ｊ−１を確定位置とするようになっている。これにより、解析精度を低下させずに、計算量，メモリ消費量を小さく抑えることができる。
【０００７】
【実施例】
以下、本発明の実施例を図面に基づいて説明する。図１は本発明に係る形態素解析装置の一実施例の構成図である。図１を参照すると、本実施例の形態素解析装置は、形態素解析処理全体を制御する制御部１と、単語の表記，品詞，単語の出現し易さを表わす単語コストなどの単語情報が記憶されている単語辞書２と、単語辞書２を検索しながら、解析文字列の部分文字列を表記とする単語候補を生成する単語候補生成部３と、単語間の接続のし易さを表わす接続コストなどの接続情報が記憶されている接続表４と、単語候補生成部３で生成された単語候補を単語のコストや単語間の接続コストなどを参照して絞り込む単語候補検証部５とを有している。
【０００８】
より詳しくは、単語候補生成部３は、解析対象となる解析文字列を受け取ると、解析文字列中の所定文字位置ｊから始まる部分文字列を表記とする単語候補を単語辞書２を検索して生成し、これを単語候補検証部５に渡すようになっている。
【０００９】
また、単語候補検証部５は、解析文字列に対して文字位置ｊを“１”ずつ歩進させて形態素解析処理が順次に進められるときに、解析文字列の先頭からの単語列のコスト値が上位Ｎ位以内に入る単語候補とそれらの接続情報を解析履歴情報として内部に保持するようになっており、単語候補検証部５は、文字位置ｊ（ｊ＞１）から始まる部分文字列を表記とする単語候補を単語候補生成部３から受け取ると、文字位置ｊから始まる単語候補と内部に保持している文字位置ｊ−１で終わる単語候補との接続コストを接続表４から求め、文字位置ｊから始まる単語候補のうち、解析文字列の先頭からの単語列コスト値が上位Ｎ位以内に入る単語候補のみを残すような絞り込みを行なうようになっている。
【００１０】
さらに、単語候補検証部５は、このような単語候補の絞り込みと同時に、文字位置ｊ−１が確定位置になるか否かのチェックを行ない、文字位置ｊ−１が確定位置になる場合は、確定位置ｊ−１までのもっともらしい単語列（例えば、確定位置ｊ−１までの考えられうる全ての単語列のうち、コスト値が最小の単語列）を形態素解析結果として出力し、しかる後、確定位置ｊ−１までの解析履歴情報を破棄するようになっている。そして、確定位置ｊ−１までの解析履歴情報を破棄したときには、以後の処理において文字位置ｊを形態素解析対象の先頭として、解析を進めるようになっている。
【００１１】
ここで、単語候補検証部５において、文字位置ｊ−１が確定位置になると判断されるのは、条件ｃ１：  文字位置ｊをまたぐ単語候補が存在しないこと、条件ｃ２：  文字位置ｊ−１で終わる単語候補と文字位置ｊで始まる単語候補との接続状態が全て文節の切れ目になること、の２つの条件ｃ１，ｃ２が満たされる場合である。
【００１２】
なお、連接する単語の接続状態が文節の切れ目になるか否かを判断するために、単語候補検証部５は、文節切れ目判定部６を持っている。ここでいう文節とは、１つの自立語に０個以上の付属語が付いてできたものをいう。文節の切れ目になるか否かは、例えば次表のような規則により判定することができる。
【００１３】
【表１】
0003592353.tif 000002
【００１４】
次に、このような構成の形態素解析装置の動作を図２のフローチャートを用いて説明する。制御部１は、解析対象となる解析文字列，例えば仮名漢字混じり文を解析するため、先ず、解析文字列中の文字位置を指示するためのポインタの値ｊを“１”に初期設定し（ステップＳ１）、次いで、単語候補生成部３を起動する（ステップＳ２）。例えば制御部１は、単語候補生成部３に単語候補生成命令を出して起動する。
【００１５】
これにより、単語候補生成部３は、ポインタによって指示される解析文字列の文字位置ｊから始まる部分文字列を表記とする単語候補を単語辞書２を検索して生成して単語候補検証部５に渡す（ステップＳ３）。
【００１６】
単語候補検証部５は、文字位置ｊから始まる部分文字列を表記とする単語候補を単語候補生成部３から受け取ると、この単語候補を内部に保持するとともに、この単語候補と単語候補検証部５内に保持している文字位置ｊ−１で終わる単語候補との接続コストを接続表４から求め、解析文字列の先頭からの単語列のコスト値が上位Ｎ位以内に入る単語候補のみを残すよう絞り込みを行なう（ステップＳ４）。なお、ポインタの値ｊが初期値“１”の場合には、それ以前の単語候補がないので、ステップＳ５の上記処理は、ポインタの値ｊがｊ＞１であるときになされる。
【００１７】
また、単語候補検証部５は、ｊ＞１であるときに、単語候補の絞り込みを行なうと同時に、現在の単語候補の先頭文字位置ｊ（ｊ＞１）の直前の文字位置ｊ−１が確定位置になるか否かを前記２つの条件ｃ１，ｃ２を満たすか否かによりチェックする（ステップＳ５）。この結果、文字位置ｊ−１が確定位置でない場合には、ステップＳ７に進む。これに対し、文字位置ｊ−１が確定位置であると判断される場合には、単語候補検証部５は、確定位置ｊ−１までのもっともらしい単語列（例えば、確定位置ｊ−１までの考えられうる全ての単語列のうち、コスト値が最小の単語列）を、形態素解析結果として出力し、しかる後、確定位置ｊ−１までの解析履歴情報を破棄する（ステップＳ６）。
【００１８】
次いで、制御部１は、ポインタの値ｊが解析文字列の最後の位置にあるか否かを判断し（ステップＳ７）、ｊが解析文字列の最後であれば、ｊまでのもっともらしい単語列を形態素解析結果として出力し、処理を終了する（ステップＳ９）。これに対し、ｊが解析文字列の最後でなければ、ポインタの値ｊを“１”だけ歩進し（ステップＳ８）、再びステップＳ２に戻って、解析文字列の次の文字位置（ｊ＋１）について同様の処理を繰り返し行なう。この際、単語候補検証部５は、文字位置ｊ＋１から始まる単語候補を単語候補生成部３から受け取ったとき、文字位置ｊ−１までの解析履歴情報が破棄されている場合には、文字位置ｊを解析の先頭として、解析を進める。
【００１９】
このように、本実施例では、文字位置ｊ−１が確定位置になると、確定位置ｊ−１までのもっともらしい単語列を形態素解析結果として出力し、また、単語候補検証部５に保持されている確定位置ｊ−１までの解析履歴情報を破棄し、以後は、文字位置ｊを解析の先頭として解析を進めるようにしているので、確定位置ｊ−１までの解析とそれ以後の解析とに解析範囲を区切って解析範囲を短かく保ち、計算量を小さく抑えることができる。また、確定位置ｊ−１までの解析履歴情報を破棄することにより、メモリ消費量を小さく抑えることができる。
【００２０】
なお、従来においても、文字列の解析において、解析範囲の区切り位置（確定位置）を決定する方法として、句読点を区切り位置とする方法や、特定の字種の変化パターンを示す位置が文節の切れ目になると仮定して区切り位置を決定する方法（特開平３−３００６１号）が提案されている。
【００２１】
しかしながら、前者の方法では、句読点は文章のスタイルに依存する上、句読点で区切ったとしても解析文字列がかなり長くなってしまう場合が多く、差程効果が望めない。また、後者の方法は、字種の変化パターンだけからでは文節の切れ目を正確に得ることはできないので、解析精度が低下してしまう恐れがある。
【００２２】
これに対し、本実施例では、現在解析途中の文字位置ｊ（ｊ＞１）において、その文字位置ｊをまたぐ単語候補が存在せず、かつ文字位置ｊ−１で終わる単語候補と文字位置ｊで始まる単語候補との接続状態が全て文節の切れ目になるときに、文字位置ｊ−１を確定位置とするので、解析範囲を短かく区切るときにも文節の切れ目を正確に得ることができ、解析精度を低下させずに、計算量，メモリ消費量を小さく抑えることができる。
【００２３】
図３は本実施例における確定位置決定の処理例を具体的に示す図である。図３を参照すると、解析文字列として、例えば「見えて春めいて」を順次に解析するとき、「見えて」までの間には、その文字位置をまたぐ単語候補が存在するか、あるいは、文字位置をまたぐ単語候補が存在しない場合であっても接続状態が全て文節の切れ目にはならないので、確定位置にはならない。次いで、「見えて春…」を解析するとき、「て」と「春」との間には、これをまたぐ単語候補が存在せず、かつ、接続状態が全て文節の切れ目となるので、「て」の文字位置ｊ−１を確定位置として決定する。このようにして、本実施例では、文節の切れ目を正確に得ることができる。
【００２４】
上述の実施例では、制御部１は、主に、解析文字列の解析順序の制御，すなわち、解析文字列の文字位置ｊの管理を行なうようになっているが、例えば、形態素解析結果の出力機能，あるいは解析履歴情報の破棄を単語候補検証部５に対して指示するような機能等を制御部１にもたせることも可能である。
【００２５】
より具体的には、単語候補検証部５に、確定状態（解析結果が確定していてもっともらしい単語列を出力可能な状態）と非確定状態（解析結果が確定していない状態）との２つの状態が存在するものとする場合、単語候補検証部５の状態を常に監視する機能を制御部１にもたせ、単語候補検証部５において文字位置ｊ−１が確定位置と判断されて単語候補検証部５が非確定状態から確定状態になるときに、確定位置ｊ−１までのもっともらしい単語列を単語候補検証部５から取り出し、これを形態素解析結果として出力する機能を制御部１にもたせることも可能である。また、単語候補検証部５から確定位置ｊ−１までのもっともらしい単語列を取り出した後に、リフレッシュ命令を単語候補検証部５に出す機能を制御部１にもたせることも可能である。この場合、単語候補検証部５は、制御部１からリフレッシュ命令を受け取ると、確定位置ｊ−１までの解析履歴情報を破棄し、確定状態から非確定状態に移る。
【００２６】
また、上述の実施例では、解析文字列の文字位置ｊの管理，すなわちポインタの管理を制御部１にもたせているが、ポインタの管理機能を例えば単語候補生成部３にもたせることも可能である。
【００２７】
このように、上述の実施例は、本発明の単なる例示にすぎず、上述の実施例に限定されず種々の変形が可能である。
【００２８】
【発明の効果】
以上に説明したように、請求項１記載の発明によれば、解析文字列の文字位置ｊ（ｊ＞１）から始まる単語候補が生成される度に、１つ前の文字位置ｊ−１が確定位置になるか否かをチェックし、文字位置ｊ−１が確定位置になる場合は、文字位置ｊ−１までの単語列を形態素解析結果として出力した後に、文字位置ｊ−１までの解析履歴を破棄し、文字位置ｊを解析の先頭として解析を進めるようになっているので、解析範囲を短く保ち、計算量，メモリ消費量を小さく抑えることができる。
【００２９】
また、請求項１記載の発明によれば、現在解析途中の文字位置ｊ（ｊ＞１）において、該文字位置ｊをまたぐ単語候補が存在せず、かつ、文字位置ｊ−１で終わる単語候補と文字位置ｊで始まる単語候補との接続状態が全て文節の切れ目になる場合に、文字位置ｊ−１を確定位置とするので、解析精度を低下させずに、計算量，メモリ消費量を小さく抑えることができる。
【図面の簡単な説明】
【図１】本発明に係る形態素解析装置の一実施例の構成図である。
【図２】図１の形態素解析装置の動作を説明するためのフローチャートである。
【図３】図１の形態素解析装置による確定位置決定の処理例を示す図である。
【符号の説明】
１      制御部
２      単語辞書
３      単語候補生成部
４      接続表
５      単語候補検証部
６      文節切れ目判定部
【図１】
0003592353.tif 000003
【図２】
0003592353.tif 000004
【図３】
0003592353.tif 000005