言語処理学会 第24回年次大会 発表論文集 (2018年3月)

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

1

小林 一郎 †

お茶の水女子大学

森田 武史 ‡‡

中野 有紀子 ¶¶慶應義塾大学{g1420534, koba}@is.ocha.ac.jp ‡ t morita@keio.jp¶
y.nakano@st.seikei.ac.jp

はじめに

‡

山口 高平 ‡

成蹊大学

yamaguti@ae.keio.ac.jp

然言語文から抽出した情報に知識のリレーションを紐づけることに重点を置いた手法の提案を行う．また，現在，Linked Open Data (LOD) として様々な分提案手法を評価する具体的な実験として，ロボットが野の膨大な知識がデータとして Web 上に公開されて喫茶店でお客さんから注文をとる場面を想定して，そいる．これらの大量の知識を自然言語処理システムのこで発生する質問に回答するための知識を取得するた中に組み込むことができれば，自然言語理解におけるめにユーザの質問文から SPARQL クエリを自動生成背景知識として利用可能になるなど，従来のシステムすることを考える．

を超えた優れたシステムが実現されると考えられ，それらのデータを自然言語と結びつけるための様々な取り組みが進められている [1, 2, 3, 4, 5]．基本的な問

2

題として，自然言語の表現から LOD のように形式的本研究で提案する手法の概要を図 1 に示す.に記述されている知識にアクセスするために，自然言語文からデータレポジトリにアクセスするクエリ言語に変換できるようにすることを対象に研究が行われている．具体的には自然言語文からクエリ言語への変換提案手法
本研究の提案手法における，自然言語質問文からSPARQL クエリを自動生成する手続きについて以下に示す．

を，言語文に含まれる語彙に対する処理と構文木の処理の 2 つを通じて行い，自然言語文を SPARQL クエリに変換し，知識への問い合わせを可能にしている．
基本的な課題に対するアプローチは様々なものがあり，Wang ら [1] は，自然言語文の構文解析結果に対して，知識を記述するための語彙，WordNet などの一般的な辞書からなる語彙，ユーザが定義する語彙などを適用することで RDF トリプルに変換する手法を提案している．Zou ら [2] は，複数の RDF トリプルをつなぎ Semantic Query Graph なる知識グラフを構築し，断片的だった知識を複数のトリプルからなる知識と変換することで自然言語文の解釈の精度を高めている．
また，鈴木ら [3] は，自然言語文を構文解析した結果を論理式に変換し，そこから SPARQL クエリを生成する手法を提案している．Shekarpour ら [4] は，グラフ構造をした RDF 知識ベースに対して，語彙の曖昧性を含むクエリを知識で用意されている語彙を用いたクエリに自動的に書き直す手法を提案している．
本研究では，先行研究のアプローチを踏まえて，自― 615 ―1. 自然言語質問文の構文解析からの RDF トリプル候補の抽出
京都大学黒橋河原研究室で開発された日本語構
文・格・照応解析システム KNP1 を用いて，自然言語質問を解析し，語彙の依存関係および述語項構造を抽出する．述語項構造の解析結果の内，述語に対して項を 2 つ持つものから候補の RDF トリプル（以下，トリプルと呼ぶ）として（述語，項 1，項 2）を抽出する．トリプルがとる各単語について WordNet を用いてその類義語を調べる．
これは，Wang ら [1] の手法で用いているように，自然言語質問文中の表層表現や類義語がデータレポジトリ中の RDF トリプルを記述されている語彙になっている可能性があり，そのような知識に対して柔軟なアクセスができるように配慮するためである．
2. 述語から質問タイプを判別候補となる RDF トリプルの述語に基づき，質問
1 http://nlp.ist.i.kyoto-u.ac.jp/index.php?KNP

Copyright(C) 2018 The Association for Natural Language Processing.
All Rights Reserved.

,-*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
5HIKFOKFANE *(no *(!"#$%&'()*+,"-%./0123456

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

Qdefg

9-:!!"#$%&;;;;
;<,

Qdefg

hijkhijk;<,#-*7FXY0Z[bclm;;;;;<%

Q-Opqr5UFsltuDEFv[@ABC!,-. '(#'(")%
1232'4*/5145$'4*$%&#672.2*89-:!!"#$%& ;;;;**;<,=‚ƒ*H,%{|}0„…

9-:!!"#$%&;;;;;<,?-bcwFQegxyzH,%{|}DEF~[

R-*1SC.T3•€HF•n1232'4*/5145$'4*;<,*672.2*89-:!!"#$%& 9-,??:!@ABCDDEFGEH*;<,=

9-:!!"#$%&9-,??:!@ABCDDEFGEH

1232'4*/5145$'4*$)*+ 672.2*89-:!!"#$%& $)*+ ;<,=;<,

9-:!!"#$%&;FED;<,

図 1: 提案手法の概要
タイプを判別する．本研究で設定した述語の種類

か” と “は何ですか” の場合は直前にくる単語を回ごとの質問タイプを表 1 に示す（表 1 に示す質

答対象候補とし，それに対応する変数を SELECT

問タイプについては 3 章に詳述する）．この段DISTINCT 後の変数リストに加える．

階では，項 1，項 2 はまだ未確定なのでそれぞれ5. 知識への問合せによるリレーション候補の決定?x0,?x1 とする．例えば，述語が “含む” であれ

上記の処理によって作成した SPARQL クエリのば基本型と判定されることから，テンプレートとして {?x0 ????

????の部分を?rel としてリレーションの候補を?x1.} が与えられる．

知識に問い合わせることにより決定する．

3. 項の属性を判定

6. SPARQL クエリの完成

候補の RDF トリプルの項に注目して，その属性リレーションの候補の検索結果の中で，WordNetがクラス，インスタンス，リテラルのいずれであを使って調べておいたトリプルの各単語の類義語るかを判定する．クラスとインスタンスの判定

すべてを対象に Jaccard 係数を計算し，最も類似は，事前に作成した辞書との文字列一致で行い，度の高い候補を最適なリレーションとして決定す辞書に存在しない場合はリテラルと判断する．クる．最も類似度の高い候補が複数存在する場合

ラスと判定された場合はトリプルパターン {?xは，ジップの法則に従ってより希少な方を最適なrdf:type :クラス名 } を追加する. インスタンリレーションとして選択する．以上の手続きによスだった場合は ?x を :インスタンス名 に変り入力された自然言語質問文の内容を反映した換する．リテラルの場合は変数のままにしておく．

SPARQL クエリを完成させる．

4. 語彙表現からの回答対象候補の特定
質問文中の語彙表現によって質問の答えになる
回答対象候補を特定する．候補を特定する語彙3

表現として，“どんな”，“はありますか”，“は何ですか” を採用する．質問文中に “どんな” が現れた場合はその直後に来る単語を，“はあります

質問タイプ“含む”，“使う” などの述語は基本型としてテンプ

レートで {?x0 ????

?x1.} を与える．“低い” のよ

うな「程度」を問合せる述語は Degree 型とし，テン― 616 ―Copyright(C) 2018 The Association for Natural Language Processing.
All Rights Reserved.

表 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)O':;<::8&OPC8abc8XY
ZY

QQQQ

QQQQ

[\(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

4444456ABCSTU_VWJKLM
QQQQ!+&+,-*'.!-./,-*456*12+$+*3456**<RSGCTU: G-4T`89456

ABCD1,E2FG_=,>?24d@9JeJKLMN9:)D1,E2FG)=,>?24O!+&+,-*'.!-./,-**0**12+$+*3456*4444* *4578
9456!+&+,-*'.!-./,-**0**12+$+*3457*4444* *4568
9456

プレートで {?x0 ????

?x1.

?x1 j.1552:amount

問合せは「量」への問合せであるとする．ORDER BY

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

4444
4574444457

実験設定

4.1?amount.} を与える．本研究では，知識のドメインを料理のメニューに限定しているため，程度に対する4>?@ABC457

図 2 に本研究で利用するメニューに関する知識を示す．

ASC(?amount) LIMIT 3 により，量によって昇順に並

mc:料理べ上位 3 つを返すように設定している．“どんなパスハンバーグ
ステーキ

タがありますか？“の場合は，KNP を用いてトリプル*,0&#1%2+1の情報を得られないため，提案手法のステップ 1，2，5 を除いて SPARQL クエリを生成する．ある単語が!"#$%&'()*+,-+(.

mi:牛ひき肉_122“どんな” と “がありますか” の 2 つのキーワードに挟!"#%!34(.

まれた場合，該当する項目をすべて回答する List 型

100gに分類されるとする．“〜含まれますか？“のような受fi:11089

け身型の場合, 始めは能動態の述語と同じように項 1,mc:ハン
バーグ!"#"*-/+

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

mi:玉ねぎ_122
40g*,0&#&4271%&&80*,0#.6"+!"#$%&511+*)+(!"#$%&'()*+,-+(.

!"#%!34(.
391#&%!+5&*,0&#&4271%&&80*,0&#&4271%&&80399

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

mi:アレルゲ
ン_小麦_122

クラス

391#&%!+5&391#&%!+5&

fi:6153

mc:グラタンai:小麦インスタンスリテラル

項 2 をそれぞれ?x0,?x1 として SPARQL クエリに変図 2: メニューに関する知識（一部）形してゆき, ステップ５でリレーションの候補を知識に問い合わせ答えが返ってこなかったら, リレーショ
ンの矢印の向きを反対にする, つまり｛?x0 ?rel ?x1.｝の部分を｛?x1 ?rel ?x0.｝に修正して再度リレーショ

4.2

ンの候補を知識に問い合わせる．

実験結果と考察

提案手法の実装を行い，表 1 の質問タイプの分類に挙げた「カルボナーラはどんなアレルギー食材を含み4ますか？」「トマトを使ったパスタはありますか？」「塩実験分の低いパスタは何ですか？」「どんなパスタがあり喫茶店におけるメニューに関して，本研究で設定しますか？」「どんなアレルギー食材がカルボナーラにた 4 つの質問タイプに基づく自然言語より質問を受けは含まれますか？」の 5 文に対して実験を行った．表た際の提案手法の有効性を検証する．

2 に示すように，それぞれ適切な SPARQL クエリを生成し, 知識から正確な答えを得ることができた．

― 617 ―

Copyright(C) 2018 The Association for Natural Language Processing.
All Rights Reserved.

表 2: 生成された SPARQL クエリ型

自然言語質問文

基本型

カルボナーラはどんなアレルギー食材を含みまSELECT DISTINCT ?x1 WHERE {生成された SPARQL クエリ

すか？

j.2:カルボナーラ j.1552:hasAllergen ?x1.
}
SELECT DISTINCT ?x0 WHERE {トマトを使ったパスタはありますか？

?x0 j.1552:hasIngredient ?x1.
?x0 rdf:type j.1:パスタ.
?x1 rdf:type j.1:トマト.
}
Degree 型

SELECT DISTINCT ?x0 ?amount WHERE {塩分の低い/高いパスタは何ですか？

?x0 j.1552:hasIngredient ?x1.
?x0 rdf:type j.1:パスタ.
?x1 rdf:type j.1:塩.
?x1 j.1552:amount ?amount.
} ORDER BY ASC/DSEC(?amount) LIMIT 3
List 型

SELECT DISTINCT ?x0 WHERE {どんなパスタがありますか？

?x0 rdf:type j.1:パスタ.
}
受け身型

どんなアレルギー食材がカルボナーラには含ま

SELECT DISTINCT ?x0 WHERE {れますか？

j.2:カルボナーラ j.1552:hasAllergen ?x0.
}

おわりに5Conference ESWC 2007: The Semantic Web:
Research and Applications pp.473-487, 2007.

自然言語文から抽出した情報に知識のリレーションを紐づけることに重点を置いた，SPARQL クエリの

[2] Zou, Lei and Huang, Ruizhe and Wang, Haixun

自動生成のための手法を提案した．今後の課題として，and Yu, Jeﬀrey Xu and He, Wenqiang and Zhao,

質問タイプとして考えた４タイプ以外に Count 関数

Dongyan, Natural Language Question Answer-

や Sum 関数を使ったもの，否定表現，接続詞が入った

ing over RDF: A Graph Data Driven Approach,表現, サブクエリなども扱えるように拡張したい．質Proceedings of the 2014 ACM SIGMOD Inter-

問タイプの例文以外の自然言語質問文を入力とした実

national Conference on Management of Data,

験も行いたい．対話の中の文脈を考慮した SPARQL

pp.313–324, Snowbird, Utah, USA, 2014.

クエリの生成にも取り組みたい．

[3] 鈴木遼司, 三輪誠, 佐々木裕： 交通オントロジーを対象とした質問文の SPARQL クエリ変換, 第21 回言語処理学会年次大会, P2-13, pp.171-174,

謝辞

京都, 2015.

本研究は, 科学技術振興機構 (JST) 戦略的想像研究推進事業 (CREST)「実践知能アプリケーション構築[4] Saeedeh Shekarpour, Edgard Marx, Soren Auer,

フレームワーク PRINTEPS の開発と社会実践」の支Amit Sheth, RQUERY: Rewriting Natural Lan-

援によって実施した.

guage Queries on Knowledge Graphs to Alleviate the Vocabulary Mismatch Problem, theThirty-First AAAI Conference on Artificial

参考文献

Intelligence (AAAI-17), San Francisco, CA,
February 4-9, 2017.

[1] Chong WangMiao XiongQi ZhouYong Yu,PANTO: A Portable Natural Language Inter-[5] 高山隼矢, 三輪誠, 佐々木裕： 交通オントロジー

face to Ontologies, European Semantic Webに基づく質問応答データセットの構築, 第 23 回
言語処理学会年次大会, P14-3, 2017.

― 618 ―

Copyright(C) 2018 The Association for Natural Language Processing.
All Rights Reserved.