(57)【特許請求の範囲】
【請求項１】
入力文中の文字間が形態素の分割点である形態素分割点確率を計算する形態素分割点確率計算手段と、
前記形態素分割点確率を用いて、前記入力文中の文字列が形態素である形態素確率を計算する形態素確率計算手段と、
前記形態素確率に基づいて、前記入力文において全ての形態素候補となる文字列を判定する形態素候補判定手段と、を備え、
前記形態素候補判定手段によって形態素候補に判定された文字列であって、文字が部分的に重複する文字列も含めて全ての形態素候補の文字列を出力する、
ことを特徴とする形態素候補生成装置。
【請求項２】
入力文中の文字間が形態素の分割点である形態素分割点確率を計算する形態素分割点確率計算手段と、
前記形態素分割点確率を用いて、前記入力文中の文字列が形態素である形態素確率を計算する形態素確率計算手段と、
前記形態素確率に基づいて、前記入力文において全ての形態素候補となる文字列を判定する形態素候補判定手段と、
前記入力文から素性を作成するための素性テンプレートを格納する素性テンプレートテーブルと、
素性ベクトルの成分となる素性を定義する素性ベクトル定義テーブルと、を備え、
前記形態素分割点確率計算手段は、前記素性テンプレートを用いて素性を作成し、該素性と前記素性ベクトルの定義との一致を調べ、該一致した成分のみに所定値を持つ素性ベクトルを作成し、該素性ベクトルを用いた最大エントロピー法の確率モデルによって形態素分割点確率を算出する、
ことを特徴とする形態素候補生成装置。
【請求項３】
前記形態素分割点確率は、文字間が形態素の分割点であることのみに関する確率であり、
前記形態素候補判定手段は、入力文中の一つ一つの文字について、その文字を形態素候補の先頭文字として、後続の文字を連結していき、その各連結した文字列の形態素確率を計算し、該形態素確率を閾値により判定し、この閾値判定結果から当該文字列を形態素候補にするか決定するものであり、先頭文字の直前の文字間の形態素分割点確率とそれ以降の文字間が形態素の分割点ではない確率との積を保持しておき、連結した文字列の直後の文字間の形態素分割点確率を該保持した積に乗ずることにより該連結した文字列の形態素確率を得る、
ことを特徴とする請求項１に記載の形態素候補生成装置。
【請求項４】
前記形態素候補判定手段は、ある文字間の形態素分割点確率と、それ以降の文字間が形態素の分割点ではない確率との積を前記閾値により判定し、この閾値判定結果から、当該先頭文字についての以降の後続文字を連結する処理について省略するか決定する、
ことを特徴とする請求項３に記載の形態素候補生成装置。
【請求項５】
入力文中の文字間が形態素の分割点である形態素分割点確率を計算する形態素分割点確率計算機能と、
前記形態素分割点確率を用いて、前記入力文中の文字列が形態素である形態素確率を計算する形態素確率計算機能と、
前記形態素確率に基づいて形態素候補となる文字列を判定する形態素候補判定機能と、
前記形態素候補判定機能によって形態素候補に判定された文字列であって、文字が部分的に重複する文字列も含めて全ての形態素候補の文字列を出力する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、形態素候補生成装置およびコンピュータプログラムに関する。
【背景技術】
【０００２】
日本語の形態素解析は、日本語文を形態素へ分割し、各形態素の文法的属性（品詞や活用型・活用形など）を決定する処理である。一般に、その処理には形態素辞書を用いる。具体的には、解析したい日本語文（入力文）中において形態素辞書の見出しと一致する全ての文字列を形態素の候補とし、この候補をグラフ構造で表現し、このグラフ構造中で最適な形態素の並びと文法的属性の並びを決定する。但し、新しい語（特に固有名詞や専門用語など）が出現するため、あらかじめ全ての形態素を辞書に登録しておくことは、解析対象を限定しない限り困難である。そこで形態素解析では、形態素辞書に登録されていない語である未知語の形態素を解析する未知語処理が必要である。未知語処理では、形態素辞書に登録されていない文字列であって形態素である可能性があるものを入力文中から推定し、これを形態素の候補としてグラフ構造に追加する。この未知語処理において正しい形態素が形態素候補としてグラフ構造に追加されなければ、正しく解析することはできないため、正しい未知語形態素を生成して形態素候補とすることが重要である。
【０００３】
従来の形態素解析における未知語処理としては、以下に示すものが知られている。
（１）長さヒューリスティクスによる処理（例えば、非特許文献１参照）
任意の文字列の全てを形態素候補として扱うと、候補数のオーダがn2（nは入力文の文字数）となり多くなってしまう。そこで候補数を削減するためにヒューリスティクスにより形態素候補の文字列長を制限する。非特許文献１記載の従来技術では、５文字以下の全ての文字列と、連続するカタカナの文字列とを未知語の候補としている。
（２）文字種ヒューリスティクスによる処理（例えば、非特許文献２参照）
文字種に基づいたヒューリスティクスにより未知語候補を生成する手法においては、ルールに適合する文字列はすべて形態素候補となる。非特許文献２記載の従来技術では、文字種などの情報を利用してヒューリスティクスにより未知語候補を生成し、識別モデルであるCRFに基づいて形態素解析している。
（３）n-gram生成モデルによる処理（例えば、非特許文献３参照）
非特許文献３記載の従来技術では、未知語の生成確率を文字n-gramの生成モデルを用いて計算し、未知語候補の生成に利用している。
（４）形態素への分割のみを先に決定する処理（例えば、非特許文献４参照）
非特許文献４記載の従来技術では、未知語の解析手法として、品詞を考慮せずに形態素への分割のみを先に決定している。
【非特許文献１】内元清貴，関根聡，井佐原均，“最大エントロピーモデルに基づく形態素解析−未知語の問題の解決策−，自然言語処理,Vol.8,No.1,pp.127-141,Jan.2001.
【非特許文献２】工藤拓，山本薫，松本裕治,“Conditional Random Fieldsを用いた日本語形態素解析”,SIG-NL-161(13),pp.89-96,2004.
【非特許文献３】永田昌明，“統計的言語モデルとN-best探索を用いた日本語形態素解析法”，情報処理学会論文誌,Vol.40,No.9,pp.3420-3431,Sep.1999.
【非特許文献４】中川哲治，松本裕治，“単語レベルと文字レベルの情報を用いた中国語・日本語単語分割”，情報処理学会論文誌,Vol.46,N0.11,pp.2714-2727,Nov.2005.
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、上述した従来技術では、以下に示すような問題がある。
（１）長さヒューリスティクスによる処理では、文字数を制限すると、それ以上長い未知語を解析できないという問題がある。
（２）文字種ヒューリスティクスによる処理では、学習データに出現しない特徴を持つ文字列を形態素候補とすると、識別モデルでは適切に識別できず、解析誤りの原因となるという問題がある。そのため、入力文から形態素候補を生成する段階において形態素となる可能性を計算し、極端に不適切な形態素候補を生成しないようにすることが重要である。また、従来手法の最長一致法や分割数最小法を用いる場合も、不適切な未知語候補は解析精度の低下を引き起こす。
（３）n-gram生成モデルによる処理では、学習データに全く又はほとんど出現しない文字列の生成確率は小さくなる。未知語は学習データに全く又はほとんど出現しない場合が多いと考えられるため、未知語の文字列の生成確率は小さくなりやすく、適切に未知語形態素候補を生成することは困難である。
（４）形態素への分割のみを先に決定する処理に対して、我々は、形態素の決定は品詞などの文法的属性も同時に考慮して行った方がより多くの情報を考慮できるので有利だと考えている。
【０００５】
本発明は、このような事情を考慮してなされたもので、その目的は、未知語形態素候補の長さに制限を設けないこと、極端に不適切な未知語形態素候補を排除すること、未知語形態素候補の生成確率が小さくならないことを実現することのできる形態素候補生成装置およびコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
上記の課題を解決するために、本発明に係る形態素候補生成装置は、入力文中の文字間が形態素の分割点である形態素分割点確率を計算する形態素分割点確率計算手段と、前記形態素分割点確率を用いて、前記入力文中の文字列が形態素である形態素確率を計算する形態素確率計算手段と、前記形態素確率に基づいて、前記入力文において全ての形態素候補となる文字列を判定する形態素候補判定手段と、を備えたことを特徴とする。
【０００７】
本発明に係る形態素候補生成装置においては、前記入力文から素性を作成するための素性テンプレートを格納する素性テンプレートテーブルと、素性ベクトルの成分となる素性を定義する素性ベクトル定義テーブルと、を備え、前記形態素分割点確率計算手段は、前記素性テンプレートを用いて素性を作成し、該素性と前記素性ベクトルの定義との一致を調べ、該一致した成分のみに所定値を持つ素性ベクトル（例えば、一致した成分の値を“1”，一致しなかった成分の値を“0”とする）を作成し、該素性ベクトルを用いた最大エントロピー法の確率モデルによって形態素分割点確率を算出することを特徴とする。
【０００８】
本発明に係る形態素候補生成装置においては、前記形態素候補判定手段は、入力文中の一つ一つの文字について、その文字を形態素候補の先頭文字として、後続の文字を連結していき、その各連結した文字列の形態素確率を計算し、該形態素確率を閾値により判定し、この閾値判定結果から当該文字列を形態素候補にするか決定するものであり、先頭文字の直前の文字間の形態素分割点確率とそれ以降の文字間が形態素の分割点ではない確率との積を保持しておき（図１０のステップ２０７）、連結した文字列の直後の文字間の形態素分割点確率を該保持した積に乗ずることにより該連結した文字列の形態素確率を得る（図１０のステップ２０４）ことを特徴とする。
【０００９】
本発明に係る形態素候補生成装置においては、前記形態素候補判定手段は、ある文字間の形態素分割点確率と、それ以降の文字間が形態素の分割点ではない確率との積を前記閾値により判定し（図１０のステップ２０８）、この閾値判定結果から、当該先頭文字についての以降の後続文字を連結する処理について省略するか決定することを特徴とする。
【００１０】
本発明に係るコンピュータプログラムは、入力文中の文字間が形態素の分割点である形態素分割点確率を計算する形態素分割点確率計算機能と、前記形態素分割点確率を用いて、前記入力文中の文字列が形態素である形態素確率を計算する形態素確率計算機能と、前記形態素確率に基づいて形態素候補となる文字列を判定する形態素候補判定機能と、をコンピュータに実現させることを特徴とする。
これにより、前述の形態素候補生成装置がコンピュータを利用して実現できるようになる。
【発明の効果】
【００１１】
本発明によれば、入力文から形態素候補を自動生成することができる。その生成された形態素候補は、長さに制限がない、極端に不適切な形態素候補が排除される、n-gram生成モデルによらないので形態素候補の生成確率が小さくならない、などの特徴を有する。これにより、適切な未知語処理の実現に寄与することが可能になる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照し、本発明の一実施形態について説明する。
【００１３】
本発明は、入力文から形態素候補を生成するものであるが、入力文中の任意の文字列についてその文字列が形態素である確率（以下、「形態素確率」と称する）に基づいて、当該文字列を形態素候補とするか否かを決定する。その形態素確率を計算する際には、入力文中の文字間が形態素の分割点である確率（以下、「形態素分割点確率」と称する）を用いる。
【００１４】
まず、本実施形態に係る形態素確率および形態素分割点確率について説明する。
入力文S'の文頭及び文末に端記号“＃”を追加し、wiを形態素として、処理対象文Sを｛S＝w1w2・・・wi・・・wn＝w1n，w1＝wn＝“＃”｝とする。nは形態素の個数である。このとき、形態素列w1nへの分割確率は“P(w1n|S)”となる。さらに、各形態素が他の形態素に依存しないように近似すると、（１）式が得られる。（１）式において、“P(wi|S)”は、処理対象文S中のある文字列が形態素である確率を表す。
【００１５】
【数１】
0005105996.tif 000002
【００１６】
ここで、“P(wi|S)”を文字単位の処理に変形する。文字を“cj”として、処理対象文Sを｛S＝c1c2・・・cj・・・cm＝c1m｝とする。mは文字の個数である。処理対象文Sをどのような形態素列w1nに分割するかは、処理対象文Sの文字列c1m中の全ての文字間が、形態素の分割点である（delimiter）か、分割点でない（non-delimiter）かによって表現できる。そこで、図１に示すように、文字cjと文字cj+1との間が、分割点である場合は“sj＝1”、分割点でない場合は“sj＝0”として表す（つまり、sj∈｛0,1｝）。そして、｛wi＝cpq｝とすると、図２に示すように、形態素wiは｛S＝c1m｝と“sp-1q”で表現できる。これにより、（２）式が得られる。
【００１７】
【数２】
0005105996.tif 000003
【００１８】
ここで、“P(sp-1q|S)”を近似して、“sj”が他の“s”に依存しないようにし、さらに条件の｛S＝c1m｝を“sj”の直前のa個の文字と直後のa個の文字とに制限する。これにより、（３）式が得られる。
【００１９】
【数３】
0005105996.tif 000004
【００２０】
本実施形態では、（３）式の値を形態素確率に用いる。また、形態素確率が閾値以上である文字列を形態素候補とする。（３）式において、「sj=1」とすると、“P(sj|cj-a+1j+a)”は形態素分割点確率である。本実施形態では、“P(sj|cj-a+1j+a)”を計算する確率モデルとして、最大エントロピー法を用いる。最大エントロピー法で利用する素性には、文字以外に、カタカナ、ひらがな及び漢字などの文字種も用いることができる。最大エントロピー法による“P(sj|cj-a+1j+a)”の確率モデルは（４）式で表される。
【００２１】
【数４】
0005105996.tif 000005
【００２２】
但し、“F(cj-a+1j+a,sj)”は素性ベクトルである。素性ベクトルF(cj-a+1j+a,sj)は文字cj-a+1j+aと“sj”を特徴づける。素性ベクトルF(cj-a+1j+a,sj)は、0又は1を値に持つ成分から構成される。“Λ”は、素性ベクトルF(cj-a+1j+a,sj)の各成分に対応した重みのパラメータのベクトル（以下、「重みパラメータベクトル」と称する）である。“・”は内積を表す。“Z”は確率モデルの正規化項である。正規化項Zは、「sj∈｛0,1｝」であるので、（５）式で表される。
【００２３】
【数５】
0005105996.tif 000006
【００２４】
本実施形態では、（４）式および（５）式により形態素分割点確率を計算する。
【００２５】
次に、本実施形態に係る形態素候補生成装置を説明する。
図３は、本発明の一実施形態に係る形態素候補生成装置１の構成を示すブロック図である。図３において、形態素候補生成装置１は、形態素分割点確率計算部２、形態素確率計算部３、形態素候補判定部４、素性テンプレートテーブル５、確率モデルパラメータテーブル６及び素性ベクトル定義テーブル７を有する。
【００２６】
形態素分割点確率計算部２は、入力文中の各文字間の形態素分割点確率を算出する。形態素確率計算部３は、入力文中の各文字列の形態素確率を算出する。形態素候補判定部４は、形態素確率に基づいて、入力文中の各文字列が形態素候補となるか否かを判定する。
【００２７】
素性テンプレートテーブル５は素性テンプレートを格納する。図４に素性テンプレートテーブル５の構成例を示す。図４の例では、１８種類の素性テンプレートが素性テンプレートテーブル５に格納されている。なお、図４中には文字に係る素性テンプレートのみを示しているが、文字種に係る素性テンプレートも格納することができる。文字種に係る素性テンプレートは、図４中には文字に係る素性テンプレートにおいて文字（例えば“cjj+1”）を文字種の表現に置き換えればよい。
【００２８】
確率モデルパラメータテーブル６は、重みパラメータベクトルΛを格納する。素性ベクトル定義テーブル７は、素性ベクトルF(cj-a+1j+a,sj)を定義する情報を格納する。図５に素性ベクトル定義テーブル７の構成例を示す。図５に示すように、素性ベクトル定義テーブル７は、素性と素性ベクトルの成分番号との対応関係を示す。素性テンプレートテーブル５、確率モデルパラメータテーブル６及び素性ベクトル定義テーブル７については、事前に準備し、形態素候補生成装置１のメモリに格納しておく。
【００２９】
なお、本実施形態に係る形態素候補生成装置１は、専用のハードウェアにより実現されるものであってもよく、あるいはパーソナルコンピュータ等のコンピュータシステムにより構成され、図３に示される形態素候補生成装置１の各部の機能を実現するためのプログラムをＣＰＵで実行することによりその機能を実現させるものであってもよい。
【００３０】
次に、図３に示す形態素候補生成装置１の動作を順次説明する。
【００３１】
まず、図６を参照して形態素分割点確率計算部２の動作を説明する。図６は、本実施形態に係る形態素分割点確率算出処理の手順を示すフローチャートである。形態素分割点確率算出処理は、入力文S'中の文字間jが形態素の分割点（sj＝1）となる形態素分割点確率djを計算する。以下、適宜、具体例を挙げながら説明を行う。
【００３２】
図６において、ステップ１０１では、入力文S'の文頭及び文末に端記号“＃”を付加し、付加後の処理対象文Sをメモリに保持する。ここでは、入力文S'の具体例として“私は日本人です”を用いる。この入力文例の文字数は７である。ステップ１０１によって、処理対象文Sとして“＃私は日本人です＃”がメモリに保持される。この処理対象文例の文字数は９である。図７にメモリ上のデータ保持形式の例を示す。図７に示されるように、文字変数cjと処理対象文S中の文字と文字間を示す変数jとを組にしてメモリに保持する。変数jは、文字変数cjの文字の直後の文字間を示す。
【００３３】
ステップ１０２では、計算対象の文字間を示す変数jに最初の文字間の値“1”を代入する。但し、｛j＝1,2,・・・,m｝であり、文字間の個数mは「“入力文S'の文字数”＋1」である。“私は日本人です”の場合、文字間の個数mは「７＋１＝８」である。
【００３４】
ステップ１０３では、文字間jを対象にして、素性テンプレートテーブル５中の全ての素性テンプレートに関し、それぞれに素性テンプレートを用いて素性を作成する。但し、素性テンプレートに対応する素性がない場合がある。
【００３５】
図４の素性テンプレートテーブル５の例では１８種類の素性テンプレートがあるので、１８種類の各々の素性テンプレートについて該素性テンプレートを用いて素性を作成し、合計１８個の素性を作成する。この作成された素性の具体例として、ここでは「j＝3」の場合を図８に示す。図８には、処理対象文Sとして“＃私は日本人です＃”についての「j＝3」の場合の１８個の素性が示されている。例えば、テンプレート番号１の素性テンプレート「<cjj+1,sj>＝<c34,s3>」を用いた場合、メモリに保持されている文字変数c3の文字“は”から文字変数c4の文字“日”まで２文字を連結し、素性<“は日”，s3>を作成する。このとき、s3は1を用いる。これは、文字間jが形態素の分割点（sj＝1）となる形態素分割点確率djを求めているからである。この結果、素性<“は日”，1>が作成される。同様に、例えば、テンプレート番号９の素性テンプレート「<cj-1j+3,sj>＝<c26,s3>」を用いた場合、メモリに保持されている文字変数c2の文字“私”から文字変数c6の文字“人”まで５文字を連結し、素性<“私は日本人”，1>を作成する。なお、図８中のテンプレート番号７，１４の２種類の素性テンプレートについては対応する素性がないので、図８の例では１６個の素性が作成される。
【００３６】
ステップ１０４では、ステップ１０３で作成された素性のそれぞれについて、素性を検索キーにして素性ベクトル定義テーブル７を検索する。ステップ１０５では、ステップ１０４の検索の結果、発見された素性の成分番号を素性ベクトル定義テーブル７から取得する。
【００３７】
ステップ１０６では、素性ベクトル「F(cj-a+1j+a,sj)＝｛f1,f2,f3,・・・,fr｝」を作成する。但し、fkは成分番号kの成分の値である。kは1からrまでの自然数である。rは成分番号の最大値である。素性ベクトルの成分fkは、ステップ１０５で取得された成分番号の成分の値を“1”とし、取得されなかった成分番号の成分の値を“0”とする。
【００３８】
例えば、ステップ１０４，１０５の結果の例として、「j＝3」において、テンプレート番号１６，１７の素性のみが素性ベクトル定義テーブル７から発見され、成分番号３，５のみが取得されたとする。このとき、ステップ１０６により、「j＝3」において、成分番号３，５のみの成分値が“1”である素性ベクトル「F(cj-a+1j+a,sj)＝(f1,f2,f3,f4,f5,f6,・・・,fr)＝(0,0,1,0,1,0,・・・,0)」が作成される。
【００３９】
ステップ１０７では、文字間jについての形態素分割点確率djを上述の（４）式及び（５）式により計算し、メモリに保持する。文字間jの形態素分割点確率djは、文字間jの素性ベクトルF(cj-a+1j+a,sj)と、確率モデルパラメータテーブル６中の重みパラメータベクトルΛを使用して算出する。ここで、（５）式において、「s'＝1」の場合のF（cj-a+1j+a,1）はステップＳ１０６で求めた素性ベクトルF(cj-a+1j+a,sj)を使用する。「s'＝0」の場合のF（cj-a+1j+a,0）は、「sj＝0」として上記ステップＳ１０４，１０５，１０６を行い、この結果の素性ベクトルF(cj-a+1j+a,sj)を使用する。なお、図５のように、素性ベクトル定義テーブル７においてsj以外が同一となる素性において「sj＝1」の成分番号の次の成分番号を「sj＝0」と定義した場合には、「s'＝0」の場合のF（cj-a+1j+a,0）は、ステップＳ１０６で求めた素性ベクトルF(cj-a+1j+a,sj)で、値が“1”になっている成分番号を1つ増やした成分番号の成分値のみを“1”にしたもの（例えば、「sj＝1」でF(cj-a+1j+a,sj)=(0,0,1,0,1,0)なら、「sj＝0」でF(cj-a+1j+a,sj)=(0,0,0,1,0,1)となる）を使用すればよい（このときは「s'＝0」の場合のF（cj-a+1j+a,0）を求めるために、ステップＳ１０４，１０５，１０６を行う必要がない）。
【００４０】
ステップ１０８では、「j＝m」ならば、全ての文字間jについての形態素分割点確率djが算出されたので、図６の処理を終了する。一方。「j≠m」ならば、次の文字間の形態素分割点確率を算出するために、変数jに“1”を加算してステップ１０３へ戻る。
【００４１】
上記ステップ１０３〜１０７をm回だけ繰り返し処理することによって、各文字間の形態素分割点確率（m個）が作成され、メモリに保持される。図９にメモリ上のデータ保持形式の例を示す。図９に示されるように、文字変数cjと処理対象文S中の文字と文字間を示す変数jと形態素分割点確率djとを組にしてメモリに保持する。
【００４２】
次に、図１０を参照して形態素確率計算部３及び形態素候補判定部４の動作を説明する。形態素確率計算部３及び形態素候補判定部４は連携して動作する。図１０は、本実施形態に係る形態素候補判定処理の手順を示すフローチャートである。形態素候補判定処理は、入力文S'中の任意の文字列についてその文字列が形態素候補となるかを判定する。なお、本形態素候補判定処理においては、上述の形態素分割点確率算出処理によって組としてメモリに格納されている、文字変数cjと処理対象文S中の文字と文字間を示す変数jと形態素分割点確率djとを使用する。
【００４３】
図１０において、ステップ２０１では、変数pに初期値“2”を代入する。ステップ２０２では、変数eに形態素分割点確率dp-1を代入する。ステップ２０３では、変数qに変数pを代入する。ステップ２０４では、変数eと形態素分割点確率dqとの積を変数fに代入する。この変数fは、文字変数cpから文字変数cqまでの各文字を連結した文字列cpqが形態素である確率（形態素確率）である。
【００４４】
ステップ２０５では、変数fと閾値Thの値を比較する。この結果、変数fが閾値Th以上の場合にはステップ２０６へ進み、ステップ２０６では文字列cpqを形態素候補として出力する。一方、変数fが閾値Th未満の場合にはステップ２０７へ進む。ステップ２０７では、変数eと「1-形態素分割点確率dq」との積を変数eに代入する。
【００４５】
ステップ２０８では、変数eと閾値Thの値を比較する。この結果、変数eが閾値Th未満の場合にはステップ２１１へ進む。一方、変数eが閾値Th以上の場合にはステップ２０９へ進む。
【００４６】
ステップ２０９では、変数qに“1”を加算する。ステップ２１０では、変数qと文字間の個数mの値を比較する。この結果、変数qが文字間の個数m以上の場合にはステップ２１１へ進む。一方、変数qが文字間の個数m未満の場合にはステップ２０４へ戻る。
【００４７】
ステップ２１１では、変数pに“1”を加算する。ステップ２１２では、変数pと文字間の個数mの値を比較する。この結果、変数pが文字間の個数m以上の場合には図１０の処理を終了する。一方、変数pが文字間の個数m未満の場合にはステップ２０２へ戻る。
【００４８】
上述の図１０の形態素候補判定処理では、入力文S'中の全ての文字列の組合せについて、その文字列が形態素候補となるかを判定している。具体的には、入力文S'中の一つ一つの文字について、その文字を形態素候補の先頭文字として、後続の文字を連結していき、その各連結した文字列の形態素確率（変数f）を計算し、該形態素確率を閾値Thにより判定し、この閾値判定結果から当該文字列を形態素候補にするか決定する。
【００４９】
また、「形態素分割点確率dp-1と（１−形態素分割点確率dp）の積（ステップ２０７の結果の変数e）を閾値Thにより判定し、この閾値判定結果から、当該先頭文字についての以降の後続文字を連結する処理について省略するか決定している。これは、ステップ２０７の結果の変数eが閾値Th未満になった段階で、文字変数cpから文字変数cqまでの各文字を連結した文字列cpqに対してさらに文字変数cq+1以降の文字を連結した文字列については、形態素確率が閾値Th未満になることが明らかであるので、当該先頭文字についての以降の後続文字を連結する処理について省略するものである。この省略により、ある先頭文字について、全ての後続文字の連結の組合せに対して形態素確率を計算し、閾値判定する場合に比べ、計算量を大幅に削減することができる。
また、後続文字を連結する際に、それまでに計算していた変数e（ステップ２０７の結果の変数e）を利用することによって、変数eを用いずに（３）式を計算する場合に比べて、形態素確率fの計算を効率化できている。
【００５０】
上述の実施形態によれば、入力文から形態素候補を自動生成することができる。その生成された形態素候補は、長さに制限がない、極端に不適切な形態素候補が排除される、n-gram生成モデルによらないので形態素候補の生成確率が小さくならない、などの特徴を有する。これにより、適切な未知語処理の実現に寄与することが可能になる。
【００５１】
次に、本実施形態に係る確率モデルパラメータテーブル６及び素性ベクトル定義テーブル７を生成する実施例を説明する。
図１１は、本実施形態に係る確率モデルパラメータ生成装置２０の構成を示すブロック図である。図１１において、確率モデルパラメータ生成装置２０は、素性ベクトル定義テーブル生成部２１、素性ベクトル定義テーブル記録部２２、確率モデルパラメータ推定部２３及び素性テンプレートテーブル５を有する。素性テンプレートテーブル５は、図３の形態素候補生成装置１に具備されるものと同一である。
【００５２】
確率モデルのパラメータ（重みパラメータベクトルΛ）の推定は、“Gaussian prior”を用いてMAP（Maximum A Posteriori）推定することにより行う。具体的には、学習データ全体の対数尤度ＬΛを最大化するように、重みパラメータベクトルΛを算出する。学習データは、学習文と、該学習文中の各文字間jが形態素の分割点である（sj＝1）か否（sj＝0）かの情報とから構成される。重みパラメータベクトルΛは（６）式及び（７）式により算出する。なお、最適解は、準ニュートン法である“L-BFGS”などを用いて求めることができる。“L-BFGS”については、例えば「D.C.Liu and J.Nocedal,“On the limited memory BFGS method for large scale optimization.”Math.Program・,Vol.45,Issue 3,pp.503-528,December 1989.」に記載されている。
【００５３】
【数６】
0005105996.tif 000007
【００５４】
【数７】
0005105996.tif 000008
【００５５】
（７）式において、σ2はハイパーパラメータである。ハイパーパラメータσ2は事前に準備される。||・||はノルムを表す。
【００５６】
素性ベクトルについては、素性テンプレートを用いて作成する。例えば、図４中の素性テンプレート<cjj+1,sj>から、素性<cjj+1＝“値が”,sj＝1>が作成されたとすると、その素性の有無を返す素性関数fは（８）式により定義できる。このような素性関数fを素性ベクトルの成分とすることにより、素性ベクトルを構築する。
【００５７】
【数８】
0005105996.tif 000009
【００５８】
図１１において、素性ベクトル定義テーブル生成部２１は、素性テンプレートテーブル５を用いて、学習データから素性ベクトルを作成する。具体的には、学習データの学習文に対して各素性テンプレートで文字列を切り出し、学習文に所定回数（例えば３回）以上出現した文字列を素性に使用する。そして、該文字列と「sj＝1」の組、及び、該文字列と「sj＝0」の組をそれぞれ素性として作成する。
【００５９】
素性ベクトル定義テーブル記録部２２は、素性ベクトル定義テーブル生成部２１により作成された素性と素性ベクトルの成分番号との組を記録する。これにより、図５に示される素性ベクトル定義テーブル７が作成される。確率モデルパラメータ推定部２３は、（６）式及び（７）式により、重みパラメータベクトルΛを算出する。
【００６０】
なお、図３に示す形態素候補生成装置１の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、形態素候補生成処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＤＶＤ（Digital Versatile Disk）等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【００６１】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Dynamic Random Access Memory））のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００６２】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【図面の簡単な説明】
【００６３】
【図１】本発明に係る文字列中の文字と形態素分割点の関係を説明するための説明図である。
【図２】本発明に係る文字列中の文字と形態素分割点の関係を説明するための説明図である。
【図３】本発明の一実施形態に係る形態素候補生成装置１の構成を示すブロック図である。
【図４】図３に示す素性テンプレートテーブル５の構成例である。
【図５】図３に示す素性ベクトル定義テーブル７の構成例である。
【図６】本発明の一実施形態に係る形態素分割点確率算出処理の手順を示すフローチャートである。
【図７】図３に示す形態素候補生成装置１のメモリ上のデータ保持形式の例である。
【図８】本発明の一実施形態に係る形態素分割点確率算出処理によって作成される素性の具体例である。
【図９】図３に示す形態素候補生成装置１のメモリ上のデータ保持形式の例である。
【図１０】本発明の一実施形態に係る形態素候補判定処理の手順を示すフローチャートである。
【図１１】図３に示す確率モデルパラメータテーブル６及び素性ベクトル定義テーブル７を生成する実施例である。
【符号の説明】
【００６４】
１…形態素候補生成装置、２…形態素分割点確率計算部、３…形態素確率計算部、４…形態素候補判定部、５…素性テンプレートテーブル、６…確率モデルパラメータテーブル、７…素性ベクトル定義テーブル
【図１】
0005105996.tif 000010
【図２】
0005105996.tif 000011
【図３】
0005105996.tif 000012
【図４】
0005105996.tif 000013
【図５】
0005105996.tif 000014
【図６】
0005105996.tif 000015
【図７】
0005105996.tif 000016
【図８】
0005105996.tif 000017
【図９】
0005105996.tif 000018
【図１０】
0005105996.tif 000019
【図１１】
0005105996.tif 000020