【文献】
川田 拓也 外2名,時制・モダリティを考慮した含意パターンペアの生成,言語処理学会第20回年次大会 発表論文集 [online],日本,言語処理学会,2014年 3月18日,pp.562-265
【文献】
橋本 力 外7名,動詞含意関係データベースの自動拡張,言語処理学会第16回年次大会発表論文集,日本,言語処理学会,2010年 3月 8日,pp.940-943
【文献】
後藤 淳 外6名,質問応答に基づく対災害情報分析システム,自然言語処理,日本,言語処理学会,2013年 6月14日,第20 巻第3 号,pp.367-404
(58)【調査した分野】(Int.Cl.,DB名)
m項の含意ペアからn項の含意ペアを生成することで含意ペアを拡張するための含意ペア拡張装置であって、ただしm及びnは0以上でm<nを満たす整数であり、前記含意ペアの各々は、第1の言語パターンと、前記第1の言語パターンが含意する第2の言語パターンとのペアを含み、
前記含意ペア拡張装置は、前記m項の含意ペアから前記n項の含意ペアを生成するための生成規則を記憶するための生成規則記憶手段を含み、当該生成規則は、当該生成規則を適用するために前記m項の含意ペアが充足すべき条件と、当該条件が充足されたときに前記m項の含意ペアを構成する言語パターンの各々に対するn−m個の変数の追加を含む言語パターンの変形規則を規定し、
前記m項の含意ペアを受け、当該m項の含意ペアに対して、前記生成規則記憶手段に記憶された生成規則の各々について、当該生成規則の条件が前記m項の含意ペアにより充足されるか否か判定するための判定手段と、
前記判定手段により前記条件が充足されると判定された生成規則の前記変形規則を前記m項の含意ペアを構成する各言語パターンに適用することにより、前記n項の含意ペアを生成するための規則適用手段とを含む、含意ペア拡張装置。
さらに、前記m項の含意ペアについて推移律を適用することにより、前記m項の含意ペアを拡張するための推移律適用手段を含む、請求項1〜請求項3のいずれかに記載の含意ペア拡張装置。
【発明を実施するための形態】
【0017】
以下の説明及び図面では、同一の部品には同一の参照番号を付してある。したがって、それらについての詳細な説明は繰返さない。
【0018】
[用語の説明]
本明細書では、「ユナリパターン」とは、変数が1つと述語、及び日本語ではそれらを結ぶ助詞からなるパターンのことをいう。上に挙げた「Aを引き起こす」、「Aをもたらす」などがその例である。
【0019】
「ユナリ含意パターンペア」とは、2つのユナリパターンであって、一方が他方を含意するような意味的関係になっているもののことをいう。「Aを引き起こす」と「Aをもたらす」のようなペアが一例である。単に「ユナリペア」とも呼ぶ。
【0020】
「バイナリパターン」とは、変数が2つと述語、及び日本語の場合、それらを結ぶ助詞からなるパターンのことをいう。「AがBを引き起こす」、「AがBをもたらす」などがその例である。
【0021】
「バイナリ含意パターンペア」とは、2つのバイナリパターンであって、一方が他方を含意するような意味的関係になっているもののことをいう。「AがBをもたらす」と「AがBを引き起こす」とからなるペアが一例である。単に「バイナリペア」とも呼ぶ。
【0022】
「N−アリパターン」とは、一般的に変数がN項と、述語と、それらを結ぶ助詞とからなるパターンのことをいう。N−アリ含意パターンペア(「「N−アリペア」と呼ぶ)とはN−アリパターンのペアであって、一方が他方を含意しているようなもののことをいう。
【0023】
[第1の実施の形態]
<基本的考え方>
第1の実施の形態は、動詞の間の含意関係を記述した既存の動詞含意データベース(DB)からユナリペアを生成する。こうして得たユナリペアに、さらに既存のユナリパターンDBから生成したユナリペアを加える。得られた複数のユナリペアを概略以下の手法でさらに拡張する。詳細については後述する。
【0024】
(1)述部を受動態に変形
(2)述部を可能形に変形
これらの変形を、各ペアのうち一方のみ、他方のみ、及び双方に施すことができる。
【0025】
さらに、各ペアを構成するユナリの各々について、それ自身と、それ自身に対して上記した変形を行って得られたものとを組み合わせ、新たなユナリペアを生成する。
【0026】
次に、推移律を使用してユナリペアを拡張する。すなわち、2組のユナリペアP→QとQ→Rとがある場合、これらからP→Rを生成する。
【0027】
最後に、拡張されたユナリペアの各々について、双方のパターンに対して、新たな項を加えることでバイナリに拡張する。新たな項を加える方法としては、もとのユナリパターンが述部となるように新たな項を追加する方法と、もとのユナリパターンが連体節となるように新たな項を追加する方法とがある。前者の例としては、「Aをもたらす」の先頭に「Aが」を加え、「AがBをもたらす」とする変形がある。後者の例としては、「Aをもたらす」を連体節として、末尾に「A」を加えて「BをもたらすA」のような例がある。詳細は後述する。
【0028】
<構成>
図1に、本発明の一実施の形態に係る含意パターンペア拡張装置50のブロック図を示す。
図1を参照して、含意パターンペア拡張装置50は、第1のユナリDB52、第2のユナリDB54、動詞含意DB56、及び文脈類似度記憶部58を用いて、拡張ユナリペアDB60及び拡張バイナリペアDB62を出力するためのものである。
【0029】
第1のユナリDB52及び第2のユナリDB54は、いずれも既存のユナリペアを格納したデータベースである。これらはどのようにして得たものでもよい。手作業で作成したものでもよいし、何らかの処理により機械的に生成したものでもよい。なお、この実施の形態では、ユナリDBとして第1のユナリDB52及び第2のユナリDB54を用いているが、これらの数に制限があるわけではない。1つでもよいし、3個以上でもよい。仮に動詞含意DB56を用いてユナリペアを生成する場合には、ユナリDBは全く使用しなくてもよい。
【0030】
動詞含意DB56は、予め準備された、含意関係にある動詞のペアを複数個記録している。動詞含意ペアの一例は、「もたらす→引き起こす」という動詞含意ペアである。このデータとしては、本実施の形態では、出願人が人手で構築した動詞含意データ(https://alaginrc.nict.go.jp/)を用いた。この動詞含意DB56は52,689ペアの動詞含意ペアを収録している。
【0031】
文脈類似度記憶部58に記録されているデータは、2つの単語の文脈類似度を算出するためのものである。文脈類似度とは、簡単にいえば、2つの単語が出現する文章上の位置がどの程度類似しているかを示す尺度である。文脈類似度は2つの単語共起度合いを用いて算出され、以下の手順で得られる。
【0032】
単語v
iとその各文脈単語v
jとの間の共起度合いf
ijを求める。単語v
iの文脈単語とは、単語v
iの出現箇所の文脈内に出現する全単語のことをいう。文脈の範囲は任意に定めればよいが、例えばその単語が出現する文内、その文を中心とした前後所定数の文内、同段落内の文等が考えられる。この処理により得られる共起度合いf
ijを文脈単語v
jの順序にしたがって並べることによりベクトルが得られる。このベクトルは単語v
iに対する文脈ベクトルと考えることができる。この、単語v
iの文脈ベクトルをベクトルf
i*と書く。ベクトルf
i*は、共起度合いf
ijの中で、単語v
iとその文脈単語に対応する値の全てからなるベクトルである。全単語の集合V内の単語v
iと単語v
jの組合せの全てについて、このベクトルf
i*及びf
j*のコサイン類似度を計算し、その値を文脈類似度ω
ijとする。
【0033】
文脈類似度記憶部58には、予め上記の手順で算出した、任意の2つの単語間の文脈類似度が記憶されている。
【0034】
含意パターンペア拡張装置50は、第1のユナリDB52及び第2のユナリDB54に格納されたユナリペアについて、含意パターンペア拡張装置50で扱うフォーマットに変形し、かつ各ユナリペアのデータソースを表す値として、各ユナリDBの識別子を付加して出力するユナリペア追加部100と、ユナリペア追加部100の出力するユナリペアを格納するユナリペアDB102と、動詞含意DB56に格納された動詞含意ペアの各々から文脈類似度記憶部58に記憶された文脈類似度を用いてユナリペアを生成しユナリペアDB102に追加出力するユナリペア生成部104とを含む。
【0035】
含意パターンペア拡張装置50はさらに、単語の漢字とその読みとを機械可読な形式で格納した漢字辞書106と、ユナリペアDB102に格納されたユナリペアの各々について、漢字辞書106を参照しながら拡張処理を行い、複数のユナリペアを出力するためのユナリペア拡張部108と、ユナリペアからバイナリペアを生成するための生成規則を記憶したバイナリペア生成規則記憶部110と、バイナリペア生成規則記憶部110に記憶された生成規則を拡張ユナリペアDB60に記録されたユナリペアの各々に対して適用することでバイナリペアを生成し、拡張バイナリペアDB62に出力するためのバイナリペア追加部112とを含む。
【0036】
図2を参照して、
図1に示すユナリペア生成部104はコンピュータプログラムにより実現できる。このプログラムは、プログラム開始とともに記憶領域の確保及び初期化等を行うステップ140と、動詞含意DB56から動詞含意ペアを全て読み出すステップ142と、動詞含意ペアの各々について、処理146を実行するステップ144とを含む。
【0037】
処理146は、処理対象の動詞含意ペアを構成する動詞の各々について、「Aが」、「Aに」、「Aを」、及び「Aで」をそれぞれ付与することで複数のユナリ含意パターンの候補ペアを生成するステップ160と、こうして得られた候補ペアの各々について、それを構成するペア同士の間で文脈類似度計算処理164を行うステップ162と、ペア同士の間の文脈類似度が最も高いペアを選択するステップ166と、選択されたペアを新たなユナリペアとしてユナリペアDB102に追加するステップ168とを含む。このようにして得られたパターンペアについては、人手でその含意ペアとしての妥当性をチェックし、不適当なものを削除することが望ましい。この際、後の処理で得られるパターンペアのうちから不適当なものを削除するため、そのように削除すべきものは負例として保存しておくとより好ましい。なお、後述する各処理においては特に述べていないが、新たなユナリペア又はバイナリペアを登録する際には、このようにして予め保存されていた、又は予め準備されていた負例と照合し、負例は登録から除くようにする。
【0038】
図3を参照して、
図1に示すユナリペア拡張部108はコンピュータプログラムにより実現できる。このプログラムは、コンピュータを、ユナリペアDB102からユナリペアのレコードを読み出すレコード読出部180と、レコード読出部180により読み出されたユナリペアの各々について、ペアを構成するパターンの各々に対して受動態への変形、及び可能形への変形を行い、それらの組み合わせで得られる新たなユナリペアをもとのユナリペアとともに拡張ユナリペアDB60に追加する受動態・可能形追加部182と、受動態・可能形追加部182による拡張ユナリペアDB60へのユナリペアの追加の完了後、拡張ユナリペアDB60に記憶されたユナリペアであって、第1のユナリペアの後半部が第2のユナリペアの前半部と一致するものを検索し、それらの組み合わせの各々について、第1のユナリペアの前半部と第2のユナリペアの後半部とを組み合わせて新たなユナリペアを生成し、拡張ユナリペアDB60に追加する推移律ペア追加部184として機能させる。
【0039】
なお、本実施の形態では、受動態・可能形追加部182の処理前に、述語の表記ゆれ及び語尾の変形を各ユナリペアに適用することで、さらにユナリペアを拡張している。表記ゆれに対する対応としては、漢字辞書106を参照して、漢字で書かれた述語をかなに変換したパターンを作り、新たなパターンを持つユナリペアを加える。ここではまた、「Aが起きる→Aがおきる」及び「Aがおきる→Aが起きる」というような、「漢字→かな」、及び「かな→漢字」というユナリペアも同時に生成し、拡張ユナリペアDB60に追加する。このようなペアは、厳密には「含意」関係にあるとはいえない。しかし、質問応答における「言い換え」という文脈においてはそのようなペアがある方が有益と考えられる。
【0040】
推移律ペア追加部184はコンピュータプログラムにより実現される。
図4にそのようなコンピュータプログラムの制御構造をフローチャート形式で示す。このプログラムは、拡張ユナリペアDB60からユナリペアを全て読み出すステップ220と、読み出された各ユナリペアについて、処理224を実行するステップ222とを含む。
【0041】
処理224は、処理対象のユナリペアの後半部と一致する前半部を持つユナリペアを全て拡張ユナリペアDB60から読み出すステップ250と、ステップ250で読み出されたユナリペアの各々について処理254を実行するステップ252とを含む。以下、説明のためにステップ222で処理対象として選択されたペアを第1のユナリペア、ステップ252で処理対象として選択されたペアを第2のユナリペアと呼ぶ。
【0042】
処理254は、第1のユナリペアの述部が「漢字→かな」の組み合わせであり、第2のユナリペアの述部が「かな→漢字」の組み合わせとなっているか否かを判定し、判定結果が肯定であれば処理を終了し次の第2のユナリペアに処理を移すステップ280と、ステップ280の判定結果が否定のときに、第1のユナリペアの前半が第2のユナリペアの後半と一致しているか否かを判定するステップ282と、ステップ282の判定がNOのときに、第1のユナリペアの前半と第2のユナリペアの後半とからなるペアを新たなユナリペアとして拡張ユナリペアDB60に追加するステップ284と、ステップ282の判定が肯定のときに、第1及び第2のユナリペアの各々について、その対偶に相当するペアを拡張ユナリペアDB60に追加するステップ286とを含む。
【0043】
ステップ284の処理の結果、P→QというペアとQ→Rというペアから、いわゆる推移律によりP→Rというペアが生成され、拡張ユナリペアDB60に追加される。
【0044】
ステップ286の処理は推移律によるものではない。ステップ286の処理が行われるのは、第1のユナリペアの後半と第2のユナリペアの前半とが等しく、かつ、第1のユナリペアの前半と第2のユナリペアの後半とが等しい、という場合である。すなわち、第1のユナリペアと第2のユナリペアとが互いの逆になっているケースである。すなわち、P→QとQ→Pとの双方が存在している。これら2つのユナリペアがともに存在しているということは、これら2つのユナリペアの間に、いわゆる「同値」と同様の関係が成立していると考えられる。そこで、本実施の形態では、これら2つのユナリペアの双方について、論理学でいう「対偶」に相当するユナリペアを生成し、拡張ユナリペアDB60に追加する。すなわち、P→Qについては¬Q→¬Pというユナリペア(「¬」は否定を表す)を追加し、Q→Pというユナリペアについては¬P→¬Qというユナリペアを追加する。
【0045】
なお、一般にある命題が真であればその対偶も真とされているので、P→Qというユナリペアがあれば、その対偶の¬Q→¬Pというユナリペアを無条件で追加してもよいように思われる。しかし、本実施の形態で扱っているのは自然言語であり、あるユナリペアが存在していたとして、その対偶も実際に正しいとは限らない。そこで、ここでは2つのユナリペアが互いに同値であるときのみ、それらの対偶を追加することにしている。
【0046】
図5を参照して、本実施の形態では、
図1に示すバイナリペア追加部112もコンピュータプログラムにより実現される。このプログラムは、拡張ユナリペアDB60から全てのユナリペアを読み出すステップ320と、読み出されたユナリペアの各々について、そのユナリペアからバイナリペアを生成する処理324を実行するステップ322とを含む。
【0047】
図6を参照して、
図5の処理324を実現するプログラムは、
図1に示すバイナリペア生成規則記憶部110からバイナリペアの生成規則を全て読み出すステップ350と、処理対象のユナリペアに対して、ステップ350で読み出された生成規則の各々を適用してバイナリペアを生成し拡張バイナリペアDB62に追加する処理354を実行するステップ352とを含む。ここで、各バイナリ生成規則は、そのバイナリ規則をユナリペアに適用するためにユナリペアが満たすべき条件と、条件が成立したときにユナリペアを構成するパターンペアをどのように変形してバイナリペアを生成するかを記述した命令部とからなっている。命令部は、実際には文の変形規則を記述したものである。
【0048】
処理354は、処理対象のバイナリペア生成規則を適用すべき条件が処理中のユナリペアにより充足されるか否かを判定し、充足されていなければ規則の適用を終了するステップ380と、ステップ380の判定が肯定のときに、
図5のステップ322で選択したユナリペアに対して、
図6のステップ352で選択したバイナリペア生成規則を適用することにより、バイナリペアを生成するステップ382と、ステップ382で生成されたバイナリペアを拡張バイナリペアDB62に追加してこのバイナリペア生成規則の適用を終了するステップ384とを含む。
【0049】
なお、バイナリペア生成規則記憶部110に記憶されているバイナリペア生成規則は、本実施の形態ではIf―then形式で記載されている。1つのバイナリペア生成規則は、1つのユナリペアに適用することで1つのバイナリペアを生成するように記載されている。
【0050】
本実施の形態では、バイナリペア生成規則の主なものは以下のとおりである。
【0051】
(1)もしもユナリペアの助詞が「が」でない場合、ユナリペアの双方に「Aが」を付加する。この結果、例えば「Aを使う→Aを用いる」というユナリペアから「AがBを使う→AがBを用いる」というバイナリペアが生成される。なお、ここで規則適用前に「A」として記載していた変数を「B」と記載しているが、これはバイナリペアの形をわかりやすくするためであって、Bで表されていた変数が別の変数に変わるわけではない。これは以下の記載でも同様である。
【0052】
(2)もしもユナリペアの助詞が「が」でない場合、ユナリペアのうち前半のパターンに「Aが」を付加し、後半のパターンの先頭に「Aが」を付加して「Bを」を削除し、末尾に「B」を付加する。(1)と同じ例については、「AがBを使う→Aが用いるB」というバイナリペアが生成される。
【0053】
(3)もしもユナリペアの助詞が「が」でない場合、前半の先頭に「Aが」を付加し、後半の末尾に「A」を付加する。上の例で言えば「AがBを使う→Bを用いるA」というバイナリペアが生成される。
【0054】
(4)もしもユナリペアの助詞が「が」でない場合、前半の先頭に「Aが」を付加し、「Bを」を削除して末尾に「B」を付加する。後半の先頭には「Aが」を付加する。上の例でいえば「Aが使うB→AがBを用いる」が得られる。
【0055】
同様の変換規則をユナリペアの前半若しくは後半又はその双方に適用することで新たなバイナリペアが生成される。
【0056】
適用の条件となる助詞について、「が」の代わりに「で」を条件とする場合も同様の生成規則を使ってバイナリペアを生成できる。
【0057】
ここではまた、同じユナリパターンを組み合わせたユナリペアを作り、上と同様の操作を行ってバイナリペアを作成する。例えば、「Aを使う」というパターンから「AがBを使う→Bを使うA」のようなバイナリペアを生成し、拡張バイナリペアDB62に格納する。
【0058】
なお、本実施の形態では、バイナリペア生成規則をプログラムの外部にデータとして持っているが、本発明はそのような実施の形態には限定されない。生成規則をプログラムの形式で記載し、プログラム実行時に動的にロードするようにしてもよい。又は、プログラムの本体に生成規則を命令形式で順次記載するようにしてもよい。外部から生成規則を読み込む場合、個々の規則を別々のファイルにして予め準備しておいてもよいし、規則の全体を一つのファイルにまとめておいてもよい。いずにせよ、各規則は条件部と、その条件部がユナリペアにより充足されたときに各パターンに適用すべき変形規則との組として予め準備され、何らかの形で準備しておけばよい。規則の形式としては、前述したとおり、データ形式でもよいし、プログラム形式でもよい。また、プログラム本体の中に規則をアルゴリズム形式で組み込んでもよいし、実行時に外部からインクルードする形で読み込むよう、プログラム形式で外部ファイルとして保存しておいてもよい。
【0059】
<動作>
図1を参照して、上記した含意パターンペア拡張装置50は以下のように動作する。なお、含意パターンペア拡張装置50が以下の処理を実行するに先立って、第1のユナリDB52、第2のユナリDB54、動詞含意DB56、文脈類似度記憶部58、漢字辞書106及びバイナリペア生成規則記憶部110については予めその内容を準備しておく必要がある。
【0060】
ユナリペア追加部100は、第1のユナリDB52及び第2のユナリDB54からユナリペアを順次読み出し、各々について、含意パターンペア拡張装置50で扱うフォーマットに変形し、かつ各ユナリペアのデータソースを表す値として、各ユナリDBの識別子を付加してユナリペアDB102に出力する。
【0061】
ユナリペア生成部104は、文脈類似度記憶部58に記憶された文脈類似度を用いて以下のようにユナリペアを生成し、ユナリペアDB102に追加出力する。
図2を参照して、ユナリペア生成部104は、処理の開始とともに記憶領域の確保及び初期化等を行う(ステップ140)。ユナリペア生成部104は動詞含意DB56から動詞含意ペアを全て読み出す(ステップ142)。ユナリペア生成部104は、読み出した動詞含意ペアの各々について、処理146を実行する(ステップ144)。
【0062】
処理146では、ユナリペア生成部104は、処理対象の動詞含意ペアを構成する動詞の各々について、「Aが」、「Aに」、「Aを」、及び「Aで」をそれぞれ付与することで複数のユナリ含意パターンの候補ペアを生成する(ステップ160)。ユナリペア生成部104は、こうして得られた候補ペアの各々について、それを構成するユナリペア同士の間で文脈類似度計算処理164を行う(ステップ162)。ユナリペア生成部104は、計算した文脈類似度にもとづき、ユナリペアを構成するパターン同士の間の文脈類似度が最も高いユナリペアを選択して(ステップ166)新たなユナリペアとしてユナリペアDB102に追加する(ステップ168)。このとき、新たなユナリペアのデータソースとして動詞含意DB56の識別子が新たなユナリペアに付与され、さらにもとになった動詞含意ペアの識別子も付与される。ユナリペア生成部104は、このような処理を動詞含意DB56から読み出した全ての動詞含意ペアについて行う。
【0063】
ユナリペア追加部100及びユナリペア生成部104によるユナリペアDB102へのユナリペアの追加が完了すると、ユナリペア拡張部108が、ユナリペアDB102に格納されたユナリペアの各々から複数のユナリペアを生成し拡張ユナリペアDB60に出力する。すなわち、
図3を参照して、ユナリペア拡張部108のレコード読出部180は、ユナリペアDB102からユナリペアのレコードを読み出す。受動態・可能形追加部182は、レコード読出部180により読み出されたユナリペアの各々について、ユナリペアを構成するユナリパターンの各々に対して受動態への変形、及び可能形への変形を行い、それらの組み合わせで得られる複数の新たなユナリペアをもとのユナリペアとともに拡張ユナリペアDB60に追加する。このとき、新たなユナリペアのもとになったユナリペアの識別子と、適用された変形を特定するフラグが新たなユナリペアに付与される。受動態・可能形追加部182による拡張ユナリペアDB60へのユナリペアの追加の完了後、推移律ペア追加部184は、述語の表記ゆれ及び語尾の変形を各ユナリペアに適用することで、さらにユナリペアを拡張する。すなわち、推移律ペア追加部184は、漢字で書かれた述語について、漢字辞書106を参照することでかなに変換したユナリパターンを作り、新たなパターンを持つユナリペアを加える。推移律ペア追加部184はさらに、また、「漢字→かな」、及び「かな→漢字」というユナリペアも同時に生成し、拡張ユナリペアDB60に追加する。この後、推移律ペア追加部184は、拡張ユナリペアDB60に記憶されたユナリペアの組み合わせであって、第1のユナリペアの後半部が第2のユナリペアの前半部と一致するものを検索する。検索されたユナリペアの組み合わせの各々について、推移律ペア追加部184は、第1のユナリペアの前半部と第2のユナリペアの後半部とを組み合わせて新たなユナリペアを生成し、拡張ユナリペアDB60に追加する。
【0064】
図4を参照して、より具体的には、推移律ペア追加部184は、拡張ユナリペアDB60からユナリペアを全て読み出し(ステップ220)、読み出された各ユナリペアについて、処理224を実行する(ステップ222)。すなわち、ステップ222では、推移律ペア追加部184は、読み出されたユナリペアを所定の順番で順に処理対象として選択し、選択されたユナリペア(第1のユナリペア)に対して以下のように処理224を実行する。
【0065】
処理224では、推移律ペア追加部184は、処理対象のユナリペアの後半部と一致する前半部を持つユナリペアを全て拡張ユナリペアDB60から読み出す(ステップ250)。推移律ペア追加部184は、ステップ250で読み出されたユナリペア(第2のユナリペア)の各々について以下の処理254を実行する(ステップ252)。処理254では、推移律ペア追加部184は、第1のユナリペアの述部が「漢字→かな」の組み合わせであり、第2のユナリペアの述部が「かな→漢字」の組み合わせであれば処理を終了し次の第2のユナリペアに処理を移す(ステップ280で肯定)。ステップ280の判定が否定のときには、推移律ペア追加部184は、第1のユナリペアの前半パターンが第2のユナリペアの後半パターンと一致しているか否かを判定する(ステップ282)。判定がNOのときには、推移律ペア追加部184は、第1のユナリペアの前半パターンと第2のユナリペアの後半パターンとからなるユナリペアを新たなユナリペアとして拡張ユナリペアDB60に追加する(ステップ284)。ステップ282の判定が肯定のときには、推移律ペア追加部184は、第1及び第2のユナリペアの各々について、その対偶に相当するユナリペアを拡張ユナリペアDB60に追加する(ステップ286)。
【0066】
ステップ284の処理の結果、P→QというペアとQ→Rというペアから、いわゆる推移律によりP→Rというペアが生成され、拡張ユナリペアDB60に追加される。ステップ286の処理では、P→Qについては¬Q→¬Pというペアを追加し、Q→Pというペアについては¬P→¬Qというペアを追加する。
【0067】
推移律ペア追加部184による推移律ペアの登録が完了すると、拡張ユナリペアDB60には、第1のユナリDB52、第2のユナリDB54、及び動詞含意DB56に記憶されたユナリペア及び動詞含意ペアから拡張したユナリペアが蓄積されており、利用することが可能になっている。なお、推移律により生成したユナリペアには、もとになった2組のユナリペアの識別子と推移律により追加されたことを示すフラグが付与され、同値により追加されたユナリペアには、元になった2組のユナリペアの識別子と、同値により追加されたことを示すフラグが付与される。
【0068】
図1に戻って、拡張ユナリペアDB60へのユナリペアの蓄積が完了すると、バイナリペア追加部112が拡張ユナリペアDB60に格納されたユナリペアの各々について以下のように複数のバイナリペアを生成し、拡張バイナリペアDB62に格納する。具体的には、
図5を参照して、バイナリペア追加部112は、拡張ユナリペアDB60から全てのユナリペアを読み出す(ステップ320)。バイナリペア追加部112は、読み出されたユナリペアを順番に選択し(ステップ322)、その各々について、そのユナリペアからバイナリペアを生成する処理324を実行する。
【0069】
図6を参照して、バイナリペア追加部112は、
図5の処理324において、
図1に示すバイナリペア生成規則記憶部110からバイナリペアの生成規則を全て読み出す(ステップ350)。バイナリペア追加部112はさらに、選択した処理対象のユナリペアに対して、ステップ350で読み出された生成規則の各々を順番に選択し(ステップ352)処理354を実行する。処理354では、バイナリペア追加部112は、処理中のユナリペアが処理対象のバイナリペア生成規則を適用すべき条件を充足するか否かを判定する(ステップ380)。条件が充足されていなければこの規則の適用を終了し、次の生成規則の適用に処理を進める(ステップ380の判定がNO)。ステップ380の判定が肯定のときには、バイナリペア追加部112は、処理対象のユナリペアに対して、処理中のバイナリペア生成規則を適用することにより、バイナリペアを生成する(ステップ382)。バイナリペア追加部112は、このようにして生成されたバイナリペアを拡張バイナリペアDB62に追加してこのバイナリペア生成規則の適用を終了する(ステップ384)。
【0070】
本実施の形態では、「Aを使う→Aを用いる」というユナリペアからは、以下の様なバイナリペアが生成される。
【0071】
【表1】
バイナリペア追加部112が、拡張ユナリペアDB60に記憶された全てのユナリペアに対し、バイナリペア生成規則記憶部110に記憶された生成規則を適用し、生成された全てのバイナリペア(負例を除く)を拡張バイナリペアDB62に追加することにより、拡張バイナリペアDB62に、第1のユナリDB52、第2のユナリDB54、及び動詞含意DB56から拡張して得られたバイナリペアが蓄積され、利用可能になる。このとき、各バイナリペアには、そのバイナリペアのもとになったユナリペアの識別子と、適用した生成規則の識別子とが情報として付加される。
【0072】
通常、質問応答システムでは、ユナリペアは質問に対する回答としてヒットしやすい。しかし、ユナリペアは項を1つしか持たない。そのために、ユナリペアだけから回答を得ようとすると、回答精度に過度な期待はできない。そこで、回答を検索する際には、最初にバイナリペアを用い、バイナリペアでは回答が見つからない場合にユナリペアを用いる。こうした回答検索の方法により、回答の精度を高く維持しながらヒット率も高めることができる。その場合、上記実施の形態の方法にしたがってバイナリペアを充実させることで、回答の精度をさらに高めることが期待できる。
【0073】
なお、上記手法で生成されたユナリペアも次のような方法で質問応答システムに利用できる。まず、ペアを構成する各パターンの、コーパス中の出現頻度を予め計算しておく。後述の実験では、ウェブから収集した多数の文書中における、各パターンが回答検索でヒットした場合には、ユナリパターンのデータの由来及び性質に応じ、以下の様な優先順位にしたがって優先的に言い換えパターンとしてユナリペアを利用する。
【0074】
(1)同値関係(P→QとQ→Pとが共に成立する場合)
(2)読み又は形態(可能形・受動態)が異なる同じ述語
(3)上記以外で第1のユナリDB52及び第2のユナリDB54から拡張されたユナリペア
そして、データの由来にかかわらず、上記ウェブから収集した文書中の頻度がある定数未満のパターンの優先順位は最も低くなるように設定した。後述の評価実験では、ウェブ上から収集した文書の数は6億であり、最も優先順位を低く設定するためのしきい値は10とした。
【0075】
<評価>
以上に構成を説明した第1の実施の形態による含意ペア(ユナリペア及びバイナリペア)の評価実験について述べる。この実験では、第1のユナリDB52及び第2のユナリDB54の代わりに、3つのユナリペアの集合を用いた。これらのうち第1のものは、既存のユナリペアから、ペアを構成するパターン間の文脈類似度が上位であるものを人手でチェックして構築したもので、83,706例のユナリペアからなる。第2のものは、既存の述語対から助詞が「を」「に」「で」である述語を選択してユナリペアとしたものである。この際、意味があいまいなものは人手でチェックし、さらに正例と判断されたもののみを選択することにより構築したもので、7,334例のユナリペアからなる。第3のものは、出願人がこれまでに構築してきたいくつかのデータを基に得た27,369例の正例からなるものである。
【0076】
動詞含意DB56としては、前記したとおり、出願人が人手で構築した動詞含意データ(https://alaginrc.nict.go.jp/)を用いた。この動詞含意DB56は52,689ペアの動詞含意ペアを収録している。これに対してユナリペア生成部104の処理を行い、得られたユナリペアを人手でチェックして正例を蓄積した。この結果得られたユナリペアは51,589ペアであった。
【0077】
以上から、処理の種として用いられたユナリペアの数は83,706+7,334+27,369+51,589=169,998である。
【0078】
上記実施の形態による手法を用いてこのようなユナリペア及びバイナリペアを生成した結果、次のような数のペアが得られた。まず、推移律を適用する前のユナリペアの数は901,232であった。これはもとのユナリペアの個数の8倍以上である。推移律による拡張で、あらたに2,864,415個のユナリペアが得られた。このペア数は推移律適用前の約3倍である。さらに同じユナリ表現からバイナリペアを拡張することにより、最終的には42,096,327個のバイナリペアが生成された。元になるユナリペアの個数と比較して、約280倍となっている。
【0079】
上記処理で生成されたペアはヒューリスティックスにより、以下のようにスコア付けした。
【0080】
【数1】
ここで、fは、あるペアを生成するもととなった2つのユナリパターンがウェブ6億文書中に現れた頻度の合計を表す。α、βの値は、元となるユナリパターンに応じて以下のように与えられる。
【0081】
・同値関係にあるパターン:α=2,β=−0.2
・推移律で拡張したパターン:α=−0.2、β=−0.8
・上記以外のパターン:α=0.1、β=−0.3
図7はユナリペアの全体の評価を示すグラフである。このグラフは以下の様にして拡張ユナリペアDB60に得られたユナリペア全体(3,765,647個)を評価したものである。
【0082】
(1)ユナリペアを構成する2つのパターンの、ウェブ6億文書中における出現頻度がいずれも10以上のものを選択した。
【0083】
(2)(1)で選択されたものからランダムサンプリングで、500ペアを選択し、3名のアノテータによって各ユナリペアの正否を評価した。このアノテータはいずれも本願発明の発明者とは異なる。最終評価は、3名のアノテータによる評価の多数決によった。このときの一致率はKappa:0.46であり、中程度の一致率である。
【0084】
(3)500サンプルを、各サンプルを構成するパターンの出現頻度の積によってソートしてプロットした。
【0085】
この図から、各パターンの出現頻度による差はあまり見られないことが分かる。
【0086】
また、推移律で拡張したユナリペアとそれ以外で拡張したペアとについて別々に正例の評価をして、以下の結果を得た。
【0087】
【表2】
図8は、500ペアのユナリペアをランダムサンプリングして評価し、その優先順位(スコア)の高い順にソートし、上位n位の精度をプロットしたものである。全体としては0.68程度の精度となった。しかし、テーブル1に示すように、推移律以外で生成したユナリペアについては、0.8を超える精度が得られた。
【0088】
同様に、生成されたバイナリペア(42,096,327個)から500ペアをランダムサンプリングして評価し、そのスコア順にソートしてプロットした結果を
図9に示す。
図9のグラフが示すとおり、全体としての精度は0.66となり、ユナリペアと同程度の精度となった。
【0089】
質問応答システムにおける言い換えへの利用という観点からいえば、約4,200万のバイナリペアでは上位30%で約1,200万ペア、約380万のユナリペアでは上位20%で約75万ペアに関して0.8程度の精度が得られた。この数でこの精度であれば、十分に実用的なデータが得られたと評価できる。
【0090】
これらのペアにさらに機械学習により獲得したペアを含め、トータルで約1億の含意ペアを言い換え用の資源として、出願人が作成した質問応答システムに組み込み、「ビッグデータは何に使うか」という質問を入力した。その結果、「ビジネス」、「マーケティング」という、予想可能な回答に加えて、「輸送計画に役立つ」、「ビッグデータの活用が正確な政治的予測にいかに役立つかが盛んに報じられる」という回答が得られた。これらを得るには、いずれも「Aに役立つ→Aに使う」という推移律を基に得られたペアが使用されている。さらに、「信長は何を狙ったか」という質問に対しては、「天下統一」という常識的な回答だけではなく、「絶対王政を目指す」、「自由経済を目指す」という回答が得られた。これらは「AがBを目指す→AがBを狙う」「Bを目指すA→AがBを狙う」という、推移律を基に得られたペアが言い換えに使用されている。したがって、上記した実施の形態の手法を用いて含意ペアを拡張して質問応答システムの言い換えに使用することにより、多様な回答が抽出されていることが確認できた。
【0091】
<変形例>
本実施の形態では、推移律の適用を2段階にとどめている。これは、3段階以上になると、処理に時間を要するためである。原理的には、この推移律は何段階にでも適用できる。
図4に示す処理224を入れ子形式で適用すればよい。もっとも、推移律の適用段階の数が多くなると精度の低下が予測される。実用的には3段階又は4段階程度が限度であると考えられる。しかし、処理の仕方によってはそれ以上の数の含意ペアの間で推移律を適用しても精度の低下を防止できるかも知れない。それらについては今後の検証が必要である。
【0092】
さらに、上記実施の形態では、推移律の適用をユナリペアの拡張後に行っている。しかし、原理的には推移律の適用は、ユナリペアの拡張後ではなく、動詞含意ペアの段階、又はユナリペアの拡張前に行うことも考えられる。ただした、例えば動詞含意ペアの場合には、動詞自体の多義性のために、推移律の適用により得られる新たな動詞含意ペアが不適当なものになることも考えられる。したがって、推移律適用後のチェックにより不適切なペアを除去する必要がある。拡張前のユナリペアに対する推移律の適用時にはそのような危険性は低いが、推移律の適用により得られる新たなユナリペアの数は、拡張後に推移律を適用する場合よりも少なくなると考えられる。そのため、言い換え表現を獲得するという意味では、上記実施の形態より不利になる可能性はある。しかしそれでも、従来技術とは異なり、予測のできる形でユナリペアを拡張できるという効果が得られることは変わりない。したがってそのような実施の形態も十分に考えられる。
【0093】
さらに、上記実施の形態ではユナリペアからバイナリペアへの拡張を行っている。しかし本発明はそのような実施の形態には限定されない。バイナリペアにさらに項を追加することにより、3項ペア(「ターナリペア」と呼ぶ)への拡張を行うこともできる。ターナリペアの例としては、「AがBにCを送る」がある。その手法としては、ユナリペアからバイナリペアへの拡張時と同様の生成規則による手法をそのまま用いることができる。ただし、ターナリパターンの生成時には、規則を適用できる条件の指定がバイナリペアの場合より複雑になること、得られるターナリペアのバラエティがバイナリペアの場合と比較して多くなること、したがって処理に要する時間も長くなることが考えられる。同様の考えで、4以上の自然数nに対し、m=n―1としてm−アリパターンを拡張してn−アリパターンを得ることもできる。実装上の制約は、規則決定の作業量と、処理時間の問題とに過ぎない。
【0094】
さらには、ユナリペアから直接にターナリペアに拡張することも可能である。この場合、条件が充足されたときに、ユナリペアに2項を追加するような規則を作成すればよい。ユナリペアからバイナリペアを作成する規則と、ユナリペアからターナリペアを作成する規則とを混合してユナリペアに適用することで、バイナリペアとターナリペアとを同時に生成することもできる。
【0095】
以上のように、本発明によれば、単純な動詞の含意ペアから、項が1つ以上の複雑な言語パターン間の含意ペアを、簡便な規則を適用することで生成できる。この手法では、必要な動詞の含意ペアを準備すれば、それに関連する様々なパターンからなる含意ペアが自動的に生成される。従来のように機械学習で獲得したペアだけでは網羅できなかった含意ペアを大量に獲得できる。この結果、この含意ペアを質問応答システムにおける言い換えに適用することにより、得られる回答が大幅に増加するという効果を得ることができる。この拡張により得られる含意ペアがどのようなものかは、もとになる動詞の含意ペアから予測ができる。しかも、上記したように、最終的に採用するデータの精度がある程度の値になることが保証できる。したがって、従来の技術と比較して、質問応答システム等の自然言語を利用したシステムに利用可能な、精度の高い含意ペアの集合を効率よく収集できる。
【0096】
[第2の実施の形態]
上記第1の実施の形態に係る含意パターンペア拡張装置50により、拡張ユナリペアDB60及び拡張バイナリペアDB62のように、複数のDBを得ることができる。第2の実施の形態は、そのような複数のDBを用いて質問に対する回答をウェブアーカイブから検索する質問応答システムに関する。なお、この第2の実施の形態に係る質問応答システムは、一般的な例として、変数をn項まで含むパターンにまで拡張した含意ペアを記憶したDB、すなわち拡張N−アリDBまで扱うものとする。拡張ユナリペア、拡張バイナリペア、及び一般的な拡張N−アリペアをまとめて、以下では拡張ペアと呼び、これらをそれぞれ記憶したDB(拡張ユナリペアDB60、拡張バイナリペアDB62等)を総称して拡張ペアDBと呼ぶ。
【0097】
図10を参照して、この第2の実施の形態に係る質問応答システム500は、音声による質問502を受けて、質問に対する回答504を音声で出力する。質問502は、この質問応答システム500に設けられたマイクロフォン及び音声処理部によって受けてもよいし、ネットワークを通じて他の端末から受け取るようにしてもよい。
【0098】
質問502に対して、音声認識部520が音声認識を行って、文法情報が付されたテキストからなる質問文を出力する。構文解析部522が、この質問文に対して予め準備した構文変換規則を適用することにより肯定文を得て、さらに係り受け解析及び構文解析を行い、単語間の意味的な係り受け関係を示すグラフ形式の係り受け情報を出力する。この係り受け情報をパターン抽出部526がスキャンして、グラフ上に存在する単語を結ぶパスからパターンを抽出する。このとき、そのパターンに含まれる変数の項数の上限をNとする。この項数の最大値は最大項数記憶部524に記憶されており、パターン抽出部526はこの値を読みだして、係り受け情報から最大でN項の変数を含むパターンを抽出する。変数が1個のとき及び2個のときは、前述したとおりユナリ及びバイナリと呼んでいる。一般的に変数がN個のパターンをN−アリパターンと呼ぶことにする。したがって、パターン抽出部526が抽出するパターンは、ユナリパターン、バイナリパターン、…、N−アリパターンである。
【0099】
より具体的には、パターン抽出部526は、グラフ上で名詞と述語とを結ぶパスにおいて、名詞を変数に置き換えることによりユナリパターンを抽出する。パターン抽出部526は同様に、グラフ上で2個の名詞と述語とを結ぶパスにおいて、2つの名詞をそれぞれ変数に置き換える事によりバイナリパターンを抽出する。以下同様である。なおここで、パターン抽出部526は、名詞を変数に置き換える際に、その名詞の意味クラスに対応した制約を変数に付す。例えば名詞が地名であれば「地名」、食物であれば「食物」等の制約が変数に付される。こうすることで、回答を検索する際に、構文形式はよく似ているが意味的には無関係な候補を除外できる。
【0100】
質問応答システム500はこのために、前述の拡張ユナリペアDB60及び拡張バイナリペアDB62に加えて、N−アリペアを格納した拡張N−アリDB530までの拡張ペアDBを含む。もちろん、N=2でもよく、その場合には質問応答システム500は、含意ペアとして拡張ユナリペアDB60と拡張バイナリペアDB62のみを含むことになる。
【0101】
パターン抽出部526が抽出したパターンは、拡張ユナリペアDB60、拡張バイナリペアDB62、…、拡張N−アリペアDB530を利用してパターン拡張部528により拡張される。パターン拡張部528は、拡張対象のパターンがユナリパターンであれば、拡張ユナリペアDB60を利用してパターンの拡張を行う。パターン拡張部528は同様に、拡張対象のパターンがバイナリパターンであれば、拡張バイナリペアDB62を利用してバターンの拡張を行う。以下同様である。ここではパターン拡張部528は、拡張ユナリペアDB60、拡張バイナリペアDB62、…、拡張N−アリペアDB530を順番に利用して含意ペアの拡張を行う。そのために、質問応答システム500は、パターン拡張部528により制御され、拡張ユナリペアDB60、拡張バイナリペアDB62、…、拡張N−アリペアDB530のうち、パターン拡張部528により指定された拡張ペアDBを選択的にパターン拡張部528に接続するセレクタ532を含む。
【0102】
このように、パターン抽出部526により抽出されて得たユナリペア、バイナリペア、…、N−アリペアは、それぞれ拡張ユナリペアDB60、拡張バイナリペアDB62、…、拡張N−アリペアDB530に格納された含意ペアを使用していずれも大幅に拡張される。その結果、パターン拡張部528からは、変数に制約が付された大量のパターンが出力される。
【0103】
質問応答システム500は、ウェブ上の大量のデータを記憶したウェブアーカイブ534を含む。回答候補検索部536が、パターン拡張部528から出力された大量のパターンに合致する表現を持つ文をウェブアーカイブ534から検索し、それぞれどの拡張ペアDBに記憶されていたペアに合致するか否かにしたがって分類して出力する。回答候補検索部536の出力する回答候補は、ユナリ回答候補記憶部538、バイナリ回答候補記憶部540、…、N−アリ回答候補記憶部542にそれぞれ分類して記憶される。なお、回答候補検索部536は、予め学習用データによる機械学習を済ませた判別器を含む。この判別器は、パターンに含まれる単語の意味的クラス、その回答候補を検索する際に使用されたパターン、そのパターンともとの質問文との意味的な類似度、回答候補とそれを抽出する際に使用されたパターンとの関連度、等、様々な要因を含めて回答候補の検索をし、それぞれ質問502に対する回答としてのふさわしさを示すスコアを各回答候補に付す。
【0104】
質問応答システム500はさらに、ユナリ回答候補記憶部538、バイナリ回答候補記憶部540、…、N−アリ回答候補記憶部542に記憶された回答候補の内から回答を選択するために予め準備されたしきい値を記憶するしきい値記憶部546と、しきい値記憶部546に記憶されたしきい値以上のスコアを持つ回答を1つだけユナリ回答候補記憶部538、バイナリ回答候補記憶部540、…、N−アリ回答候補記憶部542に記憶された回答候補のうちから選択する回答選択部548とを含む。
【0105】
回答選択部548はこの選択の際、最初に、回答候補のうちで、最も変数の多いパターンを用いて検索された回答候補があれば、そのうちで、スコアが最も高く、かつスコアがしきい値以上であるものを回答として選択する。もしその様な回答候補がなければ、回答選択部548は、変数の数が1少ないパターンを用いて検索された回答候補からの回答の選択を試みる。以下、変数の値が1になるまで同様の処理が行われる。回答選択部548は、このように変数の多いパターンを用いて検索された回答候補を優先して回答を選択する。したがって質問応答システム500は、回答選択部548による制御にしたがって、N−アリ回答候補記憶部542、…、バイナリ回答候補記憶部540、ユナリ回答候補記憶部538のいずれかを選択して回答選択部548の入力に結合するセレクタ544をさらに含む。
【0106】
ユナリペアを用いて検索された回答候補まで全て調べても条件を充足する回答候補がみつからなかった場合には、予め定める基準によって選定された回答候補が選ばれる。
【0107】
なお、回答候補を選ぶ際のしきい値は、その回答候補を検索する際に使用されたパターンに含まれる変数の数にかかわらず一定でもよいし、変数の数が大きくなるにしたがってしきい値が小さくなるようにしてもよい。条件を充足する回答候補が見つからなかったときには、例えば見つかった回答候補のうちで最もスコアが高かったものを回答としてもよいし、検索の際に使用されたパターンの変数の項数が最も多いもののうちでスコアが最も高いものを選択するようにしてもよい。
【0108】
回答選択部548が選択した回答は回答出力部550に渡される。回答出力部550は、この回答を、質問502の入力経路に応じた経路に、入力形式に対応した形式で回答504として出力する。例えば質問502が質問応答システム500に備えられたマイクロフォン等経由で入力された場合、回答出力部550は、回答504を音声に変換し、音声をスピーカで出力する。質問502がネットワーク経由で音声として送られてきたときには、回答出力部550は質問502を送信して来たアドレスに対して、音声として出力するよう加工したデータを送信する。
【0109】
以上のようにこの第2の実施の形態に係る質問応答システム500は、第1の実施の形態による含意パターンペア拡張装置50で拡張した拡張ユナリペアDB60、拡張バイナリペアDB62、…、拡張N−アリペアDB530を用いて、質問502から得たパターンを拡張する。これら拡張ペアの数は非常に多く、質問502から得られるパターンの数も非常に多くなる。そのように大量のパターンを用いてウェブアーカイブ534から回答候補を検索する。したがって、構文の形式としては質問502とは大きく異なったものでも、回答としてふさわしいものを検索できる可能性が高くなる。さらに、推移律を用いてパターンペアが拡張されているので、質問502から得たパターンと異なる意外なパターンの回答が得られる可能性も高くなる。更に、回答を検索する際に使用されたパターンに含まれる変数の数が多い回答候補を優先して選択する。その結果、質問502に対してより具体的で適切な回答を得ることができる可能性が高くなるという効果がある。
【0110】
[コンピュータによる実現]
上記第1の実施の形態に係る含意パターンペア拡張装置50、第2の実施の形態に係る質問応答システム500及びその他の変形例は、コンピュータハードウェアと、そのコンピュータハードウェア上で実行されるコンピュータプログラムとにより実現できる。
図11はこのコンピュータシステム930の外観を示し、
図12はコンピュータシステム930の内部構成を示す。
【0111】
図11を参照して、このコンピュータシステム930は、メモリポート952及びDVD(Digital Versatile Disc)ドライブ950を有するコンピュータ940と、キーボード946と、マウス948と、モニタ942とを含む。
【0112】
図12を参照して、コンピュータ940は、メモリポート952及びDVDドライブ950に加えて、CPU(中央処理装置)956と、CPU956、メモリポート952及びDVDドライブ950に接続されたバス966と、ブートプログラム等を記憶する読出専用メモリ(ROM)958と、バス966に接続され、プログラム命令、システムプログラム及び作業データ等を記憶するランダムアクセスメモリ(RAM)960と、ハードディスク954を含む。コンピュータシステム930はさらに、他端末との通信を可能とするネットワーク968への接続を提供するネットワークインターフェイス(I/F)944を含む。
【0113】
RAM960、ハードディスク954、及びメモリポート952に装着可能な着脱可能なリムーバブルメモリ964は、
図1に示す第1のユナリDB52、第2のユナリDB54、動詞含意DB56、文脈類似度記憶部58、拡張ユナリペアDB60、拡張バイナリペアDB62、漢字辞書106、バイナリペア生成規則記憶部110、拡張N−アリDB530、ウェブアーカイブ534、回答候補記憶部538、540、及び542、最大項数記憶部524並びにしきい値記憶部546のような記憶装置として機能する。情報の書き換えが不要なデータ、例えば漢字辞書106のようなものは、CD―ROM又はDVD962に格納し、DVDドライブ950に装着して読み出すようにしてもよい。
【0114】
コンピュータシステム930を上記した実施の形態に係る含意パターンペア拡張装置50又は質問応答システム500の各機能部として機能させるためのコンピュータプログラムは、DVDドライブ950又はメモリポート952に装着されるDVD962又はリムーバブルメモリ964に記憶され、さらにハードディスク954に転送される。又は、プログラムはネットワーク968を通じてコンピュータ940に送信されハードディスク954に記憶されてもよい。プログラムは実行の際にRAM960にロードされる。DVD962から、リムーバブルメモリ964から又はネットワーク968を介して、直接にRAM960にプログラムをロードしてもよい。
【0115】
このプログラムは、コンピュータ940を、上記実施の形態に係る含意パターンペア拡張装置50又は質問応答システム500の各機能部として機能させるための複数の命令からなる命令列を含む。コンピュータ940にこの動作を行なわせるのに必要な基本的機能のいくつかはコンピュータ940上で動作するオペレーティングシステム若しくはサードパーティのプログラム又はコンピュータ940にインストールされる、ダイナミックリンク可能な各種プログラミングツールキット又はプログラムライブラリにより提供され、プログラムの実行時に動的にリンクされ実行される。したがって、このプログラム自体はこの実施の形態のシステム及び方法を実現するのに必要な機能を実現するためのオブジェクトコード又はスクリプトの全てを必ずしも含まなくてよい。このプログラムは、命令の内、所望の結果が得られるように制御されたやり方で適切な機能又はプログラミングツールキット又はプログラムライブラリ内の適切なプログラムを実行時に動的に呼出すことにより、上記したシステムとしての機能を実現する命令のみを含んでいればよい。もちろん、プログラムのみで必要な機能を全て提供するようにしてもよい。
【0116】
また、含意パターンペア拡張装置50又は質問応答システム500の各機能部を別々のコンピュータに分散して処理したり、ネットワークを介して別々の地域に存在する別々のコンピュータで分散して処理したりするようにしてもよい。
【0117】
今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内での全ての変更を含む。