6U-3

情報処理学会第66回全国大会

質問応答のための質問文と知識文の間の意味ベースでの精密な照合方式
竹原 一彰*
青山学院大学安部 建助**

理工学部 機械創造工学科*

安田 智成**

日本語をベースとした質問応答の研究では、村田らが質問文と検索されたパッセージの係り受け木での対応語間に IDF や EDR の語彙による類似度を用いて、最も類似したパッセージから解を得ている[1]。この研究では意味解析を行っていないので語意の精度は非常に低く、また語間の関係も係り受け関係を用いているので深層的な意味に基づく重要度を把握できず、解答精度は 50%から 70%程度である。他の研究も同様で精度に問題がある。そこ
で、日本語文章の意味解析に基づき高精度の質問応答システムを構築するための基礎研究を行う。文章内容の形式表現方法を調査の結果、質問文と知識文（検索文）の精密な照合を行うために、Sowa の提案する概念グラフの理論が最適だと判断した。質問文と知識文に対する概念グラフの類似度を計算することによって、これまでより文章間の精密な照合を行うことができるようになる。

2. 自然言語の概念グラフ表現
概念グラフとは全ての事象を概念とその関係(リレーション)で表現したものである。自然言語で書かれた知識は概念グラフで形式表現できる。ノードが概念に対応し、その概念のインスタンスや多重度はリファレントと呼ばれ、概念とともにノード情報として保持される。リレーションは名前つきアークとして表現される。さらに様相(時制・否定)もノードの持つ属性として表現可能である。本照合システムでは図１に示すような形式で概念グラフを表現している。
ありますか
place

[3cf1b2 : *]object23 どこに[101260 : *]24 青山学院大学は[1e8598: *]しかし、自然言語のような多様性のある知識をベースとしたグラフの照合にはこの定理は制約が厳しすぎる。そこで、本照合システムではグラフの類似度に閾値を設け、それを上回れば定理の条件を満足するように制約をゆるめて利用している。グラフ類似度(スコア)は下式に示すノード類似度とリレーション類似度(それぞれ最高値 100)の和である。完全にグラフが一致するときはスコア 200 となる。
照合ノードペアの類似度
ノード類似度 = ∑×100
質問グラフのノード数
リレーション類似度 =∑ 照合ノードペア間のリレーション数 ×100
質問グラフのアーク数

4. 照合システム
本システムは、１つの質問グラフとそれに解答を含んでいそうな知識グラフの集合を入力とし、照合結果として、ノードの照合関係、解答とそのスコアをファイルに書き出す。

4.1. 照合のアルゴリズム
質問グラフを張る木の根 qst からスタートして、質問グラフのノード qn を縦型に訪問しながら知識グラフのノード kn と照合していく。また照合を行いながらグラフ類似度を計算する。ア
ルゴリズムの概要を以下に示す。また各種関数の意味を表 1 に示す。

概念グラフデータ・ノードは[概念：リファレント]と表示
・データ構造はPrologの事実節で表現される・質問グラフはqueryという接頭辞を持つ
・知識グラフはknowledgeという接頭辞を持つ

質問グラフ： 青山学院大学は、どこにありますか.
queryNode(23,[0,'101260','query','*','どこ','JN1','に',[],[3,2]]).
queryNode(24,[0,‘1e8598’,‘高等教育の中核となる学術研究および教育の最高機関','青山学院大学','青山学院大学','JN2','は',[],[3,1]]).
queryNode(25,[2,'3cf1b2','存在すること','*','あります','JVE','か',[],[3,3]]).
queryArc([25,place,23]). queryArc([25,object,24]). queryArc([25,main,25]).
queryNode(25,[2, '3cf1b2‘ ,'存在すること‘ ,'*‘ ,'あります‘ ,'JVE‘ ,'か‘ ,[] ,[3,3] ]).
ノードID

原田 実***

青山学院大学 理工学部 情報テクノロジー学科**,***

1. はじめに25

韓 東力***出次数, 概念ID, 概念表記, リファレント, 文節, 品詞, 共起関係子, 属性,文節番号・文番号

図 1 概念グラフのデータ構造(質問グラフ)

3. グラフの照合定理

表1 各種関数とその意味関数
children(n)意味nの未照合の子ノード順序集合を返す

descendants(n) nの未照合の子孫の順序集合を返す
outdeg(n)nの出次数を返す

bind(qn, kn)

qnとknを照合ペアとする(φとのペアは類似度0)rel(n1, n2)

n1からn2へのリレーションを返す

inrel(n)nへの入力辺のラベルを返す

getElm(S)

引数の順序集合の次の要素を返す。なくなると偽。

fill(qn, kn)

ノード対qnとknが表2の条件を満たすならば真表2 ノードが照合する条件
質問ノード
知識ノード
0.27以上(経験的に定めた値)
概念類似度
一般概念(*)
何でも良い
リファレント固有概念
質問と同じリファレントを持つ
同じ属性をもつ属性照合の正しさは、「あるグラフ G が真であるためには、真であることが確定しているグラフ T(または T の部分グラフ)への特殊化の系列が存在することである」[2]という定理に基づく。

概念類似度 = maxA precise matching based on semantic analysis between thequestion sentence and knowledge sentence for question-answering
Kazuaki Takehara* ,Kensuke Abe** , Tomonari Yasuda**,Dongli Han*** and Minoru Harada****Department of Mechanical Engineering , Aoyama Gakuin University.
**Department of Integrated Information Technology, Aoyama GakuinUniversity.
***Department of Integrated Information Technology, Faculty ofScience and Engineering, Aoyama Gakuin University.

main(){
while(kst ← getElm({kn | outdeg(qst) ≦ outdeg(kn) ∧fill(qst,kn)}){bind(qst,kst);
matching(qst,kst);
if(リレーション類似度≧閾値)
照合結果をファイルに書き出す;}
}

2−173

 2 × dc  dq,dk ： それぞれの概念の概念深さ dq + dk  dc ： dq,dkの共通概念の概念深さ

は、2rules(Q)個ある。同様に知識グラフの集合 K(j 個の知識グラフ K1

matching(qn, kn){
while(nqn←getElm(children(qn)){
while(dkn←getElm(descendants (kn))){if(rel(qn,nqn)=inrel(dkn)∧fill(nqn,dkn)){bind(nqn,dkn);
matching(nqn,dkn);
break;}}
if(dkn が偽){bind(nqn,φ);if(nqn が葉でない){
while(dqn←getElm(children(nqn))){rel(qn,nqn)を rel(qn,dqn)につなぎかえる;}}
matching(qn,kn);}}}〜Kjからなる)の同値グラフの数は合は 2 rules ( Q ) ×∑ 2
jrules(K i )

i =1

∑ 2
jrules(Ki )i =1個あるので、照通りのグラフの組み合わせについて行う(図 4)。
21×(21+20)回の照合

rules(K1)=1rules(Q)=1
K1
rules(K2)=0
Q
Type expansion

K2照合

図 4 照合のパターン

6. 解の抽出
具体的にこのアルゴリズムを図 3 に示すようなグラフ(この例では同じアルファベットのノード対のみ概念類似度が 0.27 以上になるとする)に対して適用すると、点線のようにノード対が照合する。照合した部分を共通グラフと呼ぶ。重要なところとしてノード Q(3)とノード K(6)の照合されるときリファレント*は cにインスタンス化(特殊化)される。またノード Q(4)とノード K(5)は同じ接続関係(object)かつ同じ概念を持つがリファレントが異なるので照合されない。

1 [A : *]1 [A : *]logical2(否定)→[B : b]logical2(否定)→[B : b]
agent
place

object3 [C : *]4 [S : ｓ1]

3 [K: ｋ]objectobject4 [P : *]5 [S : ｓ2]
modifierplace

6 [C : c]

図 4 のように照合が行われ、照合結果は回答とそのスコアという形で保存される。抽出された複数の解のそれぞれについてスコアの総和を計算する。その中で、スコアの高いものから順位つきで解を抽出する。

7. 精密化
Q:「ナイル川はどこを流れていますか？」という質問に対して K:「ミネソタ州の南北をミシシッピ川が流れている。」という知識文が検索されてきたとする(図 5)。
これまでの方法ではグラフ Q とグラフ K の構文木の形、概念(概念)の並びが等しいので、[どこを]=[ミネソタ州の南北]と解が抽出されてしまうのであるが、本照合方式を用いれば、概念 ID が 44495e(名称で捉えた河川)で示されるノードのリファレントが表 2 の条件(3.グラフの照合定理)に反するので、このノード対は照合されない。その結果 Q と K の照合は類似度が閾値を超えなくなるので間違った解を抽出しない。属性の導入も同様な効果がある。

5 [F : *]流れているplace

質問グラフQ

知識グラフK

図 3 グラフと照合関係[3ced36 : *]objectplace
どこを[101260 : *]5. Type Expansion
言語表現の多様性の差を吸収するために概念グラフの TypeExpansion を行う。グラフ操作としては、深層関係を考慮しながら、ある概念を表現するノードを意味的に同値なグラフで置換する。簡単な例として、「メールを送る」を「メールを送信する」、「e メールを送る」などの同値な置き換えが可能である。
このルールは現在人手で記述されているが国語辞典などからType Expansion ルールの自動取得も視野にいれ、表 3 に示すフォーマットで、Type Expansion データベースに格納する。

表3 Type Expansionルールの構成要素
条件グラフ[3ced36 : *]object

流れていますかこのグラフが部分グラフであるときType Expansionを適用できると判定する

ナイル川は[44495e: ナイル川]

質問グラフ Q

南北を
[101f67 : *]ミシシッピ川が[44495e: ミシシッピ川]

modifier
ミネソタ州の[4449eb: ミネソタ州]

知識グラフ K

図 5 質問グラフと知識グラフ
また、Type Expansion により、今までは同じ意味を表すグラフであっても語意の類似度や構文木の違いにより、照合がうまくいかなかったグラフに対しても、一貫した方法で照合できるようになる。

参考文献[1] 村田真樹、内山将夫、伊佐原均： 類似度に基づく推論を用いた質問応答システム[2] John F. Sowa: “Conceptual Structures:
Information Processing in Mind and Machine”, 1984

定義グラフ
条件グラフに置き換わる同値なグラフ
コンストラクタ 置き換える際の、条件(接続関係など)を記述しておく

質問グラフ Q に対して rules(G)を「グラフ G に適用できる TypeExpansion のルール数」と定義すれば、このとき Q の同値グラフ

2−174