九州大学学術情報リポジトリ
Kyushu University Institutional Repository
自然言語によるデータベース問合せ文の意味表現方 法とその日本語問合せシステムへの応用に関する研 究
笠, 晃一
https://doi.org/10.11501/3120493
出版情報:Kyushu University, 1996, 博士(工学), 論文博士 バージョン:
権利関係:
自然言語によるデータベース問合せ文の 意味表現方法と
その日本語問合せシステムへの 応用に関する研究
平成8年8月
晃
笠
目 次
第l章 序 論
1 . 1 本研究の目的と意義 1 . 2 本研究の歴史的背景
1 . 2 . 1 意味表現に関する従来の研究
1 . 2 . 1 . 1 自然言語の意味表現に関する
従来の研究
1 . 2 . 1 . 2 自然言語によるデータペース問合せ
システムで使用される中間的な意味 表現に関する従来の研究
1 . 2 . 2 統語解析に関する従来の研究 1 . 2 . 3 自然言語インタフェースに
関する従来の研究 1 . 3 本論文の構成
1 1 7 7
9 1 2
1 6 1 9
第 2 章 自然言語問合せ文の意味表現方法 . . . . 2 1
2 l はじめに . . . . . . . . . . . . . . . . . 2 1
』つJ 2 中間的な意味表現を使用する意義について 22 2 2 1 自然言語とデータ操作言語の聞の
構造的差異を吸収できる . . . . 2 3
2 2 . 2 システムのポータビリティヘ寄与できる 26
2 2 . 3 談話処理が容易になる . . . . . 27
2 . 2 4 さまざまな知識の利用が容易になる 27
2 . 3 問合せ文に対するデータ操作言語の文の空所 27
2 3 . l 問合せ文で陽に指定されない情報 28
2 3 2 非談話的な空所 . . . . . . . . 29
2 . 3 . 2 . 1 属性値に対する属性名が
陽に指定されない場合 ・ ・ ・ ・ ・ 3 1 2 . 3 . 2 . 1 . 1 統語的な定義 ・ ・ ・ ・ ・ ・ 3 1 2 . 3 . 2 . 1 . 2 指定されていない
属性名の推定 ・ ・ ・ ・ ・ ・ 34 2 . 3 . 2 . 2 属性値の間に論理的結合がある場合 36
2 . 3 . 2 . 2 . 1 統語的な定義 ・ ・ ・ ・ ・ ・ 36 2 . 3 . 2 . 2 . 2 空所補完のための
中間言語の定義 39
2 . 3 . 2 . 3 組を表す句との比較を含む場合 ・ 40
2 . 3 . 2 . 3 . 1 統語的な定義 ・ ・ ・ ・ ・ ・ 40 2 . 3 . 2 . 3 . 2 空所補完のための
中間言語の定義 ・ ・ ・ ・ ・ 42 2 . 3 . 2 . 4 集計関数を表す句との
比較を含む場合 ・ ・ ・ ・ ・ ・ ・ ・ 45 2 . 3 . 2 . 4 . 1 統語的な定義 ・ ・ ・ ・ ・ ・ 45 2 . 3 . 2 . 4 . 2 空所補完のための
中間言語の定義 ・ ・ ・ ・ ・ 48 2 . 3 . 3 談話的な空所 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 49
2 . 3 . 3 . 1 検索条件が追加される場合 ・ ・ ・ 49
2 . 3 . 3 . 1 . 1 統語的な定義 ・ ・ ・ ・ ・ ・ 49
2 . 3 . 3 . 1 . 2 空所補完のための
中間言語の定義
2 . 3 . 3 . 2 表示項目が追加される場合
2 . 3 . 3 . 2 . 1 統語的な定義
2 . 3 . 3 . 2 . 2 空所補完のための
中間言語の定義
53
54 54
56
11
-1
・・BEA--
2 . 4 中間意味記述言語IML - ・ ・ ・ ・ ・ ・ ・ ・ ・ 59
つ 4 . l IMLの定義 - ・ ・ ・ ・ 59
LJ ・
2 4 . 2 IMLの表わす意味について 6 1
2 4 . 3 日本語問合せ文からIML表現への変換 68
2 . 4 . 3 1 単純な問合せ文に対する変換 7 1
2 . 4 . 3 2 より複雑な問合せ文に対する変換 75
2 . 4 . 3 3 談話的な空所を生ずる
問合せ文に対する変換 77 2 4 . 4 変換関数τによる空所の補完 80
2 4 . 4 . 1 属性名なし属性値に対する補完 82
2 . 4 . 4 . 2 論理的結合がある場合の補完 84
2 . 4 . 4 . 3 組や集計関数を表わす句に
対する補完 - ・ ・ ・ ・ ・ 85
2 . 4 . 4 . 4 談話的な空所に対する補完 86
2 . 5 検討 . . . . . . . . . . . . . . . . . . . 88
第3章 SAXアルコリズムのCによる実現 - ・ ・ ・ 90
3 . 1 はじめに . . . . . . . . . . . . . . . . . 90
3 . 2 文脈自由文法からの変換 . . . . . . 92 3 2 . 1 層状ストリームの構造 . . . . 92 3 2 . 2 二つのタイプの処理 - ・ ・ ・ ・ ・ ・ ・ ・ 94 3 2 2 タイプ1の処理 . . . . . . . . 96
3 . 2 . 2 2 タイプ2の処理 . . . . 9 7
3 . 3 一般的なDCG記法からの変換 - ・ ・ ・ 97
3 3 1 引数の付加 . . . . 97 3 3 2 補強項の付加 - ・ ・ ・ 98 3 4 トップダウン予測 - ・ ・ ・ ー ・ ・ ・ ・ ・ ・ ・ ・ 100
lV
3 5 DCGに課せられる制限 - ・ ー ・ ・ ・ 103
3 5 . l 終端記号と非終端記号の混在 103
3 5 . 2 環境のコピーの問題 - ・ ・ ・ ・ ・ ・ ・ ・ 104
3 5 3 補強項の後戻りの問題 - ・ ・ ・ 105 3 . 6 解析速度の比較実験 106
3 . 7 検討 . . . . . . . . 106
第4章 日本語によるデータペース問合せシステム
4 . 1 はじめに
109 109
4. 2 知識獲得部 • ーEよ --ム っfu
4 . 2 . 1 データペースから得られる知識 1 1 2
4 . 2 . 2 ユーザから得られる知識 . . . . 112
4. 2 . 2 1 主題 . . . . . 114
4 . 2 . 2 2 比較のための形容詞 1 14
4 . 2 . 2 3 動詞と格助詞 1 1 6
4 . 2 . 2 4 接尾語 . . . . 118
4. 2 2 5 属性名の同義語 . . . . 120
4 . 2 . 2 6 一般的な同義語 . . . . - ・ ・ ・ 120
4. 3 形態素解析部 . . . . . . 122
4. 4 統語 ・ 意味解析部と意味トランスレータ 124
4 . 4 . l 統語 ・ 意味解析部 . . . . 124
4 . 4 . 2 意味トランスレータ 125
4 . 5 エコーバック生成部 12 5
4 . 5 l エコーバック生成部の役割 12 5
4 . 5 2 穴埋め方式による文の生成 126
4 6 検討 128
第5章 結 論
5 . 1 本論文の総括 5 . 2 今後の展望
129 129 132
謝 辞 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 137
参考文献 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 138
付録 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 147 付録l 中間意味記述言語IMLの定義(全体) ・ ・ ・ 148 付録2 日本語問合せ文に対する統語 ・ 意味規則(全体) 1 5 1
付録3 I M LからS Q Lへの変換関数τ (全体) ・ ・ 157
V
図1 . 1 図2 . 1 図2 . 2
図2 . 3 図2 4
図2 . 5
図2 . 6 図2 . 7
図2 . 8 図2 . 9 図2 . 1 0
図2 . 11 図2 . 1 2 図2 . 1 3
図2 . 1 4 図2 . 1 5 図2 . 1 6
図および表の一覧
自然言語検索文と対応するS Q L文の例 社員に関する関係データベース
Vl
日本語問合せ文に対する統語解析木と対応するS Q L 文
発生原因に関する空所の分類
属性値に対する属性名が陽に指定されない場合の統語 規則(部分)
「福岡の人の名前は? Jと I 1 5 0センチより低い人 の名前は? Jに対する統語解析木
属性値の間に論理的結合がある場合の統語規則(部分)
「住所が福岡か熊本である人の名前は? Jと 「年令が 2 0以上かつ3 0以下の人の名前は? Jに対する統語 解析木
属性値の間に論理的結合がある場合の意味的解析木 組を表す句との比較を含む場合の統語規則
「名前が宮崎である人より給与とボーナスの和が多い 人の名前は? J に対する統語解析木
組を表す句との比較を含む場合の意味的解析木 集計関数を表す句との比較を含む場合の統語規則
「給与とボーナスの和が平均の2倍より多い人の名前 は? Jに対する統語解析木
集計関数を表す句との比較を含む場合の意味的解析木 検索条件が追加される場合の統語規則
「そのうち趣味が読書である人は? J に対する統語解
図2. 1 7
図2. 1 8
図2. 1 9
図2. 2 0 図2. 2 1 図2. 2 2 図2. 2 3
析木
「趣味が音楽の人も表示せよ」に対する統語解析木 検索項目が追加される場合の意味的解析木
表示項目が追加される場合の意味的解析木 表示項目が追加される場合の統語規則
「趣味も表示せよ」に対する統語解析木 中間意味記述言語IMLの定義(部分)
日本語問合せ文に対する統語 ・ 意味規則(部分)
Vll
図2. 2 4 図2. 2 5
統語規則の範鴎と中間意味記述言語の範轄の対応関係 条件名詞句を形成する統語解析木(その1 )
図2. 2 6 単純な検索文に対する統語解析木
図2. 2 7 条件名詞句を形成する統語解析木(その2)
図2. 2 8 属性値に対する属性名の欠けた問合せ文に対する統語
図2. 2 9 図2. 3 0 図2. 3 1 図2. 3 2 図2 33
解析木
論理的結合のある条件名詞句に対する統語解析木
「給与とボーナスの和Jに対する統語解析木
組集合を表す句との比較を含む場合の統語解析木
「平均の2倍」 に対する統語解析木
集計関数を表す句との比較を含む場合の統語解析木 図2. 3 4 検索条件が追加される場合の統語解析木
図2. 3 5 表示項目が追加される場合の統語解析木 図2. 3 6
図3. 1 苅3. 2 図3. 3 図3. 4
IMLからS Q Lへの変換関数τ (部分) 層状ストリームを構成する構造体の定義 構造体による層状ストリームの構成
処理の一般的な記述
引数を運ぶために拡張された構造体
5 6 7 8 9 1 2 3 4 5 6 7 8 9 3 3 3 3 3 4 4 4 4 4 4 4 4 4 図 図 図 図 図 図 図 図 図 図 図 図 図 図
Vlll
引数を運ぶための構造体と引数用配列 文法l
範時ve rbに対する補強項の処理 文法2
到達可能性を用いた範時detの処理
データペース問合せシステムの全体構成 社員に関する関係データベース
主題の定義画面
比較のための形容詞の定義画面 単独の動詞の定義画面
航空機の時刻表
動詞と格助詞の組合せの定義 援尾語の定義画面
属性名の同義語の定義画面 図4 . 1 0 一般的な同義語の定義画面
図4 . 1 1 エコーバック生成部の出力例
表3 . 1 表3 . 2
到達可能性関係
処理時間におけるS A XとS A X - Cの比較
第1章 序 論
本論文は、 日本語によるデータペース問合せシステムの試作研究 をまとめたものである。 ただし、 システムの開発に当たって、 問合 せ文で指定されていない属性名などの情報を適切に補完する中間的 な意味記述言語と高速に動作する統語 ・ 意味解析システムが必要と なったので、 これらに関する研究も併せて述べられている。 本論文 で行なった研究のうち、 最も重要なものは、 中間的な意味記述言語 に関するものである。 自然言語によるデータペース問合せシステム において、 問合せ文は最終的に形式的なデータ操作言語の文へと変
換される。 しかし、 多くの場合、 このデータ操作言語の文には空所
が存在し、 この空所を補完することなしにはデータペースの検索を 行なうことは不可能である。 本論文では、 このような空所を系統的 に補完できる中間的な意味記述言語を提案している。 なお、 本章で は、 本研究を行なった動機について述べる。 さらに、 意味表現、 統 語解析および自然言語インタフェースの分野に関する従来の研究を 概観し、 本研究で解決すべき問題点を明確にして、 本研究の位置づ けを行なう。
1 . 1 本研究の目的と意義
データベースとは、 図書館、 旅行代理店、 病院、 銀行などの特定 組織の応用システムによって使用される、 記憶された運用データの 集まりであり、 これに、 コンビュータや補助記憶装置などのハード ウェア、 データベースにアクセスするためのソフトウェア、 および、
データベースの利用者の三つを含めたものを、 データベースシステ ムという[1 . 1 ]。 データベースシステムにとって最も重要なのは 、
Q
そのデータがアプリケーショ ンから独立していることである。 これ
により、 組織のさまざまな場所で稼働しているアプリケーシ ョ ンの 扱うデータを 、 一箇所に集めて集中的に制御することが可能になり 、 データの冗長性の減少や、 データ聞の矛盾の回避などに寄与するこ とができる。 また、 データが一局集中管理される結果として、 この ようなデータは複数利用者によって共用されることになる。 データ ベースシステムに対する社会的要求は大きく、 今までにも様々な種
類のシステムが研究され開発されてきた。 そのため、 特に大型計算 機の分野で大きな市場を形成し、 現在では広く一般に普及している。 ただし、 普及しているとは言っても、 各家庭のレベルにまでは至っ
ておらず、 図書館や旅行代理店などの組織体は自分自身で入力した データを内部的にのみ利用しているケースが多いようである。 各家 庭のレベルの人々も、 図書館にどのような本があるかを知りたいで あろうし、 旅行先や宿泊場所を決定するのに旅行代理店の情報を利 用したいであろう。 一方では、 パーソナルコンビュータの普及や通 信ネットワークの整備など、 そのような情報の利用できる社会的基 盤も整いつつある。 それにも関わらず、 データベースの利用が各家 庭のレベルまで浸透していないのは、 一つには、 データペースの検 索に高度な知識を要するからであろうと思われる。 特に、 データ操 作言語の修得は一般の人々にとっては困難なものである。 たとえば、
関係データベースと呼ばれるシステムの場合、 S Q LやQ B Eとい ったデータ操作言語がよく使用されるが、 ともに修得するのに時間 がかかるし、 また仮に修得できたとしても、 検索内容によってはか なり複雑な問合せになる可能性がある。 図1 . 1は、 「社員J とい う一つの表からなる社員データベースに対する質問を日本語とS Q Lの両方で記述したものである。 この場合、 S Q Lによる表現は日
ネ上
名前 性別 所属 身長 給与
村上 男 総務 172 280.000
江藤 男 営業 164 350,000
島田 女 営業 157 230,000
竹下 男 開発 16 6 250,000
浅田 女 総務 149 380.000
宮崎 女 総務 152 240,000
田中 男 開発 18 5 300,000
社員データペースの例
日本語問合せ文:
年間賃金が田中さんより多い営業部の男の名前は?
SQL問合せ文:
s e 1 e c t 名前 f r 0 m 社員
\ìvhe re
(給与* 1 2 +ボーナス)>
(select (給与* 1 2 +ボーナス)
w h e r e 名前 "田中") and 所属 "営業"
and 性別 "男"
ボーナス 1,500,000 1,800,000 1,200,000 1,300,000 2,000,000 1,250,000 1,600,000
図1. 1 自然言語検索文と対応するSQL文の例
3
4
本語のものより複雑になる 。 このように、 データペースシステムの さらなる普及が阻害されているのは、 データ操作言語に一因がある と思われるのだが、 そのような中で注目されているのが、 データベ ースの自然言語による検索である。
データペースを自然言語によって検索することは、 言語能力に欠 陥のない限り誰でもすぐにこれを行なえる。 また、 どのような検索 内容にしろ、 自然言語で表現するのは比較的簡単である。 したがっ て、 自然言語によるデータペース検索の研究が進めば、 誰でも家庭 にいながらにして図書館や旅行代理店の情報を利用することができ るようになるであろう。 さらに、 この研究はエージェント(繁雑な 専門的作業を代行してくれるソフトウェア)の研究とも関連してし る。 計算機ネットワークの規模が小さいときは、 必要な情報がどこ にあるかすぐに判断できるが、 規模が大きくなるにつれ、 どこにど のような情報があるのか判断できなくなってくる。 エージェントは このような場合を想定して考えられたシステムであり、 情報の格納 場所や検索方法などに関する知識を有している。 したがって、 これ に対して自然言語で尋ねれば、 どのような内容であれ、 自分で情報 を探して質問に答えてくれるのである。 エージェントが実現すれば、
誰でもすぐにどのような情報でも得ることができるようになるわけ であり、 社会に与える影響も少なくないと思われる。
自然言語によるデータペース問合せシステムを作成しようとする とき、 さまざまな問題が発生するが、 その中でも最も重要なものの ーっとして、 陽に記述されていない情報の補完を挙げることができ るだろう。 自然言語の問合せ文は最終的にデータ操作言語の文に変
換されるが、 このとき、 完全なデータ操作言語の文が得られず、 い くつかの空所が存在することがよくある。 陽に記述されていない情
E 、J
報とは、 この空所のことである。 自然言語の問合せ文自体に省略や 照応が存在する場合には当然このような空所が発生し易いが、 問合 せ文に省略が見られなくとも、 空所が発生する場合がある。 たとえ
ば、 図1. 1の社員データペースに対する次のような問合せ文を考 えみよう。
身長が平均より低い男の人の名前を表示せよ。
この文には、 通常の意味での省略は見られないが、 これからデータ 操作言語の文を作成すると、 いくつかの空所が発生してしまう。 デ ータ操作言語としてS Q Lを与えた場合、 上の文は次のように変換
されるであろう
select名前
w h e re 身長 < (select avg(?))
an d ? = "男H
ここに、 クエスチョンマーク( ? )は空所を表わしている。 このよ うに、 空所の発生は頻繁に起こるので、 何らかの形でこの空所を補 完してやる必要がある。 本研究では、 自然言語とデータ操作言語と の聞に中間的な意味記述言語を設定し、 この意味記述言語を介して 空所の補完を行なうことにした。 このような中間的な言語を考える 利点は二つある。 一つは、 空所の補完が容易になるということであ るが、 もう一つ、 自然言語からデータ操作言語への変換自体もやり 易くなるということもある。 なお、 このような中間的な言語はその 性質上、 自然言語やデータ操作言語との聞の変換が効率的に行なえ
6
るものでなければならないが、 本論文で提案する意味記述言語はと の点も考慮して設計されている。
自然言語によるデータペース検索システム自体も、 さまざまな試 作が行なわれているが、 従来のシステムは、 使用前に煩わしい準備 が必要だったり、 入力文に特殊な記号を併用しなければならなかっ たりと、 ユーザにとって本当に使いやすいシステムとはなっていな かった。 また、 検索結果が信用できないシステムもいくつかある 。 本研究では、 これらの欠点を克服し、 ユーザが手軽に安心して使用 できるシステムをめざした。 たとえば、 知識獲得部によりデータベ ースからいくつかの情報を自動的に得ることにより、 使用前の準備 を大幅に軽減している。 エコーバック生成部では、 入力された日本 語の質問文をシステムが解釈した通りの日本語に変換して表示して いるが、 これは、 入力文から特殊な記号を排除する効果と信頼する に足る検索結果を得る効果の二つがある。 形態、素解析部で行なって いる未知語の処理も、 特殊な記号を排除する役に立っている。
ユーザにとって使いやすいシステムというものを考えるとき、 受 理可能な文の範囲を充分広いものにするととも重要である。 しかし ながら、 受理可能な文の範囲を広げると統語解析処理に時間が掛か るので、 システムの応答速度が遅くなり、 計算機との円滑なコミュ
ニケーションが阻害されてしまう。 このようなジレンマを解決する 一つの方法は、 高速で動作する統語解析システムを作成することで ある。 今回は、 このために統語解析システムの研究も行なった。 具 体的には、 松本らが開発したS AX[1.2]という統語 ・ 意味解析の ためのシステムをC言語用に再構成した。 S A XはD C G記法で記 述された統語 ・ 意味規則をP r 0 1 0 gプログラムへと変換するト ランスレータであり、 生成されたプログラムは高速で動作すること
が知られている。 しかし、 高速で動作すると言っても、 P r 0 1 0
gプログラムなので限界がある。 そこで、 本研究では、 C言語のプ ログラムを生成するようなS A Xトランスレータを作成した。 第3 章の本編では、 C言語による具体的なアルゴリズムを示すとともに 、 DCGに課せられる制限についても言及している。
1 . 2 本研究の歴史的背景
本節では、 本研究で解決すべき問題点を明確にするため 、 意味表 現、 統語解析および自然言語インタフェースに関する従来の研究を
概観する。 このうち、 統語解析の研究に関していえば、 これは文脈 自由文法で記述された句構造規則を対象にしたものが大部分である。
それは、 文脈自由文法が多項式時間で処理できることが保証されて いるからであり 、 また、 補強文脈自由文法[1 . 3 Jなどの拡張された 文法を用いれば、 実用的にも充分な記述力を持ったものになり得る からである。 したがって、 以下で述べる統語解析の歴史は文脈自由 文法に関するものに絞ることにする。
1 . 2 . 1 意味表現に関する従来の研究
この節では、 まず、 自然言語の意味表現に関する一般的な研究の うち、 自然言語によるデータペース問合せシステムで使用されてい る中間的な意味表現に関係しているものについて述べ、 その後、 そ れらの表現が問合せシステムの中間的な意味表現としてどのように 使用されているかについて説明する。
1 . 2 . 1 . 1 自然言語の意味表現に関する従来の研究
意味ネットワーク[1.4J[1.5Jは、 非常に直観的で素朴な考え方に
白
基づいているが、 その割には強力で様々な知識を表現することがで きる。 これは、 節点(点あるいは丸印や四角で描かれる)と、 この 節点を互いに結ぶ弧(矢印で描かれる)から構成される 。 節点も弧 もラベルを持つことができる。 節点に割り当てられるのが問題領域 の対象や概念、 状態などであり、 弧に割り当てられるのがそれらの
聞の関係である。 意味ネットワークの場合、 自然言語の文から比較 的簡単に目的の表現に変換することができるが、 自然言語の意味を
一義的に表わせるかどうかというと問題がある。 とくに、 「すべて のJ や 「存在するJなどのいわゆる限量子に関する表現をうまく扱 えない点は重大である。 また、 この表現は推論処理にも適していず、
限られた推論しか行なうことができない 。
意味ネットワークとは別の流れとして論理式[ 1 . 6 Jがある 。 論理 式には命題論理と述語論理があるが、 自然言語の意味を表現するに は命題論理では不充分で、 通常は述語論理が使用される 。 述語論理 とは、 述語と個体定数または変数を用いて記述される式であり、 た
とえば、 「ポチは犬である」 という文の意味を、 " 犬(ポチ)" の
ように記述する。 厳密にいうと、 述語論理の中にも一階の述語論理 と二階以上の高階の述語論理とが存在し、 「花子は歩く魚がいると 信じている」 のような文は高階の述語論理を用いないと記述できな い 。 さらに、 「日本の総理大臣は男性である」 のように時間によっ て真偽値が変わるような文は様相論理というものが必要となる。 M ontagueは、 高階の述語論理に様相論理や時制論理などを加え た 内包論理というものを自然言語の文の中間的な意味として選び、 実
際に自然言語文から内包論理へと変換するアルゴリズムを示してみ せた[1.7J[1.8J。 したがって、 自然言語の文から論理式への変換ア ルゴリズムは一応存在するといってもよいだろう。 ただし 、 このよ
ヨ
うな研究の多くは英語を対象としており、 日本語の文から論理式へ の変換に関する研究[ 1 . 9 ]はそれほど進んでいない。 また 、 自然言 語文の持つすべての意味を一義的に表現できるかどうかであるが、
これもかなり広範囲の文の意味を唆昧性なく表現できると考えてよ いだろう。 さらに、 一階の述語論理に対しては導出原理が適用でき て、 推論や問題解決を進めることもできる。 しかしながら、 高階の 述語論理や様相論理などに対しては、 このようなアルゴリズムはあ まり知られておらず、 推論までやろうとすると論理式で扱える文の 範囲はかなり制限されたものになる。
1 . 2 . 1 . 2 自然言語によるデータペース問合せシステム
で使用される中間的な意味表現に関する従来の研究
次に、 上で述べたような意味表現が、 自然言語とデータベース操 作言語の聞の中間的な表現として、 どのように使用されているかを 概観してみる。 ただし、 その前に、 中間的な意味表現が備えるべき 条件として、 筆者の考えを記しておこう。
a . データ操作言語と同等かそれ以上の記述力を持っており、 特 に限量表現が可能なこと。
b . 自然言語およびデータ操作言語との聞の変換が効率的に行な えること。
c . 省略あるいは空所の補完が系統的に行なえること。
条件bにおいて、 変換のためのアルゴリズムが存在することは暗黙 の前提としている。 また、 条件cにおいて、 空所というのは節1. 1で も述べたように、 自然言語問合せ文に対応するデータ操作言語の文
1 0
を考えたときに見られる、 情報の欠落した部分のことである。
データベースに対する自然言語インタフェースの中間的な意味表 現として、 最もよく使用されているのは、 一階述語論理ないしはそ れを拡張したものである。 たとえば、 Qu e s t[1.10Jというシス テムではアルファ式[l.llJが、 KAUS[1.12Jというシステムで は多層論理[1.13Jが使用されているが、 ともに、 一階述語論理を拡 張したものだと考えることができる。 また、 加藤の提案する意味表 現言語L[1.14Jも、 主としてデータベース検索用自然言語インタフ ェースの中間的な意味表現として使用することを目的に作成された ものであるが、 これも一階述語論理の拡張である多ソート論理[1 . 1 5Jを集約演算に対してさらに拡張したものである。 このように 、 一
階述語論理を中間的な意味表現に用いている例は多いが、 一階述語 論理は自然言語や通常のデータ操作言語と構造的に大きく異なるの で、 それらとの間の変換が容易ではないし、 変換アルゴリズムが存
在したとしても効率はあまり良くないであろう。 一階述語論理が宣 言的であるのに対し、 S Q Lなどのデータ操作言語が手続き的であ るのも、 変換をさらに困難にしている。 単純な質問文は何とか処理 できるにしても、 質問文が複雑になったときどこまで処理できるか は不明である。
一階述語論理ほどではないが、 意味ネットワークも中間的な意味 表現として良く使用される。 たとえば、 機能連鎖構造[1.16Jや共有 有向グラフ[1.17Jは、 意味ネットワークの一種と考えられる。 この うち、 機能連鎖構造は、 データベース検索に限らず自然言語インタ フェース一般に対する中間的な意味表現を目指して開発されたもの である。 また、 共有有向グラフは、 さらに一般的な自然言語の意味 表現を与えるものである。 しかしながら、 これらは意味ネットワ
1 1
クを元にしているため限量表現が扱えず、 このことはデータベーー ス
検索においては致命的な欠点となる。
一階述語論理や意味ネットワーク以外にも、 中間的な意味表現が いくつか提案されている 。 たとえば、 世界モデル問合せ言語[1.18J は、 複数の表を持つ関係データペースに対する自然言語問合せ文を 処理するために設計された意味表現であり、 フレームによく似た構 造をしている。 また、 S 1 MP LA[1.19Jというシステムでは、 条 件式のリストに相当するフォームと呼ばれる意味表現が使用されて いるし、 dBma t e[1.20Jというシステムでは、 S T Dと呼ばれ る木構造を意味表現として用いている。 しかしながら、 これらの中 間的な意味表現はデータ操作言語に比べ記述力がかなり低く、 限量
子表現はもとより、 S Q Lでいうところの副問合せを含んだ表現を 記述できない。 NL 1 [1.21Jというシステムのように、 空所を持っ
たS Q Lをそのまま中間的な意味表現として使用しているものもあ
る 。 このような意味表現では、 記述力は高くなるものの、 空所を補 完する手続きが信頼性の低いものにならざるを得ない。 S Q Lまで 変換すると空所の補完に必要な情報がかなり失われてしまうからで ある。 実際、 NLIにおいては、 「検索条件中最左に現われる属性 名を用いて空所の補完を行なうことが多いJ と言っているが、 この ような補完のやり方にはかなりの無理がある。
中間的な意味表現とは異なるが、 ヤチマタ[1.22JやLADDER
[1.23Jなどで採用している意味表現にも興味深いものがある。 これ
らのシステムでは、 問合せ文を構成する様々な句の意味として、 関 係表もしくはこれに類似したものを使用している。 したがって、 統 語構造が関係表間の演算に対応づけられ、 統語解析が進むにつれて データペースの検索も進んでいく。 そして、 質問文全体の解析が終
1 2
わったときに、 データベースの検索も終了しているという訳であるu このような考え方は、 中間的な意味表現を必要としないし 、 かなり 高度な内容の検索を行なうことも可能にする。 しかしながら、 統語
構造が演算に対応づけられているため、 比較的固い質問文しか受理 できないし 、 談話処理もやりにくい。 また、 多くのデータベース管 理システムでは、 検索を高速に実行するために与えられたデータ操 作言語の文を最適化する機能を持っているが、 上記のような考え方 だと、 関係表に対する演算の}I頃序が自然言語問合せ文の統語構造に よって決定してしまい、 このような機能を使用することができなく なる。
以上見てきたように 、 既存の中間的な意味表現は、 記述力が不充
分だったり、 自然言語やデータ操作言語との間の変換が効率的に行 なえなかったり、 空所の補完が正確かつ系統的に行なえなかったり と、 実用に耐え得るものはないようである。 本研究では、 これらの
欠点を持たないような中間的な意味表現の開発を目指した。
1 . 2 . 2 統語解析に関する従来の研究
文脈自由文法に対する統語解析の方法は、 統語解析木の作成法に 応じて、 いくつかの観点から分類できる。 まず、 解析木を作成する 方向に応じて、 下降型と上昇型に分類できる。 解析木を上の方から 作成するのが下降型であり、 その逆が上昇型である。 また、 解析途 中で複数の可能性が生じたときの対処の仕方により、 後戻り型(縦 型)と並行型(横型)に分類することもできる。 後戻り型というの は、 複数の可能性の中から一つを選んで解析を進めて行き、 うまく 行かなかったらまた別の可能性を選ぶというやり方である。 これに 対して、 並行型では複数の可能性を同時に進めて行く。 さらに 、 途
1 3
中結果を再利用するかどうかで、 途中結果登録型と非登録型に分類 することもできる。 途中結果を再利用するというのは、 一度作成し た部分解析木を二度と作成しないということであり、 効率的な解析 に欠かせない技術である。
後戻り型の解析法は、 下降型としてATN[1.24JやDCG[1.25]
が、 上昇型としてシフトリデユース法[1.26Jなどが知られているが、
たいていは途中結果を登録しないタイプであるので効率はあまりよ くない。 ただし、 上昇型の一種であるB U P [1.27Jというシステム は、 後戻り型には珍しく途中結果を登録するだけでなく、 後ほど述
べる到達可能性という概念も利用しているので、 それなりの効率を 維持している。
並行型の解析法は、 途中結果を登録しながら解析を進めるのが普 通であり、 効率よく解析できるので、 多くのものが並行型に属して いる。 たとえば、 最も基本的なアルゴリズムとして、 CYK法[1 . 2 6JとE a r 1 e y法[1.28Jを挙げることができょう。 この二つのア ルゴリズムの基本的な相違点は、 解析木作成の方向である。 つまり、
CYK法が上昇型のアルゴリズムであるのに対して、 E a r 1 e y 法は下降型である。 また、 E a r 1 e y法は部分的に上昇型のアル ゴリズムを用いることにより、 予測部分解析木というものを作成し 利用するので、 通常はCYK法よりもE a r 1 e y法の方が効率的 である。
同じ並行型でも、 到達可能性[1.29Jに関する表を用いれば、 より 効率的な解析が期待できる。 たとえば、 L 1 N G 0 L [1.30J[1.31J という文法記述言語があるが、 この解析に使用されているアルゴリ
ズムは、 CYK法に到達可能性を導入したものである。 到達可能性 の定義を文脈自由文法<V ,T,P,S>に対して記述しておこう。 ただ
1 4
し、 Vは非終端記号の有限集合、 Tは終端記号の有限集合、 Pは書き 換え規則の有限集合、 Sは開始記号をそれぞれ表わしている。 この とき、
* *
A 二今 B α , α ε (VUT), A,BEV
が成り立つならば、 BからAへ到達可能であるという。 LINGO Lのアルゴリズムは、 この到達可能性を、 部分的に下降型の処理を 行なうことで利用している。 この到達可能性を利用したアルゴリズ ムとして、 他にもP AM P S [1.32Jなどが知られている。 P A M P Sも上昇型でありLINGOLのアルゴリズムに類似しているが、
このシステムはさらに連接可能性と呼ばれる先読み情報を利用して 無駄な解析を抑えている。 連接可能性の定義は、 先の文脈自由文法
<V ,T,P, S>を用いて与えることができる。 つまり、
* *
S 二今 α AB ß , α ,ßE(VUT), A,B ε V
が成り立つとき、 BはAに連接可能であるという。
到達可能性を利用したアルゴリズムのうちでも、 完全統制解析[1 .2 9 Jを行なうものはさらに解析効率がよくなっている。 完全統制解 析をチャート法[1.33Jの予備知識なしに説明するのは困難であるが、
簡単に概略だけ述べると次のようになるだろう。 通常のアルゴリズ ムでは、 未完成の部分解析木の空所を埋める場合に可能性のあるも のをすべて試そうと する。 しかしよく考えてみると、 到達可能性に よって間接的に空所と関連づけられる部分解析木だけを試せばよい
1 5
ことが分かる 。 完全統制解析を行なっている場合にはこのようなよ り適切なものだけが試されるのである。 この完全統制解析を行なう アルゴリズムとして、 SA X [1.34J[1.2Jや一般化L R法[1.35Jな どが知られている。 SA Xは上昇型のチャート法をもとにして、 完 全統制解析を行なうよう改良されたシステムである。 ここに、 チャ ート法とは統語解析アルコリズムそのものではなく、 統語解析の枠 組みを示すものであって、 上昇型と下降型のどちらのアルゴリズム でも実現することができる。 これらに対し、 一般化L R法というの はコンパイラなどでよく使用されるL R法に対し一般の文脈自由文 法が使えるよう拡張したものであり、 完全統制解析に加えて先読み を行なうので非常に優れた解析効率を持っている。
以上、 今までに提案された主な統語解析アルゴリズムを意味解析 の観点からは切り離して概観してきた。 しかしながら、 先にも述べ たように、 自然言語理解システム全体から見れば意味解析を同時に 行なえるアルゴリズムのほうが効率的であるのは明らかなので、 こ の観点も無視するわけにはいかない。 上に述べた統語解析アルゴリ ズムのうち、 拡張文脈自由文法が処理できるもの、 つまり意味解析 を同時並行的に行なえるものは、 DCG、 ATN 、 BUP、 L I N G 0 L 、 PAMPS、 SAXの6つである。 このうち、 SAXは上 昇型並行型の統語解析アルゴリズムであり、 到達可能性を使用した 完全統制解析を行なうので最も効率がよいと考えられる。 しかし このシステムはDC Gで記述された文法規則をSAXアルゴリズム
のP r 0 1 0 gプログラムへと変換するので、 せっかくの効率のよ
さがP r 0 1 0 gによって犠牲になっている。 さらに、 P r 0 1 0
gプログラムは他言語のプログラムとリンクすることが困難である が、 本研究で意図している最終的なシステムはC言語で記述するこ
1 5
とにしているので、 この点は致命的である。 このような理由から、
本研究ではSA Xを改良して、 D C GをSA XアルゴリズムのCプ ログラムへと変換するシステムを作成した。 これを、 ここではSA
X -Cトランスレータと呼ぶことにする。
1 . 2 . 3 自然言語インタフェースに関する従来の研究
古いほうから挙げれば、 まず、 MITで開発されたBASEBA L Lというシステムが有名である。 これは、 野球のアメリカン ・ リ ーグに関する質問を受けつける。 また、 Carbonellによって開発さ れたSCHO L AR[1.36]というシステムもある。 これは、 教育用 のシステムであって、 南米の地理やARPA計算機ネットワークに
関する知識を持っている。 このシステムの特徴は、 学生と計算機の 双方とも質問を発することができる点にある。 ただし、 これらのシ ステムの自然言語処理部はアドホク的に作られており、 対象領域に 固有のものとなっている。 つまり、 せっかく作成された自然言語処 理部も他のシステムに転用することはできない。
これに対して、 1 970年代の中頃から、 もっと汎用性のある自 然言語処理部を組み込んだシステムが作成され始めた。 これらのシ ステムは、 自然言語処理部が知識ベースからかなり独立しており 、 いくらかの変更を加えれば他のシステムでも使えるようになってい る。 このようなシステムの代表的なものとして、 Wood sのLU AR[1.37]がある。 これは、 アポロが採集した月の岩石標本に対す る質問応答システムであり、 地質学者を対象に使用実験が行われて いる。 そのほか、 医療診断システムのBAOBAB[1.38]や旅行に 関する質問応答システムのGUS[1.39]なども、 このタイプに属し ている。
1 7
さらに時代が下ると、 自然言語処理部自身のモジュール化が進み、
統語解析部、 意味解析部、 推論部などに分割して作成されるように なる。 そして、 さらに汎用化が進み、 自然言語処理部は自然言語イ
ンタフェースシステムとして独立する。 ここまで来ると 、 単に知識 ベースを入れ替えるだけでさまざまな内容の質問応答システムが作 成可能である。 たとえば、 HendrixのL 1 FER[1.40Jというシ ステムがある。 このシステムの開発目的は、 人間と機械との間の柔
軟なコミュニケーショ ンを実現することであった。 そのために、 省 略文や同義語の処理などが行なえるようになっている。 このシステ ムはその後、 商用のQ&Aというシステムとして結実している。
日本でも知識ベースやデータペースから完全に独立したL 1 F E Rのようなシステムは作成されており、 たとえば、 藤崎らによるヤ チマタ[1.22Jは代表的である。 これは、 関係データペースに対する 質問応答システムであり、 やはり、 省略文や同義語、 畷昧性などを 処理する機能を持っている。 したがって、 かなり自由度の高い自然 言語を用いてデータベースの検索を行なうことができる。 しかしな がら、 このシステムは、 準備として名詞表や動詞表と呼ばれるもの をユーザが作成しなければならず、 関係データベースの形でデータ が蓄積されていたとしても、 すぐに自然言語によって検索できるわ けではない。 また、 そのような表の作成には、 多少なりとも統語的 な知識が要求されるので、 誰でも容易にこれを行なえるというわけ でもない。 この点は、 パーソナルコンビュータ上のデータベースシ ステムが普及して、 データベースの作成者と検索者が同一ユーザで あることも珍しくない現在にあっては、 大きな問題となる。
ヤチマタ以外にも、 関係データベースを対象とした日本語による 検索システムはいくつか作成されている。 たとえば、 服部らによっ
1 8
て開発されたN L 1 [1.21Jというシステムは、 名詞表などを作成す る必要はないので、 ヤチマタのような問題は生じない 。 しかし、 こ のシステムは文字列型の属性値を鈎括弧によって囲んで入力しなけ
ればならず、 初心者には使いにくいシステムとなっている 。 また 、 同義語や動詞の定義も対話的に行なわなければならないので操作性 に欠け、 唆昧性の解消に関する考慮も不充分である。 この他にも、
伊藤らによるdBma t e[1.20Jというシステムがあるが、 受理可 能な文の範囲が極端に狭く実用的ではない 。 また、 意味の媛昧な文 は、 係り受けをはっきりさせるために、 句のまとまりをを括弧でく くって入力しなければならず、 文法的知識のない人には使いづらい ものとなっている。
以上述べたように、 既存の自然言語によるデータベース検索シス テムは、 特に日本語を対象としたものについては、 実用レベルに達
したものはほとんどないということができる 。 本論文では、 これら の現状を踏まえて、 初心者でもすぐに利用可能な日本語によるデー タペース検索システムを試作した 。 検索対象としては、 パーソナル
コンビュータ上のデータベース を考えているので、 特にデータベー スの作成者と検索者とが同一ユーザである場合も考慮に入れ、 試作 に当たって、 次のような点に留意した。
a . システムを利用するための準備がほとんど必要ないこと 。
b . 入力として漢字かな混じりのべた書き文が使えること。 その 際、 属性値を鈎括弧でくくったり、 唆昧性の解消のために括 弧を使用したりしないですむようにする。
c . 同義語や動詞など定義が簡単で理解しやすいこと
d. 二通り以上の解釈が可能な文については、 それらの解釈を理
1 8
解しやすい形で表示し、 ユーザに選択させる機構を持ってい ること。
e . 受理可能な文の範囲が充分に広く実用的であること。 そのた めには、 統語解析や意味解析をできるだけ効率的に行なう必 要がある。 さもないと、 応答が遅く使い物にならないシステ ムになってしまう。
このうちdは、 システムの信頼性を増す上で特に重要である。 なぜ なら、 自然言語によるデータベース検索システムが実用に耐えうる かどうかは、 入力文がユーザの意図通りに解釈されることが大前提 であり、 これが欠ければ表示されるデータは信用できないので、 誰
もこのようなシステムを使おうとしないだろうと思われるからであ る。 そういった意味で、 複数の意味解釈が可能な文については、 ユ ーザに正しい方を選択させる機構がぜひとも必要である。
1 .3 本論文の構成
本論文は、 日本語によるデータペース検索システムの試作研究を まとめたものである。 その際、 効率の良い統語解析法や意味解析法 が必要となったので、 これについても研究を行ない、 論文の最初の
ほうに記述しである。
まず第2章で、 本システムで採用した中間意味表現方式について 述べる。 日本語の問合せ文を対応するS
Q
L文に変換したときに生 ずる空所を、 非談話的なものと談話的なものに分類し、 それぞれ例 によって説明する。 その後、 これらの空所を適切に補完することが 可能な意味表現方式を提案する。 この意味表現方式は、 自然言語文 からの変換も、 目的のSQ
L表現への変換もともに効率的に行なえ2 0
るような構造になっている。
次に第3章で、 S A X -Cトランスレータについて説明する。 こ れは、 前にも述べたように、 D C Gで記述された文法規則をS A X
アルゴリズムのCプログラムへと変換するシステムである。 この章 では、 まず、 文脈自由文法からの変換を説明し、 さらに、 より一般
的なD C G記法からの変換についても述べる。 また、 到達可能性の 利用についても触れ、 最後に、 現在このシステムに課せられている 制限とその解決法について述べる。
第4章では、 試作した日本語によるデータペース検索システムに ついて説明する。 このシステムは、 形態素解析部、 統語 ・ 意味解析 部、 エコーバック生成部、 知識獲得部より構成されるが、 それぞれ について順に述べる。 ここに、 エコーバック生成部というのは、 質
問文が複数の解釈を持つときユーザにそのうちの一つを選択させる 部分であり、 知識獲得部というのは、 主にユーザがシステムに対し て同義語や動詞などを教える部分のことである。
最後に第5章で、 本論文で述べた研究を総括し、 また、 関連する 分野の今後の展望について述べ、 本論文の結論とする。