以下に、本願の開示する判定プログラム、判定装置および判定方法の実施例を図面に基づいて詳細に説明する。なお、実施例では、判定装置を情報処理装置として説明する。本発明は、実施例により限定されるものではない。
[実施例1に係る情報処理装置の構成]
図1は、実施例1に係る情報処理装置の構成を示す機能ブロック図である。図1に示す情報処理装置1は、機械翻訳などで利用される自然言語の意味解析処理の結果(「意味構造」という)を用いて、複数の表記間の類似性に関する判定を自動的に行う。表記間の類似性には、表記間が同義であることや、表記間が多義であることが含まれる。異なる表記であるが同じ意味を表す表記同士は、「同義語」という。同じ表記であるが別の意味を表す表記同士は、「多義語」という。
なお、実施例1で用いられる「文章」とは、意味のある文の最小単位であり、必ずしも主語および述語を含まなくても良いが、日本語では一般的に句点(。)で区切られ、英語ではピリオド(.)で区切られる。「文章」とは、「文」と同義である。「文書」とは、複数の文章として構成されるテキストのことをいう。また、実施例1で用いられる「意味構造」とは、文章の意味解析処理の結果として生成され、文章の意味を表す、概念(意味)を示すノードと、概念の関連を示す有向アークとで表わしたグラフ構造のことをいう。また、実施例1で用いられる「意味属性」とは、「意味構造」のノードについて、文法的、意味的な性質を示す記号(属性)のことをいう。また、実施例1で用いられる用語とは、独立して意味を有する単語または連語であるとする。連語とは、複数の単語の集まりのことをいう。
情報処理装置1は、制御部10と記憶部20とを有する。
制御部10は、CPU(Central Processing Unit)などの電子回路に対応する。そして、制御部10は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部10は、学習フェーズ10Aおよび運用フェーズ10Bを有する。学習フェーズ10Aは、意味解析部11、特徴ベクトル生成部12、学習部13を有する。なお、意味解析部11は、受付部および第1の生成部の一例である。特徴ベクトル生成部12は、第2の生成部の一例である。学習部13は、判定部の一例である。
記憶部20は、例えば、RAM、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。記憶部20は、教師例21、意味構造22、特徴ベクトル23および重みベクトル24を有する。なお、意味構造22は、関係を示す情報の一例である。特徴ベクトル23は、特徴情報の一例である。
教師例21は、例題となる文章と判定すべき用語とを併せた情報同士を対にして指定したデータであり、正しい例題を示す正例と誤った例題を示す負例とを含む。正例の教師例21は、同義語であると判定すべき用語と当該用語を含む文章とを併せた情報同士の組である。負例の教師例21は、同義語でないと判定すべき用語と当該用語を含む文章とを併せた情報同士の組である。例えば、文章「運用環境のカスタマイズが必要です。」の中の用語「カスタマイズ」と、文章「運用環境の変更により、対処が必要です。」の中の用語「変更」とは、同じ意味を表す異なる表記同士であるため、同義語である。そこで、文章「運用環境のカスタマイズが必要です。」と併せて判定すべき用語「カスタマイズ」と、文章「運用環境の変更により、対処が必要です。」と併せて判定すべき用語「変更」との対は、正例の教師例21の一例である。これに対して、文章「運用環境のカスタマイズが必要です。」の中の用語「カスタマイズ」と、文章「組織変更による対象が必要である。」の中の用語「変更」とは、同じ意味を表す異なる表記同士でないため、同義語でない。そこで、文章「運用環境のカスタマイズが必要です。」と併せて判定すべき用語「カスタマイズ」と、文章「組織変更による対象が必要である。」と併せて判定すべき用語「変更」との組は、負例の教師例21の一例である。
意味解析部11は、入力された教師例21の中から、1組の教師例21を選択する。意味解析部11は、選択した教師例21に含まれる2つの例題文章について、形態素解析および意味解析を行い、それぞれの意味構造22を生成する。すなわち、意味解析部11は、それぞれの例題文章について、自然言語の意味解析処理により、それぞれの意味構造22を生成する。なお、意味解析部11によって行われる意味解析処理は、既存の機械翻訳技術を使って実現できる。例えば、かかる意味解析処理は、例えば、特開平6−68160号公報、特開昭63−136260号公報や特開平4−372061号公報に開示されている機械翻訳技術を使って行えば良い。また、意味構造22は、例えば、特開2012−73951号公報に開示されている。
ここで、意味構造22の一例を、図2Aおよび図2Bを参照して説明する。図2Aおびび図2Bは、意味構造の一例を示す図である。図2Aは、意味構造22の内部表現を示す図であり、図2Bは、意味構造22を図式化したものである。なお、図2Aおよび図2Bで示す意味構造22は、原文「運用環境のカスタマイズが必要です。」の意味解析処理の結果である。
図2Aに示すように、意味構造22の内部表現は、用語一覧とグラフ構造を含んでいる。
用語一覧には、用語の一覧が表わされる。1つの用語は、「表記」「品詞」「意味属性」「概念記号」で表わされる。「意味属性」は、対応する用語の文法的、意味的な性質を示す記号(属性)であり、例えば、シソーラス属性や、可算規則、変化形規則などがある。シソーラス属性とは、用語の意味的な階層関係を記述した属性のことをいう。「概念記号」とは、意味的な観点(概念レベル)において用語が指し示す概念を識別する記号のことをいう。用語の一例として、表記が「カスタマイズ」である場合に、品詞としてサ変名詞「SN」、意味属性として「S1,S2,・・・」、概念記号として「CUSTOMIZE」と記載されている。なお、「表記」「品詞」「意味属性」「概念記号」は、用語が有する属性情報の一例である。
グラフ構造は、(Fromノード)−−<アーク>−−>(Toノード)で表現され、(Fromノード)の概念から(Toノード)の概念に向かって、<アーク>で接続されていることを示す。各ノードには、対応する用語に対応する概念を現す概念記号が付与されている。一例として、(CUSTOMIZE)−−<OBJ>−−>(EJR01)について、Fromノードの概念は、概念記号(CUSTOMIZE)の用語「カスタマイズ」に対応し、Toノードの概念は、概念記号(EJR01)の用語「運用環境」に対応し、概念(CUSTOMIZE)と概念(EJR01)とが対象関係<OBJ>である。即ち、「カスタマイズ」の<対象>が「運用環境」であることを示す。各ノードは、用語一覧に示されている「表記」「品詞」「意味属性」「概念記号」を持っている。なお、アークは、ノードとノードとの間の関係情報の一例である。
図2Bに示すように、例えば、「カスタマイズ」を意味する概念は、「CUSTOMIZE」という概念記号で表わされている。そして、「CUSTOMIZE」という概念記号のノードは、「EJR01」という概念記号で表わされる「運用環境」を意味する概念と、「OBJ」という記号を持つアークで接続されている。さらに、「CUSTOMIZE」という概念記号のノードには、他方のノードが存在しないアーク「J.GA」が接続されている。このアークは、Fromノードである概念「CUSTOMIZE」が「J.GA」という意味を持つこと、即ち、「カスタマイズ」が限定を意味する「が」という助詞をとることを示す。また、「CUSTOMIZE」という概念記号のノードは、「NEED」という概念記号で表わされる「必要」に対応する概念と、「OBJA」という記号を持つアークで接続されている。また、Fromノードが存在しないアーク<ST>はToノードである概念「NEED」がこの文章の中心的な概念であることを示す。つまり、意味構造22は、概念と、概念または間の意味的な関係を表す有向グラフで表される。
以下では、表記における「用語」と、意味構造における「概念」とを特に区別する必要が無い場合は、特定の用語に対応する概念のノードを単に用語と称する。
ここで、アークの記号の一例を、図3を参照して説明する。図3は、アーク記号の一例を示す図である。
図3に示すように、「<OBJ>」というアークの記号は、名称として「対象」を示し、意味として「動作の対象を示す」ことを示す。「<OBJA>」というアークの記号は、名称として「形容詞対象」を示し、意味として「形容詞の修飾対象」であることを示す。「<J.GA>」というアークの記号は、名称として「が助詞」を示し、意味として「「が」をとる」ことを示す。なお、図3で示すアークの記号は、一例であって、これらに限定されることはない。
図1に戻って、特徴ベクトル23は、意味構造22の中の、判定すべき用語における特定の意味構造22の情報を素性とする特徴情報である。例えば、特徴ベクトル23は、判定すべき用語を示す情報(品詞、意味属性および概念記号)と、判定すべき用語と直接アークで接続する用語を示す情報(品詞、意味属性および概念記号)とを素性とする特徴情報である。ここでいう素性とは、識別に用いる情報(現象を分解する要素)のことを意味し、特徴ベクトル23の軸となる情報のことをいう。なお、特徴ベクトル23の詳細は、後述する。
特徴ベクトル生成部12は、1組の教師例21について生成された意味構造22の対を比較して、機械学習で用いられる特徴ベクトル23を生成する。
例えば、特徴ベクトル生成部12は、意味構造22の対のうち一方の意味構造22について、判定すべき用語に対応するノード(対象ノードという)の周辺を、特徴ベクトル23を生成する範囲として分離する。特徴ベクトル生成部12は、意味構造22の対のうち他方の意味構造22について、判定すべき用語に対応する対象ノードの周辺を、特徴ベクトル23を生成する範囲として分離する。周辺を分離する一例として、特徴ベクトル生成部12は、対象の意味構造について、対象ノードと直接アークで接続するノード(関連ノード)だけを残して、他のノードを削除する。
そして、特徴ベクトル生成部12は、周辺を分離した結果を示す2種の意味構造22からそれぞれ特徴ベクトル23を生成する。これら生成される2種の特徴ベクトル23は、全て同じ素性を同じ順番で持ち、2種の特徴ベクトルを比較することにより、合致する素性の値を1とし、合致しない素性の値を0と設定される新たな特徴ベクトル23を生成する。さらに、特徴ベクトル生成部12は、前述の3種の特徴ベクトルを合成した特徴ベクトル23を生成する。
ここで、意味構造22から生成される特徴ベクトル23の構成の一例を、図4を参照して説明する。図4は、実施例1に係る特徴ベクトルの構成の一例を示す図である。なお、図4で示す特徴ベクトル23は、判定すべき用語に対応する対象ノードの情報i0と、判定すべき用語と直接アークで接続する用語に対応する関連ノードの情報i10とを素性とする特徴情報の一例である。図4に示すように、特徴ベクトル23には、判定すべき用語に対応する対象ノードに対して、各種品詞の素性、各種意味属性の素性および各種概念記号の素性が含まれる。各種品詞の素性は、例えば、30種存在する。各種意味属性の素性は、例えば、10000種存在する。そして、各種品詞の素性の中で判定すべき用語の素性と合致する素性の値として1が設定される。各種意味属性の素性の中で判定すべき用語の素性と合致する素性の値として1が設定される。各種概念記号の素性の中で判定すべき用語の素性と合致する素性の値として1が設定される。加えて、特徴ベクトル23には、判定すべき用語と直接アークで接続する用語に対応する対象ノードに対して、各種アークの数分の、方向の素性、および、そのアークと接続されている関連ノードに含まれる各種品詞の素性、各種意味属性の素性、各種概念記号の素性が含まれる。各種アークは、例えば、700種存在する。方向の素性は、1種存在する。また、関連ノードに含まれる情報は対象ノードと同じなので、各種品詞の素性は、例えば、30種存在する。各種意味属性の素性は、例えば、10000種存在する。そして、対象ノードが直接アークで接続する関連ノードの情報は、当該アークに対応する領域に設定される。関連ノードについて、各種品詞の素性の中で判定すべき用語の素性と合致する素性の値として1が設定される。関連ノードについて、各種意味属性の素性の中で判定すべき用語の素性と合致する素性の値として1が設定される。関連ノードについて、各種概念記号の素性の中で判定すべき用語の素性と合致する素性の値として1が設定される。
なお、図4で示す特徴ベクトル23は、品詞について、先頭の素性をADJとし、意味属性について、素性の順番をS1、S2、S3としたが、これに限定されず、予め定められた順番であれば良い。
図1に戻って、特徴ベクトル生成部12は、生成された2種の特徴ベクトル23を比較し、比較結果の特徴ベクトル23を生成する。一例として、特徴ベクトル生成部12は、生成された2種の特徴ベクトル23について、先頭の素性から順次素性の値を比較し、一致する素性の値を1とし、一致しない値を0とする比較結果の特徴ベクトル23を生成する。
そして、特徴ベクトル生成部12は、生成された3種の特徴ベクトル23、すなわち、2種の意味構造22からそれぞれ生成された2種の特徴ベクトル23と比較結果の特徴ベクトル23を連結して機械学習用または判定対象の特徴ベクトル23を生成する。
学習部13は、全ての教師例21から生成されたそれぞれの機械学習用の特徴ベクトル23を教師あり学習を行う機械学習器に入力して学習する。ここでいう機械学習器には、例えば、サポートベクターマシン(SVM)が挙げられる。以降では、機械学習器としてSVMを採用した場合について説明する。学習部13は、それぞれの教師例に対応する機械学習用の特徴ベクトルから1つの重みベクトル24を学習結果として導出する。ここでいう重みベクトル24は、入力される機械学習用の特徴ベクトル23と同じ構造を有し、構造内の各素性に対する評価用の重みを値として持つベクトルである。なお、以下では、「教師例に対応する機械学習用の特徴ベクトル」のことを、単に「機械学習用の特徴ベクトル」と呼ぶものとする。
ここで、重みベクトル24の一例を、図5を参照して説明する。図5は、実施例1に係る学習フェーズで導出した重みベクトルの一例を示す図である。図5に示すように、正例の教師例21から生成された機械学習用の特徴ベクトル23と、負例の教師例21から生成された機械学習用の特徴ベクトル23とが機械学習器(SVM)に入力される。ここでは、正例の教師例21として(x12,1)(x34,1)(x56,1)が入力され、負例の教師例21として(x17,−1)(x38,−1)(x59,−1)が入力される。例えば、(x12,1)のx12は、例題の文章1と例題の文章2の組みから生成された特徴ベクトル23であることを示し、(x12,1)の1は、正例であることを示す。(x17,−1)のx17は、例題の文章1と例題の文章7の組みから生成された特徴ベクトル23であることを示し、(x17,−1)の−1は、負例であることを示す。
このような状況の下、学習部13は、入力された教師例(正例および負例)である特徴ベクトル23から1つの重みベクトル24を学習結果として導出する。重みベクトル24は、入力された特徴ベクトル23と同じ構造を有する。そして、重みベクトル24には、各素性について、評価用の重みが設定される。この重みベクトル24を用いて、後述する運用フェーズ10Bが、複数の対象文章内に存在する複数の対象ノードについて同義語判定を行う。
次に、実施例1に係る特徴ベクトル23の生成処理を、図6A〜図6Dを参照して説明する。図6A〜図6Dは、実施例1に係る特徴ベクトル生成処理の一例を示す図である。なお、意味解析部11によって意味解析処理がなされた1組の教師例21は、以下であるとする。原文(例題文章)z1「運用環境のカスタマイズが必要です。」と併せて判定すべき用語「カスタマイズ」と、原文(例題文章)z2「運用環境の変更により、対処が必要です。」と併せて判定すべき用語「変更」との対である。
図6Aに示すように、原文z1「運用環境のカスタマイズが必要です。」について、意味解析部11によって意味構造22が生成されたものとする。図6Aの上段左図は、原文z1「運用環境のカスタマイズが必要です。」の意味構造22である。例えば、意味構造22の「NEED」は、用語「必要」に対応する概念を現す概念記号であり、「CUSTOMIZE」は、用語「カスタマイズ」に対応する概念を現す概念記号であり、「EJR01」は、用語「運用環境」に対応する概念を現す概念記号である。また、意味構造22の「OBJA」「J.GA」「OBJ」などは、概念間の関連性を示すアークの記号である。原文z2「運用環境の変更により、対処が必要です。」について、意味解析部11によって意味構造22が生成されたものとする。図6Aの下段左図は、原文z2「運用環境の変更により、対処が必要です。」の意味構造22である。例えば、意味構造22の「DEAL WITH」は、用語「対処」に対応する概念を現す概念記号であり、「CHANGE」は、「変更」に対応する概念を現す概念記号であり、「EJR01」は、用語「運用環境」に対応する概念を現す概念記号である。また、意味構造22の「METHOD」「TOUTEN」「SCOPE」などは、概念間の関連性を示すアークの記号である。
そして、特徴ベクトル生成部12は、原文z1の意味構造22について、判定すべき用語「カスタマイズ」に対応する対象ノードの周辺を、特徴ベクトル23を生成する範囲として分離して、用語「カスタマイズ」の意味構造22を抽出する。ここでは、特徴ベクトル生成部12は、原文z1の意味構造22について、対象ノードと直接アークで接続される関連ノードだけを残して、他のノードを削除する。図6Aの上段右図は、用語1「カスタマイズ」の意味構造22である。なお、用語1「カスタマイズ」に対応する概念を現す概念記号は、「CUSTOMAIZE」であり、品詞は、「SN」であり、意味属性は、「S1,S2,・・・」である。
そして、特徴ベクトル生成部12は、原文z2の意味構造22について、判定すべき用語「変更」に対応する対象ノードの周辺を、特徴ベクトル23を生成する範囲として分離して、用語「変更」の意味構造22を抽出する。ここでは、特徴ベクトル生成部12は、原文z2の意味構造22について、対象ノードとアークで直接接続される関連ノードだけを残して、他のノードを削除する。図6Aの下段右図は、用語2「変更」の意味構造22である。なお、用語2「変更」に対応する概念を現す概念記号は、「CHANGE」であり、品詞は、「SN」であり、意味属性は、「S1,S3,・・・」である。
図6Bに示すように、特徴ベクトル生成部12は、判定すべき用語1「カスタマイズ」に対応する対象ノードの周辺を分離した結果を示す意味構造22から用語1の特徴ベクトル23を生成する。ここでは、対象ノードの素性について、特徴ベクトル23の用語1に対応する領域に設定される。用語1の品詞の素性について、品詞(SN)の値として「1」が設定され、それ以外の値として「0」が設定される。用語1の意味属性の素性について、S1、S2の値としてそれぞれ「1」が設定され、それ以外の値として「0」が設定される。用語1に対応する概念を現す概念記号の素性について、「CUSTOMIZE」の値として「1」が設定され、それ以外の値として「0」が設定される。
対象ノードと直接アークで接続される関連ノードの素性について、特徴ベクトル23の当該アークに対応する領域に設定される。
例えば、アーク(OBJA)の方向の素性について、関連ノード「NEED」から対象ノード「CUSTOMIZE」に向かう「1」が設定される。アーク(OBJA)の品詞の素性について、図示されないが、関連ノード「NEED」の品詞に対応する素性の値として「1」が設定され、それ以外の値として「0」が設定される。アーク(OBJA)の意味属性の素性について、関連ノード「NEED」の意味属性に対応する素性の値として「1」が設定され、それ以外の値として「0」が設定される。アーク(OBJA)の概念記号の素性について、関連ノード「NEED」の概念記号「NEED」に対応する素性の値として「1」が設定され、それ以外の値として「0」が設定される。
関連ノード「NEED」と同様に、関連ノード「EJR01」についても、アーク(OBJ)に対応する領域に、方向、品詞、意味属性および概念記号の素性が設定される。
図6Cに示すように、特徴ベクトル生成部12は、判定すべき用語2「変更」に対応する対象ノードの周辺を分離した結果を示す意味構造22から用語2の特徴ベクトル23を生成する。ここでは、対象ノードの素性について、特徴ベクトル23の用語2に対応する欄に設定される。用語2の品詞の素性について、品詞(SN)の値として「1」が設定され、それ以外の値として「0」が設定される。用語2の意味属性の素性について、S1、S3の値としてそれぞれ「1」が設定され、それ以外の値として「0」が設定される。用語2に対応する概念を現す概念記号の素性について、「CHANGE」の値として「1」が設定され、それ以外の値として「0」が設定される。
対象ノードと直接アークで接続される関連ノードの素性について、特徴ベクトル23の当該アークに対応する領域に設定される。
例えば、アーク(METHOD)の方向の素性について、関連ノード「DEAL WITH」から対象ノード「CHANGE」に向かう「1」が設定される。アーク(METHOD)の品詞の素性について、図示されないが、関連ノード「DEAL WITH」の品詞に対応する素性の値として「1」が設定され、それ以外の値として「0」が設定される。アーク(METHOD)の意味属性の素性について、関連ノード「DEAL WITH」の意味属性の値として「1」が設定され、それ以外の値として「0」が設定される。アーク(METHOD)の概念記号の素性について、関連ノード「DEAL WITH」の概念記号「DEAL WITH」に対応する素性の値として「1」が設定され、それ以外の値として「0」が設定される。
関連ノード「DEAL WITH」と同様に、関連ノード「EJR−0204485」についても、アーク(SCOPE)に対応する領域に、方向、品詞、意味属性および概念記号の素性が設定される。
図6Dに示すように、特徴ベクトル生成部12は、用語1の特徴ベクトル23と用語2の特徴ベクトル23とを比較し、比較結果の特徴ベクトル23を生成する。ここでは、特徴ベクトル生成部12は、用語1の特徴ベクトル23と用語2の特徴ベクトル23について、それぞれ先頭の素性から順次比較し、一致する素性の値を1とし、一致しない値を0とする比較結果の特徴ベクトル23を生成する。
その後、特徴ベクトル生成部12は、用語1の特徴ベクトル23と用語2の特徴ベクトル23と比較結果の特徴ベクトル23とを連結して機械学習用の特徴ベクトル23を生成することになる。
ここで、実施例1に係る特徴ベクトル23の性質を、図7を参照して説明する。図7は、実施例1に係る特徴ベクトルの性質を示す図である。
図7に示すように、特徴ベクトル23は、学習対象の用語1に対応する対象ノードn1について、品詞、意味属性および概念記号など、意味的な性質を含む用語1の特徴を示す素性を有する。このため、学習部13は、学習対象の用語1の独立した性質を考慮して学習できる。特徴ベクトル23は、学習対象の用語2に対応する対象ノードn2について、品詞、意味属性および概念記号など、意味的な性質を含む用語2の特徴を示す素性を有する。このため、学習部13は、学習対象の用語2の独立した性質を考慮して学習できる。
図7に示すように、特徴ベクトル23は、学習対象の用語1と意味的につながっている用語に対応する関連ノードn10について、つながり方を示すアーク名およびアークの方向を併せて、関連ノードn10の品詞、意味属性および概念記号など、意味的な性質を含む関連ノードの特徴を示す素性を有する。このため、学習部13は、学習対象の文章である原文z1(例えば、図6A参照)における学習対象の用語1の使われ方を考慮して学習できる。特徴ベクトル23は、学習対象の用語2と意味的につながっている用語に対応する関連ノードn20について、つながり方を示すアーク名およびアークの方向を併せて、関連ノードn20の品詞、意味属性および概念記号など、意味的な性質を含む関連ノードの特徴を示す素性を有する。このため、学習部13は、学習対象の文章である原文z2(例えば、図6A参照)における学習対象の用語2の使われ方を考慮して学習できる。
図7に示すように、機械学習用の特徴ベクトル23は、1対の用語(用語1、用語2)について、それぞれの用語の特徴ベクトル23を比較した比較結果の特徴ベクトル23を素性として有する。このため、学習部13では、1対の用語(用語1、用語2)の組み合わせによって生じる用語間の性質を用語単独ではなくその使われ方を含めてより詳細に考慮した判定を実現する学習ができる。
図1に戻って、運用フェーズ10Bは、判定対象の文書を入力し、学習フェーズ10Aで導出された重みベクトル24を参照し、入力した文書内に存在する用語について同義語判定を行う。運用フェーズ10Bは、意味解析部14、特徴ベクトル生成部15および判定部16を有する。なお、意味解析部14は、受付部および第1の生成部の一例である。特徴ベクトル生成部15は、第2の生成部の一例である。判定部16は、判定部の一例である。
意味解析部14は、入力された判定対象の文書の中から、順次文章を選択する。意味解析部14は、選択した文章について、形態素解析および意味解析を行い、意味構造22を生成する。この意味解析部は、前述の学習フェーズ10Aにおける意味解析部11と同じ処理により実現できる。
特徴ベクトル生成部15は、判定対象とする2つの用語の対から特徴ベクトル23を生成する。
例えば、特徴ベクトル生成部15は、意味解析部14によって生成された文章毎の意味構造22から、判定対象とする複数の用語に対応するそれぞれのノード(判定対象ノード)を選択する。特徴ベクトル生成部15は、選択した判定対象ノードの周辺を、特徴ベクトル23を生成する範囲として分離する。一例として、特徴ベクトル生成部15は、選択した判定対象ノードを含む意味構造22について、判定対象ノードと直接アークで接続するノード(関連ノード)だけを残して、他のノードを削除する。ここでいう判定対象ノードは、以下の判定規則に基づき絞り込むようにしても良い。例えば、判定対象ノードの品詞は、形容詞、名詞(副詞的名詞、固有名詞、サ変名詞を含む)、動詞(形容動詞を含む)など、判定目的に該当する可能性のある品詞である。判定対象ノードに対応する用語は、自立語である。
そして、特徴ベクトル生成部15は、選択された判定対象ノードを、同義語になりそうなノード同士でグループ化するようにしても良い。ここでいうグループ化は、以下の規則に基づき実施されれば良い。例えば、予め設定された品詞が同じノード同士である。
そして、特徴ベクトル生成部15は、グループ化されたグループ毎に、グループに含まれる2つのノードを選択し、選択した2つのノードに対応するそれぞれの用語の対から特徴ベクトル23を生成する。特徴ベクトル23の生成方法は、特徴ベクトル生成部12の特徴ベクトル23の生成方法と同様である。すなわち、前述の学習フェーズで使用する機械学習用の特徴ベクトルと、運用フェーズで使用する判定対象の特徴ベクトルとは同じ構造を持つ。特徴ベクトル生成部15は、選択した2つのノードに対応する、周辺を分離した結果を示す2種の意味構造22からそれぞれ特徴ベクトル23を生成し、生成された2種の特徴ベクトル23を比較した比較結果の特徴ベクトル23を生成する。そして、特徴ベクトル生成部15は、生成された3種の特徴ベクトル23、すなわち、2種の意味構造22からそれぞれ生成された2種の特徴ベクトル23と比較結果の特徴ベクトル23を連結して判定対象の特徴ベクトル23を生成する。なお、グループに含まれる2つのノードは、重複が無い総当たりで選択されるが、事前に可能性のない組み合わせを無くするようにしても良い。例えば、特許5585472号公報に開示されている粗絞りの技術を使って行えば良い。
判定部16は、2つのノードに対応するそれぞれの用語の対から生成された判定対象の特徴ベクトル23を機械学習器に入力し、当該用語の対が同義語であるか否かを判定する。例えば、判定部16は、特徴ベクトル生成部15によって生成された判定対象の特徴ベクトル23を機械学習器に入力し、学習フェーズ10Aで生成済みの重みベクトル24を用いて、機械学習器による評価を行い、総合評価値を導出する。一例として、判定部16は、特徴ベクトル生成部15によって生成された特徴ベクトル23と学習フェーズ10Aで生成済みの重みベクトル24との内積を計算し、総合評価値を導出する。そして、判定部16は、導出した総合評価値を予め設定された閾値で判定することにより、同義語であるか否かの判定結果を決定する。そして、判定部16は、決定した判定結果を出力する。なお、閾値は、評価結果に基づいて適宜変更されることが可能である。
ここで、実施例1に係る同義語判定処理を、図8を参照して説明する。図8は、実施例1に係る同義語判定処理の一例を示す図である。図8に示すように、判定部16は、用語の対から生成された判定対象の特徴ベクトル23を機械学習器に入力する。ここでは、特徴ベクトル23として(x101)、(x102)、(x103)が入力される。(x101)、(x102)、(x103)は、それぞれ異なる用語の対から生成された判定対象の特徴ベクトル23である。
判定部16は、入力した判定対象の特徴ベクトル23について、学習フェーズ10Aで生成済みの重みベクトル24を用いて、機械学習器による評価を行い、総合評価値を導出する。ここでは、(x101)の特徴ベクトル23について、判定部16は、機械学習結果の重みベクトル24との内積を計算し、総合評価値としてy101(0.8654)を導出する。(x102)の特徴ベクトル23について、判定部16は、機械学習結果の重みベクトル24との内積を計算し、総合評価値としてy102(−2.0937)を導出する。(x103)の特徴ベクトル23について、判定部16は、機械学習結果の重みベクトル24との内積を計算し、総合評価値としてy103(1.5789)を導出する。
そして、判定部16は、導出した総合評価値を閾値で判定することにより、同義語であるか否かの判定結果を決定する。ここでは、閾値は、機械学習器が標準で導出したマージンが1の場合であり、±1であるとする。すなわち、同義語であることを示す判定用の上位の閾値が1であり、同義語でないことを示す判定用の下位の閾値が−1である。すると、(x101)の特徴ベクトル23に対して導出された総合評価値y101(0.8654)は、上位の閾値と下位の閾値との範囲内にあるため、判定不能と判定される。(x102)の特徴ベクトル23に対して導出された総合評価値y102(−2.0937)は、下位の閾値より小さいため、同義語でないと判定される。(x103)の特徴ベクトル23に対して導出された総合評価値y103(1.5789)は、上位の閾値より大きいため、同義語であると判定される。
[同義語判定処理のフローチャート]
図9は、実施例1に係る同義語判定処理のフローチャートの一例を示す図である。
まず、同義語判定処理は、ユーザに、同義語判定に関する教師例21を生成させる(ステップS11)。正例の教師例21は、同義語であると判定すべき用語と例題の文章とを合わせた情報の組である。負例の教師例21は、同義語でないと判定すべき用語と例題の文章とを合わせた情報の組である。
そして、同義語判定処理は、生成した教師例21を、学習フェーズ10A(ステップS12)に入力し、機械学習器を使用して学習結果として重みベクトル24を導出する。なお、学習フェーズ10Aのフローチャートは、後述する。
次に、同義語判定処理は、判定対象の文書を入力する(ステップS13)。
そして、同義語判定処理は、入力した文書について、導出済みの重みベクトル24を参照して、運用フェーズ10Bによる判定を行う(ステップS14)。なお、運用フェーズ10Bのフローチャートは、後述する。
同義語判定処理は、ユーザに、判定結果を利用させる(ステップS15)。ユーザは、誤判定であるか否かを判定する(ステップS16)。誤判定であると判定した場合には(ステップS16;Yes)、同義語判定処理は、必要に応じて、誤判定した例題を新たな教師例21としてフィードバックさせるべく、ステップS11に移行する。
一方、誤判定でないと判定した場合には(ステップS16;No)、同義語判定処理は、終了する。
[学習フェーズのフローチャート]
図10は、実施例1に係る学習フェーズのフローチャートの一例を示す図である。
図10に示すように、意味解析部11は、入力された教師例21の中から、1組の教師例21を選択する(ステップS21)。意味解析部11は、選択した教師例21に示された対の例題の文章について、意味解析を含む日本語解析処理を行い(ステップS22)、それぞれの意味構造22の対を生成する。ここでは日本語文章に対する処理を例に説明しているが、ステップS22は入力された例題文章の言語により適切な言語解析処理を行う。例えば、例題文章が英語の場合は、英語解析処理を行う。
そして、特徴ベクトル生成部12は、生成された対の意味構造22を用いて、機械学習用の特徴ベクトル23を生成する(ステップS23)。なお、特徴ベクトル23の生成処理のフローチャートは、後述する。
そして、意味解析部11は、残りの教師例21が有るか否かを判定する(ステップS24)。残りの教師例21が有ると判定した場合には(ステップS24;Yes)、意味解析部11は、次の教師例21を選択すべく、ステップS21に移行する。
一方、残りの教師例21が無いと判定した場合には(ステップS24;No)、学習部13は、教師例21から生成された特徴ベクトル23をSVMに入力して学習する(ステップS25)。この結果、重みベクトル24が学習結果として生成される。そして、学習フェーズ10Aは、終了する。
[特徴ベクトル生成処理のフローチャート]
図11は、実施例1に係る特徴ベクトル生成処理のフローチャートの一例を示す図である。
図11に示すように、特徴ベクトル生成部12は、対の意味構造22について、それぞれ判定すべき用語に対応するノード(対象ノード)の周辺を分離する(ステップS31)。ここでは、判定すべき用語を用語1,用語2として説明する。
特徴ベクトル生成部12は、用語1の意味構造22から特徴ベクトル23を生成する(ステップS32)。なお、用語の意味構造22から特徴ベクトル23を生成する処理のフローチャートは、後述する。そして、特徴ベクトル生成部12は、ステップS34に移行する。
特徴ベクトル生成部12は、用語2の意味構造22から特徴ベクトル23を生成する(ステップS33)。なお、用語の意味構造22から特徴ベクトル23を生成する処理のフローチャートは、後述する。そして、特徴ベクトル生成部12は、ステップS34に移行する。
ステップS34において、特徴ベクトル生成部12は、用語1,2のそれぞれの特徴ベクトル23を比較し、比較結果の特徴ベクトル23を生成する(ステップS34)。例えば、特徴ベクトル生成部12は、用語1の特徴ベクトル23と、用語2の特徴ベクトル23とを、先頭の素性から順次素性の値を比較し、一致する素性の値を1とし、一致しない素性の値を0とする比較結果の特徴ベクトル23を生成する。
そして、特徴ベクトル生成部12は、3種の特徴ベクトル23を連結する(ステップS35)。すなわち、特徴ベクトル生成部12は、用語1の特徴ベクトル23と用語2の特徴ベクトル23と比較結果の特徴ベクトル23とを連結して機械学習用の特徴ベクトル23を生成する。そして、特徴ベクトル生成部12は、特徴ベクトル生成処理を終了する。
[用語の意味構造から特徴ベクトルを生成する処理のフローチャート]
図12は、用語の意味構造から特徴ベクトルを生成する処理のフローチャートの一例を示す図である。
図12に示すように、特徴ベクトル生成部12は、判定すべき用語の意味構造22をロードして、当該用語に対応する対象ノードを特定する(ステップS41)。例えば、特徴ベクトル生成部12は、判定すべき用語の意味構造22から、当該用語の表記に対応する概念記号を有する対象ノードを特定する。
特徴ベクトル生成部12は、予め定義された素性リストを順次参照して、対象ノード分の特徴ベクトル23を設定する(ステップS42)。ここでいう素性リストとは、素性として適用する要素を定義したリストであり、品詞リストと、意味属性リストと、概念記号リストとを含む。品詞リストは、対象ノードの品詞として出現する可能性のある品詞のリストである。意味属性リストは、対象ノードの意味属性として出現する可能性のある意味属性のリストである。概念記号リストは、対象ノードの概念記号として出現する可能性のある概念記号のリストである。例えば、特徴ベクトル生成部12は、素性リストを参照し、対象ノードに該当する要素が存在する素性の値を1とし、存在しない素性の値を0として、特徴ベクトル23の対象ノードの情報i0(図4参照)のエリアに設定する。
特徴ベクトル生成部12は、アークリストからアークを選択する(ステップS43)。ここでいうアークリストとは、対象ノードに接続される可能性のあるアークを定義したリストである。特徴ベクトル生成部12は、選択したアーク(該当アーク)が対象ノードに接続されているか否かを判定する(ステップS44)。
該当アークが対象ノードに接続されていないと判定した場合には(ステップS44;No)、特徴ベクトル生成部12は、該当アーク分の特徴ベクトル23に全て0を設定する(ステップS45)。例えば、特徴ベクトル生成部12は、素性リストに定義された全要素に対応する素性の値および該当アークの方向に対応する素性の値を0とし、特徴ベクトル23の関連ノードの情報i10(図4参照)の中の該当アークのエリアに設定する。そして、特徴ベクトル生成部12は、次のアークを選択すべく、ステップS43に移行する。
一方、該当アークが対象ノードに接続されていると判定した場合には(ステップS44;Yes)、特徴ベクトル生成部12は、該当アークの方向を該当アーク分の特徴ベクトル23に設定する(ステップS46)。例えば、特徴ベクトル生成部12は、対象ノードから外に向かっている方向(OUTアーク)の場合には0とし、外から対象ノードに向かっている方向(INアーク)の場合には1とし、特徴ベクトル23の関連ノードの情報i10の中の該当アークの方向のエリアに設定する。
そして、特徴ベクトル生成部12は、素性リストを順次参照して、関連ノード分の特徴ベクトル23を設定する(ステップS47)。例えば、特徴ベクトル生成部12は、素性リストを参照し、関連ノードに該当する要素が存在する素性の値を1とし、存在しない素性の値を0として、特徴ベクトル23の関連ノードの情報i10の中の該当アークのエリアに設定する。
そして、特徴ベクトル生成部12は、アークリストに未処理のアークが有るか否かを判定する(ステップS48)。未処理のアークが有ると判定した場合には(ステップS48;Yes)、特徴ベクトル生成部12は、次のアークを選択すべく、ステップS43に移行する。
一方、未処理のアークが無いと判定した場合には(ステップS48;No)、特徴ベクトル生成部12は、用語の意味構造22から特徴ベクトル23を生成する処理を終了する。
[運用フェーズのフローチャート]
図13は、実施例1に係る運用フェーズのフローチャートの一例を示す図である。
図13に示すように、意味解析部14は、入力された対象文章について、日本語の意味解析処理を行い(ステップS51)、それぞれの意味構造22を生成する。ここでは日本語文章に対する処理を例に説明しているが、ステップS51は入力された対象文章の言語により適切な言語解析処理を行う。例えば、対象文章が英語の場合は、英語解析処理を行う。
特徴ベクトル生成部15は、生成された意味構造22について、判定対象とするノード(判定対象ノード)を選択する(ステップS52)。特徴ベクトル生成部15は、生成された意味構造22について、判定対象ノードの周辺を分離する(ステップS53)。
続いて、特徴ベクトル生成部15は、判定対象ノードを同義語になりそうなノード同士でグループ化する(ステップS54)。特徴ベクトル生成部15は、グループを選択する(ステップS55)。特徴ベクトル生成部15および判定部16は、選択したグループの判定対象ノードを同義語判定する(ステップS56)。なお、同義語判定処理のフローチャートは、後述する。そして、判定部16は、同義語判定した判定結果を出力する。
そして、特徴ベクトル生成部15は、未処理のグループが有るか否かを判定する(ステップS57)。未処理のグループが有ると判定した場合には(ステップS57;Yes)、特徴ベクトル生成部15は、次のグループを選択すべく、ステップS55に移行する。
一方、未処理のグループが無いと判定した場合には(ステップS57;No)、運用フェーズ10Bは、終了する。
[同義語判定処理のフローチャート]
図14は、実施例1に係る同義語判定処理のフローチャートの一例を示す図である。
図14に示すように、特徴ベクトル生成部15は、入力された判定対象ノードのグループについて、当該グループに含まれる判定対象ノードを1次元の配列に格納する(ステップS61)。特徴ベクトル生成部15は、配列の先頭の要素を用語1として選択する(ステップS62)。
特徴ベクトル生成部15は、用語1の次の要素を用語2として選択する(ステップS63)。特徴ベクトル生成部15は、用語1,2の対から特徴ベクトル23を生成する(ステップS64)。なお、用語1,2の対から特徴ベクトル23を生成する方法は、学習フェーズ10Aにより行う方法(図11のS32〜35参照)と同様である。すなわち、特徴ベクトル生成部15は、用語1の意味構造22から特徴ベクトル23を生成する。特徴ベクトル生成部15は、用語2の意味構造22から特徴ベクトル23を生成する。特徴ベクトル生成部15は、用語1,2の特徴ベクトル23を比較し、比較結果の特徴ベクトル23を生成する。そして、特徴ベクトル生成部15は、3種の特徴ベクトル23を連結して、判定対象の特徴ベクトル23を生成する。
続いて、判定部16は、生成した判定対象の特徴ベクトル23を機械学習器(SVM)に入力し、学習フェーズ10Aで生成済みの重みベクトル24を用いて、機械学習器による評価を行う(ステップS65)。判定部16は、評価結果として総合評価値を導出する。そして、判定部16は、評価結果として導出された総合評価値を、予め設定された閾値で判定し、判定結果を出力する(ステップS66)。
続いて、特徴ベクトル生成部15は、選択中の用語2は配列の最後であるか否かを判定する(ステップS67)。用語2は配列の最後でないと判定した場合には(ステップS67;No)、特徴ベクトル生成部15は、次の配列の要素を用語2として選択する(ステップS68)。そして、特徴ベクトル生成部15は、新たな用語の対について評価すべく、ステップS64に移行する。
一方、用語2は配列の最後であると判定した場合には(ステップS67;Yes)、特徴ベクトル生成部15は、用語1の次の配列の要素を用語1として選択する(ステップS69)。
そして、特徴ベクトル生成部15は、選択した用語1は配列の最後であるか否かを判定する(ステップS70)。用語1は配列の最後でないと判定した場合には(ステップS70;No)、特徴ベクトル生成部15は、新たな用語の対について評価すべく、ステップS63に移行する。
一方、用語1は配列の最後であると判定した場合には(ステップS70;Yes)、同義語判定処理は、終了する。
[実施例1の効果]
このようにして、情報処理装置1は、複数の文章と、複数の文章それぞれに含まれる用語の指定とを受け付ける。情報処理装置1は、受け付けた複数の文章それぞれを解析して、指定を受け付けた用語ごとに、該用語に対応する意味的なノードと、該用語を含む文章に含まれる他の意味的なノードとの意味的な関係を示す意味構造22を生成する。情報処理装置1は、指定を受け付けた用語ごとに、生成した意味構造22から特定の関係を示す意味構造22を抽出し、抽出した意味構造22内の情報を素性とする特徴ベクトル23を生成する。そして、情報処理装置1は、生成した用語ごとの特徴ベクトル23を、複数の用語間の類似性に関する判定を行う機械学習器に入力する。かかる構成によれば、情報処理装置1は、指定を受け付けた用語と他の用語それぞれとの関係を示す意味構造22を用いて、意味構造22内の情報を素性とする特徴ベクトル23を生成することで、指定を受け付けた用語の独立した性質や使われ方を示す特徴を得ることができる。この結果、情報処理装置1は、機械学習器に用語ごとの特徴ベクトル23を入力することで、用語間の類似性に関する判定精度を向上することが可能となる。
また、上記実施例1によれば、情報処理装置1は、指定を受け付けた用語に対して、以下の情報を持つ意味構造22を生成する。すなわち、情報処理装置1は、指定を受け付けた用語の有する属性情報と、当該用語と当該用語を含む文章に含まれる他の複数の用語それぞれとの間の関係情報と、他の複数の用語の有する属性情報とを含む意味構造22を生成する。かかる構成によれば、情報処理装置1は、意味構造22に、用語の有する属性情報、当該用語と他の用語との間の関係情報を含むことで、指定を受け付けた用語と他の用語との間の関係を含む特徴を得ることができる。
また、上記実施例1によれば、情報処理装置1は、指定を受け付けた用語に対して、意味構造22から、当該用語と直接関係する他の複数の用語との間の特定の意味構造22を抽出し、抽出した情報を素性とする特徴ベクトル23を生成する。かかる構成によれば、情報処理装置1は、指定を受け付けた用語と直接関係のある他の用語との間の意味構造22を用いて特徴ベクトル23を生成することで、指定を受け付けた用語のより良い特徴を得ることができる。
また、上記実施例1によれば、情報処理装置1は、指定を受け付けた第1の用語について、第1の用語に対応する意味構造22から特定の意味構造22を抽出し、抽出した前記特定の意味構造22を素性とする第1の特徴ベクトル23を生成する。情報処理装置1は、指定を受け付けた第2の用語について、第2の用語に対応する意味構造22から特定の意味構造22を抽出し、抽出した特定の意味構造22を素性とする第2の特徴ベクトル23を生成する。情報処理装置1は、第1の特徴ベクトル23、第2の特徴ベクトル23および第1の特徴ベクトル23と第2の特徴ベクトル23とを比較した比較結果を示す第3の特徴ベクトル23を連結した新たな特徴ベクトル23を機械学習器に入力する。かかる構成によれば、機械学習器は、第1の用語と第2の用語との間の類似性に関する判定精度を向上することが可能となる。
また、上記実施例1によれば、情報処理装置1は、複数の文章と複数の文章それぞれに含まれる用語の指定とともに、指定された用語間が類似であるか否かの当否情報の指定を受け付ける。情報処理装置1は、指定を受け付けた用語ごとの特徴ベクトル23を、当否情報とともに、機械学習器に入力する。情報処理装置1は、入力された特徴ベクトル23と当否情報とを用いて学習し、学習結果として重みベクトル24を出力する。かかる構成によれば、情報処理装置1は、用語間の類似性に関する判定に用いられる重みベクトル24を精度良く生成することができる。
また、上記実施例1によれば、情報処理装置1は、複数の文章と複数の文章それぞれに含まれる用語であって判定すべき用語の指定とを受け付ける。情報処理装置1は、指定を受け付けた用語ごとの特徴ベクトル23を機械学習器に入力する。情報処理装置1は、学習結果として出力された重みベクトル24と、入力された用語ごとの特徴ベクトル23とを用いて、複数の用語間の類似性に関する判定を行い、判定結果を出力する。かかる構成によれば、情報処理装置1は、精度良い重みベクトル24を用いて用語間の類似性に関する判定精度を向上することが可能となる。
ところで、実施例1に係る特徴ベクトル23は、判定すべき用語(対象用語)に対応する対象ノードに対して、各種品詞の素性、各種意味属性の素性および各種概念記号の素性を含む。加えて、特徴ベクトル23は、対象用語とアークでつながる用語に対応する関連ノードに対して、各種アークの数分の、各種品詞の素性、各種意味属性の素性および各種概念記号の素性を含む。各種品種の素性は、約30種存在する。各種意味属性の素性は、約10000種存在する。各種概念記号の素性は、約100万種存在する。各種アークは、約700種存在する。
ここで、全素性情報を使用した特徴ベクトル23の概念図を、図15を参照して説明する。図15は、全素性情報を使用した特徴ベクトルの概念を示す図である。図15に示すように、学習や判定対象の用語1に対する特徴ベクトル23は、30種の品詞、10000種の意味属性、100万種の概念記号を含む。そして、用語1につながる用語に対する特徴ベクトル23は、700種のアークに対して、それぞれ30種の品詞、10000種の意味属性、100万種の概念記号を含む。また、学習や判定対象の用語2に対する特徴ベクトル23は、30種の品詞、10000種の意味属性、100万種の概念記号を含む。そして、用語2につながる用語に対する特徴ベクトル23は、700種のアークに対して、それぞれ30種の品詞、10000種の意味属性、100万種の概念記号を含む。また、用語1と用語2との比較結果の特徴ベクトル23は、1種の品詞、10000種の意味属性、1種の概念記号に関する比較結果を含む。用語1につながる用語と用語2につながる用語との比較結果の特徴ベクトル23は、700種のアークに対して、それぞれ1種の品詞、10000種の意味属性、1種の概念記号に関する比較結果を含む。
すなわち、全素性情報を使用した特徴ベクトル23の次元数は、次の計算式(1)で示される。
次元数=((品詞30種+意味属性10000種+概念記号100万種)+アーク700種×(品詞30種+意味属性10000種+概念記号100万種))×2+(品詞1種+意味属性10000種+概念記号1種)+アーク700種×(品詞1種+意味属性10000種+概念記号1種)=1,423,073,462次元・・・式(1)
しかしながら、特徴ベクトル23は、これに限定されず、以下で示す次元を圧縮した特徴ベクトル23であっても良い。例えば、(1)対象用語の品詞は、同義語または多義語として重要な約10種の品詞に限定する。(2)つながる(接続先の)用語の品詞は、使用頻度の低い2種を削減して28種に限定する。(3)概念記号は、用語を一意に区別する記号として、一致と不一致の情報のみにする。(4)意味属性は、使用頻度が高い76種に限定する。(5)アークは、使用頻度が高い50種に限定する。
ここで、対象用語の品詞に関する次元圧縮の一例を、図16を参照して説明する。図16は、対象用語の品詞に関する次元圧縮の一例を示す図である。図16に示すように、対象用語の品詞は、選定項目に「〇」が設定された名称の品詞に限定される。すなわち、「副詞」、「接続詞、接続助詞」、「連体詞」、「前置詞」などは、同義語または多義語として重要でないとして除外される。
このような次元が圧縮された特徴ベクトル23の概念を、図17を参照して説明する。図17は、実施例2に係る次元圧縮結果の特徴ベクトルの概念を示す図である。図17に示すように、判定対象の用語1に対する特徴ベクトル23は、10種の品詞、76種の意味属性を含む。そして、用語1につながる用語に対する特徴ベクトル23は、50種のアークに対して、それぞれ28種の品詞、76種の意味属性を含む。なお、用語1に対応する概念を現す概念記号は、一致と不一致の情報のみであるので、省略する。また、判定対象の用語2に対する特徴ベクトル23は、10種の品詞、76種の意味属性を含む。そして、用語2につながる用語に対する特徴ベクトル23は、50種のアークに対して、それぞれ28種の品詞、76種の意味属性を含む。なお、用語2に対応する概念を現す概念記号は、一致と不一致の情報のみであるので、省略する。また、用語1と用語2との比較結果の特徴ベクトル23は、1種の品詞、76種の意味属性、1種の概念記号に関する比較結果を含む。用語1につながる用語と用語2につながる用語との比較結果の特徴ベクトル23は、50種のアークに対して、それぞれ1種の品詞、76種の意味属性、1種の概念記号に関する比較結果を含む。
このような次元が圧縮された特徴ベクトル23の一例を、図18を参照して説明する。図18は、実施例2に係る次元圧縮結果の特徴ベクトルの一例を示す図である。図18に示すように、用語1に対する特徴ベクトル23は、10種の品詞、76種の意味属性を含む。そして、50種のアークに対して、それぞれ1種の方向、28種の品詞、76種の意味属性を含む。また、用語2に対する特徴ベクトル23は、10種の品詞、76種の意味属性を含む。そして、50種のアークに対して、それぞれ1種の方向、28種の品詞、76種の意味属性を含む。また、用語1と用語2との比較結果の特徴ベクトル23は、1種の品詞、76種の意味属性、1種の概念記号に関する比較結果を含む。そして、50種のアークに対して、それぞれ1種の方向、1種の品詞、76種の意味属性、1種の概念記号に関する比較結果を含む。
すなわち、次元圧縮結果の特徴ベクトル23の次元数は、次の計算式(2)で示される。
次元数=((品詞10種+意味属性76種)+アーク50種×(品詞28種+意味属性76種))×2+(品詞1種+意味属性76種+概念記号1種)+アーク50種×(品詞1種+意味属性76種+概念記号1種)=14,550次元・・・式(2)
このようにして、次元圧縮結果の特徴ベクトル23の次元数は、全素性情報を使用した特徴ベクトル23の次元数と比べて現実的な次元数となり、SVMが確実に処理可能な次元数となる。
ここで、実施例2に係る次元圧縮結果の特徴ベクトル23を使った同義語判定処理の判定結果を、図19を参照して説明する。図19は、実施例2に係る同義語判定処理の判定結果の一例を示す図である。
図19上段に示すように、教師例21は、学習フェーズ10Aにおいて、2306例作成されたものとする。
図19中段に示すように、判定精度が確認されるために、教師例21は、予め3つのグループに分割される。学習フェーズ10Aでは、1つのグループの教師例21が使用される。ここでは、データグループxが使用されたものとする。運用フェーズ10Bでは、残りの1グループの教師例21が使用される。ここでは、データグループyが使用されたものとする。
図19下段に示すように、運用フェーズ10Bが、データグループyのデータを入力して、同義語判定を行い、判定結果を出力したものである。判定結果は、769件のうち、人間と機械(SVM)とが同義語と判定した件数が175件、人間と機械とが同義語でないと判定した件数が261件である。また、人間が同義語と判定し、且つ機械が同義語でないと判定した件数が80件である。これは、機械が同義語と判定するべきところを見逃したものである。また、人間が同義語でないと判定し、且つ機械が同義語であると判定した件数が253件である。これは、機械が同義語でないと判定するべきところを同義語であると過剰に抽出(判定)したものである。したがって、同義語の抽出率は、175/(175+80)=69%となる。過剰抽出が253件あるが、全ての組み合わせを人間が同義語判定することに比べれば、人間が判定結果を再判定する労力は小さく、実用的に使用することが可能である。これにより、全ての文章を人間が読んで同義語判定する場合と比べて、人間のコスト(対応する時間)を大幅に削減することができる。
なお、さらに、運用フェーズ10Bで用いられる閾値が例えば1より大きく設定されることにより、運用フェーズ10Bは、より多くの用語を判定不能として判定するようになる。これにより、見逃しを減らして、人間による全文章の見直しを不要にすることができる。ただし、過剰抽出が増えるため、人間が判定結果を見直すことが必要になるが、全文章の見直しに比べるとコストが小さく、有効な手段となる。
[実施例2の効果]
このようにして、意味構造22は、用語の有する属性情報および用語と他の用語との間の関係情報として、それぞれ使用頻度に基づいた属性情報および関係情報を含むようにする。これにより、情報処理装置1は、意味構造22を用いた特徴ベクトル23を機械学習器に入力することで、機械学習器による確実な処理を可能にする。つまり、情報処理装置1は、特徴ベクトル23の次元(素性)数を削減することで、機械学習器による現実的な処理を可能にする。
[その他]
なお、実施例1,2に係る情報処理装置1は、意味構造22を用いて、同義語判定を自動的に行う場合を説明した。しかしながら、情報処理装置1は、これに限定されず、意味構造22を用いて、多義語判定を自動的に行っても良い。例えば、情報処理装置1は、正例の教師例21として多義語であると判定すべき用語と当該用語を含む例題文章とを併せた情報同士の組を作成する。情報処理装置1は、負例の教師例21として多義語でないと判定すべき用語と当該用語を含む例題文章とを併せた情報同士の組とを作成する。そして、情報処理装置1は、教師例21ごとに、教師例21に示された組に含まれる2つの例題文章について、それぞれ意味構造22を生成する。そして、情報処理装置1は、教師例21ごとに、意味構造22の対を比較して、機械学習用の特徴ベクトル23を生成する。そして、情報処理装置1は、教師例21ごとに生成されたそれぞれの機械学習用の特徴ベクトル23をSVMに入力して学習し、学習結果として重みベクトル24を導出する。そして、情報処理装置1は、運用フェーズ10により、導出された重みベクトル24を用いて、入力した文書内に存在する用語間の多義語判定を行う。これにより、情報処理装置1は、SVMに用語ごとの特徴ベクトル23を入力することで、用語間の多義語に関する判定精度を向上することが可能となる。
さらに、実施例1,2に係る情報処理装置1は、同義語、多義語の判定と同様に、用法(文章における用語の使われ方)によって変化する用語の性質について、2つの用語間の比較により性質を判定する処理を汎用的に実現することができる。例えば、情報処理装置1は、正例の教師例21として判定目的の性質であると判定すべき用語と当該用語を含む例題文章とを併せた情報同士の組を作成する。情報処理装置1は、負例の教師例21として判定目的の性質でないと判定すべき用語と当該用語を含む例題文章とを併せた情報同士の組とを作成する。以降の処理は前述した処理について「同義語判定」を「判定目的に関する判定」と読み替えて、全く同じ処理によって、入力した文書内に存在する用語間について判定目的の性質を有することの判定を行う。これにより、情報処理装置1は、SVMに用語ごとの特徴ベクトル23を入力することで、用語間の判定目的に関する判定精度を向上することが可能となる。
また、図示した情報処理装置1の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、情報処理装置1の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、意味解析部11と、意味解析部14とを1つの部として統合しても良い。特徴ベクトル生成部12と、特徴ベクトル生成部15とを1つの部として統合しても良い。また、特徴ベクトル生成部12、15を、分離部と、用語の特徴ベクトル23を生成する第1生成部と、機械学習用または判定対象の特徴ベクトル23を生成する第2生成部とに分散しても良い。分離部とは、意味構造22から特定の意味構造22に分離する機能部である。第1生成部とは、分離した意味構造22から用語の特徴ベクトル23を生成する機能部である。第2生成部とは、2種の用語の特徴ベクトル23と比較結果の特徴ベクトル23とを結合する機械学習用または判定対象の特徴ベクトル23を生成する機能部である。また、記憶部20を情報処理装置1の外部装置としてネットワーク経由で接続するようにしても良い。
また、上記実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図1に示した情報処理装置1と同様の機能を実現する判定プログラムを実行するコンピュータの一例を説明する。図20は、判定プログラムを実行するコンピュータの一例を示す図である。
図20に示すように、コンピュータ200は、各種演算処理を実行するCPU203と、ユーザからのデータの入力を受け付ける入力装置215と、表示装置209を制御する表示制御部207とを有する。また、コンピュータ200は、記憶媒体からプログラムなどを読取るドライブ装置213と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部217とを有する。また、コンピュータ200は、各種情報を一時記憶するメモリ201と、HDD205を有する。そして、メモリ201、CPU203、HDD205、表示制御部207、ドライブ装置213、入力装置215、通信制御部217は、バス219で接続されている。
ドライブ装置213は、例えばリムーバブルディスク211用の装置である。HDD205は、判定プログラム205aおよび判定処理関連情報205bを記憶する。
CPU203は、判定プログラム205aを読み出して、メモリ201に展開し、プロセスとして実行する。かかるプロセスは、情報処理装置1の各機能部に対応する。判定処理関連情報205bは、例えば、教師例21、意味構造22、特徴ベクトル23、重みベクトル24に対応する。そして、例えばリムーバブルディスク211が、判定プログラム205aなどの各情報を記憶する。
なお、判定プログラム205aについては、必ずしも最初からHDD205に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ200がこれらから判定プログラム205aを読み出して実行するようにしても良い。