(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-04
(45)【発行日】2024-09-12
(54)【発明の名称】ラベル付ペトリネットを用いた深層格意味の表現方法
(51)【国際特許分類】
G06N 5/04 20230101AFI20240905BHJP
G06N 5/025 20230101ALI20240905BHJP
【FI】
G06N5/04
G06N5/025
(21)【出願番号】P 2020011215
(22)【出願日】2020-01-09
【審査請求日】2022-12-03
(73)【特許権者】
【識別番号】520033801
【氏名又は名称】鈴木 秀明
(72)【発明者】
【氏名】鈴木 秀明
【審査官】武田 広太郎
(56)【参考文献】
【文献】特開2013-206130(JP,A)
【文献】特開2013-008221(JP,A)
【文献】米国特許出願公開第2015/0331851(US,A1)
【文献】鈴木 秀明,自然言語を構造化表現する論理データベースの構築について,第8回データ工学と情報マネジメントに関するフォーラム (第14回日本データベース学会年次大会),日本,電子情報通信学会データ工学研究専門委員会 日本データベース学会 情報処理学会データベースシステム研究会,2016年
(58)【調査した分野】(Int.Cl.,DB名)
G06N 5/04
G06N 5/025
(57)【特許請求の範囲】
【請求項1】
自然言語や数式で表わされた知識をもとに推論を実行するための論理推論システムであって、
前記知識から抽出された論理やアルゴリズムを、
述語論理形式のペトリネットであって、
複数のプレースと複数のトランジションおよび前記プレースと前記トランジションの間を各々つなぐ複数のアークから成り、
前記複数のプレースは、前記自然言語文の真偽に対応する述語プレースと前記自然言語の各種概念や数量に対応する項プレース、および前記自然言語の概念間の各種繋がりや数値演算、および単位に対応する関数記号プレースを含み、
前記複数のアークは、前記自然言語の深い意味を表わす深層格に対応するラベルを持
ち、
前記述語プレースは、前記自然言語の各種様相や否定に対応する様相プレースと各種概念に対応する概念プレースを含み、
前記項プレースは、前記自然言語の各種概念や数量に対応する定数プレース、および各種代名詞や不定冠詞、および前記数式の変数に対応する変数プレースを含む、
知識ペトリネットを用いて表現する論理推論システム。
【請求項2】
自然言語や数式で表わされた知識をもとに推論を実行するための論理推論システムであって、
前記知識から抽出された論理やアルゴリズムを、
述語論理形式のペトリネットであって、
複数のプレースと複数のトランジションおよび前記プレースと前記トランジションの間を各々つなぐ複数のアークから成り、
前記複数のプレースは、前記自然言語文の真偽に対応する述語プレースと前記自然言語の各種概念や数量に対応する項プレース、および前記自然言語の概念間の各種繋がりや数値演算、および単位に対応する関数記号プレースを含み、
前記複数のアークは、前記自然言語の深い意味を表わす深層格に対応するラベルを持つ、知識ペトリネットを用いて表現する論理推論システムであって、
自然言語文の形態素解析および依存構造解析から様相や深層格を決定するルールであって、
前記自然言語文の文節ごとの品詞、助詞、かかり先、および時刻・場所を含む属性情報を参照して様相や深層格を決定するルールを用い、
前記自然言語文を前記知識ペトリネットに変換するネットワーク作成部を備える、
論理推論システム。
【請求項3】
前記知識ペトリネット上での局所的なシンボル矛盾に基づく辻褄合わせおよび数値計算と、
前記知識ペトリネットを展開して作られる仮想的なAND/ORグラフ上での幅優先探索により、
前記知識から抽出された論理に対して後ろ向き推論を行なう推論実行部を備える、請求項1
または2に記載の論理推論システム。
【請求項4】
前記知識ペトリネットの一部として、
前提・帰結の関係がはっきりしない自然言語の複文を、アークが向きを持たない無向ペトリネットに変換するネットワーク作成部と、
質問を受け取り、前記知識ペトリネットから関係するサブペトリネットを抽出し、抽出された前記サブペトリネットに向きを与えるネットワーク抽出部をさらに備える、
請求項
3に記載の論理推論システム。
【請求項5】
述語論理における恒真式を表わすペトリネットであって、
自然言語文の中に暗黙に含まれている前提や常識に対応する暗黙ペトリネットを生成し、
前記暗黙ペトリネットを前記知識ペトリネットと繋げるためのネットワーク作成部をさらに備える、
請求項
3に記載の論理推論システム。
【請求項6】
前記知識ペトリネットの一部として、
接続助詞、接続詞、関係代名詞で表現される自然言語の様々な複文を、
特殊な深層格である外の関係格、
目的語、時刻、場所、
範囲、行為者、手段、
協力相手、対抗相手、条件、
仮定、前提、原因、
理由、目的
、話題、出典、立場、比喩、数量、頻度、形容を表わす深層格、または
数量の比較のための述語プレースを含む無向ペトリネットに変換するネットワーク作成部をさらに備える、
請求項
3に記載の論理推論システム。
【請求項7】
前記知識ペトリネットの一部として、
章立て、段落、箇条書き、表
によって構造化された文書における自然言語文を、
深層格として特別に用意されたタイトルのための格を含むペトリネットに変換するネットワーク作成部をさらに備える、
請求項
3に記載の論理推論システム。
【請求項8】
前記知識ペトリネットの一部として、
論理ORの関係を含む自然言語文を論理変換し、複数のホーン節に対応するペトリネットに変換するネットワーク作成部をさらに備える、
請求項
3に記載の論理推論システム。
【請求項9】
前記知識ペトリネットの一部として、
「AのB」という省略された自然言語表現に含まれる暗黙の知識に対応する暗黙ペトリネットを生成し、
前記暗黙ペトリネットを前記知識ペトリネットと繋げるためのネットワーク作成部をさらに備える、
請求項
3に記載の論理推論システム。
【請求項10】
自然言語や数式で表わされた知識をもとに推論を実行するための論理推論方法であって、
前記知識から抽出された論理やアルゴリズムを、
述語論理形式のペトリネットであって、
複数のプレースと複数のトランジションおよび前記プレースと前記トランジションの間を各々つなぐ複数のアークから成り、
前記複数のプレースは、前記自然言語文の真偽に対応する述語プレースと前記自然言語の各種概念や数量に対応する項プレース、および前記自然言語の概念間の各種繋がりや単位に対応する関数記号プレースを含み、
前記複数のアークは、前記自然言語の深い意味を表わす深層格に対応するラベルを持
ち、
前記述語プレースは、前記自然言語の各種様相や否定に対応する様相プレースと各種概念に対応する概念プレースを含み、
前記項プレースは、前記自然言語の各種概念や数量に対応する定数プレース、および各種代名詞や不定冠詞、および前記数式の変数に対応する変数プレースを含む、
ペトリネットを用いて表現する論理推論方法。
【請求項11】
自然言語や数式で表わされた知識をもとに推論を実行するための論理推論方法であって、
前記知識から抽出された論理やアルゴリズムを、
述語論理形式のペトリネットであって、
複数のプレースと複数のトランジションおよび前記プレースと前記トランジションの間を各々つなぐ複数のアークから成り、
前記複数のプレースは、前記自然言語文の真偽に対応する述語プレースと前記自然言語の各種概念や数量に対応する項プレース、および前記自然言語の概念間の各種繋がりや数値演算、および単位に対応する関数記号プレースを含み、
前記複数のアークは、前記自然言語の深い意味を表わす深層格に対応するラベルを持つ、知識ペトリネットを用いて表現する論理推論方法であって、
自然言語文の形態素解析および依存構造解析から様相や深層格を決定するルールであって、
前記自然言語文の文節ごとの品詞、助詞、かかり先、および時刻・場所を含む属性情報を参照して様相や深層格を決定するルールを用い、
前記自然言語文を前記知識ペトリネットに変換するネットワーク作成部を備える、
論理推論方法。
【発明の詳細な説明】
【技術分野】
【0001】
一般に推論システムは、推論の前提となる知識ベースと、そこから答えを取り出すための推論エンジンから構成される。本発明は、自然言語に基づく推論システム、即ち知識ベースとクエリ言語がどちらも自然言語から構成される推論システムに関する。
【背景技術】
【0002】
1950年代に産声をあげて以来、人工知能(AI)の研究は、人間が操る言葉やシンボルを計算機の上で扱おうとする『記号処理のアプローチ』を中心に進められてきた。このアプローチはAIが第二次ブームとなった1980年代に最も精力的に研究され、その頃研究者たちの注目を集めた『エキスパートシステム』(非特許文献1)では、専門家の知識を「もし~ならば~」(if-then)形式の規則で表現することで、大量の規則の組み合わせによる論理的推論が可能となった。エキスパートシステムは言葉で表わされた形式的な知識をもとに、既存のアルゴリズムでは記述しづらい、深い推論を要する問題へ対処できるようにしたもので、言葉と推論を組み合わせた初めてのAIシステムと言うことができる。
【0003】
しかし、このエキスパートシステムには、いくつかの実装上の問題点がある。第1の問題点は規則の記述の問題である。エキスパートシステムの知識(規則)の表現形式は、if-then型の形式的な言語(テキスト)であり、人間が操る自然言語とは程遠い。エキスパートシステムが扱う知識を構築するには、プログラミングの素養をもった専門家の多大な労力が必要で、いわゆる『知識獲得ボトルネックの問題』から逃れることが出来なかった。
また、第2の問題点として挙げられるのが推論の効率の問題である。エキスパートシステムで行なわれる前向き推論では、事実がワーキングメモリの中に爆発的に生成される。推論の深さが深い時、これは実装上の深刻な問題を生む。これらが理由で、エキスパートシステムは、社会実装という観点で大きな実を結ぶことなく、研究そのものも次第に行なわれなくなっていった。
【0004】
上記のような問題を克服しようとして、その後のAI研究者達が歩んだ道は、その方法論の違いによって大きく2つに分かれる。
第一のやり方は、人手による自然言語の知識ベース化の道である。ここで言う知識ベースは、エキスパートシステムで用いられたようなフラット(平坦)なテキスト形式のものではない。人間の脳内知識を表わす細胞ネットワークと同じように『構造化』されたデータベースであり、このようなネットワーク形式の知識ベースの構築を目指して、テキスト文に言葉や概念の間の関係性を表わすポインタ(リンク)を人海戦術でタグ付けしていく。これは2000年頃から広く一般に使われるようになったインターネット上のウェブ知識を構造化する手段としても活発な研究が行なわれ、今日まで続いている。この研究を表1にまとめた。
表中には各手法の項目別の優劣を◎(とても優位)、○(優位性あり)、△(優位性なし)、×(劣っている)により表記した。
【0005】
【0006】
このやり方の先駆けとなった研究として、まず『意味ネットワーク』(SN)(非特許文献1,3)が挙げられる。SNは、概念ノードを‘is’,‘has’といった関係を表わすエッジで繋ぐという比較的単純・素朴なやり方でネットワークを構築する。SNの表現能力は一階述語論理(first-order predicate logic,FOL)と同等であるが、SNの構築は場当たり的で見通しが悪く、推論も知識グラフとクエリ・グラフの間の構造マッチングという単純な処理で行なわれるものに留まっている。
Sowaによって提案された『概念グラフ』(CG)(非特許文献4)は、SNをより洗練させたものであり、概念ノードと格を表わす概念関係ノードという2種類のノードを用意することにより、エッジラベルをなくすことに成功した。これによりグラフの均質性が向上し、FOLとの対応もより明確化されたが、例えば含意を表わすためには、グラフ構造化(入れ子にすること)を行なうといった問題を抱えている。けれども、CGで導入された、(1)引数述語(概念)と、(2)引数述語(概念関係)の連言により節を記述する方法は、自然言語からFOLへ変換する際の一つの規範となった。CGは最近のGoogleの『Knowledge Graph』(非特許文献8)のルーツにもなっている。
【0007】
この研究の延長上に、今日では、ウェブ上のテキスト情報を元に知識ベースを構築するいくつかのプロジェクト(DBpedia、Freebase、UMBEL等)が走っている。これらのプロジェクトでメインに用いられている記述ツールであるRDF(Resource Description Framework)やOWL(Web Ontology Language)は、グラフ構築化を行なうために`SVOトリプル’といった簡単な論理ユニットを表現の単位に設定しており、それによりテキスト中の`深い’意味は抽出しないという立場に立っている。また、OWLの理論的基盤を与える記述論理(Description Logic,DL)(非特許文献2,7)は、一階述語論理(FOL)の中の一部、即ち3個以上の引数を持つ述語や関数記号は含まない論理に記述対象を限定する一方で、豊富な記号ライブラリを用意することによって、よりユーザ・フレンドリ性を高めている。そういった意味で、今日この人海戦術により自然言語知識ベースを構築するアプローチでは、論理表現能力はある程度犠牲にしつつ、シンプルで分かりやすいやり方で構造化(グラフ化)されたデータベースを記述する方法を取っている。
【0008】
エキスパートシステムの知識獲得ボトルネックの問題を解決しうる第二の道は、計算機による自然言語の自動処理を目指す『自然言語処理』の研究である。いわゆる『自然言語理解』は、AI研究の初期の頃から注目を集め、ある限定された場面で人間と会話するシステム等が試作されていたが、自然言語処理が実現性のある技術として社会的に大きな注目を集めるようになったのは比較的最近のことである。このやり方では必ずしも自然言語から構造化データベースを構築することはせず、手法に応じた独自の表現形式に自然言語文を落とし込む。この研究の流れを、表2にまとめた。
【0009】
【0010】
『浅い意味表現』に基づく自然言語処理では、自然言語文から単語やキーワードについての統計情報を取り出し、解析を行なう(Ji jkoun&Ri jke2005など多数)。これには『記号処理のアプローチ』とは別に試みられてきた『コネクショニズムのアプローチ』とその延長である機械学習(非特許文献1)や深層学習といった技術が大きく寄与している。
自然言語で書かれた文章は、単語頻度ベクトル、素性ベクトルといった数理的表現に置き換えられ、Rなどのツールによって統計解析させる。この技術を実装した商用のテキストマイニング・ツールは、情報抽出のロバスト性に優れるが、ブラックボックス化された知識は明示性を持たず、文章の深い意味までは汲み取れない。これらはレビュー・アンケート・口込み等といったといった自由形式の文章を解析し、その中に含まれる内容や傾向を大雑把につかむことに優れた能力を発揮し、応用事例も多数ある。
【0011】
一方、IBM社が開発した『ワトソン』は、浅い意味表現をベースとしつつも、そこに意味的な補正や学習機能を盛り込んだもので、顧客の提供する文書情報を元に、質問応答の答えを回答パラメータによる優先順位付きで出すことが出来る。しかしながら、社会実装という観点から見ると、機械学習のパラメータ調整や、教師用コーパスの構築などに多量のリソースと時間が必要であることや、回答の間違いも多いといった、多くの技術的課題を残しており、現実の応用事例としては、大量の論文・特許文といった報告文書からの知識発見・抽出のために使われるに留まっている。
【0012】
これと対極にある『深い意味表現』に基づく自然言語処理(CCG+モンタギュー意味論)は、言語の意味の表現する方法として内包論理・型付き動的論理等の高階論理を用いて深い論理表現能力を持つ反面、λ式に基づくシーケンシャルな推論処理は、ロバスト性に乏しい(Montague1974、戸次2006、「ロボットは東大に入れるか」プロジェクト数学科チーム2011など)。また、意味表現に用いられるλ式は構造化されてない。
このように『浅い意味表現』と『深い意味表現』は、表現能力と推論において、長所と短所を持つが、これらと異なる、『簡単化された意味表現』と呼ぶべき手法に、概念依存理論がある(Schank 1975など)。この理論では、自然言語に含まれる意味を11個の基本動詞だけを用いてグラフ化することにより、言語種類に依存しない文章の意味を表わせる。概念依存理論のデータ形式はグラフ構造化されているものの、論理的に深い意味を表現できず、推論規則も限定されている。
【先行技術文献】
【非特許文献】
【0013】
【文献】小林一郎:人工知能の基礎.サイエンス社(2008)
【文献】Baader,F.,Horrocks,I.,Sattler,U.:Chapter 3 Description Logics.In:van Harmelen,F.,Lifschitz,V.,Porter,B.(eds.):Handbook of Knowledge Representation.Elsevier(2007)
【文献】Randal,D.M.:Semantic Networks.In:Ringland,G.A.,Duce,D.A.(Eds.):Knowledge Representation-An Introduction.Research Studies Press,Ltd.(1988)Chapter 3,pp.45-80
【文献】Sowa,J.F.:Conceptual Structures:Information Processing in Mind and Machine.Addison-Wesley:Reading,MA.(1984)
【文献】Suzuki,H.,Yoshida,M.,Sawai,H.:A network representation of first-order logic that uses token evolution for inference.Journal of Information Science and Engineering(JISE)30(3)(2014)669-686
【文献】鈴木 秀明:論理と言語を共通に表現するペトリネット型推論モデル.計測自動制御学会システム・情報部門学術講演会講演論文集(SSI-2014).(2014)GS11-6,pp.254-260
【文献】赤間 世紀:セマンティック・ウェブ入門.カットシステム(2011)
【文献】Zhang,L.:Knowledge graph theory and structural parsing.Thesis,Twente University Press(2002)
【文献】原田実:“意味解析が開く自然語処理の世界”,NICT-EDRシンポジウム,8,情報通信研究機構(NICT)(2007.4).
【文献】鈴木秀明:FOLを表現する論理ネットワーク:依存構造からの変換の試み.言語処理学会第21回年次大会発表論文集(2015)976-979
【文献】吉村賢治:自然言語処理の基礎.サイエンス社(2000)
【発明の概要】
【発明が解決しようとする課題】
【0014】
自然言語をグラフ構造化されたデータベースで表すことは、見やすさと並列分散性という2つの大きなメリットを持つ。グラフ構造は、単語もしくは概念の間の意味的な繋がり関係を記述するためにうってつけの道具であるし、また、グラフ構造上の処理は基本的に全て、ノードとアークにおける局所的なオペレーションに分解することができ、並列分散的に進めることができる。これまで見てきた自然言語処理のアプローチは、このグラフ構造化には必ずしもこだわることなく進められたため、知識が非明示的で深い推論が行なえない(浅い意味表現)、推論がシーケンシャルでエラーに弱い(深い意味表現)という問題を抱えていた。もし我々が、自然言語を自動処理により何らかの構造化データベースに変換し、その上で論理推論を行なわせることが出来たならば、知識の非明示性と推論の脆弱性の双方を解決するシステムになりえる。
【0015】
自然言語の意味をグラフ化し構造化データベースを作成しようとする時、最初に考えられる手法は深層格による木グラフの生成である(非特許文献11)。原田らは、単純な依存構造だけでなく、深層格も考慮して自然言語文を語間の各関係も含んだ意味グラフに変換し、また推論についても、グラフ構造のマッチングをベースにしつつ構造の比較に加えて大規模辞書による語彙や単語間の深層格の類似度も考慮した手法などを提案している(非特許文献9)。これらはしかし、言語の深い意味を論理にまで落とし込むものではなく、格関係をグラフで可視化することで、推論を構造マッチングで進めるための補助的なツールに過ぎなかった。推論をマッチングで行なう方法の場合、論理的な深い推論には対処できず、例えば、普遍知識をいくつも組み合わせて答えを導くといった演鐸的推論はできないという問題を有していた。
【0016】
一方、本発明者らは、ごく最近、一階述語論理(FOL)の一部であるホーン節集合のグラフ表現としてpKTN(Petri-net-based Knowledge Transitive Network)という記述形式を提案した(非特許文献5,6)。pKTNはFOLの定数・変数・関数記号、および述語をプレースで表わしたペトリネットで、それ上の演繹(後向き推論)が、pKTNを展開したペトリネットにおける部分グラフの探索と制約条件間の辻褄合わせ(単一化)として定式化できる。本発明者らは、これを解くためのアルゴリズムとして、ELISE(ELiminating Inconsistency by SElection)と呼ばれる、ネットワーク上のトークンの局所並列伝搬を利用し、信頼度と共に単一化解を求める(ある種の曖昧推論を行なう)方法も提案している(非特許文献5)。ネットワークに冗長性のない場合、ELISEは変数の個数にほぼ比例した時間で収束することが報告されている。
【0017】
pKTNでは、述語論理の節に相当するグラフが、自然言語文の述語動詞を中心に構築されるため、自然文の依存構造と高い親和性を持つと考えられる。非特許文献10は、そのことを利用して、自然言語文から抽出される依存構造グラフ(動詞述語を根、その他の単語を枝葉とする係り受けネットワーク)を均質で入れ子構造を持たないpKTNに変換する簡単な例を示した。しかしながら、これはまだ、自然言語の持つ深い意味(深層格)を正確に抽出し、全ての自然言語文をネットワークに変換するものではなかった。また、様々な言語の表記揺れの問題も考慮されていず、同じ意味を表わす色々な言い方の違いを吸収し、簡潔にFOL相当の論理を抽出する手法とはなっていなかった。
本発明は,上記のような問題を解決するためになされたものであって、その目的は、自然言語文を計算機で自動処理することにより、自然言語文が持つ深い意味を深層格の形で表現する構造化データベースを構築し、その上で論理推論を行なわせる方法を与えることにある。
【課題を解決するための手段】
【0018】
この発明の1つの局面では、自然言語文で表される全ての知識をデータベース化することを目標に、自然文と一対一対応し、しかしながら、自然文の表層格ではなく深層格で意味を表すペトリネットによって知識を記述する。表層格や品詞、かかり先や様相などの情報をもとに文節に主語・動詞・目的語・場所格・時間格のような深層格を与えて、それらの間の関係を記述するpKTNのグラフにより詳しい文の意味を表現する。深層格を用いて意味グラフを作成することで論理構造が明確になり、変換ルールを利用して自然文の言い換えなどにも対応できるようになる。構造マッチングや文の依存関係からの推論では同じ意味を表していても表現が違う場合には推論を行うことができないが、深層格を利用して構築されたpKTN上では、論理推論に基づく判断ができるので、文の表現の違いには左右されなくなる。さらには一つの文章だけでなく、文書構造も含めて格付け・グラフ化することによって、文脈を考慮した推論も可能となりうる。
【発明の効果】
【0019】
この発明によれば、自然言語で書かれた数式・表・箇条書き交じりの文章から深い意味を表す論理が抽出され、それが深層格をラベルに持つネットワーク形式のデータベースにストアされる。
また、この発明によれば、前記構築されたデータベース上で演繹推進や計算を行うことが出来、質問に対する所望の解を得ることが出来る。
【図面の簡単な説明】
【0020】
【
図1】本実施の形態に係る計算処理装置100の構成をブロック図形式で表す図である。
【
図2】本実施の形態に係る計算処理装置100の機能的構成をブロック図形式で示す図である。
【
図3】様相として述語語プレースに用意されるラベルの一覧を示す図である。
【
図4】深層格としてアークに用意されるラベルの一覧を示す図である。「対応する関数」は恒真式を表す暗黙ペトリネットの中で使われる関数記号が持つ意味である。
【
図5】FOL式/論理プログラム(1)をpKTNで表した図である。
【
図6】FOL式/論理プログラム(2)をpKTNで表した図である。
【
図7】FOL式/論理プログラム(3)をpKTNで表した図である。
【
図8】FOL式/論理プログラム(4)をpKTNで表した図である。
【
図9】文を文節分けし、それらが持つ表層格を深層格に変換する例を示す図である。
【
図10】かかり先情報を元に表層格を深層格に変換する例を示す図である。
【
図11】自然言語文をpKTNデータベースに知識として蓄積する流れを示した図である。
【
図12】推論時におけるpKTNのリンクの張り方を示した図である。
【
図13】質問文pKTNと知識文pKTNがリンクで繋がった状態のpKTNの図である。
【
図14】質問文pKTNと知識文pKTNがリンクで繋がり、方向付けされた状態の張ったpKTNの図である。
【
図15】質問文pKTNと知識文pKTNがリンクで繋がり、方向付けされた状態の張ったpKTNの図である。
【
図16】事実デフォルト(恒真式を表す暗黙ペトリネット)の例を示す図である。
【
図17】質問文pKTNと知識文pKTNが事実デフォルトとリンクで繋がったpKTNの図である。
【
図19】質問文pKTNがルールデフォルトを介して知識文pKTNとリンクで繋がったpKTNの図である。
【
図20】外の関係格を使用して表した知識文pKTNと質問文pKTNがリンクで繋がったpKTNの図である。
【
図21】複文の時間格を、不等号述語を介して繋ぐことで、複文内の時間順所を表したpKTNの図である。
【
図23】知識文pKTNの定数プレースがオントロジーグラフとリンクで繋がることにより、質問文pKTNにある上位語と照合出来るようにしたpKTNの図である。
【
図25】ORを表す接続詞を持つ文章から導かれるpKTNの一つを示す図である。花子の方を否定する条件にしている。
【
図26】ORを表す接続詞を持つ文章から導かれるpKTNの一つを示す図である。太郎の方を否定する条件にしている。
【
図27】質問文pKTNとつながった知識文pKTNの条件をほかの知識と照らし合わせて推論を行うpKTNの図である。
【
図28】「AのB」という言い方を、「の」を関数として扱い、「である」様相で表現したpKTNの図である。
【
図29】「AのB」という言い方に省略された意味を表すための暗黙ペトリネットの例を示す図である。
【
図30】「AのB」という言い方に含意されている意味を問いかける質問文pKTNが知識文pKTNや暗黙ペトリネットとリンクで繋がることで回答できるようになる例を示すpKTNの図である。
【
図31】単位を関数によって表現した知識文pKTNと質問文pKTNがリンクで繋がったpKTNの図である。
【
図32】データフロー・グラフの基本的な考え方を示した図である。
【
図33】演算子に算術関数、引数に数値を持たせることで、pKTNの中で計算を行える例を示す図である。
【発明を実施するための形態】
【0021】
以下では図面を参照しつつ、本発明の典型的な実施例として、日本語自然文を例にとり、様々な言い回しをpKTN/FOLに変換する方法を述べる。
【実施例】
【0022】
・様相
自然文の意味を最も底辺で支えるのが様相である。様相は英語の助動詞に相当し、日本語の場合、大抵は文末でその文の意味を肯定/否定/修飾する。
図3にpKTNとして用意する様相の例を示す。本実施例では様相は真偽を表す述語として用意される。
【0023】
・深層格
通常の一階述語論理の述語と同様、様相述語は一つまたは複数の引数を持つが、それら全てに深層格を付与する。
図4に深層格の例を挙げる。
深層格は大きく述語格と修辞格に分けられる。述語格は文の意味を表す主体や対象、行為などの要素を表し、修辞格は英語の前置詞に相当する付帯情報を表す。
【0024】
以上の様相と深層格を使って日本語文章の意味をFOL式/論理プログラムに変換する例を示す。
(1)″する″([Sb]″太郎″,[V]″行く″,[Plc]″海″). (太郎は海に行く。)
(2)″できる″([Sb]″太郎″,[V]″作る″,[Od]″帽子″). (太郎は帽子を作ることが出来る。)
(3)″である″([Sb]″太郎″,[Od]″男″). (太郎は男である。)
(4)″すべきである″([Sb]″太郎″,[V]″守る″,[Od]″家族″). (太郎は家族を守るべきである。)
これらは同時にペトリネット型KTN(pKTN)でも表される。
【0025】
同じ例をpKTNに変換した例を
図5~
図8で示す。図中○は項プレース、◇は述語プレー
向である。後に述べる推論はこのpKTN上で行なわれる。
【0026】
・自然言語の解析
日本語自然文をpKTNへと変換するために、本実施例ではまず自然文の形態素解析、および依存構造解析の結果が得られていることを前提にする。典型的な例では形態素解析により自然文は文節ごとに区切られ、その中の形態素に品詞(名詞、動詞、…)や属性(数、時間、地名、…)、表層格(ガ格、ニ格、…)がタグ付けされる。また依存構造解析により、文節から文節への係り受け関係が抽出される。
図9に「太郎は9時に花子に会う。」という文の形態素解析の結果を示す。この例に示されるように、適当な変換ルールを用意することにより品詞・属性・表層格から深層格を認識することが可能で、そうして得られた深層格が
図9の各行の2番目の矢印の後に示されている。注目すべきこととして、2つのニ格文節「9時に」と「花子に」がそれぞれTim格とOi格に変換されているが、これらは単に表層格だけでなく品詞・属性等の付帯情報も加味することによってはじめて峻別可能になる。
【0027】
深層格認識が依存構造解析結果を加味して初めて可能になる例として、次に、受動文の変換の例を取り上げる。能動文「花子が太郎に告白した。」と、受動文「太郎は花子に告白された。」はともに同じ意味を表すため、これらはできれば同一のpKTNへと変換されることが望ましい。そのため本実施例では様相リスト(
図3)に受動様相「される」を含めず、受動文を読んだならばその文の能動文を推定し、そこにおける深層格を変換ルールによって認識するものとする。
図10はそれを行なった例を示す。この例で、ガ格「太郎は」のかかり先「告白された」は受動態であるため、ガ格の深層格はOi格と認識される。また、ニ格「花子に」のかかり先「告白された」は受動態であるため、ニ格はSb格と認識される。この例はガ格/ニ格が単純にSb格/Oi格とはならず、かかり先の属性などから影響を受け異なる深層格へと認識されうることを示している。
【0028】
この例から分かるように、本発明で自然言語文から正確に意味をとり、それを論理に落とし込もうとする時、様々な例外処理も含めた詳細な変換ルールを用意することが不可欠である。
【0029】
図11には、これを行うため典型的な実装形態を示した。
詳細な変換ルールは変換プログラムに直接書き込まれるのではなく、変換プログラムは別に用意された変換ルールベースを読み込むことにより、場合分けに基づく例外処理を行なうようにする。
適当なインタフェースのもと、変換ルール群を多くの人手をかけて用意することにより、ネットワーク生成部による正確な論理抽出ができるようになる。
【0030】
・推論のためのリンク
pKTNを使って推論を行うには、まず、知識文と質問文のpKTNを作成する必要がある。この時点で作成されるpKTNは全て無向である。質問文pKTNは疑問詞の深層格を形態素解析・依存構造解析・ルールから決定し、その深層格引数に、質問変数として「_q」を入れることで作成する。
次に、作成された質問文pKTNとそれに対応する知識文pKTNの述語プレース間でリンクを張る。対応する知識文pKTNを選ぶには質問文pKTNにおいて定数引数をとる格を参考にし、様相と深層格引数が一致する知識文pKTNを選択する。この時、深層格の数まで一致することは求めない。
【0031】
図12では、「太郎は何を買ったか?」と質問した場合のpKTNを示している。質問文pKTNでは、「何を」という「疑問詞+ヲ格」からOd格に「_q」を入れ、Sb格に「太郎」、V格に「買う」を持たせている。リンクを張る知識文は様相とSb格、V格が一致することが条件とされる。その条件の知識文pKTNとリンクを張ったのが
図13である。ここにおける知識文は「太郎は買った指輪を花子に渡す。」である。
【0032】
・有向ペトリネットと無向ペトリネット
本発明の1つの局面で、pKTN上の論理推論は、質問文を出発点とする後向き推論であり、それは質問文pKTNを根とするAND/OR木上の幅優先探索として定式化される。木は根から葉に向かって方向付けされており、従ってpKTNで推論を行うには、リンクで繋がった質問文、知識文pKTNの全てのアークを有向なものに変更する必要がある。
図14、15にその例を示す。この
図14,15で複文(動詞/用言を複数持つ文)「太郎は買った指輪を花子に渡す。」に相当する知識文pKTNは、「太郎は何を買ったか?」と「太郎は何を渡したか?」という異なる質問文pKTNに繋がった時、逆の向きに方向付けされている。ここに示されたように、本発明においては、一般に条件・帰結関係のはっきりしない自然言語の複文は、無向ペトリネットとして知識文pKrN化されて、質問文pKTNとリンクで繋がった後に有向化される。
【0033】
・事実デフォルト
一階述語論理/ホーン節論理上の後向き推論は、ルール節の本体のアトムを真とする事実節がないと完結しない。自然言語文が対象とする実世界には、自然文には明記されていない多くの常識や前提が成立しており、それらを表す事実節やルール節を暗黙ペトリネット(デフォルト)として用意することにより、pKTN推論は初めて完了するようになる。
【0034】
図16は、そのために用意されるデフォルトの例である。これは、「xは[xがyする対象]をyする」という意味を表し、変数x,yに深層格に合うどのような単語が入っても真として成立する(恒真)。このデフォルトを
図14につなげると
図17のpKTNが生成され、これ上で「_q」から始まった推論は、デフォルトで知識が正しいことが証明され推論が完了する。得られる答えは「q=指輪」や「q=対象([Sb]太郎,[V]渡す)(太郎が渡したものである)」である。
【0035】
・ルールデフォルト
自然言語の文では、一部の動詞で、その動詞を反義語にし、深層格を入れ替えることで文の意味が入れ替える前と同じになる。例えば、「太郎は花子に指輪を贈る。」という文をFOL式/論理プログラムに変換すると、
″する″([Sb]″太郎″,[V]″贈る″,[Od]″指輪″,[Oi]”花子”).
となるが、深層格のV格を「贈る」→「貰う」にし、「Oi→Sb」、「Sb→Src」と入れ替えて出来る
″する″([Sb]″花子″,[V]″貰う″,[Od]″指輪″,[Src]”太郎”).
は「花子は指輪を太郎から貰う。」という意味となり、文の意味が変更する前と同じになる。このような言い換えが必要になる場面は、例えば、「太郎は花子に指輪を贈る。」という知識に対して、「花子は太郎から何を貰ったか?」と質問されたときに起きる。
この場合単純に知識文pKTNと質問文pKTNを繋ぐだけでは深層格が一致しないために回答が出来ない。そこで、この深層格の入れ替えを実行するために、
図18のような『yがxにzを渡す⇔xはyからzを貰う』の言い換えを表す暗黙ペトリネット(ルールデフォルト)を用意する。
【0036】
図18のデフォルトを、
図19のように質問文pKTNと知識文pKTNの間に挟むことで、pKTN推論が完結するようになる。
【0037】
・『外の関係格』を用いた複文の表現
自然言語は多くの複文を含む。
図12で示した「太郎は買った指輪を花子に渡す。」は複文の一例であるが、この場合「買う」と「渡す」の2つの述語に対応するpKTNを「指輪」という概念に繋がる変数xを介してつながることで、一つながりのpKTNとして表わされている。
しかし、共通する単語が存在しない複文も多い。例えば、「太郎は花子が結婚することを聞く。」という文章では共通する単語が存在しない。
この例のような場合は、『外の関係格』を使うことで、複文が持つ意味を失わずに論理プログラムで表現することが可能である。『外の関係格』(Out格)は、それを持つ述語全体をまとめ上げる機能を持つ。従って複文を構成する副文にOut格を、主文にそれを受ける格を用意し、それらを共通変数で繋ぐことで複文が表せる。上記の例の場合、「花子が結婚する」という副文にOut格を設定し、それを「太郎は聞く」の目的格で受けることにより、FOL式/論理プログラムは、
“する”([Sb]”太郎”,[V]”聞く”,[Od]_x1),“する”([Sb]”花子”,[V]”結婚する”,[Out]_x1).
と表される。
図20には、これを表したpKTNが「太郎は何を聞くか?」の質問文pKTNと繋がった様子を示した。
【0038】
外の関係格は、Od格以外に時刻、場所、手段、条件、原因、目的などの様々な修辞格とも組み合わせることができ、それらによって、主文と副文の間の様々な意味的繋がり関係を表現できる。例えば、接続詞「~なら」でつながっている場合は条件格と、「したがって~」でつながっているならば、原因格と外の関係格をつなげることで複文を表現できる。
また、時間順所を表している複文も存在する。時間順序を表す際は、不等号述語とRg格、Lf格を組み合わせることでpKTNを作成する。例えば、「太郎は寝る前にビールを飲む。」という文章の時、pKTNは
図21のように作成される。
それぞれの動詞のTim格を不等号でつなげることで、動作した順序を表現できる。ここの「_t1」、「_t2」は数値を表す変数プレースの一例である。
【0039】
・オントロジーについて
これまでの実施例では、pKTNの定数プレースの中に「太郎」、「指輪」「買う」などの単語をそのまま記述していた。しかしながら、もし「太郎は自動車を持つ。」という知識文に対して、「太郎はクルマを持つか?」と聞いて単語不一致のため答えられないとしたら不都合である。同様の問題は「自動車」、「クルマ」という同義語の間だけでなく、上位/下位語間でも発生する。例えば、「太郎は電気自動車を運転する。」という知識文に対して、「太郎は車を運転するか?」と質問したときに「電気自動車」と「車」が仲間だと認識できずに回答出来ないのも問題である。
本発明では、この問題をpKTNの定数プレースに入る項を概念とし、概念と単語の間の対応関係を表す同義語リストおよび概念の上位/下位の関係を表すオントロジーを用意することで解決する。オントロジー(ここでは簡単のために単語で表したが)の例を
図22に示す。
【0040】
図22でもわかるように、「車」の下位語に「自動車」があり、「自動車」の下位語に「電気自動車」があるので、「車」の仲間に「電気自動車」があることがわかる。
このオントロジーをpKTNの推論で使う方法として、本実施例ではオントロジーを表すネットワークデータベースを別に用意し、それを参照しながら推論を進める方法を示す。
図23で、「太郎は電気自動車を運転した。」という知識文に対し、「太郎はどんな車を運転したか?」と質問した時のpKTNを示している。「車」と「電気自動車」は同一の単語ではないが、「電気自動車」のオントロジーを上位にたどっていくと、「車」が存在する。そのため「電気自動車」は「車」の仲間であることがわかり、質問には「電気自動車を運転した」と回答することが出来る。
【0041】
また、オントロジーを参照する場合は必ず知識文側で上位にたどっていく。下位にたどると間違った推論を行ってしまうからである。例えば、「太郎は車を運転した。」という知識文に対して、「太郎は電気自動車を運転したか?」と質問した場合を考える。質問側で「電気自動車」から上位の「車」にたどると、「運転した。」という誤った回答が得られてしまう。
【0042】
・タイトル格
文書を読み込むことで作成される様々な知識文pKTNにおいて、pKTNがどの文書から作成されたのかという情報を保持できれば、知識文の範囲を指定して推論することができる。
本発明によると、文書名、章立て、段落、箇条書き、表などの構造化されている文書に対して、深層格にタイトル格と呼ぶ特別な格を付けることによって、知識文pKTNがどの文章から生成されたかの情報を持たせることができる。
【0043】
タイトル格は、文書や段落を指定しての範囲検索に役立てることができる他、回答の際には知識の元になったタイトル、段落、文章を表示するためにも有効である。タイトル格で参照される文書構造はオントロジーと同様、
図24のような木構造グラフで表現される。個々の知識文pKTNのタイトル格引数が入るプレースは、
図24の末端の葉を指し示すが、それが文書階層構造のどこに含まれるかが
図24の木を上位にたどることによって特定できる。
タイトル格の文書構造オントロジーの参照方法は、概念オントロジーのそれと同様である。質問文pKTNのタイトル格引数と知識文pKTNのそれとを照合する際には、単にシンボル照合するだけではなく、知識文側で文書構造オントロジーを上位にたどって照合するものがあるかないかを探す。こうすることにより質問文側から広い範囲を指定した知識文探索が可能になる。
【0044】
・論理的AND/OR
自然文の中には否定、AND、ORなどの論理表現が出てくる。このうち否定については、
図3に示されるように本実施例では様相に含めて述語プレースの中で表現するが、AND、ORについては、論理式として等価変換される複数のホーン節として表現する。
まず、名詞や動詞が論理関係で結ばれている場合を考える。
【0045】
主格の場合:
「AとBが走る」=「Aが走る」∧「Bが走る」。
「AまたはBが走る」=「Aが走る」∨「Bが走る」。
動詞の場合:
「太郎がAするし、かつBする」=「太郎がAする」∧「太郎がBする」。
「太郎がAするか、またはBする」=「太郎がAする」∨「太郎がBする」。
時間格の場合:
「太郎はA時とB時に食べる」=「太郎はA時に食べる」∧「太郎はB時に食べる」。
「太郎はA時かB時に食べる」=「太郎はA時に食べる」または「太郎はB時に食べる」。
以上の例に示されるように、深層格引数が論理関係∧、∨で結ばれている単語を持つ場合、それらの論理関係は外に出すことができ、文意は複数の命題を結ぶ論理式として記述できる。その後、
といった等価関係を用いると複数のホーン節へと変換することができる。ここに⇒の後に示した式は、Prologプログラムの記法に習い、用意する節を「.」(ピリオド)で区切って表したものである。
【0046】
図25、26には「太郎または花子は担当する」という自然文から導かれるpKTNを示した。この例の場合、「花子が担当しないならば太郎が担当する」、「太郎が担当しないならば花子が担当する」という意味を表す2つの知識文pKTNに変換されている。これらpKTNにおいてはホーン節ルールが「外の関係格」を使って「条件格」とつなげることで作成されている。
【0047】
もし、この知識とは別に「花子は担当しない」という知識が存在したときに、「誰が担当するか?」と質問を投げかけると、
図27のグラフが生成され、質問に答えることが出来る。
また、複数ホーン節への変換例として、下には接続詞/接続助詞によって表された条件・帰結の関係を含む複文が論理積・論理式を含む場合の変換式を示す。
これらの式を用いると、例えば「BまたはCが死ぬとAが走る」という文は、「Bが死ぬとAが走る」「Cが死ぬとAが走る」という2つの複文知識文を表すpKTNへと変換される。
【0048】
・AのB
日本語自然文に頻出する、「AのB」という言い方は著しい省略形である。例えば、「太郎の帽子」という言い方には、「太郎は帽子を所有する。」という意味が含意されている。本発明では、「AのB」からネットワークを生成する手段として、前期含意された意味を明示的に表現するため、知識文ペトリネットに加えて、特殊な暗黙ペトリネット(デフォルト)も併せて生成する。以下の実施例では、「太郎の帽子」を例にとる。与えられた知識文中にこの言い方があった場合これを「帽子は太郎のである。」と解釈し、「の」を関数として扱って、
図28のようなpKTNを作成する。ここで点線の○は関数記号プレースを表す。一方、これとは別に任意変数x、yを含む2つの文「xはyのである」「yはxを所有する」が等価であることを表す暗黙ペトリネット(
図29)を生成し、これらを推論に用いる。
【0049】
図30は、「花子は太郎の帽子を作った。」という知識文に対して、「太郎は何を所有しているか?」という質問をしたときに参照されるpKTNである。
図30では、質問文pKTNが言い換えを表す暗黙ペトリネットを介して知識文pKTNに繋がり、さらにその先に恒真式を表す暗黙ペトリネットに繋がることで「花子が作ったもの、帽子」と答えられるようになる。
【0050】
・単位、接尾辞
自然言語で、頻繁に使われる単位や接尾辞は、それを語基と分けて扱う方が正確に論理抽出できる。本発明では、単位や接尾辞を、語基を引数に持つ関数として扱うことで、「語基+単位」を項と見なし、それにひとつの項プレースを割り当てる。
図31はこのやり方で作成された「硫酸は酸性である。」に対応する知識文pKTNに「硫酸は何性ですか?」に対応する質問文pKTNが繋がった例である。この質問文の場合、「何性」が「何+性」と分けて解釈されることで、他の例えば「硫酸は劇物である。」という知識文pKTNとは矛盾が生じ繋がらなくなる。
【0051】
・数式表現
pKTN推論と数式計算を融合するため、本発明ではpKTNの中に数式やアルゴリズムを表現するためのデータフロー・グラフの考え方を持ち込む。
図32にデータフロー・グラフの例を示す。
データフロー・グラフはエッジの部分に数値を持たせ、ノードに演算子を持たせることにより、任意の数式やアルゴリズムを表現できるようにしたもので、
図32では、数値がグラフ上を流れることにより、6×((3+9)-7)=30の計算結果を得ることができる。
また、データフロー・グラフの著しい特徴として、各演算子ノードで局所的に逆算を行いながらデータを逆方向に流すことで数値方程式の解を求めることができるということがある。
【0052】
図32の例では、例えば数値を左から右に流すことで、6×((3+x)-7)=30の方程式を満足する解x=9を求めることができる。これと同様のことはpKTNの中でも行うことができる。これをするために本発明では、+、-などの数式記号に対応する関数記号を用意し、これをまとめ上げるトランジションに数値計算の機能を持たせる。
図33は、「太郎は2000年まで横浜に住んでいた。」という知識に対して、「太郎は2017年から何年前まで横浜に住んでいましたか?」という質問が投げかけられた時のpKTNを表している。この
図33の左下の部分にはx=2017-qという方程式が埋め込まれており、推論中にトランジションがq=2017-xという逆算を実行することにより、上記の質問に「q=17(17年前まで)」と答えることができる。
【産業上の利用可能性】
【0053】
本発明に係わる論理推論システムの応用例としては、以下のようなものがある。
(1)金融、証券分野における、取引や決済のオペレーション補助/業務代行システム。カスタマーが業務に使
用している文書(各機関マニュアル、法律等)を基に、ある取引業務に関して、膨大なマニュアル文
書を人手でチェックすることなく、システムに問い合わせることにより、高速かつ正確に業務内容の
確認情報を得られる。経験豊かではないオペレーターでも、全てのマニュアル情報を正確に取り出せ
るため、ヒューマンエラーの減少、人手不足の解消が見込まれる。
(2)工場や生産現場におけるノウハウ書、マニュアル等を元にした問合せ・情報提供システム。製造業の現場で
は、研究開発から生産・販売・流通・保守に至るまで、膨大なマニュアル文書が蓄積している。それらを統合
化し問合せをかけられるデータベースが作られると、それら文書の有効活用とヒューマンエラーの解消を実現
することができる。
(3)音声IF付チャットボットの推論エンジンとして組み込むことにより、コールセンターにおける問合せ業務代行。
(4)医療情報(電子カルテ、検査診断情報等)の論理データベース化による、地域社会全体の”医療情報統合”。
(5)地域行政、商業施設における顧客対応業務の代行によってもたらされる省力化とサービスの質の向上。