JP2008146150A - 言語理解装置、言語理解方法、及び、コンピュータプログラム - Google Patents

言語理解装置、言語理解方法、及び、コンピュータプログラム Download PDF

Info

Publication number
JP2008146150A
JP2008146150A JP2006329493A JP2006329493A JP2008146150A JP 2008146150 A JP2008146150 A JP 2008146150A JP 2006329493 A JP2006329493 A JP 2006329493A JP 2006329493 A JP2006329493 A JP 2006329493A JP 2008146150 A JP2008146150 A JP 2008146150A
Authority
JP
Japan
Prior art keywords
concept
slot
expression
semantic
frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006329493A
Other languages
English (en)
Other versions
JP4451435B2 (ja
Inventor
Kotaro Funakoshi
孝太郎 船越
Mikio Nakano
幹生 中野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honda Motor Co Ltd
Original Assignee
Honda Motor Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honda Motor Co Ltd filed Critical Honda Motor Co Ltd
Priority to JP2006329493A priority Critical patent/JP4451435B2/ja
Priority to US11/999,236 priority patent/US8117023B2/en
Publication of JP2008146150A publication Critical patent/JP2008146150A/ja
Application granted granted Critical
Publication of JP4451435B2 publication Critical patent/JP4451435B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Machine Translation (AREA)

Abstract

【課題】複雑な自然言語表現を頑健に理解する能力を有し、かつ、システム開発者の手間を軽減する。
【解決手段】言語理解装置は、ドメイン内の概念のツリー構造と、概念を特定する概念名及び概念表現とを示すデータと、概念名に対応した意味フレーム及びそのスロットを示すデータと、スロットに対応した概念名を示すデータとを記憶する記憶部を備えており、記憶部を参照して、発話内容に含まれる概念表現を検出し、対応する概念名を読み出す。さらに、記憶部を参照して、読み出された概念名に対応する意味フレームのスロット及び当該スロットに対応した概念名とを読み出し、それぞれの意味フレーム毎に、発話内容に含まれる概念表現の中から、当該意味フレームの各スロットに対応する概念名と同じ概念名に対応し、かつ、未入札の概念表現を特定し、特定した概念表現に当該スロットを入札し、その入札した結果を示すスロット割当表データを生成する。
【選択図】図1

Description

本発明は、言語理解装置、言語理解方法、及び、コンピュータプログラムに関する。
近年、自然言語を理解するシステムの構築が試みられている。このようなシステムは、非常に限られた動作をするシステムであれば、音声対応のXML(Voice extensible markup language)であるVoiceXMLなどを用いることにより比較的容易に構築できるが、少し複雑な対話と言語理解を可能にしようとした場合には、様々な問題が立ちふさがる。
従来、この自然言語理解には、構文解析が利用されていた。しかし、構文解析を行う既存のソフトウェアは、対話システムなどで用いるにはまだまだ精度も低く、自分の扱いたいドメインに対して煩雑な調整なしで満足に動作させることは難しいものであった。加えて、構文解析結果から意味表現を生成する意味表現生成器の構築に手間がかかる上、その再利用性は低い。しかし、構文解析を使わないままでは、キーワードの羅列で行える程度の対話から抜け出すことはできなかった。
以下に、自然言語理解と、二つの理解方式について述べる。
図1は、自然言語理解についての非常に単純化した模式図を示す。現在の自然言語処理パラダイムにおける自然言語理解とは、大雑把に言うと、自然言語表現から計算機が理解できるタスク表現への変換機能である。すなわち自然言語理解とは、多種多様な曖昧性を含む自然言語表現を処理してユーザの要求を曖昧性のない意味表現で表象し(図1の過程α)、ユーザの要求を達成する処理を実行するに足るタスク表現を意味表現から生成する(図1の過程β)ことといえる。本明細書では、(α)の過程を意味表現生成とよび、(β)の過程をタスク表現生成とよぶ。
対話システムであれば、実際には言語表現からタスク表現への変換は一度に行われるのではなく、不足する情報を獲得するための補助的なタスク表現、例えば、確認や明確化要求を行うための発話生成が生成/遂行されながら徐々に意味表現が積み上げられ、十分な情報と確信が手に入ったところで主たるタスク表現が生成されることになる。意味表現とは言語処理のための内部表現で、タスク表現とはタスク処理のための内部表現といえる。例えば、ロボット対話であればタスク表現はタスクプランナの入力となる目標状態(ゴール)であり、データベース検索対話であればタスク表現はSQL文である。
自然言語理解の方式は、意味表現生成方式の違いによって大きく二つに分けることができる。一つは、キーワードやパラメタライズされた表現パターンと入力発話との表層的なマッチングによって意味抽出を行う方式であり、本明細書ではこれをテンプレート方式とよぶ。もう一つは、文法規則や統計データから学習した分類器などを用いて入力発話を構文解析し、得られた構文木から再帰的な手続きによって意味表現を得る方式であり、これを構文解析方式とよぶ。
テンプレート方式は構築・保守がともに容易で、構文解析方式に比べて頑健なシステムを実現しやすいため、音声対話システムでよく用いられる。そのかわり、キーワードの羅列で代替できる単純な表現しか扱えない。一方の構文解析方式は、構文の再帰性、意味の合成性を正面から扱うため、複雑で多様な言語表現を扱うことができる。反面、構築・保守共に容易ではなく、一般に頑健性も低い。また合成性を前提とするため、非合成的な表現の理解を苦手とする。
一方、はじめに制約緩和アプローチの構文解析を行ってその結果からボトムアップな再帰的処理による意味表現の生成を試み、それに失敗すると予め与えられたキーワードパターンという知識を用いてパターンマッチングによる意味主導アプローチでの意味表現生成を行う技術がある(例えば、非特許文献1参照)。制約緩和アプローチとは、適格文(文法的に正しい文)のみを解析する文法にしたがって解析を行い、失敗した場合にはエラー回復のため、制約を緩和する処理を行うものである。
山本 幹雄、伊藤 敏彦、肥田野 勝、中川 聖一,「人間の理解手法を用いたロバストな音声対話システム」,情報処理学会論文誌,Vol.36,No.4,pp.471−482,1995年4月
従来の自然言語理解に用いられる構文解析方式及びテンプレート方式には、以下の問題点がある。
まず、構文解析方式の問題点について説明する。
図2は、一般的な構文解析方式の模式図を示す。図2は、図1中の(α)の過程に相当する。図2に示したように、構文解析方式を用いる場合、開発者は(1)自然言語表現から構文木を生成する構文解析器と、(2)元の自然言語表現の意味を表す内部表現すなわち意味表現を構文木から生成する意味表現生成器の二つのモジュールを最低限用意しなければならない。同図においては、意味表現として意味フレームを用いているが、述語論理や意味ネットワークなどの他の意味表現形式でも同様である。
構文解析方式に用いられる一つ目のモジュールである構文解析器については、既存の自然言語用構文解析器を用いるという選択と、構文解析器自体も自作するという選択の二つの選択肢がある。
構文解析器を一から自作するコストは大きいため、一般の構文解析器が持ち合わせていない特別な機能が必要である場合などを除けば、自作という選択肢はあまり現実的ではない。また、公開されている構文解析器を用いる場合にも問題がある。
構文解析を行うためには、構文解析を行うプログラムだけではなく、当然ながら対象言語とドメインに応じた文法が必要となる。いくつかの解析器には予め大規模な文法が付属してくるため、それをそのまま使用すればそれなりの解析結果を得ることはできる。しかしながら、これらの付属文法は新聞記事などの書き言葉コーパスを基に作成されており、話し言葉が使用される対話システム、特に音声対話システムでは解析精度が悪くなる。また、意味表現生成器構築の負担を軽減するために、複数の一般名詞の連なりからなるドメイン特有の固有名詞や複数の機能語や内容語からなるフレーズを一つの語として扱いたいという要求がしばしば発生する。固有名詞の追加は比較的簡単であるが、フレーズの扱いは容易ではない。
文法を自作することも可能であるが、規則間の干渉や意図しない挙動を排除しつつ文法規則を記述することは容易な作業ではない。このため近年では、人手での文法記述よりも文法の自動獲得や係り受け尤度の機械学習が主流となってきている。しかしながらこれらのアプローチは大量のコーパスと言語学的知見に裏付けられた正確で揺れの少ないアノテーションを必要とするため、ドメインの限定された対話システムの構築などを考えた場合にはやはり現実的な選択肢ではない。
構文解析方式に用いられる二つ目のモジュールである意味表現生成器は、ドメインと採用する意味表現形式に応じて構築する必要がある。一般に意味表現生成器は再帰的な手続きの集合として構成され、構文解析器の出力した構文木を入力とし、再帰的な処理の結果として意味表現を出力する。
意味表現生成器の構築が難しい最大の理由は、ドメイン概念の構造と構文構造の不一致である。この問題は既存の汎用構文解析器を用いるときに生じやすい。例えば天気予報ドメインにおいて、天気を表す概念weatherが場所と日時によって規定されると仮定する。そうすると「東京の明日の天気」という言語表現は、 weather(Tokyo, tomorrow)というような意味表現で表すことが考えられる。ここでTokyoとtomorrowは、それぞれ「東京」という場所と「明日」という日時を一意に指示するシンボルであるとする。
意味表現においてはTokyoとtomorrowはそれぞれ直接、概念weatherに支配されている。しかしながら、言語構造がその構造と同型であるとは限らない。「東京の明日の天気」の場合、係り受け解析の結果は「東京」が「明日」にかかる場合と「東京」が「天気」にかかる場合があり、どちらが出力されるのかを予め知ることは難しい。
これに対する一つの解決策は、期待する結果を出力するように、人手による文法の修正や、学習によって構文解析器を調整するというアプローチである。しかしながら、先にも述べたように人手での文法規則の調整は難しい。また構文解析器に学習させるためには大量のデータが必要となる。データの作成は収集だけでなくアノテーションなどの付加的作業も要求するので、非常に手間と時間がかかる。もう一つの解決策は、意味表現生成器がどちらの構造からもweather(Tokyo, tomorrow)という意味表現を生成できるようにすることである。一般にこのアプローチを取ると、意味表現生成器の構築のために困難で退屈なプログラミングが必要となる。また、構築された意味表現生成器は、例外的処理を多く含み他のドメインでの再利用性が低いものとなる。
「東京の明日の天気」はさらに「明日の東京の天気」と表現される可能性もある。また、「明日の東京地方の天気」「明日の東京近辺の天気」などのように余分な語句が挿入されても、それらによって意味表現生成が阻害されないようにしなければならない。また、「明日の東京と大阪の天気」という表現では、例え「明日」が「東京」にかかっている場合でも、「明日」は「大阪」に対しても同様に作用しているものとして解釈し、{weather(Tokyo, tomorrow)、weather(Osaka, tomorrow)}あるいはweather({Tokyo, Osaka}, tomorrow)のような意味表現を生成しなければならない。
上記の問題は正しい構文解析結果が得られたとしても対処しなければならないが、頻繁に発生する解析誤りに対しても頑健な生成器を作成しようとすればさらに労力を要する。
上述した非特許文献1の技術では、与えられた文法が被覆する範囲においては構文解析方式の方が複雑な表現に対して精度の高い意味解釈を行うことができると考えられる。しかし、この非特許文献1の技術では、上述する問題を解決することはできない。例えば、非特許文献1の技術によるアプローチでは、システム開発者はキーワードパターンに加えて構文解析用の文法、意味表現生成のための規則をも記述しなければならない。また、キーワードパターンは最後の苦肉の策として使用されるもので、並列構造や再帰構造を扱うことができない。すなわち非特許文献1の技術では、構文解析方式とテンプレート方式を二段階で用いることにより解析精度を保ちつつ、頑健性を増そうとしているものの、理解可能な複雑さの確保と頑健性の同時両立は得られていないという問題がある。言い換えれば、単純な表現は頑健に理解できるが、ある程度複雑な表現は助詞落ちや倒置を別にして頑健には理解できないということである。
本発明は、このような事情を考慮してなされたもので、その目的は、複雑な自然言語表現を頑健に理解する能力を有し、かつ、システム開発者の手間を軽減することができる言語理解装置、言語理解方法、及び、コンピュータプログラムを提供することにある。
この発明は、上記の課題を解決すべくなされたもので、ドメイン内で用いられる概念のツリー構造と、当該概念を特定する概念表現との対応付けを示す概念体系データと、概念に対応し、当該概念を他の概念により表現するための1以上の意味フレームと、当該意味フレームに用いられる1以上のスロットとの対応付けを示すフレーム定義データと、スロットとして用いられる概念を示すスロット定義データとを記憶する記憶部(例えば、実施の形態における記憶部6)と、入力発話データの入力を受け、前記記憶部を参照して、入力された前記入力発話データの示す発話内容に含まれる概念表現を検出し、検出した概念表現に対応した概念の情報を前記記憶部から読み出す語句解釈部(例えば、実施の形態における語句解釈部10)と、前記記憶部を参照して、前記語句解釈部により読み出された情報の示す概念に対応した意味フレームのスロットと、当該スロットに対応した概念との情報を読み出し、読み出したそれぞれの意味フレームについて、前記語句解釈部により検出された概念表現の中から、当該意味フレームの各スロットに対応する概念またはその概念の下位概念に対応し、かつ、他の意味フレームのスロットが入札されていない概念表現を特定し、この特定した概念表現に当該スロットを入札することを繰り返し、入札した結果を示すスロット割当表データを生成する入札部(例えば、実施の形態における入札部32)と、を備えることを特徴とする言語理解装置(例えば、実施の形態における言語理解装置1)である。
このような構成では、特定のドメインにおける概念構造や各概念の具体的な表現である概念表現を規定した概念体系データにより、発話内容に含まれる概念表現とその概念を抽出し、さらに、1つの概念を他の概念によって表現する意味フレームを利用して、抽出した概念表現間の関係を特定することができる。これにより、テンプレート方式の意味解釈を行いながらも、表層的な表現のバリエーションを網羅するためのパターンデータを用意することなしに語句間の関係を解析することができる。また、入れ子状になった意味表現(後述する意味木)を生成することができる。
また、本発明は、上述する言語理解装置であって、前記入力発話データの入力を受け、入力された入力発話データにより示される前記発話内容の構文解析を行って発話内容を構成する形態素列間の係り受けの関係を得、この得られた係り受けの関係に基づいて形態素列間のアクセス可能性を示すアクセス表データを生成するアクセス表生成部(例えば、実施の形態におけるアクセス表生成部20)をさらに有し、前記入札部は、それぞれの意味フレームについて入札を行うときに、前記語句解釈部により検出された概念表現の中から、当該意味フレームの各スロットに対応する概念またはその概念の下位概念に対応し、かつ、他の意味フレームのスロットが入札されていない概念表現を特定し、前記アクセス表生成部により生成されたアクセス表データにより、前記特定した概念表現に、当該意味フレームに対応する概念表現がアクセス可能であることが示される場合に、この特定した概念表現に当該スロットを入札する、ことを特徴とする。
このような構成によれば、構文解析器による構文解析結果を補助的に使用して発話内容に含まれる語句間の関係を解析することができるため、より正確に語句間の関係を解析することができる。なお、「形態素列間のアクセス可能性」とは、依存構造木上のノード間の到達可能性である。
また、本発明は、上述する言語理解装置であって、前記アクセス表生成部は、構文解釈を行った形態素列1つの中に、前記語句解釈部が検出した解析した概念表現が1つ含まれるように、前記形態素列を分割あるいは結合し、その結果得られた形態素列を用いて前記アクセス表データを生成する、ことを特徴とする。
このような構成によれば、ドメインによる語彙と、構文解析の結果の形態素列が一致しない場合であっても、形態素列をドメインによる語彙に摺り合わせてアクセス表を生成することができるため、既存の構文解析器を調整することなくそのまま使用することが可能であり、構文解析器の交換も容易となる。
また、本発明は、上述する言語理解装置であって、フレーム組み合わせ生成部(例えば、実施の形態におけるフレーム組み合わせ生成部31)は、前記記憶部を参照して、前記語句解釈部により読み出された概念に対応する意味フレームを特定し、一つの概念に対応して特定した意味フレームが複数あった場合に、取り得る意味フレームの組み合わせを生成し、前記入札部は、前記フレーム組み合わせ生成部が生成した意味フレームの組み合わせ毎に前記スロット割当表データを生成し、スコア付け部(例えば、実施の形態におけるスコア付け部36)は、前記フレーム組み合わせ生成部が生成した意味フレームの組み合わせそれぞれに対応する前記スロット割当表データを参照して概念表現へのスロットの入札状態に基づいてスコアを付与し、付与したスコアによって発話内容に用いられているフレーム組み合わせを選択する、ことを特徴とする。
このような構成によれば、1つの概念を複数の異なる表現(意味フレーム)を用いて表現可能な場合に、スロットの入札状態によって、とりうる表現それぞれに用いられる概念の語句が発話内容に現れているかを判断し、どの表現が使用されているかを正しく選択して構文を解析することが可能となる。
また、本発明は、上述する言語理解装置であって、前記スロット定義データは、スロットを特定する概念表現の情報をさらに含み、前記語句解釈部は、前記記憶部を参照して、入力された前記入力発話データの示す発話内容に含まれる概念表現を検出し、検出した概念表現に対応した概念またはスロットを読み出し、前記入札部により1つの概念表現に対して同一フレームの複数のスロットが入札された場合、スロットを特定する他の概念表現が前記発話内容において当該概念表現に付随するかを検出し、検出された場合に、この付随する他の概念表現により特定されるスロットを、当該概念表現へ入札されるスロットとして選択し、選択した結果に基づいて前記スロット割当表データを書き換えるスロット衝突解決部(例えば、実施の形態におけるスロット衝突解決部33)とをさらに備える、ことを特徴とする。
このような構成によれば、意味フレームが同一の概念の異なるスロットを用いる場合、1つの概念表現にスロットが複数入札されうるが、発話内容においてその概念表現に付随する他の概念表現から正しいスロットを選択して入札することができる。
また、本発明は、上述する言語理解装置であって、前記スロット定義データは、スロットを特定する標示の情報をさらに含み、前記入札部により1つの概念表現に対して同一フレームの複数のスロットが入札された場合、前記記憶部を参照して、前記発話内容において当該概念表現に標示が付随しているかを検出し、検出された場合に、当該標示により特定されるスロットを、当該概念表現へ入札されるスロットとして選択し、選択した結果に基づいて前記スロット割当表データを書き換えるスロット衝突解決部(例えば、実施の形態におけるスロット衝突解決部33)とをさらに備える、ことを特徴とする。
このような構成によれば、意味フレームが同一の概念の異なるスロットを用いる場合、1つの概念表現にスロットが複数入札されうるが、発話内容においてその概念表現に付随する標示から正しいスロットを選択して入札することができる。
また、本発明は、上述する言語理解装置であって、請求項1から請求項4のいずれかの項に記載の言語理解装置であって、前記入札部により、同じ概念に対応する複数の概念表現それぞれに対して同一意味フレームの複数のスロットが入札された場合、前記発話内容における前記複数の概念表現の出現順と、前記記憶部内に記憶されているスロット出現順序の情報により示されるスロットの順序とが対応するように、前記複数の概念表現それぞれへ入札されるスロットを選択し、選択した結果に基づいて前記スロット割当表データを書き換えるスロット衝突解決部(例えば、実施の形態におけるスロット衝突解決部33)とをさらに備える、ことを特徴とする。
このような構成によれば、意味フレームが同一の概念の異なるスロットを用いる場合、複数の概念表現に同一の複数スロットが入札されうるが、発話内容においてその概念表現に付随する他の語句を解析することなく、一般的な発話における規則性に基づいて正しいスロットを選択し、入札することができる。
また、本発明は、上述する言語理解装置であって、前記入札部によりどの概念表現にも入札されなかったスロットである空スロットがあった場合、当該空スロットと対応する概念が一致し、かつ、他のスロットが入札されていない概念表現に、当該空スロットを入札し、入札した結果に基づいて前記スロット割当表データを書き換えることを特徴とする構文誤り解析部(例えば、実施の形態における解析部34)とをさらに備える、ことを特徴とする。
このような構成によれば、構文解析器による構文解析に誤りがあった場合でも、概念表現に正しくスロットを入札することができる。
また、本発明は、上述する言語理解装置であって、意味フレームに対応し、かつ、前記入札部により当該意味フレームのスロットが入札されなかった概念表現について、前記発話内容において当該概念表現より先に出現し、かつ、当該概念表現と同じ概念に対応する他の概念表現を特定し、この特定した他の概念表現と当該概念表現とが並列構造をなすことを検出し、かつ、この特定した他の概念表現に対応した意味フレームが、当該概念表現に対応した前記意味フレームの入札されなかったスロットと同じスロットを持つことを検出し、かつ、この特定した他の概念表現に対応した意味フレームの持つ当該検出したスロットが、前記入札部によりさらに別の概念表現に入札されていることを検出した場合、当該概念表現に対応する当該意味フレームの入札されなかった当該スロットをこの検出した別の概念表現に入札し、入札した結果に基づいて前記スロット割当表データを書き換える文内省略解決部(例えば、実施の形態における文内省略解決部35)をさらに備える、ことを特徴とする。
このような構成によれば、並列構造のために、先頭では言及された要素(概念表現)が、二番目以降の要素では省略されて発話された場合であっても、省略された概念表現にスロットを入札することができるため、省略された語句を補って意味解釈を行うことができる。
また、本発明は、上述する言語理解装置であって、前記スロット割当表データを参照して、意味フレームを有する概念表現と、当該意味フレームのスロットが入札されている概念表現とから意味木を生成する意味木生成部(例えば、実施の形態における意味木生成部40)とをさらに備える、ことを特徴とする。
このような構成によれば、スロット割当表データから、タスク処理の命令に用いられるパラメータを容易に抽出可能な意味木の形で概念表現間の関係を木構造で表すことができる。
また、本発明は、上述する言語理解装置であって、前記意味木生成部は、意味フレームに対応した概念表現の下位ノードに、当該意味フレームの各スロットの入札先の概念表現を列挙して配置し、さらに、配置した概念表現に意味フレームが対応している場合には、配置した概念表現の下位ノードに、当該配置した概念表現の意味フレームの各スロットの入札先の概念表現を配置することを繰り返して意味木を生成する、ことを特徴とする。
このような構成によれば、スロット割当表データによって示される概念表現間の関係を正しく表した意味木を生成することが可能となる。
また、本発明は、上述する言語理解装置であって、前記意味木生成部は、意味フレームに対応した概念表現の下位ノードに、入札先の概念表現が一つであるスロットの場合はその入札先の概念表現を、入札先が複数のスロットの場合は列挙を示す群ノードを列挙して配置し、前記列挙を示す群ノードの配下に当該群ノードに対応したスロットの入札先の複数の概念表現を列挙して配置し、さらに、配置した概念表現に意味フレームが対応している場合には、当該配置した概念表現の意味フレームについて同様の処理を繰り返して意味木を生成し、生成した結果の意味木内に群ノードがある場合に、生成した意味木をトップのノードのみを群ノードとする意味木に変換する、ことを特徴とする。
このような構成によれば、同一のスロットに対して複数の概念表現が列挙される場合であっても、列挙型のパラメータ構造をとらないタスク処理の命令に容易に変換可能な意味木の形で概念表現を表すことができる。
また、本発明は、上述する言語理解装置であって、前記意味木生成部は、同一の意味フレームの中に、複数のスロットからなる繰り返しのパターンを検出した場合、当該繰り返しパターンをグループ化し、このグループ別に前記意味木を生成する、ことを特徴とする。
このような構成によれば、同じ意味フレームのスロットとして判断された概念表現であっても、その概念表現間の関係をグループ化して分離し、異なるグループごとの意味木を生成することができる。
また、本発明は、上述する言語理解装置であって、前記意味木生成部の作成した意味木から、タスクの実行指示を生成するタスク表現生成部(例えば、実施の形態におけるタスク表現生成部50)とをさらに備える、ことを特徴とする。
このような構成によれば、タスクに引き渡すパラメータとすべき概念表現を生成された意味木から特定して、タスクの実行を指示することが可能となる。
また、本発明は、自然言語の発話内容をコンピュータ処理に用いられる意味表現に変換する言語理解装置に用いられる言語理解方法であって、前記言語理解装置において、ドメイン内で用いられる概念のツリー構造と、当該概念を特定する概念表現との対応付けを示す概念体系データと、概念に対応し、当該概念を他の概念により表現するための1以上の意味フレームと、当該意味フレームに用いられる1以上のスロットとの対応付けを示すフレーム定義データと、スロットとして用いられる概念を示すスロット定義データとを記憶する記憶部を備え、入力発話データの入力を受け、前記記憶部を参照して、入力された前記入力発話データの示す発話内容に含まれる概念表現を検出し、検出した概念表現に対応した概念の情報を前記記憶部から読み出す語句解ステップと、前記記憶部を参照して、前記語句解釈ステップにより読み出された情報の示す概念に対応した意味フレームのスロットと、当該スロットに対応した概念との情報を読み出し、読み出したそれぞれの意味フレームについて、前記語句解釈部により検出された概念表現の中から、当該意味フレームの各スロットに対応する概念またはその概念の下位概念に対応し、かつ、他の意味フレームのスロットが入札されていない概念表現を特定し、この特定した概念表現に当該スロットを入札することを繰り返し、入札した結果を示すスロット割当表データを生成する入札ステップと、を有することを特徴とする言語理解方法である。
また、本発明は、言語理解装置として用いられるコンピュータを、ドメイン内で用いられる概念のツリー構造と、当該概念を特定する概念表現との対応付けを示す概念体系データと、概念に対応し、当該概念を他の概念により表現するための1以上の意味フレームと、当該意味フレームに用いられる1以上のスロットとの対応付けを示すフレーム定義データと、スロットとして用いられる概念を示すスロット定義データとを記憶する記憶部、入力発話データの入力を受け、前記記憶部を参照して、入力された前記入力発話データの示す発話内容に含まれる概念表現を検出し、検出した概念表現に対応した概念の情報を前記記憶部から読み出す語句解釈部、前記記憶部を参照して、前記語句解釈部により読み出された情報の示す概念に対応した意味フレームのスロットと、当該スロットに対応した概念との情報を読み出し、読み出したそれぞれの意味フレームについて、前記語句解釈部により検出された概念表現の中から、当該意味フレームの各スロットに対応する概念またはその概念の下位概念に対応し、かつ、他の意味フレームのスロットが入札されていない概念表現を特定し、この特定した概念表現に当該スロットを入札することを繰り返し、入札した結果を示すスロット割当表データを生成する入札部、として機能させることを特徴とするコンピュータプログラムである。
本発明によれば、ドメインの知識を与えるだけで、構文解析器の調整や意味表現生成器の構築を行わずに、構文解析に基づく自然言語の理解機構を素早く簡単に構築することができる。また、構文解析を補助的にのみ用い、構文解析を用いない言語理解手法の利点も兼ね備える。
このように、本発明による言語理解装置は、構文解析方式とテンプレート方式とを融合し、理解可能な表現の複雑さの確保と頑健性の両立をはかり、さらには、システム開発者が記述しなければならない知識の量も大幅に削減することが可能である。
以下、図面を参照して本発明の一実施の形態を説明する。
[1.概要]
本実施形態による言語理解装置では、対話システムを含むドメイン依存言語理解装置のための、構文解析に基づく意味表現生成(図1の過程α)を実現する。
既存技術による諸問題、特に意味表現生成器に関する問題は、構文解析結果を意味解釈の中心に置きすぎていたことに起因すると考えられるため、本実施の形態における言語理解装置は、構文解析結果よりもドメイン知識を意味解釈の中心的な要素とし、構文解析結果を補助的に利用する。ここでいうドメイン知識とは、オントロジー(概念体系と、各概念に付与され、概念を規定する意味フレーム、そして各概念を表す言語表現を含む)と、固有表現(ドメインに現れる事物の名前)である。
このように、構文解析を用いることにより、キーワードや表層パターンを用いる手法よりも、複雑な表現を理解することを可能にする。また、構文解析には既存の汎用解析器を利用するが、ドメインに応じた解析器の調整は必要ない。そして、ドメイン知識を重用し、構文解析結果をあくまで補助的に利用することにより、頑健な言語理解装置とその迅速な構築を実現する。
[2.ドメイン知識と意味表現]
最初に、本実施の形態による言語理解装置におけるドメイン知識と意味表現について説明する。
本実施の形態による言語理解装置は、ドメインの知識さえ与えれば構文解析器の調整や意味表現生成器の作成を行わずに構文解析方式を構築できるフレームワークを実現する。つまり、本実施の形態の言語理解装置による意味表現生成手法は、このフレームワークの中で動作するものであり、意味表現生成に使用できる知識は与えられるドメイン知識に依存する。そこで、以下にドメイン知識を定義する。また、このフレームワークでは意味表現をタスク表現に変換する処理(図1中の過程β)の記述も容易となる。
[2.1 オントロジー]
本実施の形態の言語理解装置に用いられるオントロジーでは、ドメインを規定する概念の集合を木構造により定義し、これら各概念に対応する言語表現と意味フレームを記述する。各概念は、概念を唯一に特定する固有名(概念名)を持つ。そして、その概念が実際に対話中で言語的に言及される概念ならば、その概念を指示するための表現、すなわち、概念表現を持つ。図3に、ホテル予約システム用の概念体系の例を示す。同図において、各ノードは概念名を示し、括弧の中は概念表現を示す。概念表現中の記号#は任意の数字列を表す。同図において、最上位ノード「T」の配下に、概念「reserve」、「stay」、「type」、「quantity」、「smoke」、「date」、「ordinal」がある。概念「reserve」には、言語表現「予約」が対応付けられている。また、概念「stay」には、さらに配下に、概念「stay-days」、「stay-nights」があり、概念「stay-days」には、言語表現「#日間」及び「#日」が、概念「stay-nights」には、言語表現「#泊」が対応付けられている。
さらに、各概念は概念を規定する意味フレームを一つ以上持つ。意味フレームとは、概念を変数(スロット)とその値の集合で表現する意味表現手段である。図4は、概念「reserve」(図3参照)の意味フレーム定義を示す。意味フレームを複数定義することにより、同じ内容を異なるパラメータ指定で受け付けることができる。例えば、曜日で日付を指定する表現のバリエーション(「来月の第三日曜」、「来週の日曜」など)も複数の意味フレーム(以下、単に「フレーム」とも記載)を定義することで解決できる。
同図において、概念「reserve」には、2つの意味フレーム「reserveF0」、「reserveF1」があり、「reserveF0」は、スロット名「start」、「stay」、「type」、「quant」、「smoke」のパラメータをとる。これにより、「23日から3泊でシングルを一つ禁煙で予約」という表現を受け付けることができる。また、「reserveF1」は、スロット名「start」、「end」、「type」、「quant」、「smoke」のパラメータをとる。これにより、「23日から26日までシングルを一つ禁煙で予約」という表現を受け付けることができる。
図5に示すスロットの定義では、スロット名、対象概念、スロット指定、標示、明確化要求表現の五つを与える。対象概念は、スロットの値となりうる概念である。ここで、概念体系のある概念を指定すると、その概念とその下位概念とがスロットの値となれる。スロット指定は、ある概念表現が値となるスロットを指定する場合に用いられる言語表現であり、例えば「チェックインは25日」というような場合の「チェックイン」がこれにあたる。標示(マーカー)も、ある言語表現がどのスロットの値であるのかを特徴づける。日本語の場合、標示はマークする言語表現に後続し、多くは機能語である。標示はスロット指定ほど明示的ではないが、ある言語表現がスロットの区別に有用である場合にドメイン知識の一部として与える。それ以外、例えば、助詞の「は」などは与える必要はない。明確化要求表現は、スロットの値が不定であった場合に、言語理解装置に備えられた対話システムがユーザに問い合わせるために用いるものであり、意味表現生成には影響しない。明確化要求表現が与えられない場合は、対話システムは問い合わせを行わずにデフォルトの値を用いる。デフォルト値は、任意の設定方法により言語理解装置内に定義することが可能である。
同図においては、概念「reserve」のスロット定義を示しており、スロット名「start」は、対象概念が「date」、スロット指定は「チェックイン」、標示は「から」、明確化要求表現は「いつからのご宿泊ですか?」であることが示されている。また、スロット名「stay」は、対象概念が「stay」、スロット指定は「宿泊日数」「滞在日数」、明確化要求表現は「何泊ご利用ですか?」であることが示されている。
本実施の形態の言語理解装置が実現する言語理解フレームワークを利用してアプリケーションを実行させるため、意味フレームを定義する際にその意味フレームの表現する内容をアプリケーションシステムのタスク処理モジュールが理解できる具体的な情報に変換するための具体化関数を定義し、汎用プログラミング言語でその実装を与える。そして意味フレームから具体化関数へのマッピングを指定する。この具体化関数は、任意のものを使用することが可能であるが、具体化関数こそが言葉の意味を機械が理解可能な形に変換する要であり、図1中の過程(β)(タスク表現生成)の始めに必要である。例えば、滞在日数が「3泊」と指定されたときは概念「stay-nights」の持つ唯一の意味フレームに対応する具体化関数により整数値の3に変換され、「4日間」と指定されたときは概念「stay-days」の持つ唯一の意味フレームに対応する具体化関数により整数値の3に変換される。
なお、本実施の形態における意味フレームと、意味フレームからタスク表現へと変換するための具体化関数へのマッピングとを組み合わせた知識は、従来技術の非特許文献1のキーワードパターンに相当する。また、本実施の形態における具体化関数自体に相当する知識は、従来技術の非特許文献1では、システムのなかの問題解決器に埋め込んでいる。
[2.2 固有表現]
次に、固有表現について説明する。
ドメインには上記のオントロジーで定義した概念(クラス)のインスタンスが存在し、いくつかのインスタンスは名前を持つ。概念ではなく個々のインスタンスを指示する表現(名前)を、固有表現とよぶ。
固有表現は、インスタンスを定義する際に個々のインスタンスと結びつけながら定義する。ただし固有表現は必ずしも唯一のインスタンスを指示しない。これは、同姓同名の人物が世の中に大勢いることを例に考えるとよい。個々のインスタンスを唯一に識別可能にするものは個々のインスタンスを定義する時に設定する固有の文字列であり、これをインスタンスシンボルとよぶ。インスタンスシンボルは意味表現そしてタスク表現を構成する要素となり、最終的にタスク処理モジュールが利用する。
[2.3 意味木]
続いて、意味木について説明する。
意味表現生成器が出力する意味表現形式として意味木を定義する。意味木は図2の右側に図示されているような意味フレームの入れ子構造を、図6のように木構造で表現したものである。
意味木には、内容ノード、群ノードの二種類のノードがある。どちらのノードもその子ノードとして二種類のノードのいずれをも取ることができる。
内容ノードは、入力表現の中でそのノードに対応する部分表現への参照とその部分表現が表す概念を保持する。また、そのノードがドメイン中のインスタンスを指し示す場合はインスタンスシンボルを、そうでない場合はその概念を規定するフレームを保持する。ある内容ノードの子ノードの最大数はノードが表すフレームの持つスロットの数である。子ノードはスロットの値を表現する。
他方、群ノードは並列構造を表現し、列挙型と代替型の二つの型に分かれる。群ノードが持つ子ノードの数に制限は無い。群ノードは、並列構造の各要素の表層上での出現順序を子ノードの順序として保存する。
同図に示す意味木は、以下の(例文1)から生成されたものである。
「明日の東京と明後日の京都と大阪の天気」(例文1)
同図における「vg_e」は列挙型の群ノードを表す。各内容ノードはその内容ノードに対応する言語表現(概念表現あるいは固有表現)で表している。同図において、最上位ノードには、二つの言語表現「天気」が列挙されており、一方の言語表現「天気」は、概念「date」の言語表現「明日」と、概念「place」の言語表現「東京」を受けている。また、もう一方の言語表現「天気」は、概念「date」の言語表現「明後日」と、概念「place」の言語表現「東京」及び「大阪」が列挙された群ノード「vg_e」を受けている。
[4.言語理解装置の構成]
次に本実施の形態による言語理解装置の構成について以下に示す。
図7は、言語理解装置1のハードウェア構成を示す図であり、本発明と関係するもののみ抽出して示している。同図において、言語理解装置1は、CPU(central processing unit)81、入力部82、表示部83、記憶部84、集音部85、及び、音声出力部86から構成される。
CPU81は、演算や制御を行う中央演算装置である。入力部82は、マウスや、キーボードなどである。表示部83は、LCD(Liquid Crystal Display)などのディスプレイである。記憶部84は、システムプログラムなどが記憶されるROM(Read Only Memory)や、CPU81が各種プログラムを実行する際のワークエリアなどを有するRAM(Random Access Memory)、各アプリケーション処理を実行するためのプログラムなどが記憶させるハードディスク等を有する。集音部85は、音を集音するマイクなどである。音声出力部86は、音を出力するスピーカなどである。
図8は、言語理解装置1の構成を示す機能ブロック図であり、本発明と関係する機能ブロックのみ抽出して示してある。言語理解装置1は、音声入力部2、テキスト変換部3、意味表現生成部4、タスク表現生成部5、及び、記憶部6を備える。テキスト変換部3、意味表現生成部4、及び、タスク表現生成部5は、CPU81が記憶部84内に記憶しているプログラムを読み出して実行することにより実現される。
記憶部6は、オントロジーデータとして、概念体系データ、フレーム定義データ、及び、スロット定義データを記憶する。
概念体系データは、図3に示すような概念体系を表すデータであり、ドメインを規定する概念の集合からなる木構造、これら各概念に対応する言語表現の情報を示す。各概念は、当該概念を唯一に特定する固有名としての概念名により示され、概念が実際に対話中で言語的に言及される概念ならば、概念体系データには、その概念を指示するための表現である概念表現が含まれる。
フレーム定義データは、図4に示すようなフレーム定義を表すデータであり、概念名と、当該概念名に対応した1以上の意味フレームとからなり、意味フレームには、1以上のパラメータが用いられる。このパラメータは、1以上のスロット名からなる。
スロット定義データは、図5に示すようなスロット定義を表すデータであり、スロット名、対象概念、スロット指定、標示、明確化要求表現を示す。対象概念はスロットの値となりうる概念が概念名で示される。スロット指定は、ある概念表現が値となるスロットを指定する場合に用いられる言語表現を示す。標示は、ある言語表現がどのスロットの値であるかを特徴づける。明確化要求表現は、スロットの値が不定であった場合に、ユーザに問い合わせるために用いる。
音声入力部2は、集音部85に対応し、発話内容の入力を受ける。テキスト変換部3は、例えば、汎用的な音声認識ソフトウェアなどにより実現され、音声入力部2により入力された発話内容をテキストに変換する。意味表現生成部4は、テキスト変換部3によりテキストに変換された入力発話内容を示す入力発話データの入力を受け、自然言語表現から意味表現への変換を行う(図1の過程αに相当)。なお、入力部82により直接入力された発話内容を示す入力発話内容データの入力を受けても良い。タスク表現生成部5は、意味表現を、アプリケーションシステムのタスク処理モジュールが理解できる具体的な情報に変換するための具体化関数を用い、意味表現生成部4により生成された意味表現から、タスク処理アプリケーションへ処理の実行を指示するためのタスク表現を生成し、タスク処理アプリケーションの実行部(図示せず)へ出力する(図1の過程β)。なお、具体化関数は、汎用プログラミング言語により、実装することができる。例えば、タスク表現生成部5は、ロボット対話であればタスクプランナの入力となる目標状態(ゴール)を、データベース検索対話であればSQL文をタスク表現として生成する。ここでは、タスク表現生成部5が、意味表現からタスク表現へ変換する処理には、既存の技術を用いるものとする。
意味表現生成部4は、語句解釈部10、アクセス表生成部20、フレーム解釈部30、意味木生成部40を有する。
語句解釈部10は、テキスト変換部3から入力された入力発話データの示す自然言語表現の入力発話内容から、概念や事物への言及を抽出する。
アクセス表生成部20は、構文解析部21及びアクセス表生成出力部22とからなる。構文解析部21は、既存の構文解析器を用いることができ、テキスト変換部3から入力された入力発話データの示す自然言語表現の入力発話内容から、構文解析を行う。アクセス表生成出力部22は、構文解析部21による解析結果と、語句解釈部10における語句解釈の結果とから、アクセス表を生成する。このアクセス表とは、構文解析した結果の得られた語句間の距離を行列の形で表現した構文解析結果である。
フレーム解釈部30は、アクセス表生成部20の生成したアクセス表のデータを参考にして、フレームとスロット値の組み合せを決定し、その決定した組み合せによるスロット割当表データを意味木生成部40へ出力する。フレーム解釈部30は、フレーム組み合せ生成部31、入札部32、スロット衝突解決部33、構文解析誤り回復部34、文内省略解決部35、及び、スコア付け部36を備える。
フレーム組み合せ生成部31は、語句解釈部10から入力された語句解釈結果データ内に含まれる各概念表現に対応したフレームについての全ての組み合せを生成する。入札部32は、アクセス表生成出力部22が出力したアクセス表のデータを参照し、フレーム組み合せ生成部31が生成した全てのフレームの組み合せについて、フレームへのスロット値の割り当てを行い、その割り当て結果を、概念表現間の関係を行列で表した表に書き込んだ(入札した)スロット割当表を生成する。スロット衝突解決部33は、入札部32が生成したスロット割当表において、複数のスロットの値として入札されている概念表現について、正しいスロットを選択して割り当てる。構文解析誤り回復部34は、構文解析結果の誤りを回復し、割り当てられるべきスロットが割り当てられていない概念表現に、正しくスロットを割り当てる。文内省略解決部35は、スロット割当表において、並列構造により省略された語句であるためにスロットが割り当てられていなかった概念表現に対して、スロットを割り当てる。スコア付け部36は、フレーム組み合せ生成部31が生成したすべてのフレーム組み合せのスロット割当表について、適切なスロットが用いられているかの評価をスコア付けによって行う。スコア付け部36は、最も適切であるフレーム組み合せのスロット割当表のデータを意味木生成部40へ出力する。
意味木生成部40は、フレーム解釈部30から入力されたスロット割当表データにより示されるフレーム解釈の結果から意味木を生成する。意味木生成部40は、スロット値グルーピング部41、変換部42、及び、因子分解部43を備える。
スロット値グルーピング部41は、複数のスロット値からなる繰り返しのパターンを検出し、グループ化して分離する。変換部42は、スロット割当表を意味木に変換する。因子分解部43は、変換部42が生成した意味木において、群ノードを子ノードに持つ内容ノードを展開して具体化関数にマッピングできる状態にし、タスク表現生成部へ出力する。
[5.言語理解装置の処理動作]
次に、言語理解装置1の動作について説明する。
図9は、言語理解装置1の処理フローを示す図である。
同図において、まず、言語理解装置1の音声入力部2に音声が入力される(ステップS100)。テキスト変換部3は、音声入力部2に入力された音声の認識を行い、入力発話内容をテキストにより示した入力発話データを生成して、意味表現生成部4へ出力する(ステップS200)。なお、キーボードなどにより直接入力された発話内容を示す入力発話内容データを意味表現生成部4へ出力しても良い。
言語理解装置1において、入力発話データの示す入力発話内容から意味木データを生成する意味表現生成処理(ステップS300)は、次の4過程からなる。
(ステップS310)語句解釈:
入力表現から概念や事物への言及を抽出する。
(ステップS320)アクセス表生成:
構文解析を行い、解析結果を語句解釈の結果にすりあわせる。
(ステップS330)フレーム解釈:
アクセス表に基づき、フレームとスロット値の組み合せを決める。
(ステップS340)意味木生成:
フレーム解釈の結果から意味木を生成する。
このステップS300における意味表現生成処理は、図1の過程αの処理に相当する。ただし、図2に示すような純粋なカスケード処理ではない。上記のステップS310〜S340の過程は、表面上はカスケード処理であるが、本質的にカスケードとなっているのはステップS310、S330及びS340の処理である。ステップS320のアクセス表生成処理は、出力の際にステップS310の処理結果を必要とするものの、構文解析自体はステップS310と並列の関係にある。
以下に、ステップS310〜S340の詳細な処理について説明する。
[5.1 語句解釈]
ステップS310において、言語理解装置1の語句解釈部10は、入力発話データの示す入力発話内容に対して言語依存の正規化処理を行う。この処理は、日本語の場合、漢数字からアラビア数字への変換、日付表記の書式変換処理である。
次に、語句解釈部10は、書式変換処理を行った入力発話内容に対して、正規表現によるパターンマッチングを行う。パターンマッチングは、ドメイン知識として記憶部6内に記憶されている概念体系データ及びスロット定義データにより示される概念表現、スロット指定、固有表現を対象とする。このとき、ある部分文字列に対して複数のパターンがマッチする可能性があるので、語句解釈は重なりなしで最大被覆をもたらすマッチング結果の集合を出力する。なお、テンプレート方式の一種であるキーワードマッチング方式は、この処理だけで言語理解を行おうとするものである。
図10に、語句解釈部10が、「8月23日チェックイン25日チェックアウトでシングルとダブルを一部屋ずつ予約」(例文2)という、書式変換後の入力発話内容の表現を語句解釈した結果を示す。
語句解釈部10は、記憶部6に登録されている概念体系データ(図3)及びスロット定義データ(図5)を検索し、概念体系データに、例文2の最初の語句「8月」にマッチする、「#月」という概念表現があることを検出する。語句解釈部10は、入力発話内容において最初にパターンにマッチした語句であることを示す「(1)」と、入力発話内容においてマッチした概念表現「8月」と、「概念」にマッチしたこと、及び、そのマッチした概念の概念名「month」とを対応付けたデータを生成する。
語句解釈部10は、さらに検索を行い、概念体系データに、例文2における次の語句「23日」にマッチする「#日」という概念表現があることを検出する。語句解釈部10は、入力発話内容において2番目にパターンにマッチした語句であることを示す「(2)」と、入力発話内容においてマッチした概念表現「23日」と、「概念」にマッチしたこと、及び、そのマッチした概念の概念名「day」とを対応付けたデータを生成する。
語句解釈部10は、さらに検索を行い、スロット定義データに、例文2におけるその次の語句「チェックイン」にマッチするスロット指定があることを検出する。語句解釈部10は、入力発話内容において3番目にパターンにマッチした語句であることを示す「(3)」と、入力発話内容においてマッチした概念表現「チェックイン」と、「スロット指定」にマッチしたこと、及び、そのマッチしたスロットのスロット名「start」とを対応付けたデータを生成する。
語句解釈部10は、上記を繰り返し、入力発話内容に対してパターンマッチング処理により語句解釈を行い、図10に示すような語句解釈結果を示すデータを生成して、アクセス表生成部20及びフレーム解釈部30へ出力する。
[5.2 アクセス表生成]
図9のステップS320において、言語理解装置1のアクセス表生成部20は、以下のステップS321〜S322の処理を行う。
[5.2.1 構文解析]
アクセス表生成部20の構文解析部21は、入力された入力発話データの示す入力発話内容の構文解析を行う(ステップS321)。この構文解析部21には、例えば既存の構文解析ソフトウェアなど、任意の構文解析器を用いることができる。図11に、例文2の入力発話内容を構文解析した結果の構文解析木を示す。同図によれば、「8月23日」は「チェックイン」に、「チェックイン」は「25日」に、「シングルと」は「ダブルを」にかかっている。また、「25日」、「チェックアウトで」、「ダブルを」、及び、「一部屋ずつ」は「予約」にかかっている。
[5.2.2 アクセス表生成]
次に、アクセス表生成部20のアクセス表生成出力部22は、構文解析部21による構文解析に基づき、アクセス表を生成する(ステップS322)。アクセス表は、構文解析結果(複数候補があるときは1位のもの)を行列の形で表現したもので、構文解析木のノードである二つの語句の間にパスが存在するかどうかを表す。ここでは構文解析結果として依存構造を用いているが、句構造から依存構造への変換は容易なので、句構造文法を使用する構文解析器を用いてもかまわない。
ここで、構文解析部21に汎用の構文解析器を用いているため、ドメインの語彙と構文解析結果(の前提とする形態素列)が一致しない場合がある。そこで、アクセス表生成出力部22は、構文解析結果を語句解釈部10における語句解釈の結果に摺り合わせてアクセス表を作成する。
例えば、構文解析部21における1つのノード(構造解析単位)に、語句解釈部10による語句解析結果により検出された概念表現(語句)が1つ含まれている場合は、これらは対応するものとみなす。一方、構文解析部21における1つのノード(文節)に、語句解釈部10による語句解析結果により検出された概念表現が複数含まれている場合は、語句解析結果により検出された概念表現に分割する。例えば、「8月23日」は構文解析部21においては一つの文節にまとめられているが、図3に示す概念体系データによる定義では、「8月」と「23日」は別々の概念であり、語句解釈部10から出力された語句解釈結果データにも異なる概念表現として解析されている。そこで、アクセス表生成出力部22は、「8月23日」を「8月」と「23日」との2つに分解する。このように、複数の連続する概念が一つの依存構造解析単位としてまとめられてしまった場合は、解析単位の依存先をそのうちの最右概念(入力発話内容において先に出現する概念表現)の依存先とし、その他の概念は直右の概念に距離1で到達可能と見なす。逆に、一つの概念が複数の依存構造解析単位に分割されてしまった場合は、最も右にある解析単位(入力発話内容において後に出現する概念表現)の依存先をその概念の依存先とする。それ以外の解析単位が別の概念に依存していてもそれらは無視する。複数の依存構造解析単位に分割された概念は、そのうちの任意の解析単位に依存する概念全ての依存先となる。
図12は、図11の構文解析木と、図10に示す語句解釈結果から生成したアクセス表を示す。同図に示すアクセス表の行と列を構成する概念表現は、語句解釈部10から入力された語句解釈結果データにより示されるものが用いられている。構文解析結果とアクセス表を見比べてみると、表中のx行とy列の交差点に記された数字は、x行に示された概念表現がy列に示された概念表現に到達するまでの距離(木構造上のパス長)を表している。なお、空欄箇所は0の意味であり、到達不可能であることを示している。例えば「ダブル」は「シングル」に距離1で到達できる。また、「予約」は、「25日」、「チェックアウト」、「ダブル」、及び、「一部屋」には距離1で、「25日」の1つ上位の「チェックイン」、及び、「ダブル」の1つ上位の「シングル」には距離2で、「チェックイン」の1つ上位の「23日」には距離3で、「23日」の1つ上位の「8月」には距離4で到達する。
アクセス表生成出力部22は、生成したアクセス表のデータをフレーム解釈部30へ出力する。
[5.3 フレーム解釈]
図9のステップS330において、言語理解装置1のフレーム解釈部30は、アクセス表データを参考にして、語句解釈で抽出された各概念に該当するフレームとスロット割当を決定する。具体的には、以下のステップS331〜S338の処理を行う。
[5.3.1 フレーム組み合せ生成]
フレーム解釈部30のフレーム組み合せ生成部31は、語句解釈部10から語句解釈結果データの入力を受けると、記憶部6を参照して、語句解釈結果データ内に含まれる全ての概念それぞれについて対応するフレーム定義データがあるかを検索し、あればそれを読み出す。そして、読み出したフレーム定義データを参照して、取り得る全てのフレームから組み合せを生成する(ステップS331)。
図4では概念「reserve」についてのフレームのみを示しているが、各概念には複数のフレームを定義することができる。入力発話中のある概念表現に対応するフレームが実際はどのフレームであるかは、フレームに対応するスロットがどれくらい埋まっているかを評価しなければ決定できないので、事前に知ることはできない。そこで、各概念表現がそれぞれ異なるフレームをとったときの全ての組み合せを生成する。例えば、語句解釈結果データ内に、概念名「x」及び「y」が含まれており、フレーム定義データとして概念名「x」に対応したフレームが「xF0」、「xF1」であり、概念「y」に対応したフレームが「yF0」,「yF1」であること示すフレーム定義データが記憶部6に登録されている場合、(xF0, yF0)、(xF0, yF1)、(xF1, yF0)、(xF1, yF1)のフレーム組み合せを生成する。
例文2の場合、複数のフレームを持つのは「予約」だけであるので、生成される組み合せは、「予約」の概念名「reserve」により特定されるフレーム「reserveF0」、「reserveF1」のいずれかをとる場合の2通りにすぎない。フレーム解釈部30は、これ以降のフレーム解釈の処理はフレーム組み合せ毎に行う(ステップS332)。なお、一つのフレーム組み合せから生成される意味表現は一つだけである。従って、例文2の場合、フレーム解釈部30は最終的に二つの解釈結果を生成する。
[5.3.2 入札]
図9のステップS333において、フレーム解釈部30の入札部32は、各スロットの値をフレーム毎に要求する入札処理を行う。入力発話中に現れた概念は、通常、同じ発話内に現れた他の概念が持つフレームの、ある1スロットの値となる。そこで、言語理解装置1の入札部32は、入札処理を行うことにより、ある概念が、他のどの概念のスロット値になりうるかを抽出する。入札部32は、アクセス表と同形のスロット割当表を用いて、各フレーム毎にスロット値への入札を行う。ただし、各フレームが入札できる箇所は、アクセス表の対応箇所に1以上の数値が記されている場所だけである。
図13は、図12に示すアクセス表に基づいて入札を行った結果のスロット割当表を示す。ただし、スロット指定(例文2中では「チェックイン」、「チェックアウト」)は、入札には関係しないので省略してある。表の各行がフレームとそのスロットの値を表現している。
記憶部6に、概念「day」に対応したフレーム「dayF0」は、概念「month」を値に取るスロット「month」をパラメータとする旨のフレーム定義データが記憶されているとする。同図の3行目は、概念「day」の概念表現「23日」へ入札した内容を示す。入札部32は、3行目の概念表現「23日」の概念「day」に対応してフレーム「dayF0」が記憶部6に記憶され、フレーム「dayF0」は概念「month」のスロット「month」を持つことを検出すると、当該スロット「month」を、概念「month」の概念表現にマッチし、距離が0ではない「8月」に入札する。
また、8行目は概念「reserve」の第2フレーム「reserveF1」の入札内容を表す。記憶部6から読み出したフレーム定義データによれば(図4)、「reserveF1」は、スロット値として概念「date」を取るスロット「start」とスロット「end」を共に持つ。従って、入札部32は、概念「date」の概念表現にマッチし、距離が0ではない「23日」と「25日」両者にスロット「start」を入札している。
同一の概念表現が複数のフレームの入札対象である場合、入札部32は、依存構造上で最も近いもの(アクセス表において最小の値を持つもの)だけを入札する。よって、図13に示すように、スロット割当表において、概念「day」の概念表現「25日」のフレームが「8月」に入札していないのはこのためである。実際には「25日」のフレームは「8月」をスロットの値として取るべきであるが、これは後述する文内省略解決処理により補償される。入札の段階ではこのような制限を設けておくことで誤った解釈(妥当でない入札)を防ぐ。
[5.3.3 スロット衝突解決]
次に、フレーム解釈部30のスロット衝突解決部33は、入札部32の生成したスロット割当表において、複数のスロットの値として入札が行われている箇所(スロット衝突)を解消するためのスロット衝突解決処理を実行する(ステップS334)。
つまり、ここでは、1つの項が2つ以上の意味役割をもつことはないという、意味役割(フレームスロット)の唯一性を仮定しており、一つの概念表現(項)は、別の概念表現が表すフレームのただ一つスロットの値にしかなれない。従って、スロット衝突解決部33は、スロット割当表の各行において複数のスロットの値として入札が行われている箇所(スロット衝突)を解消する。図13の場合、最終行の第3列と第4列がこれにあたる。具体的には、最終行「予約」の第3列「23日」には、スロット「start」及び「end」が入札されており、第4列「25日」にも、スロット「start」及び「end」が入札されている。
スロット衝突解決部33は、スロット衝突解決を以下の3つの基準に従って行う。
(1)スロット指定:
入力言語表現中で、ある概念表現が特定のスロットの値であることを明示することがある。このような明示(スロット指定)が存在した場合は、その明示されたスロットを採用する。図10に示すように、例文2では、「チェックイン」が「23日」を値とするスロット「start」を、「チェックアウト」が「25日」を値とするスロット「end」をそれぞれ指定している。
あるスロット指定がどの概念表現を修飾するものなのかを特定することはそれほど容易ではないが、構文構造を無視した表層上の簡単なヒューリスティクス(経験上の規則)に基づき、本実施の形態では、スロット衝突解決部33は、スロット指定の直左のものを指定しているものと判断している。
(2)標示:
スロット衝突解決部33は、問題となっている概念表現をマークしている表現(通常は格助詞などの機能語)があるかどうか入力発話に対して正規表現マッチングで調べる。もし標示が見つかれば、標示に対応するスロットを採用する。例えば、概念表現「23日」にスロット「start」、「end」が入札されており、概念表現「23日」に「から」という機能語が後ろに付随している場合を想定する。このとき、図5に示すスロット定義データにおいて、標示「から」はスロット「start」に対応付けられているため、標示「から」の直前の概念表現「23日」のスロットは「start」であると判断される。
(3)スロット定義順序:
スロット指定もなく標示も見つからない場合、フレーム定義におけるスロット記述順にスロット値を分配する。日本語は一般に語順が自由であるといわれるが、ある程度一般的な傾向が認められることも知られている、この語順を、スロットを定義する際の順序としてコーディングしておく。例えば、ホテルの予約を行う場合、先に宿泊開始の日付を指定し、その後に宿泊の終了の日付を指定する傾向が認められる。従って、スロット名「start」がスロット名「end」より先に現れることが想定される。そこで、フレーム定義データでは、スロット名「start」を、スロット名「end」より先に出現するよう定義しておき、スロット「start」、「end」の両者が入札された概念表現が2つあった場合には、入力発話内容においてより先に出現する概念表現にスロット「start」を、後に出現する概念表現にスロット「end」を割り当てる。
[5.3.4 構文解析誤り回復]
図9のステップS335において、フレーム解釈部30の構文解析誤り回復部34は、構文解析誤りを回復し、その回復した結果のスロット割当表を生成する。ステップS321において構文解析部21が行った構文解析結果は必ずしも正確ではない。特に対象ドメインに特化されていない汎用解析器を用いた場合、文法的には誤りでないが意味的には誤った結果が出力されることが多くなってしまう。そのような誤りのうちのいくらかをここで回復する。ここで回復できる誤りは、依存構造木の中で、ある語の依存先が本来の依存先よりもルートに近い語になってしまった場合である。このような状況になると、本来の依存先はその語にアクセスできなくなってしまう。
例えば、以下の例文3を考える。
「昨年の6月から8月までの間の東京の最高気温を教えて」(例文3)
例文3の表現を構文解析すると、「昨年の6月から」の部分が「間」でも「東京」でも「最高気温」でもなく、「教えて」に依存しているとする結果を得ることがある。この場合、概念表現「最高気温」のフレームは、スロット『起点』の概念表現「6月」を取りたいのであるが、このままでは「6月」にアクセスできないためスロット『起点』が空いたままになる。すると、「昨年の6月から」の部分は無視されてしまう。
そこで、この段階で未だ空値のスロットと一切の入札を受けていない概念表現(あるいは固有表現)が存在し、その概念表現(あるいは固有表現)が空値のスロットの値になりうるならば、その表現への入札を許す。つまり、フレーム定義データとして、概念表現「最高気温」のフレームが、対象概念が「日付」であるスロット『起点』をパラメータとして有することが記憶部6に記憶されており、スロット衝突解決部33から入力されたスロット割当表に、概念表現「最高気温」のスロット『起点』が入札されておらず、かつ、対象概念「日付」の概念表現「6月」にまだ入札が行われていないと判断した場合、構文解析誤り回復部34は、この概念表現「6月」に概念表現「最高気温」のスロット『起点』を入札したスロット割当表を生成する。
また、一つの概念表現に対して複数のスロットがこのような入札を要求することがある。この場合も、そもそも構文構造を使用できないので(間違っているため)、解決は容易なことではない。そこで、構文解析誤り回復部34は、記憶部6内のフレーム定義データ内の標示を参照し、未入札のスロットの対象概念であるかを判断して入札先を決定する。このとき、対象概念と一致する未入札の概念表現が複数ある場合は、言語表現上で最も左に現れているフレームの一番初めに定義されているスロットを優先するヒューリスティクスで処理する。
[5.3.5 文内省略解決]
図9のステップS336において、フレーム解釈部30の文内省略解決部35は、構文解析誤り回復部34が生成したスロット割当表に対して、並列構造のためにスロット割当表に入札されていなかったスロットの入札を行う文内省略解決処理を行う。
並列構造では頻繁に省略が起きる。並列構造の先頭の要素では言及された内容が、二番目以降の要素では省かれる現象である。以前の発話で指定されたためにおこる談話的な省略や、常識やドメイン知識に基づく省略と区別して、これを文内省略とよぶことにする。例えば例文3では、「昨年の6月から」と「8月までの」は並列構造をなすが、「昨年の」という指定が「8月までの」では省略されている。このような文内省略をここで解決する。文内省略解決部35は、以下の二つの場合に、ある複数の表現が並列であるとみなす。
(1)ある概念表現のフレームの同一スロットの値である。
(2)それぞれが、ある概念表現のフレームの「起点・終点」の関係にあるスロットの値である。
(1)の場合の例が、例文2の「シングル」と「ダブル」である(図13参照)。記憶部6内に記憶されているフレーム定義データによれば、概念「reserve」の第2フレーム「reserveF1」のパラメータとして、スロット「type」を一つのみとる。しかし、図13(概念「reserve」が第2フレーム「reserveF1」のときのスロット割当表である)には、スロット「type」の入札先は、概念表現「シングル」と「ダブル」である。そのため、予約フレーム文内省略解決部35は、「シングル」と「ダブル」が並列であると判断する。
(2)の場合の例が、例文2の「23日」と「25日」、例文3の「6月」と「8月」である。(1)の場合はいくつでも並列になれるが、(2)の場合は二つの概念表現に限られる。どのスロットが起点と終点の関係になりうるのかはドメイン知識として与えるのが妥当であるが、現在は「から」という標示を持つスロットと、そのスロットと同じ概念を値として取るスロットを並列と見なしている。
文内省略解決部35は、ある概念表現eがそれより左の別の概念表現dと並列であると認められ、概念表現eに対応するフレームのスロットで値が空のものは、概念表現dに対応するフレームの同じスロットが入札している表現があれば、概念表現eにもそれに入札する。例えば、(i)概念表現eがそれより左の別の概念表現dと並列である、(ii)概念表現eに対応するフレームf1のスロットs1、s2、s3、s4のうち、スロットs3のみスロット値を持つ(ある概念表現に対して入札されている)、(iii)概念表現dに対応するフレームf0のスロットs1、s2、s3、s5ともスロット値を持つ、の(i)〜(iii)を満たす場合を考える。このとき、フレームf1の入札されていないスロットs1、s2、s4のうち、フレームf0は同じスロットs1,s2を持っており、かつ、このフレームf0のスロットs1、s2はスロット値を持つため、フレームf1のスロットs1は、フレームf0のスロットs1と同じ概念表現に、フレームf1のスロットs2は、フレームf0のスロットs2と同じ概念表現に入札する。
例文2の場合、文内省略解決部35は、概念表現「25日」と同じ概念「day」であり、かつ、概念表現「25日」より前に出現している概念表現「23日」を検出する。さらに、概念表現「25日」はスロット指定「end」に付随し、概念表現「23日」はスロット指定「start」に付随する。これにより、文内省略解決部35は、概念表現「25日」と「23日」は並列であると判断する。このとき、概念表現「25日」のスロット「month」は未入札であるが、概念表現「23日」の同じスロット「month」は概念表現「8月」に入札されていることを検出する。そこで、文内省略解決部35は、概念表現「23日」と同じように概念表現「25日」のスロット「month」を「8月」に入札する。
図14に、図13に示すスロット割当表に、ステップS335のスロット衝突解決と、ステップS336の文内省略解決を行った後のスロット割当表を示す。
一方、例えば、文内省略解決部35は、例文3中の概念表現「8月」と同じ概念であり、かつ、概念表現「8月」より前に出現している概念表現「6月」を検出し、さらに、予め記憶部6に、起点を示す標示として記憶されている「から」がこの概念表現「6月」の直後に付随していることを検出した場合に、概念表現「8月」と「6月」は並列であると判断する。このとき、概念表現「8月」のスロット「year」は未入札であるが、概念表現「6月」の同じスロット「year」は概念表現「昨年」に入札されていることを検出する。そこで、文内省略解決部35は、概念表現「6月」と同じように、「8月」のスロット「year」を「昨年」に入札する。
[5.3.5 スコア付け]
図9のステップS337において、フレーム解釈部30のスコア付け部36は、文内省略解決部35の生成したスロット割当表、すなわち、フレーム解釈処理が終了したスロット割当表に対してスロットの埋まり具合と文脈との適合度で、各フレーム組み合せにスコアを付ける。スコアは以下の規則に従って与える。
(1)スロットに関して、
(a)値の埋まっているスロットのうち、記憶部6に記憶されているフレーム定義データにおいて当該スロットに対応した標示が存在しており、かつ、入札された対象概念にその標示が付随しているものがあれば、1スロットにつき1ポイント付加し、
(b)値の理まっていないスロットの数をnとして、−2nポイント付加する。
(2)文脈との適合度に関して、
(a)直前の発話に含まれているフレームと同じフレームが含まれていれば、1フレームにつき1ポイント付加する。
スコア付け部36は、フレーム組み合せと、生成されたスロット割当表と、スコアのデータを関連付けて記憶部6に記憶する。そして、全てのフレーム組み合せについてステップS333〜ステップS337までの処理を実行したかを判断し(ステップS338)、まだ実行していないフレーム組み合せがあった場合には、実行していないフレーム組み合せを選択し、その選択したフレーム組み合せについて再びステップS333からの処理を実行する。全てのフレーム組み合せについてステップS333〜ステップS337までの処理が終了した場合、スコア付け部36は、最もスコアのよいときのスロット割当表のデータを意味木生成部40に出力する。
[5.4 意味木生成]
続いて、ステップS340において、意味木生成部40は、フレーム解釈の結果から意味木を生成する。具体的には、この意味木生成処理では、以下のステップS341〜S343の処理を行う。
[5.4.1 スロット・グルーピング]
図9のステップS341において、意味木生成部40のスロット値グルーピング部41は、複数のスロットの値からなる繰り返しのパターンをグループ化して分離する。
(例文1)を考える。「明日」、「東京」、「明後日」、「大阪」、「京都」の五つの概念表現は全て概念表現「天気」が表す概念「weather」のフレームのスロット値を表現している。しかし、この中で「明日」は「東京」だけに関係し、同様に「明後日」は「大阪」と「京都」だけに関係する。
この表現に対して「明日」の「大阪」の天気を答えることは求められていない。単純に概念「weather」のフレームのスロット「date」が、「明日」と「明後日」の二値を取ると考え、別のスロット「place」の値との関連を無視した意味表現にしてしまうとこのような間違いを犯してしまう。そこで上記のような複数のスロットからなる繰り返しパターンを検出し、グループ化しておく。
具体的には、スロット値グルーピング部41は、スロット割当表から、各フレームについて、当該フレーム内で同一のスロットが複数の対象概念に入札されており、そのスロットの出現パターンが繰り返されているものがあるかを検出する。検出された場合、スロット値グルーピング部41は、その繰り返えされるスロットの出現パターン毎に対象概念をグループ化する。
[5.4.2 変換]
図9のステップS342において、意味木生成部40の変換部42は、スロット割当表を意味木に変換する変換処理を行う。基本的には各概念表現/固有表現に対して一つの内容ノードを作るが、スロット割当が複数のスロット値グループに分離された概念表現に対しては、そのグループの数だけの内容ノードを作り、群ノードにまとめる。図15に例文2に対するこの段階での意味木を示す。なお、図6で示した例文1の意味木もこの段階のものである。
具体的には、変換部42は、図14に示すスロット割当表を参照し、最も後ろに出現する概念表現「予約」を意味木のルートとする。そして、その配下に、概念表現「予約」のフレーム(reserveF1)のスロット「start」、「end」、「type」、「quant」に対応したノードを作成するが、1つのスロットに1つの概念表現だけが対応する場合は、その概念表現を示す内容ノードを作成し、1つのスロットに複数の概念表現がある場合には、列挙型の群ノード「vg_e」を作成し、その配下に列挙される概念表現を示す内容ノードを作成する。従って、「予約」の配下には、スロット「start」、「end」、「quant」それぞれに対応して、概念表現「23日」、「25日」、「一部屋」を内容ノードとして記述する。そして、スロット「type」については、概念表現「シングル」及び「ダブル」が対応するため、群ノード「vg_e」が記述され、その配下に概念表現「シングル」及び「ダブル」の内容ノードを記述する。
さらに、内容ノードとして記述した概念表現にスロットが入札されていれば、その概念表現の配下にノードを作成する。図14では、概念表現「23日」及び「25日」について、スロット「month」が概念表現「8月」に入札されているため、意味木の概念表現「23日」及び「25日」それぞれの下位の内容ノードとして、スロット「month」の概念表現「8月」を記述する。
[5.4.3 因子分解]
図9のステップS343において、意味木生成部40の因子分解部43は、変換部42が作成した意味木から、具体化関数が使用できる形状の意味木を作成する因子分解処理を行う。
具体化関数は、通常、並列構造を考慮したパラメータをとらない。そのため、並列構造になっている概念表現に対応したパラメータだけが入れ替わり、その他のパラメータは共通となるような、具体化関数のパラメータパターンが生成可能な意味木へと変換する必要がある。つまり、図15に示す意味木のように、群ノードを子に持つままでは内容ノードを具体化関数に対応づけることができないので、因子分解を行って、群ノードを子ノードに持つ内容ノードを展開して具体化関数にマップできる状態にする。因子分解された意味木はルートにただ一つの群ノードを持ち、それ以外のノードは全て内容ノードである状態になる。
特に指定のない場合、スロットの値は全て掛け合わせることによって組み合わせる。例えば「明日と明後日の東京と大阪の天気」という表現は、「明日の東京の天気」、「明日の大阪の天気」、「明後日の東京の天気」、「明後日の大阪の天気」の4つの表現に対応する意味木に因子分解される。図6の意味木を因子分解した意味木を図16に、図15の意味木を因子分解した意味木を図17に示す。
例えば、因子分解部43は、以下のように動作する。因子分解部43は、現在の意味木から1つの群ノードを検出する。そして、検出した群ノード配下の内容ノードそれぞれについて、当該群ノードをその内容ノード及びその内容ノードの配下の木構造に入れ換え、かつ、その他のノードはそのままとする意味木を生成し、最上位ノードを群ノードとした下位ノードに、生成したこれらの意味木を列挙して配置する。そして、意味木内に他に群ノードがなくなるまで、このような処理を繰り返す。
なお、スロット値の組み合せは必ずしも掛け合わせるのが適切とは限らない。例えば「右手と左手を右膝と左膝に置いて」といわれた場合、「右手を右膝に置き、左手を左膝に置く」という分配的な解釈が妥当で、「右手を左膝に置く」ことと「左手を右膝に置く」ことは含意されないと考えられる。どのような場合に組み合せ解釈よりも分配解釈が適切なのかは事前には分からないので、これも予めドメイン知識として指定し、記憶部6内に保持しておくものとする。
また、上記に対し、「明日の東京と明後日の大阪の天気」の場合は因子分解ではなく、ステップS341におけるスロット値グルーピング処理によって「明日の東京の天気」と「明後日の大阪の天気」に分離されている。
[5.4 タスク表現生成]
図9のステップS400において、タスク表現生成部5は、意味木生成部40の因子分解部43から出力された意味木から、具体化関数を用いてタスク表現を生成する。このとき、具体化関数に必須の引数(パラメータ)に対応した空きのスロット値があれば、記憶部6から当該スロットの明確化表現を読み出し、その読み出した明確化表現をユーザに対して出力して、空きのスロットに対する概念表現を入力させる。これは、ステップS400に意味木が出力される前に行うことでもよい。あるいは、予め記憶部6に記憶されているデフォルト値を読み出して用いてもよい。
ホテル予約用対話システムとして、言語理解装置1が用いられる場合、生成されたタスク表現は、ホテル予約用タスク処理モジュールに引き渡される。そのタスクの実行により、予約処理が実行され、例えば、ホテル予約に関するデータ処理を行い、その処理結果を出力したり、次にユーザから収集すべき情報を得るための質問を出力したりする。
あるいは、ロボット行動制御として言語理解装置1が用いられる場合などは、3次元仮想空間内のキャラクター(アニメーションロボット)に対して物理行動を指示するタスク処理モジュールに引き渡される。これにより、音声で物体の移動などの指示をロボットに与えることが可能となる。
[6.対話実験]
以上説明した言語理解装置1を用いて、ホテル予約を行う対話システムを構築し、評価のための実験を行った結果を以下に示す。
[6.1 対話システム]
言語理解装置1には、スロットフィリング型タスクを扱うことができるドメイン非依存の対話管理モジュールを備える。構築したホテル予約対話システムのドメイン依存知識の記述量は、オントロジーを定義した95行のXMLファイルと、具体化関数及びタスク依存の対話処理(金額の確認など)としてJava(登録商標)言語で記述した150行のプログラムにすぎない。言語理解装置1は、図3に示した概念体系データを用いている。本実施の形態の言語理解装置1により実現される言語理解フレームワークを用いることにより、このような少ない量の記述だけで、従来のテンプレート方式の対話システムよりも高度な言語理解を行うシステムを素早く構築できる。
なお、実験のために設定したホテル予約対話システムでは固有名を持つインスタンスは存在しないので、固有表現は定義していない。また実験ドメインでは照応表現は発生しないものと前提し、照応解決は扱っていない。
また、対話管理モジュールの詳細な説明は省略するが、意味木レベルでの単一化を基本とした談話理解を行う。ホテル予約対話システムがユーザに対して投げかける明確化要求は、スロット定義に記述された表現そのままで、対話状態に応じて変更するような特別な工夫はしていない。
システムが明確化を要求するのは一度に1スロットだけだが、図18に示すように、ユーザは要求以上のスロット値をシステムに先んじて提供することもできる。また、図19に示すように、一部の情報を参照することで別々の内容ノードが表すフレームのスロット値を指定することもできる。例のような対話を理解するシステムを通常の構文解析方式で構築しようとするとかなり手間がかかる。まず「シングルは喫煙」のようなうなぎ文をどのように意味表現するべきかがまずは困難であり、またその意味表現を生成できる意味表現生成器を構築する作業を必要とする。これら表現の処理は例外的な扱いとなりがちなので、プログラムの設計と保守も煩雑になる。
実装した対話管理モジュールは図18 、図19のU3のような発話を理解する際に、単純に現在懸案となっているフレームの言語表現を入力発話に付け足すことで理解する。図19の場合、「シングルは喫煙でダブルは禁煙予約」という表現を合成し、これについてステップS300に示す意味表現生成処理を実行する。「シングルは喫煙でダブルは禁煙予約」という表現は非文法的な表現であるが、本実施の形態の言語理解装置がもつテンプレート方式的な側面のおかげで問題なく解釈できる。あとは生成された意味木と以前の対話内容を保持している意味木の単一化を行うだけで、適切な理解を得られる。
[6.2 対話実験課題]
ホテルの部屋を予約する課題を五つ作成し、被験者9名に取り組ませた。課題毎に宿泊期間などの条件を指定し、それらの条件を満たす部屋を予約するように被験者に指示した。五つの課題は図20に記す。なお、対話はWebブラウザ経由のキーボード対話である。
図20に示す対話課題として、全課題にほぼ共通の課題指示と、各課題毎の条件指定を与えた。共通の課題指示は以下の通りである。
「あなたはこれから○○○のために本田国際ホテルを予約しようとしています。下記の条件を満たす部屋を、自動予約システムと対話して予約してください。時間制限はありません。対話を開始する前に紙とペンを使って予約内容を整理してもかまいません。」
「○○○」の部分だけを課題毎に適宜変更した。課題1では「個人旅行」、課題2では「友人との旅行」、課題3では「家族旅行」、課題4・5では「出張」とした。各課題毎の条件指定の詳細は図20に示す。また、指定された条件以外は被験者の自由とした。被験者実験で得た対話の例を図21及び22に示す。
[6.3 対話実験結果]
図23は、課題毎及び全体の課題成功数と割合を示す。収集した対話の総数は45対話であるが、このうちシステムの実装不具合によって対話が強制的に断ち切られてしまった5対話(課題2で1対話、課題4で1対話、課題5で3対話)は除いた。同図に示すように、成功は24対話、成功率は63.4%であった。実装の不具合による失敗も含めた場合の成功率は、57.7%であった。
実験で収集した全発話(372発話)から「はい」や「いいえ」、「一泊」、「シングルで」などの単文節のみの発話を除くと216発話が残る。ここからさらにドメイン対象外の質問・要求を行っている発話(「どの部屋が一番安いですか?」「高い!安くして!」など)、そして単文節ではないものの含まれる概念表現が一つだけの発話を除いた151発話に対して意味表現生成処理の性能を調べた。
まず、入力発話中の各概念表現を係り受け構造に対応づけた上で2軸に沿って分類した。すなわち、(1)各概念表現を依存構造木に対応づけたときにその係り先が言語的に妥当かどうか、そして(2)係り先と自身の関係が意味フレームとそのスロット値の関係になっているかどうか、である。例えば、例文2の場合、「25日」、「ダブル」、「一部屋」はそれぞれ係り先も妥当であるし、係り先(「予約」)と自身が意味フレームとそのスロット値の関係になっている。
一方「23日」と「シングル」は、係り先は妥当であるが意味フレームとスロット値の関係にはなっていない。分類結果を図24に示す。OKとNGが、それぞれ係り先が妥当であることと妥当でないこと、YESとNOが、フレーム・スロットの関係にあることとないことを表す。同図から、係り受け関係は妥当でも直接的には意味フレームとスロット値の関係になっていないものが多数あることが分かる。
次に、それぞれの概念表現がフレームの値として適切に解釈されたかどうかを調べた。意味木として生成される段階での適切さを評価し、その後の単一化による談話理解までは考慮していない。結果を図25に示す。OKの列は正しいフレームの値となった概念表現の数で、NGの列は正しいフレームの値となれなかった概念表現の数である。構文解析と意味構造が一致していなくても意味解釈を適切に行えることが確認された。
最後に並列構造と文内省略について調べると、並列構造は、ある概念表現のフレームの同一スロットの値である(ステップS336に記載の(1))に該当するものが56箇所、それぞれが、ある概念表現フレームの「起点・終点」の関係にあるスロットの値である(ステップS336に記載の(2))に該当するものが21箇所、全体で77箇所あった。この、並列構造の88.3%が適切に処理できた。文内省略は15箇所で、このうち失敗したのは2箇所であった。
[7.効果]
上述した本実施の形態の言語理解装置によれば、以下の(1)〜(6)の効果がある。
(1)既存の構文解析器を無調整で利用できる。
すなわち、文法の差し替えや調整を行わずに既存の構文解析器を利用するため、構文解析器の交換が容易で、最新の構文解析器を素早く導入することができる。また、新たな語や表現に対応しようとするときにシステム内で変更しなければならない箇所を減らすことができるので開発と保守が容易になる。もし、一つの変更のために複数箇所を書き換える必要があると単純な作業量の増加分以上の効率低下を招きバグを増やすことになる。しかし、本実施の形態においては、大規模文法を備えた既存の解析器を利用することにより、言語のドメイン非依存な側面を解析器に任せてしまえるため、文法を自分で用意するより遥かに開発効率が良くなる。
(2)ドメイン知識を記述するだけで意味表現生成機構を実現できる。
すなわち、既存の構文解析器を利用する上、煩わしい意味表現生成器の構築も不要であるため、言語理解装置の開発が容易になる。言語処理に関わる大部分をブラックボックス化できるので、言語処理の知識がない開発者でも構文解析方式の言語理解装置を容易に開発できるようになる。また、言語理解アプリケーション開発用のIDE(統合開発環境)の提供も可能になる。
(3)並列構造と文内省略の自動処理が可能。
本実施の形態の言語理解装置では、並列構造の処理を容易にする。最終的に出力される意味表現は、意味表現からタスク表現に変換する処理をアプリケーション開発者が記述するときに、並列構造とそれに伴う文内省略を意識する必要がない。
(4)テンプレート方式の利点を備える。
本実施の形態の言語理解装置では、構文解析を利用しながらもテンプレート的な理解も可能にしている。スロット割当表において各行毎に行う処理は、個々の意味フレームをテンプレートとして用いたパターンマッチング処理に他ならない。ただそのときに、構文構造からくる制約を控えめに導入している。またあくまで意味のテンプレートであって表層表現のテンプレートではないので、表層のバリエーションを網羅するためにパターンを大量に用意する必要がない。本実施の形態の言語理解装置では、「明日シングル3室ダブル2室禁煙3泊」のようなキーワードの羅列でも正しく理解する。
(5)非合成的な表現を理解可能。
ホテルを予約しているところ、ある期日からシングルルームとダブルルームを予約したい旨を伝えた所で、チェックアウト日を尋ねられたとする。このとき我々は「シングルは、25日でダブルは26日」のような答えを返すことができる。いわゆる「うなぎ文」である。シングルルームという存在が25日という日時と等価であるわけでもないし、シングルルームという概念に25日という値をとる属性が存在するわけでもない。あくまでシングルという言葉で間接的に参照された「予約」という概念の1インスタンスの属性値が25日なのである。このような表現を構文解析方式でまじめに扱おうとすると非常に厄介であるが、我々が提案する手法では容易に扱うことができる。表層パターンを用いる方式であれば個々のパターンに対応する処理自体を記述することは比較的容易かもしれないが、様々なバリエーションのパターンを大量に用意する必要がある。
(6)ドメイン概念体系の明確化による恩恵を享受できる。
ドメインを規定する概念の体系すなわち、オントロジーを明確化することで、言語理解装置の言語処理以外の部分の開発効率も改善できる。言語処理はあくまでアプリケーションシステムの備えるヒューマンインターフェースにすぎず、システムの中心となるのはタスク処理モジュールである。タスク処理モジュールは、入力された自然言語表現からタスク表現を生成する言語処理モジュールだけでなく、多種多様なモジュールと情報のやりとりを行う必要がある。例えば、ロボット制御タスクを行うシステムであれば、タスク処理モジュールは、ロボットが認識した物体の色や形・種類、ロボットの現在地を含む状態などを管理する様々なモジュールと、シンボルを用いてやり取りする必要がある。オントロジーを整備することで、これらのモジュールをつなぐインターフェースやモジュール自体の開発を見通しよく行うことができる。明示的なオントロジーを整備しないと、これらの情報がシステムの中に分散して(さらには暗黙的に)存在することになり開発効率と保守性を下げる。
このように、本実施の形態の言語理解装置は、構文解析を用いるので、キーワードマッチングや表層パターンを用いる手法よりも複雑な表現を理解することができる。また、構文解析には既存の汎用解析器を利用するが、ドメインに応じた解析器の調整は必要ない。
本実施の形態による言語理解装置では、ドメインの知識を与えるだけで意味表現生成器の作成を行わずに並列構造と文内省略を適切に処理する構文解析を実現することができ、対話システムも素早く構築することができる。
[8.その他]
なお、上述の言語理解装置1は、内部にコンピュータシステムを有している。そして、言語理解装置1のテキスト変換部3、意味表現生成部4、及び、タスク表現生成部5の動作の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われる。ここでいうコンピュータシステムとは、CPU及び各種メモリやOS、周辺機器等のハードウェアを含むものである。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
単純化した自然言語理解の模式図である。 一般的な構文解析方式の模式図である。 本発明の一実施の形態による概念体系の例を示す図である。 同実施の形態によるフレーム定義の例を示す図である。 同実施の形態によるスロット定義の例を示す図である。 同実施の形態による意味フレームの木構造表現の例を示す図である。 同実施の形態による言語理解装置のハードウェア構成を示す図である。 同実施の形態による言語理解装置の機能ブロック図である。 同実施の形態による言語理解装置の処理フローを示す図である。 同実施の形態による言語理解装置の語句解釈結果の例を示す図である。 同実施の形態による言語理解装置が生成した構文解析木を示す図である。 同実施の形態による言語理解装置が生成したアクセス表を示す図である。 同実施の形態による言語理解装置がアクセス表から生成したスロット割当表である。 同実施の形態による言語理解装置がスロット衝突解決及び文内省略解決を行った後のスロット割当表である。 同実施の形態による言語理解装置がスロット割当表から生成した意味木の例である。 同実施の形態による言語理解装置が因子分解した意味木の例である。 同実施の形態による言語理解装置が因子分解した意味木の例である。 同実施の形態による言語理解装置を用いた対話システムにおける対話の例を示す図である。 同実施の形態による言語理解装置を用いた対話システムにおける対話の例を示す図である。 同実施の形態による言語理解装置を用いた対話システムの対話課題を示す図である。 同実施の形態による言語理解装置を用いた対話システムの対話実験において観察された対話の例を示す図である。 同実施の形態による言語理解装置を用いた対話システムの対話実験において観察された対話の例を示す図である。 同実施の形態による言語理解装置を用いた対話システムの対話実験における課題毎及び全体の課題成功数と割合を示す。 同実施の形態による言語理解装置を用いた対話システムの対話実験における概念表現毎の係り受けの妥当性とフレーム・スロット値関係による分類の結果を示す図である。 同実施の形態による言語理解装置を用いた対話システムの対話実験における概念表現の解釈の成否の結果を示す図である。
符号の説明
1…言語理解装置
2…音声入力部
3…テキスト変換部
4…意味表現生成部
5…タスク表現生成部
10…語句解釈部
20…アクセス表生成部
21…構文解析部
22…アクセス表生成出力部
30…フレーム解釈部
31…フレーム組み合せ生成部
32…入札部
33…スロット衝突解決部
34…構文解析誤り回復部
35…文内省略解決部
36…スコア付け部
40…意味木生成部
41…スロット値グルーピング部
42…変換部
43…因子分解部

Claims (16)

  1. ドメイン内で用いられる概念のツリー構造と、当該概念を特定する概念表現との対応付けを示す概念体系データと、
    概念に対応し、当該概念を他の概念により表現するための1以上の意味フレームと、当該意味フレームに用いられる1以上のスロットとの対応付けを示すフレーム定義データと、
    スロットとして用いられる概念を示すスロット定義データと
    を記憶する記憶部と、
    入力発話データの入力を受け、前記記憶部を参照して、入力された前記入力発話データの示す発話内容に含まれる概念表現を検出し、検出した概念表現に対応した概念の情報を前記記憶部から読み出す語句解釈部と、
    前記記憶部を参照して、前記語句解釈部により読み出された情報の示す概念に対応した意味フレームのスロットと、当該スロットに対応した概念との情報を読み出し、読み出したそれぞれの意味フレームについて、前記語句解釈部により検出された概念表現の中から、当該意味フレームの各スロットに対応する概念またはその概念の下位概念に対応し、かつ、他の意味フレームのスロットが入札されていない概念表現を特定し、この特定した概念表現に当該スロットを入札することを繰り返し、入札した結果を示すスロット割当表データを生成する入札部と、
    を備えることを特徴とする言語理解装置。
  2. 前記入力発話データの入力を受け、入力された入力発話データにより示される前記発話内容の構文解析を行って発話内容を構成する形態素列間の係り受けの関係を得、この得られた係り受けの関係に基づいて形態素列間のアクセス可能性を示すアクセス表データを生成するアクセス表生成部をさらに有し、
    前記入札部は、それぞれの意味フレームについて入札を行うときに、前記語句解釈部により検出された概念表現の中から、当該意味フレームの各スロットに対応する概念またはその概念の下位概念に対応し、かつ、他の意味フレームのスロットが入札されていない概念表現を特定し、前記アクセス表生成部により生成されたアクセス表データにより、前記特定した概念表現に、当該意味フレームに対応する概念表現がアクセス可能であることが示される場合に、この特定した概念表現に当該スロットを入札する、
    ことを特徴とする請求項1に記載の言語理解装置。
  3. 前記アクセス表生成部は、構文解釈を行った形態素列1つの中に、前記語句解釈部が検出した解析した概念表現が1つ含まれるように、前記形態素列を分割あるいは結合し、その結果得られた形態素列を用いて前記アクセス表データを生成する、
    ことを特徴とする請求項2に記載の言語理解装置。
  4. フレーム組み合わせ生成部は、前記記憶部を参照して、前記語句解釈部により読み出された概念に対応する意味フレームを特定し、一つの概念に対応して特定した意味フレームが複数あった場合に、取り得る意味フレームの組み合わせを生成し、
    前記入札部は、前記フレーム組み合わせ生成部が生成した意味フレームの組み合わせ毎に前記スロット割当表データを生成し、
    スコア付け部は、前記フレーム組み合わせ生成部が生成した意味フレームの組み合わせそれぞれに対応する前記スロット割当表データを参照して概念表現へのスロットの入札状態に基づいてスコアを付与し、付与したスコアによって発話内容に用いられているフレーム組み合わせを選択する、
    ことを特徴とする請求項1から請求項3のいずれかの項に記載の言語理解装置。
  5. 前記スロット定義データは、スロットを特定する概念表現の情報をさらに含み、
    前記語句解釈部は、前記記憶部を参照して、入力された前記入力発話データの示す発話内容に含まれる概念表現を検出し、検出した概念表現に対応した概念またはスロットを読み出し、
    前記入札部により1つの概念表現に対して同一フレームの複数のスロットが入札された場合、スロットを特定する他の概念表現が前記発話内容において当該概念表現に付随するかを検出し、検出された場合に、この付随する他の概念表現により特定されるスロットを、当該概念表現へ入札されるスロットとして選択し、選択した結果に基づいて前記スロット割当表データを書き換えるスロット衝突解決部とをさらに備える、
    ことを特徴とする請求項1から請求項4のいずれかの項に記載の言語理解装置。
  6. 前記スロット定義データは、スロットを特定する標示の情報をさらに含み、
    前記入札部により1つの概念表現に対して同一フレームの複数のスロットが入札された場合、前記記憶部を参照して、前記発話内容において当該概念表現に標示が付随しているかを検出し、検出された場合に、当該標示により特定されるスロットを、当該概念表現へ入札されるスロットとして選択し、選択した結果に基づいて前記スロット割当表データを書き換えるスロット衝突解決部とをさらに備える、
    ことを特徴とする請求項1から請求項4のいずれかの項に記載の言語理解装置。
  7. 前記入札部により、同じ概念に対応する複数の概念表現それぞれに対して同一意味フレームの複数のスロットが入札された場合、前記発話内容における前記複数の概念表現の出現順と、前記記憶部内に記憶されているスロット出現順序の情報により示されるスロットの順序とが対応するように、前記複数の概念表現それぞれへ入札されるスロットを選択し、選択した結果に基づいて前記スロット割当表データを書き換えるスロット衝突解決部とをさらに備える、
    ことを特徴とする請求項1から請求項4のいずれかの項に記載の言語理解装置。
  8. 前記入札部によりどの概念表現にも入札されなかったスロットである空スロットがあった場合、当該空スロットと対応する概念が一致し、かつ、他のスロットが入札されていない概念表現に、当該空スロットを入札し、入札した結果に基づいて前記スロット割当表データを書き換えることを特徴とする構文誤り解析部とをさらに備える、
    ことを特徴とする請求項1から請求項7のいずれかの項に記載の言語理解装置。
  9. 意味フレームに対応し、かつ、前記入札部により当該意味フレームのスロットが入札されなかった概念表現について、前記発話内容において当該概念表現より先に出現し、かつ、当該概念表現と同じ概念に対応する他の概念表現を特定し、この特定した他の概念表現と当該概念表現とが並列構造をなすことを検出し、かつ、この特定した他の概念表現に対応した意味フレームが、当該概念表現に対応した前記意味フレームの入札されなかったスロットと同じスロットを持つことを検出し、かつ、この特定した他の概念表現に対応した意味フレームの持つ当該検出したスロットが、前記入札部によりさらに別の概念表現に入札されていることを検出した場合、当該概念表現に対応する当該意味フレームの入札されなかった当該スロットをこの検出した別の概念表現に入札し、入札した結果に基づいて前記スロット割当表データを書き換える文内省略解決部をさらに備える、
    ことを特徴とする請求項1から請求項8のいずれかの項に記載の言語理解装置。
  10. 前記スロット割当表データを参照して、意味フレームを有する概念表現と、当該意味フレームのスロットが入札されている概念表現とから意味木を生成する意味木生成部とをさらに備える、
    ことを特徴とする請求項1から請求項9のいずれかの項に記載の言語理解装置。
  11. 前記意味木生成部は、意味フレームに対応した概念表現の下位ノードに、当該意味フレームの各スロットの入札先の概念表現を列挙して配置し、さらに、配置した概念表現に意味フレームが対応している場合には、配置した概念表現の下位ノードに、当該配置した概念表現の意味フレームの各スロットの入札先の概念表現を配置することを繰り返して意味木を生成する、
    ことを特徴とする請求項10に記載の言語理解装置。
  12. 前記意味木生成部は、意味フレームに対応した概念表現の下位ノードに、入札先の概念表現が一つであるスロットの場合はその入札先の概念表現を、入札先が複数のスロットの場合は列挙を示す群ノードを列挙して配置し、前記列挙を示す群ノードの配下に当該群ノードに対応したスロットの入札先の複数の概念表現を列挙して配置し、さらに、配置した概念表現に意味フレームが対応している場合には、当該配置した概念表現の意味フレームについて同様の処理を繰り返して意味木を生成し、生成した結果の意味木内に群ノードがある場合に、生成した意味木をトップのノードのみを群ノードとする意味木に変換する、
    ことを特徴とする請求項11に記載の言語理解装置。
  13. 前記意味木生成部は、同一の意味フレームの中に、複数のスロットからなる繰り返しのパターンを検出した場合、当該繰り返しパターンをグループ化し、このグループ別に前記意味木を生成する、
    ことを特徴とする請求項11または請求項12に記載の言語理解装置。
  14. 前記意味木生成部の作成した意味木から、タスクの実行指示を生成するタスク表現生成部とをさらに備える、
    ことを特徴とする請求項11から請求項13のいずれかの項に記載の言語理解装置。
  15. 自然言語の発話内容をコンピュータ処理に用いられる意味表現に変換する言語理解装置に用いられる言語理解方法であって、
    前記言語理解装置において、
    ドメイン内で用いられる概念のツリー構造と、当該概念を特定する概念表現との対応付けを示す概念体系データと、
    概念に対応し、当該概念を他の概念により表現するための1以上の意味フレームと、当該意味フレームに用いられる1以上のスロットとの対応付けを示すフレーム定義データと、
    スロットとして用いられる概念を示すスロット定義データと
    を記憶する記憶部を備え、
    入力発話データの入力を受け、前記記憶部を参照して、入力された前記入力発話データの示す発話内容に含まれる概念表現を検出し、検出した概念表現に対応した概念の情報を前記記憶部から読み出す語句解ステップと、
    前記記憶部を参照して、前記語句解釈ステップにより読み出された情報の示す概念に対応した意味フレームのスロットと、当該スロットに対応した概念との情報を読み出し、読み出したそれぞれの意味フレームについて、前記語句解釈部により検出された概念表現の中から、当該意味フレームの各スロットに対応する概念またはその概念の下位概念に対応し、かつ、他の意味フレームのスロットが入札されていない概念表現を特定し、この特定した概念表現に当該スロットを入札することを繰り返し、入札した結果を示すスロット割当表データを生成する入札ステップと、
    を備えることを特徴とする言語理解方法。
  16. 言語理解装置として用いられるコンピュータを、
    ドメイン内で用いられる概念のツリー構造と、当該概念を特定する概念表現との対応付けを示す概念体系データと、
    概念に対応し、当該概念を他の概念により表現するための1以上の意味フレームと、当該意味フレームに用いられる1以上のスロットとの対応付けを示すフレーム定義データと、
    スロットとして用いられる概念を示すスロット定義データと
    を記憶する記憶部、
    入力発話データの入力を受け、前記記憶部を参照して、入力された前記入力発話データの示す発話内容に含まれる概念表現を検出し、検出した概念表現に対応した概念の情報を前記記憶部から読み出す語句解釈部、
    前記記憶部を参照して、前記語句解釈部により読み出された情報の示す概念に対応した意味フレームのスロットと、当該スロットに対応した概念との情報を読み出し、読み出したそれぞれの意味フレームについて、前記語句解釈部により検出された概念表現の中から、当該意味フレームの各スロットに対応する概念またはその概念の下位概念に対応し、かつ、他の意味フレームのスロットが入札されていない概念表現を特定し、この特定した概念表現に当該スロットを入札することを繰り返し、入札した結果を示すスロット割当表データを生成する入札部、
    として機能させることを特徴とするコンピュータプログラム。
JP2006329493A 2006-12-06 2006-12-06 言語理解装置、言語理解方法、及び、コンピュータプログラム Expired - Fee Related JP4451435B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006329493A JP4451435B2 (ja) 2006-12-06 2006-12-06 言語理解装置、言語理解方法、及び、コンピュータプログラム
US11/999,236 US8117023B2 (en) 2006-12-06 2007-12-04 Language understanding apparatus, language understanding method, and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006329493A JP4451435B2 (ja) 2006-12-06 2006-12-06 言語理解装置、言語理解方法、及び、コンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2008146150A true JP2008146150A (ja) 2008-06-26
JP4451435B2 JP4451435B2 (ja) 2010-04-14

Family

ID=39499313

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006329493A Expired - Fee Related JP4451435B2 (ja) 2006-12-06 2006-12-06 言語理解装置、言語理解方法、及び、コンピュータプログラム

Country Status (2)

Country Link
US (1) US8117023B2 (ja)
JP (1) JP4451435B2 (ja)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013190991A (ja) * 2012-03-14 2013-09-26 Nec Corp 音声対話要約装置、音声対話要約方法およびプログラム
JP2014191549A (ja) * 2013-03-27 2014-10-06 Intelligent Wave Inc 口語解析サーバ、口語解析装置、口語解析プログラム及び口語解析方法
WO2016042814A1 (en) * 2014-09-18 2016-03-24 Kabushiki Kaisha Toshiba Interaction apparatus and method
JP2016526224A (ja) * 2013-05-28 2016-09-01 バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド 文法コンパイル方法、語義解析方法、及び装置
JP2017517776A (ja) * 2014-10-29 2017-06-29 バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド 対話処理方法、対話管理システム、およびコンピュータ機器
KR20180070684A (ko) * 2015-10-21 2018-06-26 구글 엘엘씨 다이얼로그 시스템들에서의 파라미터 수집 및 자동 다이얼로그 생성
JP2019518278A (ja) * 2016-05-17 2019-06-27 グーグル エルエルシー ユーザのコンピューティングデバイスのユーザインターフェースデバイスを介したユーザとのダイアログの自動起動および適合
KR20190125834A (ko) * 2018-04-30 2019-11-07 현대자동차주식회사 음성 언어 이해 장치 및 이 장치를 이용한 음성 언어 이해 방법
JP2020102090A (ja) * 2018-12-25 2020-07-02 株式会社サテライトオフィス ボットシステムのプログラム、人工知能スピーカシステムのプログラム
JP2021103569A (ja) * 2020-04-30 2021-07-15 ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド セマンティック処理方法、装置、電子機器及び媒体
JP2021144228A (ja) * 2017-10-03 2021-09-24 グーグル エルエルシーGoogle LLC ユーザプログラマブル自動アシスタント
JP2021149637A (ja) * 2020-03-19 2021-09-27 株式会社 日立産業制御ソリューションズ ドメイン知識活用支援装置、プログラムおよびドメイン知識活用支援方法

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8417511B2 (en) * 2006-12-28 2013-04-09 Nuance Communications Dynamic grammars for reusable dialogue components
US8219407B1 (en) 2007-12-27 2012-07-10 Great Northern Research, LLC Method for processing the output of a speech recognizer
US20120191446A1 (en) * 2009-07-15 2012-07-26 Proviciel - Mlstate System and method for creating a parser generator and associated computer program
KR20110072847A (ko) * 2009-12-23 2011-06-29 삼성전자주식회사 열려진 사용자 의도 처리를 위한 대화관리 시스템 및 방법
CN102262622A (zh) * 2010-05-31 2011-11-30 国际商业机器公司 文档处理、模板生成及概念库生成方法和装置
US8688453B1 (en) * 2011-02-28 2014-04-01 Nuance Communications, Inc. Intent mining via analysis of utterances
US9760566B2 (en) 2011-03-31 2017-09-12 Microsoft Technology Licensing, Llc Augmented conversational understanding agent to identify conversation context between two humans and taking an agent action thereof
US10642934B2 (en) 2011-03-31 2020-05-05 Microsoft Technology Licensing, Llc Augmented conversational understanding architecture
US9858343B2 (en) 2011-03-31 2018-01-02 Microsoft Technology Licensing Llc Personalization of queries, conversations, and searches
US9244984B2 (en) 2011-03-31 2016-01-26 Microsoft Technology Licensing, Llc Location based conversational understanding
US9842168B2 (en) 2011-03-31 2017-12-12 Microsoft Technology Licensing, Llc Task driven user intents
US9454962B2 (en) * 2011-05-12 2016-09-27 Microsoft Technology Licensing, Llc Sentence simplification for spoken language understanding
US9064006B2 (en) 2012-08-23 2015-06-23 Microsoft Technology Licensing, Llc Translating natural language utterances to keyword search queries
US8407165B2 (en) * 2011-06-15 2013-03-26 Ceresis, Llc Method for parsing, searching and formatting of text input for visual mapping of knowledge information
US9412366B2 (en) 2012-09-18 2016-08-09 Adobe Systems Incorporated Natural language image spatial and tonal localization
US10656808B2 (en) 2012-09-18 2020-05-19 Adobe Inc. Natural language and user interface controls
US9588964B2 (en) * 2012-09-18 2017-03-07 Adobe Systems Incorporated Natural language vocabulary generation and usage
US8914416B2 (en) * 2013-01-31 2014-12-16 Hewlett-Packard Development Company, L.P. Semantics graphs for enterprise communication networks
US9372851B2 (en) * 2014-04-01 2016-06-21 Microsoft Technology Licensing, Llc Creating a calendar event using context
US11556578B2 (en) * 2014-05-12 2023-01-17 Semantic Technologies Pty Ltd Putative ontology generating method and apparatus
WO2017083504A1 (en) 2015-11-12 2017-05-18 Semantic Machines, Inc. Interaction assistant
JP6744025B2 (ja) * 2016-06-21 2020-08-19 日本電気株式会社 作業支援システム、管理サーバ、携帯端末、作業支援方法およびプログラム
US10453101B2 (en) * 2016-10-14 2019-10-22 SoundHound Inc. Ad bidding based on a buyer-defined function
US11416555B2 (en) * 2017-03-21 2022-08-16 Nec Corporation Data structuring device, data structuring method, and program storage medium
US11250476B2 (en) * 2017-08-04 2022-02-15 Engine Media, Llc Dynamic header bidding configuration
US10572596B2 (en) 2017-11-14 2020-02-25 International Business Machines Corporation Real-time on-demand auction based content clarification
US11138374B1 (en) * 2018-11-08 2021-10-05 Amazon Technologies, Inc. Slot type authoring
US11281857B1 (en) * 2018-11-08 2022-03-22 Amazon Technologies, Inc. Composite slot type resolution
US11308281B1 (en) * 2018-11-08 2022-04-19 Amazon Technologies, Inc. Slot type resolution process
US20200380076A1 (en) * 2019-05-30 2020-12-03 Microsoft Technology Licensing, Llc Contextual feedback to a natural understanding system in a chat bot using a knowledge model
US10868778B1 (en) 2019-05-30 2020-12-15 Microsoft Technology Licensing, Llc Contextual feedback, with expiration indicator, to a natural understanding system in a chat bot
US11227083B2 (en) 2019-09-06 2022-01-18 BeamUp, Ltd. Structural design systems and methods for semantic enrichment of floor plans for rule-based application of functional requirement to spaces
CN110705267B (zh) * 2019-09-29 2023-03-21 阿波罗智联(北京)科技有限公司 语义解析方法、装置及存储介质
US11797610B1 (en) * 2020-09-15 2023-10-24 Elemental Cognition Inc. Knowledge acquisition tool

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE466029B (sv) * 1989-03-06 1991-12-02 Ibm Svenska Ab Anordning och foerfarande foer analys av naturligt spraak i ett datorbaserat informationsbehandlingssystem
JP3369584B2 (ja) 1991-11-20 2003-01-20 株式会社シーエスケイ 日本語構文解析装置
JPH05324713A (ja) * 1992-05-20 1993-12-07 Hitachi Ltd 自然語処理方法および自然語処理システム
JPH11232274A (ja) 1998-02-16 1999-08-27 Csk Corp 自然言語処理装置及びその装置を利用した画像生成装置
TW472232B (en) * 2000-08-11 2002-01-11 Ind Tech Res Inst Probability-base fault-tolerance natural language understanding method
US7027974B1 (en) * 2000-10-27 2006-04-11 Science Applications International Corporation Ontology-based parser for natural language processing
US6950793B2 (en) * 2001-01-12 2005-09-27 International Business Machines Corporation System and method for deriving natural language representation of formal belief structures
AU2002237495A1 (en) * 2001-03-13 2002-09-24 Intelligate Ltd. Dynamic natural language understanding
TW559783B (en) * 2002-05-31 2003-11-01 Ind Tech Res Inst Error-tolerant natural language understanding system and method integrating with confidence measure
US7493253B1 (en) * 2002-07-12 2009-02-17 Language And Computing, Inc. Conceptual world representation natural language understanding system and method
US20040111255A1 (en) * 2002-12-10 2004-06-10 International Business Machines Corporation Graph-based method for design, representation, and manipulation of NLU parser domains
US7593845B2 (en) 2003-10-06 2009-09-22 Microsoflt Corporation Method and apparatus for identifying semantic structures from text
JP4075067B2 (ja) 2004-04-14 2008-04-16 ソニー株式会社 情報処理装置および情報処理方法、並びに、プログラム
JP4427500B2 (ja) * 2005-09-29 2010-03-10 株式会社東芝 意味解析装置、意味解析方法および意味解析プログラム

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013190991A (ja) * 2012-03-14 2013-09-26 Nec Corp 音声対話要約装置、音声対話要約方法およびプログラム
JP2014191549A (ja) * 2013-03-27 2014-10-06 Intelligent Wave Inc 口語解析サーバ、口語解析装置、口語解析プログラム及び口語解析方法
JP2016526224A (ja) * 2013-05-28 2016-09-01 バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド 文法コンパイル方法、語義解析方法、及び装置
WO2016042814A1 (en) * 2014-09-18 2016-03-24 Kabushiki Kaisha Toshiba Interaction apparatus and method
JP2017517776A (ja) * 2014-10-29 2017-06-29 バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド 対話処理方法、対話管理システム、およびコンピュータ機器
KR20200054338A (ko) * 2015-10-21 2020-05-19 구글 엘엘씨 다이얼로그 시스템들에서의 파라미터 수집 및 자동 다이얼로그 생성
KR102189855B1 (ko) * 2015-10-21 2020-12-11 구글 엘엘씨 다이얼로그 시스템들에서의 파라미터 수집 및 자동 다이얼로그 생성
US20190139538A1 (en) 2015-10-21 2019-05-09 Google Llc Parameter collection and automatic dialog generation in dialog systems
JP2019503526A (ja) * 2015-10-21 2019-02-07 グーグル エルエルシー ダイアログ・システムにおけるパラメータ収集および自動ダイアログ生成
JP2020161153A (ja) * 2015-10-21 2020-10-01 グーグル エルエルシー ダイアログ・システムにおけるパラメータ収集および自動ダイアログ生成
US10490186B2 (en) 2015-10-21 2019-11-26 Google Llc Parameter collection and automatic dialog generation in dialog systems
KR102112814B1 (ko) * 2015-10-21 2020-05-19 구글 엘엘씨 다이얼로그 시스템들에서의 파라미터 수집 및 자동 다이얼로그 생성
KR20180070684A (ko) * 2015-10-21 2018-06-26 구글 엘엘씨 다이얼로그 시스템들에서의 파라미터 수집 및 자동 다이얼로그 생성
US10733983B2 (en) 2015-10-21 2020-08-04 Google Llc Parameter collection and automatic dialog generation in dialog systems
JP2019518278A (ja) * 2016-05-17 2019-06-27 グーグル エルエルシー ユーザのコンピューティングデバイスのユーザインターフェースデバイスを介したユーザとのダイアログの自動起動および適合
US11494206B2 (en) 2016-05-17 2022-11-08 Google Llc Automated initiation and adaptation of a dialog with a user via user interface devices of a computing device of the user
JP2021144228A (ja) * 2017-10-03 2021-09-24 グーグル エルエルシーGoogle LLC ユーザプログラマブル自動アシスタント
US11887595B2 (en) 2017-10-03 2024-01-30 Google Llc User-programmable automated assistant
KR20190125834A (ko) * 2018-04-30 2019-11-07 현대자동차주식회사 음성 언어 이해 장치 및 이 장치를 이용한 음성 언어 이해 방법
KR102648815B1 (ko) * 2018-04-30 2024-03-19 현대자동차주식회사 음성 언어 이해 장치 및 이 장치를 이용한 음성 언어 이해 방법
JP2020102090A (ja) * 2018-12-25 2020-07-02 株式会社サテライトオフィス ボットシステムのプログラム、人工知能スピーカシステムのプログラム
JP7271942B2 (ja) 2018-12-25 2023-05-12 株式会社サテライトオフィス ボットシステムのプログラム、人工知能スピーカシステムのプログラム
JP2021149637A (ja) * 2020-03-19 2021-09-27 株式会社 日立産業制御ソリューションズ ドメイン知識活用支援装置、プログラムおよびドメイン知識活用支援方法
JP7237878B2 (ja) 2020-03-19 2023-03-13 株式会社 日立産業制御ソリューションズ ドメイン知識活用支援装置、プログラムおよびドメイン知識活用支援方法
JP2021103569A (ja) * 2020-04-30 2021-07-15 ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド セマンティック処理方法、装置、電子機器及び媒体
JP7386827B2 (ja) 2020-04-30 2023-11-27 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド セマンティック処理方法、装置、電子機器及び媒体

Also Published As

Publication number Publication date
US20080140389A1 (en) 2008-06-12
JP4451435B2 (ja) 2010-04-14
US8117023B2 (en) 2012-02-14

Similar Documents

Publication Publication Date Title
JP4451435B2 (ja) 言語理解装置、言語理解方法、及び、コンピュータプログラム
Khan et al. A novel natural language processing (NLP)–based machine translation model for English to Pakistan sign language translation
KR101726667B1 (ko) 어법컴파일방법, 어의해석방법, 디바이스, 컴퓨터 저장매체 및 장치
US8515733B2 (en) Method, device, computer program and computer program product for processing linguistic data in accordance with a formalized natural language
US7904291B2 (en) Communication support apparatus and computer program product for supporting communication by performing translation between languages
CN102084417B (zh) 现场维护语音到语音翻译的系统和方法
US11776533B2 (en) Building a natural language understanding application using a received electronic record containing programming code including an interpret-block, an interpret-statement, a pattern expression and an action statement
US20030121026A1 (en) Grammar authoring system
Harrigan et al. Learning from the computational modelling of Plains Cree verbs
US7716039B1 (en) Learning edit machines for robust multimodal understanding
Neme et al. Pattern-and-root inflectional morphology: the Arabic broken plural
Kiyavitskaya et al. Cerno: Light-weight tool support for semantic annotation of textual documents
US11538466B2 (en) Development of voice and other interaction applications
US11508365B2 (en) Development of voice and other interaction applications
Eshghi et al. Dylan: Parser for dynamic syntax
Bashir et al. Arabic natural language processing for Qur’anic research: a systematic review
CN111656453A (zh) 用于信息提取的层次实体识别和语义建模框架
US11749256B2 (en) Development of voice and other interaction applications
JP5410334B2 (ja) 語順変換装置、機械翻訳用統計モデル作成装置、機械翻訳装置、語順変換方法、機械翻訳用統計モデル作成方法、機械翻訳方法、プログラム
Kempson et al. Natural-language syntax as procedures for interpretation: the dynamics of ellipsis construal
Winiwarter Learning transfer rules for machine translation from parallel corpora
Boitet GETA's MT methodology and its current development towards personal networking communication and speech translation in the context of the UNL and C-STAR projects
Nabende Applying dynamic Bayesian Networks in transliteration detection and generation
Neme An arabic language resource for computational morphology based on the semitic model
Menon Machine translation using lexicalised tag

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090526

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090714

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100119

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100127

R150 Certificate of patent or registration of utility model

Ref document number: 4451435

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130205

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130205

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140205

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees