自然言語の SPARQL クエリ変換に基づく大規模知識へのアクセス手法の開発
村山友理

1(指導教員：小林一郎)

はじめにラス，インスタンス，リテラルのいずれであるかを判定する．クラスとインスタンスの判定は，事前に作成した辞書との文字列一致で行い，辞書に存在しない場合はリテラルと判断する．クラスと判定された場合はトリプルパターン {?x rdf:type :クラス名 } を追加する. インスタンスだった場合は ?x を :インスタンス名 に変換する．リテラルの場合は変数のままにしておく．

現在，Linked Open Data (LOD) として様々な分野の膨大な知識がデータとして Web 上に公開されている．これらの大量の知識を自然言語処理システムの中に組み込むことができれば，自然言語理解における背景知識として利用可能になるなど，従来のシステムを超えた優れたシステムが実現されると考えられ，それらのデータを自然言語と結びつけるための様々な取り組みが進められている [1, 2, 3]．基本的な問題として，自然言語の表現から LOD のように形式的に記述されている知識にアクセスするために，自然言語文からデータレポジトリにアクセスするクエリ言語に変換できるようにすることを対象に研究が行われている．
本研究では，先行研究のアプローチを踏まえて，自然言語文から抽出した情報に知識のリレーションを紐づけることに重点を置いた手法の提案を行う．また，提案手法を評価する具体的な実験として，ロボットが喫茶店でお客さんから注文をとる場面を想定して，そこで発生する質問に回答するための知識を取得するためにユーザの質問文から SPARQL クエリを自動生成することを考える．

2

4. 語彙表現に基づく回答対象候補の特定
質問文中の語彙表現によって質問の答えになる回答対象候補を特定する．候補を特定する語彙表現として，“どんな”，“はありますか”，“は何ですか” を採用する．
質問文中に “どんな” が現れた場合はその直後に来る単語を，“はありますか” と “は何ですか” の場合は直前にくる単語を回答対象候補とし，それに対応する変数
を SELECT DISTINCT 後の変数リストに加える．

5. 知識への問合せによるリレーション候補の決定
上記の処理によって作成した SPARQL クエリの????の部分を?rel としてリレーションの候補を知識に問い合わせることにより決定する．

6. SPARQL クエリの生成
リレーションの候補の検索結果の中で，WordNet を使って調べておいたトリプルの各単語の類義語すべてを対象に Jaccard 係数を計算し，最も類似度の高い候補を最適なリレーションとして決定する．最も類似度の高い候補が複数存在する場合は，ジップの法則に従ってより希少な方を最適なリレーションとして選択する．
以上の手続きにより入力された自然言語質問文の内容を反映した SPARQL クエリを完成させる．

提案手法

本研究で提案する手法の概要を図 1 に示す．本研究の提案手法における，自然言語質問文から SPARQLクエリを自動生成する手続きについて以下に示す．

1. 自然言語質問文の構文解析に基づく RDF トリプ
ル候補抽出
京都大学黒橋河原研究室で開発された日本語構文・格・照応解析システム KNP1 を用いて，自然言語質問を解析し，語彙の依存関係および述語項構造を抽出する．述語項構造の解析結果の内，述語に対して項を 2 つ持つものから候補の RDF トリプル（以下，トリプルと呼ぶ）として（述語，項 1，項 2）を抽出する．トリプルがとる各単語について WordNet を用いてその類義語を調べる．これは，Wang ら [1] の手法で用いているように，自然言語質問文中の表層表現や類義語がデータレポジトリ中の RDF トリプルを記述されている語彙になっている可能性があり，そのような知識に対して柔軟なアクセスができるように配慮するためである．

質問タイプ

3

本研究で対象とする質問タイプの分類を表 1 に示す．
表 1: 質問タイプの分類
678!"#$%&'()*+,!"#$%&-.*(/0+12)

9:;<=,>?24@ABCD1,E2FGH
9IJKLMN9:)*=,>?24)*D1,E2FGO!+&+,-*'.!-./,-**0**12+$+*3456*4444* *4578
9$'(345(/0+12)4444456457)P)H;QRSTU@VWJKLMN;<)*STU)*)P)OXY
ZY[\(XY=ZYSTU@]^KLM
NXY=ZY)*STU)*[\O!+&+,-**'.!-./,-*0*4>?@ABC*12+$+*3456*4444* *4578
457*D87EEFG>?@ABC*4>?@ABC89*H$'+$*IJ*#!,='!+,K4>?@ABCL* &.M.-*N&OPC8QQQQABCSTU_VWJKLM
QQQQ!+&+,-*'.!-./,-*456*12+$+*3456**<RSGCTU: G-4T`89abc8QQQQ

ABCD1,E2FG_=,>?24d@9JeJKLM
N9:)D1,E2FG)=,>?24O!+&+,-*'.!-./,-**0**12+$+*3
456*4444* *4578
9456!+&+,-*'.!-./,-**0**12+$+*3457*4444* *4568
9456':;<::82. 述語に基づく質問タイプ判別候補となる RDF トリプルの述語に基づき，質問タイプを判別する．本研究で設定した述語の種類ごとの質問タイプを表 1 に示す（表 1 に示す質問タイプについては 3 章に詳述する）．この段階では，項 1，項 2 はまだ未確定なのでそれぞれ?x0,?x1 とする．例えば，述語が “含む” であれば基本型と判定されることから，テンプレートとして {?x0 ???? ?x1.} が与えられる．

4444

4564>?@ABC457

D87EEFG>?@ABC<RSGCTU:
456G-4T`

44444574444
457“含む”，“使う” などの述語は基本型としてテンプレートで {?x0 ???? ?x1.} を与える．“低い” のよ
うな「程度」を問合せる述語は Degree 型とし，テンプレートで {?x0 ???? ?x1. ?x1 j.1552:amount?amount.} を与える．本研究では，知識のドメインを料理のメニューに限定しているため，程度に対する問合せは「量」への問合せであるとする．ORDER BY
ASC(?amount) LIMIT 3 により，量によって昇順に並3. 項の属性判定
候補の RDF トリプルの項に注目して，その属性がク
1 http://nlp.ist.i.kyoto-u.ac.jp/index.php?KNP

71

,-*LMNOPQRF8RST5UF./0GHI"DEFVW:-*\O5UPQ]^I0Z_

789!1:";<:!=#!>"$"!"#$%&"%&?"'"+,"-%./"#

J/0+*!"#$%&+*+,"-%./K@ABC!!"#$%& ()*1:()* ()*+,"-%+,"-% ()*1:1232'4*/5145$'4**>**672.2*8;<%*;;;;**;<,=

DEFGHI"!J1:+*!"#$%&+*+,"-%./K
6KFP$ENIAFJKHAFA
ADDEFGLMHNEGFANE
MHGFEPMEHN!"#$%& +,"-%IKFFADGFKIEFL+,"-%`a no *(5HIKFOKFANE *(!"#$%&'()*+,"-%./0123456

J1:+*!"#$%&"#'(")%*+K
1232'4*/5145$'4*! 672.2*8
9-:!!"#$%& ;;;;**;<,=9-:!!"#$%&;;;;
;<,

Qdefg

hijkhijk;<,#-*7FXY0Z[

Qdefgbclm;;;;;<%

Q-Opqr5UFsltuDEFv[@ABC!,-. '(#'(")%
1232'4*/5145$'4*$%&#672.2*89-:!!"#$%& ;;;;**;<,=‚ƒ*H,%{|}0„…
R-*1SC.T3•€HF•n1232'4*/5145$'4*;<,*672.2*8
9-:!!"#$%& 9-,??:!@ABCDDEFGEH*;<,=9-:!!"#$%&9-:!!"#$%&;;;;;<,?-bcwFQegxyzH,%{|}DEF~[9-,??:!@AB
CDDEFGEH1232'4*/5145$'4*$)*+ 672.2*8
9-:!!"#$%& $)*+ ;<,=;<,9-:!!"#$%&;FED;<,

図 1: 提案手法の概要
べ上位 3 つを返すように設定している．“どんなパスタがありますか？“の場合は，KNP を用いてトリプルの情報を得られないため，提案手法のステップ 1，2，5 を除いて SPARQL クエリを生成する．ある単語が “どんな” と “がありますか” の 2 つのキーワードに挟まれた場合，該当する項目をすべて回答する List 型に分類されるとする．“〜含まれますか？“のような受け身型の場合, 始めは能動態の述語と同じように項 1, 項 2をそれぞれ?x0,?x1 として SPARQL クエリに変形してゆき, ステップ５でリレーションの候補を知識に問い合わせ答えが返ってこなかったら, リレーションの矢印の向きを反対にする, つまり｛?x0 ?rel ?x1.｝の部分を｛?x1 ?rel ?x0.｝に修正して再度リレーションの候補を知識に問い合わせる．

4

表 2: 生成された SPARQL クエリ*,0&#1%2+1!"#$%&'()*+,-+(.

mi:牛ひき肉_122!"#%!34(.

100g!"#"*-/+

mi:ハンバーグステーキ*,0#.6"+

mi:玉ね
ぎ_122
40g

*,0#.6"+!"#$%&511+*)+(!"#$%&'()*+,-+(.

!"#%!34(.
391#&%!+5&fi:11089

mc:ハン
バーグ

mi:アレルゲ
ン_小麦_122

fi:6153

ai:小麦

SELECT DISTINCT ?x0 ?amount WHERE {List 型

どんなパスタがありますか？

SELECT DISTINCT ?x0 WHERE {?x0 rdf:type j.1:パスタ.
}

受け身型

どんなアレルギー食材がカルボナーラには含まSELECT DISTINCT ?x0 WHERE {j.2:カルボナーラ j.1552:hasAllergen ?x0.
}に示すように，それぞれ適切な SPARQL クエリを生成し, 知識から正確な答えを得ることができた．

5

おわりに自然言語文から抽出した情報に知識のリレーションを紐づけることに重点を置いた，SPARQL クエリの自動生成のための手法を提案した．今後の課題として，質問タイプとして考えた 4 タイプ以外に Count 関数やSum 関数を使ったもの，否定表現，接続詞が入った表
現, サブクエリなども扱えるように拡張したい．質問
タイプの例文以外の自然言語質問文を入力とした実験も行いたい．対話の中の文脈を考慮した SPARQL ク
エリの生成にも取り組みたい．

mc:グラタン

参考文献

インスタンス
リテラル[1] Chong WangMiao XiongQi ZhouYong Yu, PANTO: A
Portable Natural Language Interface to Ontologies, European Semantic Web Conference ESWC 2007: The Semantic Web: Research and Applications pp.473-487, 2007.
[2] 鈴木遼司, 三輪誠, 佐々木裕： 交通オントロジーを対象とした質問文の SPARQL クエリ変換, 第 21 回言語処理学会年次大会, P2-13, pp.171-174, 京都, 2015.
[3] Saeedeh Shekarpour, Edgard Marx, Soren Auer, Amit
Sheth, RQUERY: Rewriting Natural Language Queries
on Knowledge Graphs to Alleviate the Vocabulary Mismatch Problem, the Thirty-First AAAI Conference on
Artificial Intelligence (AAAI-17), San Francisco, CA,February 4-9, 2017.

図 2: メニューに関する知識（一部）4.2

塩分の低い/高いパスタは何ですか？

れますか？

クラス

391#&%!+5&391#&%!+5&j.2:カルボナーラ j.1552:hasAllergen ?x1.
}
SELECT DISTINCT ?x0 WHERE {?x1 j.1552:amount ?amount.
} ORDER BY ASC/DSEC(?amount) LIMIT 3*,0&#&4271%&&80

mc:サラダ
mi:ミックスグリル

生成された SPARQL クエリ?x0 j.1552:hasIngredient ?x1.
?x0 rdf:type j.1:パスタ.
?x1 rdf:type j.1:塩.

mc:料理
ハンバーグ
ステーキ

すか？

Degree 型

図 2 に本研究で利用するメニューに関する知識を示す．
*,0&#&4271%&&80

SELECT DISTINCT ?x1 WHERE {?x1 rdf:type j.1:トマト.
}

実験設定*,0&#&4271%&&80

カルボナーラはどんなアレルギー食材を含みま?x0 j.1552:hasIngredient ?x1.
?x0 rdf:type j.1:パスタ.

実験

399

自然言語質問文

基本型

トマトを使ったパスタはありますか？

喫茶店におけるメニューに関して，本研究で設定した 4 つの質問タイプに基づく自然言語より質問を受けた際の提案手法の有効性を検証する．

4.1

型

実験結果と考察

提案手法の実装を行い，表 1 の質問タイプの分類に挙げた「カルボナーラはどんなアレルギー食材を含みますか？」「トマトを使ったパスタはありますか？」「塩分の低いパスタは何ですか？」「どんなパスタがありますか？」「どんなアレルギー食材がカルボナーラには含まれますか？」の 5 文に対して実験を行った．表 272