(57)【特許請求の範囲】
【請求項１】
語の表記と品詞を記憶する辞書と、
隣接する形態素候補が接続可能か否かを判定するための文法規則部と、
形態素解析の対象となる文から得られる部分文字列が辞書に登録されている登録語か否かを調べる登録語判定部と、
辞書に登録されていない部分文字列が形態素となり得る未登録語か否かを調べる未登録語判定部と、
登録語判定部によって登録語と判定された部分文字列について予め定められた判定基準に基づき、コストを計算する登録語コスト計算部と、
未登録語判定部によって形態素となり得る未登録語と判定された部分文字列について予め定められた判定基準に基づき、コストを計算する未登録語コスト計算部と、
動的計画法を用いた上昇横型の形態素解析を行う形態素解析実行部と
を具備する形態素解析装置であって、
形態素解析実行部は、登録語判定部によって登録語と判定された部分文字列および未登録語判定部によって形態素となり得る未登録語と判定された部分文字列を形態素候補とし、文法規則部の内容を参照しながら形態素解析の対象となる文の形態素解析を行い、登録語コスト計算部または未登録語コスト計算部の計算結果を参照して解析の結果得られた形態素候補の列のコストを計算し、最もコストの小さい形態素候補の列を形態素解析結果の形態素列とする
ことを特徴とする形態素解析装置。
【請求項２】
未登録語判定部が、未登録語として切り出したい文字列パターン又は切り出したくない文字列パターンを記憶する未登録語パターン辞書を有する
ことを特徴とする請求項１の形態素解析装置。
【請求項３】
コスト計算の際に使用される判定基準を変更できる
ことを特徴とする請求項１又は請求項２の形態素解析装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、登録語判定部，未登録語判定部，登録語コスト計算部，未登録語コスト計算部などを用いて、精度が高く，効率よく，目的に応じた形態素解析結果が得られるような形態素解析装置に関するものである。
【０００２】
【従来の技術】
従来の形態素解析では、短い登録語が存在した場合、本来一つの未登録語とした方が良いものでも、分割してしまうことがあった。これを防ぐ目的で長い単位を一つの未登録語として優先して出す方法もあったが、この場合は逆に切り出したい登録語の部分までも未登録語の一部にしてしまうことがあった。また、未登録語を含んだ形態素解析の処理においては、複数の未登録語の候補を同時に考慮することはしなかった。
【０００３】
このため、形態素解析で切り出した形態素を検索のキーワードの候補として使おうとした場合、構成語では引けないと言う欠点があった。未登録語に関連した部分では、検索のキーワードの候補として適切な形態素を切り出すことが出来ないと言う欠点があった。未登録語を含んだ形態素解析では後戻り（バックトラック）を行うため処理速度がかなり低下したり、質もかなり低下したり、また処理が複雑になる欠点があった。
【０００４】
【発明が解決しようとする課題】
従来の技術の問題点は次の通りである。
▲１▼  用途に応じた形態素の切り出し（例えば検索のキーワードの候補の切り出し）が行えない。
▲２▼  未登録語を含んだ形態素解析で、処理速度が大幅に低下する。
▲３▼  未登録語を含んだ形態素解析で、精度が大幅に低下する。
▲４▼  未登録語を含んだ形態素解析で、処理が複雑になる。
本発明は、上記のような問題点を無くすことが出来る形態素解析装置を提供することを目的としている。
【０００５】
【課題を解決するための手段】
請求項１の形態素解析装置は、
語の表記と品詞を記憶する辞書と、
隣接する形態素候補が接続可能か否かを判定するための文法規則部と、
形態素解析の対象となる文から得られる部分文字列が辞書に登録されている登録語か否かを調べる登録語判定部と、
辞書に登録されていない部分文字列が形態素となり得る未登録語か否かを調べる未登録語判定部と、
登録語判定部によって登録語と判定された部分文字列について予め定められた判定基準に基づき、コストを計算する登録語コスト計算部と、
未登録語判定部によって形態素となり得る未登録語と判定された部分文字列について予め定められた判定基準に基づき、コストを計算する未登録語コスト計算部と、
動的計画法を用いた上昇横型の形態素解析を行う形態素解析実行部と
を具備する形態素解析装置であって、
形態素解析実行部は、登録語判定部によって登録語と判定された部分文字列および未登録語判定部によって形態素となり得る未登録語と判定された部分文字列を形態素候補とし、文法規則部の内容を参照しながら形態素解析の対象となる文の形態素解析を行い、登録語コスト計算部または未登録語コスト計算部の計算結果を参照して解析の結果得られた形態素候補の列のコストを計算し、最もコストの小さい形態素候補の列を形態素解析結果の形態素列とする
ことを特徴とするものである。
【０００６】
請求項２の形態素解析装置は、請求項１の形態素解析装置において、
未登録語判定部が、未登録語として切り出したい文字列パターン又は切り出したくない文字列パターンを記憶する未登録語パターン辞書を有する
ことを特徴とするものである。
【０００７】
請求項３の形態素解析装置は、請求項１または請求項２の形態素解析装置において、
コスト計算の際に使用される判定基準を変更できる
ことを特徴とするものである。
【０００８】
【発明の実施の形態】
図１は本発明の形態素解析装置の構成例を示す図である。同図において、１は文法規則部、２は解析表、３は解析制御部、４は辞書、５はファイル、６はキーボード、７は未登録語範囲認定部、８は登録語コスト計算部、９はコスト計算部、１０は未登録語コスト計算部、１１は未登録語パターン辞書をそれぞれ示している。
【０００９】
文法規則部１には、二つの隣接する形態素が接続可能か否かを規則として記しておく。解析表２には、形態素解析の途中の結果が記録される。辞書４は、語の表記と品詞などを記録する。未登録語パターン辞書１１は、未登録語として切り出したい（望ましい）パターンや余り切り出したくないパターンを記憶する。パターンの表記には、正規表現も使用できる。未登録語パターン辞書１１は、未登録語コスト計算部１０から参照される。切り出したいパターンの場合には、それがどの程度もっともらしいかの点数を格納しておく場合もある。
【００１０】
未登録語範囲認定部７は、解析制御部３からの文字列を受け取り、辞書４に登録されていない文字列が未登録語として切り出したいものか否かを判定する。その際、未登録語パターン辞書１１を参照する。望ましくない（日本語の形態素としてはあり得そうもない）と認定されたものは未登録語コスト計算部１０には渡されない。
【００１１】
未登録語コスト計算部１０は、未登録語範囲認定部７から渡された文字列のコストを計算する。登録語コスト計算部８は解析制御部３から渡された登録語（辞書４に登録されている語）のコストを計算する。動的計画法を用いた上昇横型の形態素解析では、途中の形態素解析結果は束状のグラフで表され、最適な解は文頭から文末に至る経路のコストが最小のもので表される。コスト計算部９は、その経路のコストを計算する。
【００１２】
解析制御部３は、ファイル５やキーボード６から解析の対象となる文を受け取り、形態素解析を行い、解析結果を出力する。形態素解析の対象となる文は、ネットワークを通じて渡されることもある。解析制御部３は、文法規則部１や辞書４を参照し、未登録語範囲認定部７と未登録語コスト計算部１０，登録語コスト計算部８，コスト計算部９を使ってコストを計算し、途中の解析結果を解析表に書き込みながら解析を進める。
【００１３】
図２は文法規則の１例を示す図である。文法規則部１には、接続可能な先行品詞（形態素）と後続品詞（形態素）の組の複数個が書き込まれている。図示の例では、名詞の後に名詞が接続できること，名詞の後に接尾語が接続できること，名詞の後に動詞語幹が接続できること，名詞の後に助詞が接続できること，形容詞語幹の後に「かっ」が接続できること，形容詞語幹の後に「かろ」が接続できること，形容詞語幹の後に「く」が接続できること等を示している。
【００１４】
図３は辞書の例を示す図である。辞書４には、語の表記と品詞の組の複数個が書き込まれている。図示の例では、「会」がわ行五段活用動詞（語幹）であること、「開」がか行五段活用動詞（語幹）であること、「相打ち」が名詞であること、「思」がわ行五段活用動詞（語幹）であること等を示している。
【００１５】
図４は未登録語パターン辞書の例を示す図である。未登録語パターン辞書１１には、文字パターンと未登録語として切り出したいか否かを示す情報の組の複数個が書き込まれている。図示の例では、先頭が「ぁぃぅぇぉァィゥェォ」の何れかである文字列は未登録語として切り出したくない文字列であることを示し、先頭が「アイウ…ン」の何れかである片仮名文字列の後に州または共和国が続く文字列は未登録語として切り出したい文字列であること等を示している。
【００１６】
図５は本発明の形態素解析装置の処理の流れの例を示す図である。最初に解析制御部３は、ファイル５やキーボード６から文を受け取る（図５中（Ａ））。次に、受け取った文から、開始位置がｘで長さがｙ（但し、１≦ｘ≦ｎ，１≦ｙ≦ｎ，ｎは文の長さ）の複数個の部分文字列を生成する。そして、生成された部分文字列が辞書４の中に存在するか否かを調べる（図５中（Ｂ））。
【００１７】
部分文字列が辞書４に存在する場合(a) と存在しない場合(b) とでは処理が別れる。部分文字列が辞書４に存在するものであった場合には、登録語コスト計算部８がその部分文字列（形態素）のコストを計算する（図５中（Ｃ））。形態素のコストは、形態素の品詞や文字数，文字種，頻度や優先度に基づいて計算される。コスト計算の結果は解析制御部３に戻される。
【００１８】
部分文字列が辞書４に存在しない場合には、その部分文字列を未登録語範囲認定部７に渡す。未登録語範囲認定部７は、未登録語パターン辞書１１を参照しその部分文字列が未登録語として切り出したいものか否か，切り出したくないものか否かを判定する。未登録語パターン辞書１１に記載されていないものについては、文字種（漢字，平仮名，片仮名，記号など）の変わり目や長さを手掛かりにして、形態素として有り得そうなものか否かを判定する（図４中（Ｄ））。
【００１９】
あり得ないと判定された場合には、何もしない。あり得そうだと判定された部分文字列は未登録語コスト計算部１０に渡される。未登録語コスト計算部１０は未登録語の部分文字列のコストを計算する（図５中の（Ｅ））。未登録語のコストは、文字数，文字種，パターン，構成文字の頻度などに基づき計算される。未登録語パターン辞書１１にどの程度尤もらしいかの点数が書かれている場合は、その値を用いる。コスト計算の結果は解析制御部３に戻される。解析制御部３は、コスト計算の結果を解析表に書込み、解析表の初期化を行う。全ての部分文字列についての処理が終了すれば、初期化は終わりである（図５中の（Ｆ））。
【００２０】
解析制御部３は、解析表の初期化が終われば、動的計画法を用いた上昇横型の形態素解析（例えば、ＣＹＫ法，接続コスト最小法など）を行う（図５中の（Ｇ））。形態素解析の処理の途中では、文法規則部１を参照して、二つの隣接する形態素の接続チェックを行う。全てのコスト計算が終われば、解析結果を出力する（図５中の（Ｈ））。
【００２１】
これらの上昇横型の形態素解析アルゴリズムでは、バックトラックが生じない。計算量も解析する文の長さに比例するのみで、処理速度が大幅に低下することはない。また、いったん解析表に登録した後は、未登録語と登録語とを区別しなくても良い。
【００２２】
ここでは、形態素解析の初期化（辞書引きを含む）を先に行う手順で説明したが、辞書引きのタイミングや形態素コストの計算タイミングは問わない。必要な時に行えば良い。解析制御部３が動的計画法を用いた上昇横型の形態素解析を行うときでも構わない。接続可能と判定された後に、その形態素についてのみ形態素コストを計算するなどの方法を採用しても良い。
【００２３】
解析例１
「湾岸戦争が…」と言う文を形態素解析する場合を想定する。辞書には、「湾岸」や「湾岸戦争」が入っていないと仮定する。形態素解析された形態素列の評価点（コスト）は、形態素コスト＋形態素接続コストで決まるものとする。接続コストは、仮に全て１であるとする。図１の登録語コスト計算部８と未登録語コスト計算部１０の判定基準として次のものがあるとする。
・未登録語のコスト：４０
・４文字以上の未登録語のコスト：１００
・一文字名詞のコスト：２５
・それ以外の形態素のコスト
【００２４】
図６に初期化された解析表を示す。解析表の第１フィールドは開始位置を示す、第２フィールドは長さを示し、第３フィールドは品詞を示し、第４フィールドは語の表記を示し、第５フィールドは形態素コストを示し、第６フィールドは前方に接続する形態素を示す。図示の解析表の第１行目には、１，１，普通名詞，湾，２５，なしと言うデータが書き込まれている。
【００２５】
「前方に接続する形態素」について説明する。ここで言う「接続する」とは、文法規則を参照して確かに接続するかどうか確認されたもののみを指す。単に前方に存在するだけでは駄目である。また、辞書引きの直後では、文法規則を参照した接続のチェックは行われていないので、「なし」になっている。初期状態では「なし」であるが、解析が進むにしたがって「あり」の箇所が出てくることになる。
【００２６】
「湾岸戦争」の部分に注目すると、評価点の最も低い（最も良い）形態素列は「湾岸（未登録語）」「戦争」である。形態素コスト＋形態素接続コスト＝４０＋０＋１＝４１である。
【００２７】
登録語を優先した評価を用いる通常の形態素解析装置では、「湾」「岸」「戦争」が選ばれる（未登録語のコストのみを０より大きい値に設定した場合に相当する）が、本発明の上記の評価基準の例によれば、この場合のコストは形態素コスト＋形態素接続コスト＝２５＋２５＋０＋１＋１＝５２となり、「湾岸」「戦争」と言う切り方よりも評価点が悪くなる。そのため、適切でない此の解析結果は選ばれない。
【００２８】
また、通常の形態素解析では未登録語は同じ字種の連続するものを選ぶ（「湾岸戦争」を一続きのものとして選ぶ場合に相当する）ことも行われているが、その場合には「戦争」の部分を切り出すことは不可能である。さらに、文の先頭が未登録語で始まる場合でもバックトラックが行われたり、精度が落ちることがない。
【００２９】
この例では４文字以上の未登録語を特別扱いしたが、何文字以上と言う条件は用途や目的によっても異なる。適切な値は実験により求める。また、単に文字の長さだけで判断したが、文字種の情報を使ったり、未登録語パターン辞書を参照して点数付けを行うことも出来る。
【００３０】
解析例２
検索のキーワードとしては短い単位で切ったものが欲しい場合や、辞書を小さくするために無くても殆ど解析に支障がない複合語を選び出して削りたい場合に、形態素解析する例を挙げる。例えば、「情報検索システム」を形態素解析する場合である。
【００３１】
辞書には、「情報検索システム」「情報検索」「検索システム」「情報」「検索」「システム」の何れもが記入されているものとする。形態素列の評価点（コスト）の計算は解析例１に準ずるものとする。図１の登録語コスト計算部８と未登録語コスト計算部１０の判定基準として次のものがあるとする。
・２文字以下の片仮名語：７０
・未登録語のコスト：４０
・３文字以上の登録語のコスト：５０＋その単語の長さ
・一文字名詞のコスト：２５
・それ以外の形態素のコスト：０
【００３２】
図７に初期化された解析表を示す。この場合、評価点の最も低い（最も良い）形態素列は「情報」「検索」「システム」である。コストは、形態素コスト＋形態素接続コスト＝０＋０＋５１＋１＋１＝５３である。
「情報検索システム」が一形態素として切り出す解のコストは５５であり、最終的に選ばれたものより点数が悪く、出力されない。
【００３３】
図１の登録語コスト計算部８と未登録語コスト計算部１０の判断基準を適切に設定することによって、用途に応じた形態素解析が行える。また、これらの判断基準と解析の処理の手順は独立であり、処理が複雑になったり、速度が低下することはない。
【００３４】
【発明の効果】
以上の説明から明らかなように、本発明によれば、形態素解析において、未登録語が含まれている文の解析でも複雑になることなく、精度も落とさず、バックトラックも無いので処理速度が低下することもなく、形態素解析を行うことが出来る。また、用途に応じた形態素の切り出しが可能になる。
【図面の簡単な説明】
【図１】本発明の形態素解析装置の構成例を示す図である。
【図２】文法規則の例を示す図である。
【図３】辞書の例を示す図である。
【図４】未登録語パターン辞書の例を示す図である。
【図５】本発明の形態素解析装置の処理の流れの例を示す図である。
【図６】初期化された解析表の例を示す図である。
【図７】初期化された解析表の他例を示す図である。
【符号の説明】
１    文法規則部
２    解析表
３    解析制御部
４    辞書
５    ファイル
６    キーボード
７    未登録語範囲認定部
８    登録語コスト計算部
９    コスト計算部
１０  未登録語コスト計算部
１１  未登録語パターン辞書
【図１】
0003880087.tif 000002
【図２】
0003880087.tif 000003
【図３】
0003880087.tif 000004
【図４】
0003880087.tif 000005
【図５】
0003880087.tif 000006
【図６】
0003880087.tif 000007
【図７】
0003880087.tif 000008