JP4451435B2 - 言語理解装置、言語理解方法、及び、コンピュータプログラム - Google Patents
言語理解装置、言語理解方法、及び、コンピュータプログラム Download PDFInfo
- Publication number
- JP4451435B2 JP4451435B2 JP2006329493A JP2006329493A JP4451435B2 JP 4451435 B2 JP4451435 B2 JP 4451435B2 JP 2006329493 A JP2006329493 A JP 2006329493A JP 2006329493 A JP2006329493 A JP 2006329493A JP 4451435 B2 JP4451435 B2 JP 4451435B2
- Authority
- JP
- Japan
- Prior art keywords
- concept
- slot
- expression
- frame
- semantic
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic 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)
Description
従来、この自然言語理解には、構文解析が利用されていた。しかし、構文解析を行う既存のソフトウェアは、対話システムなどで用いるにはまだまだ精度も低く、自分の扱いたいドメインに対して煩雑な調整なしで満足に動作させることは難しいものであった。加えて、構文解析結果から意味表現を生成する意味表現生成器の構築に手間がかかる上、その再利用性は低い。しかし、構文解析を使わないままでは、キーワードの羅列で行える程度の対話から抜け出すことはできなかった。
図1は、自然言語理解についての非常に単純化した模式図を示す。現在の自然言語処理パラダイムにおける自然言語理解とは、大雑把に言うと、自然言語表現から計算機が理解できるタスク表現への変換機能である。すなわち自然言語理解とは、多種多様な曖昧性を含む自然言語表現を処理してユーザの要求を曖昧性のない意味表現で表象し(図1の過程α)、ユーザの要求を達成する処理を実行するに足るタスク表現を意味表現から生成する(図1の過程β)ことといえる。本明細書では、(α)の過程を意味表現生成とよび、(β)の過程をタスク表現生成とよぶ。
テンプレート方式は構築・保守がともに容易で、構文解析方式に比べて頑健なシステムを実現しやすいため、音声対話システムでよく用いられる。そのかわり、キーワードの羅列で代替できる単純な表現しか扱えない。一方の構文解析方式は、構文の再帰性、意味の合成性を正面から扱うため、複雑で多様な言語表現を扱うことができる。反面、構築・保守共に容易ではなく、一般に頑健性も低い。また合成性を前提とするため、非合成的な表現の理解を苦手とする。
山本 幹雄、伊藤 敏彦、肥田野 勝、中川 聖一,「人間の理解手法を用いたロバストな音声対話システム」,情報処理学会論文誌,Vol.36,No.4,pp.471−482,1995年4月
まず、構文解析方式の問題点について説明する。
図2は、一般的な構文解析方式の模式図を示す。図2は、図1中の(α)の過程に相当する。図2に示したように、構文解析方式を用いる場合、開発者は(1)自然言語表現から構文木を生成する構文解析器と、(2)元の自然言語表現の意味を表す内部表現すなわち意味表現を構文木から生成する意味表現生成器の二つのモジュールを最低限用意しなければならない。同図においては、意味表現として意味フレームを用いているが、述語論理や意味ネットワークなどの他の意味表現形式でも同様である。
構文解析器を一から自作するコストは大きいため、一般の構文解析器が持ち合わせていない特別な機能が必要である場合などを除けば、自作という選択肢はあまり現実的ではない。また、公開されている構文解析器を用いる場合にも問題がある。
構文解析を行うためには、構文解析を行うプログラムだけではなく、当然ながら対象言語とドメインに応じた文法が必要となる。いくつかの解析器には予め大規模な文法が付属してくるため、それをそのまま使用すればそれなりの解析結果を得ることはできる。しかしながら、これらの付属文法は新聞記事などの書き言葉コーパスを基に作成されており、話し言葉が使用される対話システム、特に音声対話システムでは解析精度が悪くなる。また、意味表現生成器構築の負担を軽減するために、複数の一般名詞の連なりからなるドメイン特有の固有名詞や複数の機能語や内容語からなるフレーズを一つの語として扱いたいという要求がしばしば発生する。固有名詞の追加は比較的簡単であるが、フレーズの扱いは容易ではない。
文法を自作することも可能であるが、規則間の干渉や意図しない挙動を排除しつつ文法規則を記述することは容易な作業ではない。このため近年では、人手での文法記述よりも文法の自動獲得や係り受け尤度の機械学習が主流となってきている。しかしながらこれらのアプローチは大量のコーパスと言語学的知見に裏付けられた正確で揺れの少ないアノテーションを必要とするため、ドメインの限定された対話システムの構築などを考えた場合にはやはり現実的な選択肢ではない。
意味表現生成器の構築が難しい最大の理由は、ドメイン概念の構造と構文構造の不一致である。この問題は既存の汎用構文解析器を用いるときに生じやすい。例えば天気予報ドメインにおいて、天気を表す概念weatherが場所と日時によって規定されると仮定する。そうすると「東京の明日の天気」という言語表現は、 weather(Tokyo, tomorrow)というような意味表現で表すことが考えられる。ここでTokyoとtomorrowは、それぞれ「東京」という場所と「明日」という日時を一意に指示するシンボルであるとする。
これに対する一つの解決策は、期待する結果を出力するように、人手による文法の修正や、学習によって構文解析器を調整するというアプローチである。しかしながら、先にも述べたように人手での文法規則の調整は難しい。また構文解析器に学習させるためには大量のデータが必要となる。データの作成は収集だけでなくアノテーションなどの付加的作業も要求するので、非常に手間と時間がかかる。もう一つの解決策は、意味表現生成器がどちらの構造からもweather(Tokyo, tomorrow)という意味表現を生成できるようにすることである。一般にこのアプローチを取ると、意味表現生成器の構築のために困難で退屈なプログラミングが必要となる。また、構築された意味表現生成器は、例外的処理を多く含み他のドメインでの再利用性が低いものとなる。
上記の問題は正しい構文解析結果が得られたとしても対処しなければならないが、頻繁に発生する解析誤りに対しても頑健な生成器を作成しようとすればさらに労力を要する。
このような構成では、特定のドメインにおける概念構造や各概念の具体的な表現である概念表現を規定した概念体系データにより、発話内容に含まれる概念表現とその概念を抽出し、さらに、1つの概念を他の概念によって表現する意味フレームを利用して、抽出した概念表現間の関係を特定することができる。これにより、テンプレート方式の意味解釈を行いながらも、表層的な表現のバリエーションを網羅するためのパターンデータを用意することなしに語句間の関係を解析することができる。また、入れ子状になった意味表現である意味木を生成することができる。
このような構成によれば、構文解析器による構文解析結果を補助的に使用して発話内容に含まれる語句間の関係を解析することができるため、より正確に語句間の関係を解析することができる。また、ドメインによる語彙と、構文解析の結果の形態素列が一致しない場合であっても、形態素列をドメインによる語彙に摺り合わせてアクセス表を生成することができるため、既存の構文解析器を調整することなくそのまま使用することが可能であり、構文解析器の交換も容易となる。なお、「形態素列間のアクセス可能性」とは、依存構造木上のノード間の到達可能性である。
このような構成によれば、1つの概念を複数の異なる表現(意味フレーム)を用いて表現可能な場合に、スロットの入札状態によって、とりうる表現それぞれに用いられる概念の語句が発話内容に現れているかを判断し、どの表現が使用されているかを正しく選択して構文を解析することが可能となる。
このような構成によれば、意味フレームが同一の概念の異なるスロットを用いる場合、1つの概念表現にスロットが複数入札されうるが、発話内容においてその概念表現に付随する他の概念表現から正しいスロットを選択して入札することができる。
このような構成によれば、意味フレームが同一の概念の異なるスロットを用いる場合、1つの概念表現にスロットが複数入札されうるが、発話内容においてその概念表現に付随する標示から正しいスロットを選択して入札することができる。
このような構成によれば、意味フレームが同一の概念の異なるスロットを用いる場合、複数の概念表現に同一の複数スロットが入札されうるが、発話内容においてその概念表現に付随する他の語句を解析することなく、一般的な発話における規則性に基づいて正しいスロットを選択し、入札することができる。
このような構成によれば、構文解析器による構文解析に誤りがあった場合でも、概念表現に正しくスロットを入札することができる。
このような構成によれば、並列構造のために、先頭では言及された要素(概念表現)が、二番目以降の要素では省略されて発話された場合であっても、省略された概念表現にスロットを入札することができるため、省略された語句を補って意味解釈を行うことができる。
このような構成によれば、スロット割当表データによって示される概念表現間の関係を正しく表した意味木を生成することが可能となる。
このような構成によれば、同一のスロットに対して複数の概念表現が列挙される場合であっても、列挙型のパラメータ構造をとらないタスク処理の命令に容易に変換可能な意味木の形で概念表現を表すことができる。
このような構成によれば、同じ意味フレームのスロットとして判断された概念表現であっても、その概念表現間の関係をグループ化して分離し、異なるグループごとの意味木を生成することができる。
このような構成によれば、タスクに引き渡すパラメータとすべき概念表現を生成された意味木から特定して、タスクの実行を指示することが可能となる。
このように、本発明による言語理解装置は、構文解析方式とテンプレート方式とを融合し、理解可能な表現の複雑さの確保と頑健性の両立をはかり、さらには、システム開発者が記述しなければならない知識の量も大幅に削減することが可能である。
本実施形態による言語理解装置では、対話システムを含むドメイン依存言語理解装置のための、構文解析に基づく意味表現生成(図1の過程α)を実現する。
既存技術による諸問題、特に意味表現生成器に関する問題は、構文解析結果を意味解釈の中心に置きすぎていたことに起因すると考えられるため、本実施の形態における言語理解装置は、構文解析結果よりもドメイン知識を意味解釈の中心的な要素とし、構文解析結果を補助的に利用する。ここでいうドメイン知識とは、オントロジー(概念体系と、各概念に付与され、概念を規定する意味フレーム、そして各概念を表す言語表現を含む)と、固有表現(ドメインに現れる事物の名前)である。
最初に、本実施の形態による言語理解装置におけるドメイン知識と意味表現について説明する。
本実施の形態による言語理解装置は、ドメインの知識さえ与えれば構文解析器の調整や意味表現生成器の作成を行わずに構文解析方式を構築できるフレームワークを実現する。つまり、本実施の形態の言語理解装置による意味表現生成手法は、このフレームワークの中で動作するものであり、意味表現生成に使用できる知識は与えられるドメイン知識に依存する。そこで、以下にドメイン知識を定義する。また、このフレームワークでは意味表現をタスク表現に変換する処理(図1中の過程β)の記述も容易となる。
本実施の形態の言語理解装置に用いられるオントロジーでは、ドメインを規定する概念の集合を木構造により定義し、これら各概念に対応する言語表現と意味フレームを記述する。各概念は、概念を唯一に特定する固有名(概念名)を持つ。そして、その概念が実際に対話中で言語的に言及される概念ならば、その概念を指示するための表現、すなわち、概念表現を持つ。図3に、ホテル予約システム用の概念体系の例を示す。同図において、各ノードは概念名を示し、括弧の中は概念表現を示す。概念表現中の記号#は任意の数字列を表す。同図において、最上位ノード「T」の配下に、概念「reserve」、「stay」、「type」、「quantity」、「smoke」、「date」、「ordinal」がある。概念「reserve」には、言語表現「予約」が対応付けられている。また、概念「stay」には、さらに配下に、概念「stay-days」、「stay-nights」があり、概念「stay-days」には、言語表現「#日間」及び「#日」が、概念「stay-nights」には、言語表現「#泊」が対応付けられている。
同図において、概念「reserve」には、2つの意味フレーム「reserveF0」、「reserveF1」があり、「reserveF0」は、スロット名「start」、「stay」、「type」、「quant」、「smoke」のパラメータをとる。これにより、「23日から3泊でシングルを一つ禁煙で予約」という表現を受け付けることができる。また、「reserveF1」は、スロット名「start」、「end」、「type」、「quant」、「smoke」のパラメータをとる。これにより、「23日から26日までシングルを一つ禁煙で予約」という表現を受け付けることができる。
同図においては、概念「reserve」のスロット定義を示しており、スロット名「start」は、対象概念が「date」、スロット指定は「チェックイン」、標示は「から」、明確化要求表現は「いつからのご宿泊ですか?」であることが示されている。また、スロット名「stay」は、対象概念が「stay」、スロット指定は「宿泊日数」「滞在日数」、明確化要求表現は「何泊ご利用ですか?」であることが示されている。
なお、本実施の形態における意味フレームと、意味フレームからタスク表現へと変換するための具体化関数へのマッピングとを組み合わせた知識は、従来技術の非特許文献1のキーワードパターンに相当する。また、本実施の形態における具体化関数自体に相当する知識は、従来技術の非特許文献1では、システムのなかの問題解決器に埋め込んでいる。
次に、固有表現について説明する。
ドメインには上記のオントロジーで定義した概念(クラス)のインスタンスが存在し、いくつかのインスタンスは名前を持つ。概念ではなく個々のインスタンスを指示する表現(名前)を、固有表現とよぶ。
固有表現は、インスタンスを定義する際に個々のインスタンスと結びつけながら定義する。ただし固有表現は必ずしも唯一のインスタンスを指示しない。これは、同姓同名の人物が世の中に大勢いることを例に考えるとよい。個々のインスタンスを唯一に識別可能にするものは個々のインスタンスを定義する時に設定する固有の文字列であり、これをインスタンスシンボルとよぶ。インスタンスシンボルは意味表現そしてタスク表現を構成する要素となり、最終的にタスク処理モジュールが利用する。
続いて、意味木について説明する。
意味表現生成器が出力する意味表現形式として意味木を定義する。意味木は図2の右側に図示されているような意味フレームの入れ子構造を、図6のように木構造で表現したものである。
意味木には、内容ノード、群ノードの二種類のノードがある。どちらのノードもその子ノードとして二種類のノードのいずれをも取ることができる。
内容ノードは、入力表現の中でそのノードに対応する部分表現への参照とその部分表現が表す概念を保持する。また、そのノードがドメイン中のインスタンスを指し示す場合はインスタンスシンボルを、そうでない場合はその概念を規定するフレームを保持する。ある内容ノードの子ノードの最大数はノードが表すフレームの持つスロットの数である。子ノードはスロットの値を表現する。
他方、群ノードは並列構造を表現し、列挙型と代替型の二つの型に分かれる。群ノードが持つ子ノードの数に制限は無い。群ノードは、並列構造の各要素の表層上での出現順序を子ノードの順序として保存する。
次に本実施の形態による言語理解装置の構成について以下に示す。
図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は、音を出力するスピーカなどである。
概念体系データは、図3に示すような概念体系を表すデータであり、ドメインを規定する概念の集合からなる木構造、これら各概念に対応する言語表現の情報を示す。各概念は、当該概念を唯一に特定する固有名としての概念名により示され、概念が実際に対話中で言語的に言及される概念ならば、概念体系データには、その概念を指示するための表現である概念表現が含まれる。
フレーム定義データは、図4に示すようなフレーム定義を表すデータであり、概念名と、当該概念名に対応した1以上の意味フレームとからなり、意味フレームには、1以上のパラメータが用いられる。このパラメータは、1以上のスロット名からなる。
スロット定義データは、図5に示すようなスロット定義を表すデータであり、スロット名、対象概念、スロット指定、標示、明確化要求表現を示す。対象概念はスロットの値となりうる概念が概念名で示される。スロット指定は、ある概念表現が値となるスロットを指定する場合に用いられる言語表現を示す。標示は、ある言語表現がどのスロットの値であるかを特徴づける。明確化要求表現は、スロットの値が不定であった場合に、ユーザに問い合わせるために用いる。
語句解釈部10は、テキスト変換部3から入力された入力発話データの示す自然言語表現の入力発話内容から、概念や事物への言及を抽出する。
アクセス表生成部20は、構文解析部21及びアクセス表生成出力部22とからなる。構文解析部21は、既存の構文解析器を用いることができ、テキスト変換部3から入力された入力発話データの示す自然言語表現の入力発話内容から、構文解析を行う。アクセス表生成出力部22は、構文解析部21による解析結果と、語句解釈部10における語句解釈の結果とから、アクセス表を生成する。このアクセス表とは、構文解析した結果の得られた語句間の距離を行列の形で表現した構文解析結果である。
スロット値グルーピング部41は、複数のスロット値からなる繰り返しのパターンを検出し、グループ化して分離する。変換部42は、スロット割当表を意味木に変換する。因子分解部43は、変換部42が生成した意味木において、群ノードを子ノードに持つ内容ノードを展開して具体化関数にマッピングできる状態にし、タスク表現生成部へ出力する。
次に、言語理解装置1の動作について説明する。
図9は、言語理解装置1の処理フローを示す図である。
同図において、まず、言語理解装置1の音声入力部2に音声が入力される(ステップS100)。テキスト変換部3は、音声入力部2に入力された音声の認識を行い、入力発話内容をテキストにより示した入力発話データを生成して、意味表現生成部4へ出力する(ステップS200)。なお、キーボードなどにより直接入力された発話内容を示す入力発話内容データを意味表現生成部4へ出力しても良い。
(ステップS310)語句解釈:
入力表現から概念や事物への言及を抽出する。
(ステップS320)アクセス表生成:
構文解析を行い、解析結果を語句解釈の結果にすりあわせる。
(ステップS330)フレーム解釈:
アクセス表に基づき、フレームとスロット値の組み合せを決める。
(ステップS340)意味木生成:
フレーム解釈の結果から意味木を生成する。
以下に、ステップS310〜S340の詳細な処理について説明する。
ステップS310において、言語理解装置1の語句解釈部10は、入力発話データの示す入力発話内容に対して言語依存の正規化処理を行う。この処理は、日本語の場合、漢数字からアラビア数字への変換、日付表記の書式変換処理である。
次に、語句解釈部10は、書式変換処理を行った入力発話内容に対して、正規表現によるパターンマッチングを行う。パターンマッチングは、ドメイン知識として記憶部6内に記憶されている概念体系データ及びスロット定義データにより示される概念表現、スロット指定、固有表現を対象とする。このとき、ある部分文字列に対して複数のパターンがマッチする可能性があるので、語句解釈は重なりなしで最大被覆をもたらすマッチング結果の集合を出力する。なお、テンプレート方式の一種であるキーワードマッチング方式は、この処理だけで言語理解を行おうとするものである。
語句解釈部10は、記憶部6に登録されている概念体系データ(図3)及びスロット定義データ(図5)を検索し、概念体系データに、例文2の最初の語句「8月」にマッチする、「#月」という概念表現があることを検出する。語句解釈部10は、入力発話内容において最初にパターンにマッチした語句であることを示す「(1)」と、入力発話内容においてマッチした概念表現「8月」と、「概念」にマッチしたこと、及び、そのマッチした概念の概念名「month」とを対応付けたデータを生成する。
語句解釈部10は、さらに検索を行い、概念体系データに、例文2における次の語句「23日」にマッチする「#日」という概念表現があることを検出する。語句解釈部10は、入力発話内容において2番目にパターンにマッチした語句であることを示す「(2)」と、入力発話内容においてマッチした概念表現「23日」と、「概念」にマッチしたこと、及び、そのマッチした概念の概念名「day」とを対応付けたデータを生成する。
語句解釈部10は、上記を繰り返し、入力発話内容に対してパターンマッチング処理により語句解釈を行い、図10に示すような語句解釈結果を示すデータを生成して、アクセス表生成部20及びフレーム解釈部30へ出力する。
図9のステップS320において、言語理解装置1のアクセス表生成部20は、以下のステップS321〜S322の処理を行う。
アクセス表生成部20の構文解析部21は、入力された入力発話データの示す入力発話内容の構文解析を行う(ステップS321)。この構文解析部21には、例えば既存の構文解析ソフトウェアなど、任意の構文解析器を用いることができる。図11に、例文2の入力発話内容を構文解析した結果の構文解析木を示す。同図によれば、「8月23日」は「チェックイン」に、「チェックイン」は「25日」に、「シングルと」は「ダブルを」にかかっている。また、「25日」、「チェックアウトで」、「ダブルを」、及び、「一部屋ずつ」は「予約」にかかっている。
次に、アクセス表生成部20のアクセス表生成出力部22は、構文解析部21による構文解析に基づき、アクセス表を生成する(ステップS322)。アクセス表は、構文解析結果(複数候補があるときは1位のもの)を行列の形で表現したもので、構文解析木のノードである二つの語句の間にパスが存在するかどうかを表す。ここでは構文解析結果として依存構造を用いているが、句構造から依存構造への変換は容易なので、句構造文法を使用する構文解析器を用いてもかまわない。
例えば、構文解析部21における1つのノード(構造解析単位)に、語句解釈部10による語句解析結果により検出された概念表現(語句)が1つ含まれている場合は、これらは対応するものとみなす。一方、構文解析部21における1つのノード(文節)に、語句解釈部10による語句解析結果により検出された概念表現が複数含まれている場合は、語句解析結果により検出された概念表現に分割する。例えば、「8月23日」は構文解析部21においては一つの文節にまとめられているが、図3に示す概念体系データによる定義では、「8月」と「23日」は別々の概念であり、語句解釈部10から出力された語句解釈結果データにも異なる概念表現として解析されている。そこで、アクセス表生成出力部22は、「8月23日」を「8月」と「23日」との2つに分解する。このように、複数の連続する概念が一つの依存構造解析単位としてまとめられてしまった場合は、解析単位の依存先をそのうちの最右概念(入力発話内容において先に出現する概念表現)の依存先とし、その他の概念は直右の概念に距離1で到達可能と見なす。逆に、一つの概念が複数の依存構造解析単位に分割されてしまった場合は、最も右にある解析単位(入力発話内容において後に出現する概念表現)の依存先をその概念の依存先とする。それ以外の解析単位が別の概念に依存していてもそれらは無視する。複数の依存構造解析単位に分割された概念は、そのうちの任意の解析単位に依存する概念全ての依存先となる。
アクセス表生成出力部22は、生成したアクセス表のデータをフレーム解釈部30へ出力する。
図9のステップS330において、言語理解装置1のフレーム解釈部30は、アクセス表データを参考にして、語句解釈で抽出された各概念に該当するフレームとスロット割当を決定する。具体的には、以下のステップS331〜S338の処理を行う。
フレーム解釈部30のフレーム組み合せ生成部31は、語句解釈部10から語句解釈結果データの入力を受けると、記憶部6を参照して、語句解釈結果データ内に含まれる全ての概念それぞれについて対応するフレーム定義データがあるかを検索し、あればそれを読み出す。そして、読み出したフレーム定義データを参照して、取り得る全てのフレームから組み合せを生成する(ステップS331)。
図9のステップS333において、フレーム解釈部30の入札部32は、各スロットの値をフレーム毎に要求する入札処理を行う。入力発話中に現れた概念は、通常、同じ発話内に現れた他の概念が持つフレームの、ある1スロットの値となる。そこで、言語理解装置1の入札部32は、入札処理を行うことにより、ある概念が、他のどの概念のスロット値になりうるかを抽出する。入札部32は、アクセス表と同形のスロット割当表を用いて、各フレーム毎にスロット値への入札を行う。ただし、各フレームが入札できる箇所は、アクセス表の対応箇所に1以上の数値が記されている場所だけである。
記憶部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」を入札している。
次に、フレーム解釈部30のスロット衝突解決部33は、入札部32の生成したスロット割当表において、複数のスロットの値として入札が行われている箇所(スロット衝突)を解消するためのスロット衝突解決処理を実行する(ステップS334)。
つまり、ここでは、1つの項が2つ以上の意味役割をもつことはないという、意味役割(フレームスロット)の唯一性を仮定しており、一つの概念表現(項)は、別の概念表現が表すフレームのただ一つスロットの値にしかなれない。従って、スロット衝突解決部33は、スロット割当表の各行において複数のスロットの値として入札が行われている箇所(スロット衝突)を解消する。図13の場合、最終行の第3列と第4列がこれにあたる。具体的には、最終行「予約」の第3列「23日」には、スロット「start」及び「end」が入札されており、第4列「25日」にも、スロット「start」及び「end」が入札されている。
(1)スロット指定:
入力言語表現中で、ある概念表現が特定のスロットの値であることを明示することがある。このような明示(スロット指定)が存在した場合は、その明示されたスロットを採用する。図10に示すように、例文2では、「チェックイン」が「23日」を値とするスロット「start」を、「チェックアウト」が「25日」を値とするスロット「end」をそれぞれ指定している。
あるスロット指定がどの概念表現を修飾するものなのかを特定することはそれほど容易ではないが、構文構造を無視した表層上の簡単なヒューリスティクス(経験上の規則)に基づき、本実施の形態では、スロット衝突解決部33は、スロット指定の直左のものを指定しているものと判断している。
スロット衝突解決部33は、問題となっている概念表現をマークしている表現(通常は格助詞などの機能語)があるかどうか入力発話に対して正規表現マッチングで調べる。もし標示が見つかれば、標示に対応するスロットを採用する。例えば、概念表現「23日」にスロット「start」、「end」が入札されており、概念表現「23日」に「から」という機能語が後ろに付随している場合を想定する。このとき、図5に示すスロット定義データにおいて、標示「から」はスロット「start」に対応付けられているため、標示「から」の直前の概念表現「23日」のスロットは「start」であると判断される。
スロット指定もなく標示も見つからない場合、フレーム定義におけるスロット記述順にスロット値を分配する。日本語は一般に語順が自由であるといわれるが、ある程度一般的な傾向が認められることも知られている、この語順を、スロットを定義する際の順序としてコーディングしておく。例えば、ホテルの予約を行う場合、先に宿泊開始の日付を指定し、その後に宿泊の終了の日付を指定する傾向が認められる。従って、スロット名「start」がスロット名「end」より先に現れることが想定される。そこで、フレーム定義データでは、スロット名「start」を、スロット名「end」より先に出現するよう定義しておき、スロット「start」、「end」の両者が入札された概念表現が2つあった場合には、入力発話内容においてより先に出現する概念表現にスロット「start」を、後に出現する概念表現にスロット「end」を割り当てる。
図9のステップS335において、フレーム解釈部30の構文解析誤り回復部34は、構文解析誤りを回復し、その回復した結果のスロット割当表を生成する。ステップS321において構文解析部21が行った構文解析結果は必ずしも正確ではない。特に対象ドメインに特化されていない汎用解析器を用いた場合、文法的には誤りでないが意味的には誤った結果が出力されることが多くなってしまう。そのような誤りのうちのいくらかをここで回復する。ここで回復できる誤りは、依存構造木の中で、ある語の依存先が本来の依存先よりもルートに近い語になってしまった場合である。このような状況になると、本来の依存先はその語にアクセスできなくなってしまう。
例えば、以下の例文3を考える。
そこで、この段階で未だ空値のスロットと一切の入札を受けていない概念表現(あるいは固有表現)が存在し、その概念表現(あるいは固有表現)が空値のスロットの値になりうるならば、その表現への入札を許す。つまり、フレーム定義データとして、概念表現「最高気温」のフレームが、対象概念が「日付」であるスロット『起点』をパラメータとして有することが記憶部6に記憶されており、スロット衝突解決部33から入力されたスロット割当表に、概念表現「最高気温」のスロット『起点』が入札されておらず、かつ、対象概念「日付」の概念表現「6月」にまだ入札が行われていないと判断した場合、構文解析誤り回復部34は、この概念表現「6月」に概念表現「最高気温」のスロット『起点』を入札したスロット割当表を生成する。
図9のステップS336において、フレーム解釈部30の文内省略解決部35は、構文解析誤り回復部34が生成したスロット割当表に対して、並列構造のためにスロット割当表に入札されていなかったスロットの入札を行う文内省略解決処理を行う。
並列構造では頻繁に省略が起きる。並列構造の先頭の要素では言及された内容が、二番目以降の要素では省かれる現象である。以前の発話で指定されたためにおこる談話的な省略や、常識やドメイン知識に基づく省略と区別して、これを文内省略とよぶことにする。例えば例文3では、「昨年の6月から」と「8月までの」は並列構造をなすが、「昨年の」という指定が「8月までの」では省略されている。このような文内省略をここで解決する。文内省略解決部35は、以下の二つの場合に、ある複数の表現が並列であるとみなす。
(2)それぞれが、ある概念表現のフレームの「起点・終点」の関係にあるスロットの値である。
図14に、図13に示すスロット割当表に、ステップS335のスロット衝突解決と、ステップS336の文内省略解決を行った後のスロット割当表を示す。
図9のステップS337において、フレーム解釈部30のスコア付け部36は、文内省略解決部35の生成したスロット割当表、すなわち、フレーム解釈処理が終了したスロット割当表に対してスロットの埋まり具合と文脈との適合度で、各フレーム組み合せにスコアを付ける。スコアは以下の規則に従って与える。
(a)値の埋まっているスロットのうち、記憶部6に記憶されているフレーム定義データにおいて当該スロットに対応した標示が存在しており、かつ、入札された対象概念にその標示が付随しているものがあれば、1スロットにつき1ポイント付加し、
(b)値の理まっていないスロットの数をnとして、−2nポイント付加する。
(a)直前の発話に含まれているフレームと同じフレームが含まれていれば、1フレームにつき1ポイント付加する。
続いて、ステップS340において、意味木生成部40は、フレーム解釈の結果から意味木を生成する。具体的には、この意味木生成処理では、以下のステップS341〜S343の処理を行う。
図9のステップS341において、意味木生成部40のスロット値グルーピング部41は、複数のスロットの値からなる繰り返しのパターンをグループ化して分離する。
(例文1)を考える。「明日」、「東京」、「明後日」、「大阪」、「京都」の五つの概念表現は全て概念表現「天気」が表す概念「weather」のフレームのスロット値を表現している。しかし、この中で「明日」は「東京」だけに関係し、同様に「明後日」は「大阪」と「京都」だけに関係する。
この表現に対して「明日」の「大阪」の天気を答えることは求められていない。単純に概念「weather」のフレームのスロット「date」が、「明日」と「明後日」の二値を取ると考え、別のスロット「place」の値との関連を無視した意味表現にしてしまうとこのような間違いを犯してしまう。そこで上記のような複数のスロットからなる繰り返しパターンを検出し、グループ化しておく。
具体的には、スロット値グルーピング部41は、スロット割当表から、各フレームについて、当該フレーム内で同一のスロットが複数の対象概念に入札されており、そのスロットの出現パターンが繰り返されているものがあるかを検出する。検出された場合、スロット値グルーピング部41は、その繰り返えされるスロットの出現パターン毎に対象概念をグループ化する。
図9のステップS342において、意味木生成部40の変換部42は、スロット割当表を意味木に変換する変換処理を行う。基本的には各概念表現/固有表現に対して一つの内容ノードを作るが、スロット割当が複数のスロット値グループに分離された概念表現に対しては、そのグループの数だけの内容ノードを作り、群ノードにまとめる。図15に例文2に対するこの段階での意味木を示す。なお、図6で示した例文1の意味木もこの段階のものである。
さらに、内容ノードとして記述した概念表現にスロットが入札されていれば、その概念表現の配下にノードを作成する。図14では、概念表現「23日」及び「25日」について、スロット「month」が概念表現「8月」に入札されているため、意味木の概念表現「23日」及び「25日」それぞれの下位の内容ノードとして、スロット「month」の概念表現「8月」を記述する。
図9のステップS343において、意味木生成部40の因子分解部43は、変換部42が作成した意味木から、具体化関数が使用できる形状の意味木を作成する因子分解処理を行う。
また、上記に対し、「明日の東京と明後日の大阪の天気」の場合は因子分解ではなく、ステップS341におけるスロット値グルーピング処理によって「明日の東京の天気」と「明後日の大阪の天気」に分離されている。
図9のステップS400において、タスク表現生成部5は、意味木生成部40の因子分解部43から出力された意味木から、具体化関数を用いてタスク表現を生成する。このとき、具体化関数に必須の引数(パラメータ)に対応した空きのスロット値があれば、記憶部6から当該スロットの明確化表現を読み出し、その読み出した明確化表現をユーザに対して出力して、空きのスロットに対する概念表現を入力させる。これは、ステップS400に意味木が出力される前に行うことでもよい。あるいは、予め記憶部6に記憶されているデフォルト値を読み出して用いてもよい。
あるいは、ロボット行動制御として言語理解装置1が用いられる場合などは、3次元仮想空間内のキャラクター(アニメーションロボット)に対して物理行動を指示するタスク処理モジュールに引き渡される。これにより、音声で物体の移動などの指示をロボットに与えることが可能となる。
以上説明した言語理解装置1を用いて、ホテル予約を行う対話システムを構築し、評価のための実験を行った結果を以下に示す。
[6.1 対話システム]
言語理解装置1には、スロットフィリング型タスクを扱うことができるドメイン非依存の対話管理モジュールを備える。構築したホテル予約対話システムのドメイン依存知識の記述量は、オントロジーを定義した95行のXMLファイルと、具体化関数及びタスク依存の対話処理(金額の確認など)としてJava(登録商標)言語で記述した150行のプログラムにすぎない。言語理解装置1は、図3に示した概念体系データを用いている。本実施の形態の言語理解装置1により実現される言語理解フレームワークを用いることにより、このような少ない量の記述だけで、従来のテンプレート方式の対話システムよりも高度な言語理解を行うシステムを素早く構築できる。
また、対話管理モジュールの詳細な説明は省略するが、意味木レベルでの単一化を基本とした談話理解を行う。ホテル予約対話システムがユーザに対して投げかける明確化要求は、スロット定義に記述された表現そのままで、対話状態に応じて変更するような特別な工夫はしていない。
システムが明確化を要求するのは一度に1スロットだけだが、図18に示すように、ユーザは要求以上のスロット値をシステムに先んじて提供することもできる。また、図19に示すように、一部の情報を参照することで別々の内容ノードが表すフレームのスロット値を指定することもできる。例のような対話を理解するシステムを通常の構文解析方式で構築しようとするとかなり手間がかかる。まず「シングルは喫煙」のようなうなぎ文をどのように意味表現するべきかがまずは困難であり、またその意味表現を生成できる意味表現生成器を構築する作業を必要とする。これら表現の処理は例外的な扱いとなりがちなので、プログラムの設計と保守も煩雑になる。
実装した対話管理モジュールは図18 、図19のU3のような発話を理解する際に、単純に現在懸案となっているフレームの言語表現を入力発話に付け足すことで理解する。図19の場合、「シングルは喫煙でダブルは禁煙予約」という表現を合成し、これについてステップS300に示す意味表現生成処理を実行する。「シングルは喫煙でダブルは禁煙予約」という表現は非文法的な表現であるが、本実施の形態の言語理解装置がもつテンプレート方式的な側面のおかげで問題なく解釈できる。あとは生成された意味木と以前の対話内容を保持している意味木の単一化を行うだけで、適切な理解を得られる。
ホテルの部屋を予約する課題を五つ作成し、被験者9名に取り組ませた。課題毎に宿泊期間などの条件を指定し、それらの条件を満たす部屋を予約するように被験者に指示した。五つの課題は図20に記す。なお、対話はWebブラウザ経由のキーボード対話である。
図23は、課題毎及び全体の課題成功数と割合を示す。収集した対話の総数は45対話であるが、このうちシステムの実装不具合によって対話が強制的に断ち切られてしまった5対話(課題2で1対話、課題4で1対話、課題5で3対話)は除いた。同図に示すように、成功は24対話、成功率は63.4%であった。実装の不具合による失敗も含めた場合の成功率は、57.7%であった。
一方「23日」と「シングル」は、係り先は妥当であるが意味フレームとスロット値の関係にはなっていない。分類結果を図24に示す。OKとNGが、それぞれ係り先が妥当であることと妥当でないこと、YESとNOが、フレーム・スロットの関係にあることとないことを表す。同図から、係り受け関係は妥当でも直接的には意味フレームとスロット値の関係になっていないものが多数あることが分かる。
上述した本実施の形態の言語理解装置によれば、以下の(1)〜(6)の効果がある。
すなわち、文法の差し替えや調整を行わずに既存の構文解析器を利用するため、構文解析器の交換が容易で、最新の構文解析器を素早く導入することができる。また、新たな語や表現に対応しようとするときにシステム内で変更しなければならない箇所を減らすことができるので開発と保守が容易になる。もし、一つの変更のために複数箇所を書き換える必要があると単純な作業量の増加分以上の効率低下を招きバグを増やすことになる。しかし、本実施の形態においては、大規模文法を備えた既存の解析器を利用することにより、言語のドメイン非依存な側面を解析器に任せてしまえるため、文法を自分で用意するより遥かに開発効率が良くなる。
すなわち、既存の構文解析器を利用する上、煩わしい意味表現生成器の構築も不要であるため、言語理解装置の開発が容易になる。言語処理に関わる大部分をブラックボックス化できるので、言語処理の知識がない開発者でも構文解析方式の言語理解装置を容易に開発できるようになる。また、言語理解アプリケーション開発用のIDE(統合開発環境)の提供も可能になる。
本実施の形態の言語理解装置では、並列構造の処理を容易にする。最終的に出力される意味表現は、意味表現からタスク表現に変換する処理をアプリケーション開発者が記述するときに、並列構造とそれに伴う文内省略を意識する必要がない。
本実施の形態の言語理解装置では、構文解析を利用しながらもテンプレート的な理解も可能にしている。スロット割当表において各行毎に行う処理は、個々の意味フレームをテンプレートとして用いたパターンマッチング処理に他ならない。ただそのときに、構文構造からくる制約を控えめに導入している。またあくまで意味のテンプレートであって表層表現のテンプレートではないので、表層のバリエーションを網羅するためにパターンを大量に用意する必要がない。本実施の形態の言語理解装置では、「明日シングル3室ダブル2室禁煙3泊」のようなキーワードの羅列でも正しく理解する。
ホテルを予約しているところ、ある期日からシングルルームとダブルルームを予約したい旨を伝えた所で、チェックアウト日を尋ねられたとする。このとき我々は「シングルは、25日でダブルは26日」のような答えを返すことができる。いわゆる「うなぎ文」である。シングルルームという存在が25日という日時と等価であるわけでもないし、シングルルームという概念に25日という値をとる属性が存在するわけでもない。あくまでシングルという言葉で間接的に参照された「予約」という概念の1インスタンスの属性値が25日なのである。このような表現を構文解析方式でまじめに扱おうとすると非常に厄介であるが、我々が提案する手法では容易に扱うことができる。表層パターンを用いる方式であれば個々のパターンに対応する処理自体を記述することは比較的容易かもしれないが、様々なバリエーションのパターンを大量に用意する必要がある。
ドメインを規定する概念の体系すなわち、オントロジーを明確化することで、言語理解装置の言語処理以外の部分の開発効率も改善できる。言語処理はあくまでアプリケーションシステムの備えるヒューマンインターフェースにすぎず、システムの中心となるのはタスク処理モジュールである。タスク処理モジュールは、入力された自然言語表現からタスク表現を生成する言語処理モジュールだけでなく、多種多様なモジュールと情報のやりとりを行う必要がある。例えば、ロボット制御タスクを行うシステムであれば、タスク処理モジュールは、ロボットが認識した物体の色や形・種類、ロボットの現在地を含む状態などを管理する様々なモジュールと、シンボルを用いてやり取りする必要がある。オントロジーを整備することで、これらのモジュールをつなぐインターフェースやモジュール自体の開発を見通しよく行うことができる。明示的なオントロジーを整備しないと、これらの情報がシステムの中に分散して(さらには暗黙的に)存在することになり開発効率と保守性を下げる。
本実施の形態による言語理解装置では、ドメインの知識を与えるだけで意味表現生成器の作成を行わずに並列構造と文内省略を適切に処理する構文解析を実現することができ、対話システムも素早く構築することができる。
なお、上述の言語理解装置1は、内部にコンピュータシステムを有している。そして、言語理解装置1のテキスト変換部3、意味表現生成部4、及び、タスク表現生成部5の動作の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われる。ここでいうコンピュータシステムとは、CPU及び各種メモリやOS、周辺機器等のハードウェアを含むものである。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
2…音声入力部
3…テキスト変換部
4…意味表現生成部
5…タスク表現生成部
10…語句解釈部
20…アクセス表生成部
21…構文解析部
22…アクセス表生成出力部
30…フレーム解釈部
31…フレーム組み合せ生成部
32…入札部
33…スロット衝突解決部
34…構文解析誤り回復部
35…文内省略解決部
36…スコア付け部
40…意味木生成部
41…スロット値グルーピング部
42…変換部
43…因子分解部
Claims (14)
- ドメイン内で用いられる概念のツリー構造と、当該概念を特定する概念名と、当該概念の言語表現である概念表現との対応付けを示す概念体系データと、
前記概念名と、当該概念名の概念を他の概念により表現するための1以上の意味フレームと、当該意味フレームに用いられる1以上のスロットとの対応付けを示すフレーム定義データと、
スロットとして用いられる概念の前記概念名を示すスロット定義データと
を記憶する記憶部と、
入力発話データの入力を受け、前記記憶部内の前記概念体系データにより示される概念表現を参照して、入力された前記入力発話データの示す発話内容に含まれる概念表現を検出し、検出した概念表現に対応した概念名を読み出す語句解釈部と、
前記記憶部内の前記フレーム定義データを参照して、前記語句解釈部により読み出された概念名に対応した意味フレームを特定し、特定した意味フレームに対応したスロットを読み出すとともに、前記記憶部内の前記スロット定義データを参照して、読み出した当該スロットに対応した概念名を読み出し、読み出したそれぞれの意味フレームについて、前記語句解釈部により検出された概念表現の中から、当該意味フレームの各スロットに対応する概念名またはその概念名が示す概念の下位概念の概念名に対応し、かつ、他の意味フレームのスロットが入札されていない概念表現を特定し、この特定した概念表現に当該スロットを入札することを繰り返し、入札した結果を示すスロット割当表データを生成する入札部と、
対応する概念名により意味フレームが特定された前記概念表現と、前記スロット割当表データにより示される、前記意味フレームのスロットが入札されている前記概念表現とから意味木を生成する意味木生成部と、
を備えることを特徴とする言語理解装置。 - 前記入力発話データの入力を受け、入力された入力発話データにより示される前記発話内容の構文解析を行って発話内容を構成する形態素列間の係り受けの関係を得、得られた前記形態素列が前記語句解釈部により検出された前記概念表現の列と一致しない場合は当該形態素列を検出された前記概念表現の列に当該形態素列が一致するよう当該形態素列の中の形態素を分割あるいは結合し、前記概念表現の列に対応した前記形態素列間の係り受けの関係に基づいて前記概念表現間のアクセス可能性を示すアクセス表データを生成するアクセス表生成部をさらに有し、
前記入札部は、それぞれの意味フレームについて入札を行うときに、前記語句解釈部により検出された概念表現の中から、当該意味フレームの各スロットに対応する概念名またはその概念名が示す概念の下位概念の概念名に対応し、かつ、他の意味フレームのスロットが入札されていない概念表現を特定し、前記アクセス表生成部により生成されたアクセス表データにより、前記特定した概念表現に、当該意味フレームに対応する概念表現がアクセス可能であることが示される場合に、この特定した概念表現に当該スロットを入札する、
ことを特徴とする請求項1に記載の言語理解装置。 - フレーム組み合わせ生成部は、前記記憶部内の前記フレーム定義データを参照して、前記語句解釈部により読み出された概念名に対応する意味フレームを特定し、一つの概念名に対応して特定した意味フレームが複数あった場合に、取り得る意味フレームの組み合わせを生成し、
前記入札部は、前記フレーム組み合わせ生成部が生成した意味フレームの組み合わせ毎に前記スロット割当表データを生成し、
スコア付け部は、前記フレーム組み合わせ生成部が生成した意味フレームの組み合わせそれぞれに対応する前記スロット割当表データを参照して概念表現へのスロットの入札状態に基づいてスコアを付与し、付与したスコアによって発話内容に用いられているフレーム組み合わせに対応した前記スロット割当表データを選択し、
前記意味木生成部は、前記語句解釈部により検出された前記概念表現のうち、対応する概念名により前記意味フレームが特定された前記概念表現と、前記スコア付け部により選択された前記スロット割当表データにより示される、前記意味フレームのスロットが入札されている概念表現とから意味木を生成する、
ことを特徴とする請求項1または請求項2に記載の言語理解装置。 - 前記スロット定義データは、スロットを特定する言語表現であるスロット指定の情報をさらに含み、
前記語句解釈部は、さらに前記記憶部内の前記スロット定義データにより示されるスロット指定を参照して、入力された前記入力発話データの示す発話内容に含まれるスロット指定を検出し、
前記入札部により1つの概念表現に対して同一フレームの複数のスロットが入札された場合、スロット指定が前記発話内容において当該概念表現に付随するかを検出し、検出された場合に、この付随するスロット指定により特定されるスロットを、当該概念表現へ入札されるスロットとして選択し、選択した結果に基づいて前記スロット割当表データを書き換えるスロット衝突解決部とをさらに備える、
ことを特徴とする請求項1から請求項3のいずれかの項に記載の言語理解装置。 - 前記スロット定義データは、スロットを特定する標示の情報をさらに含み、
前記入札部により1つの概念表現に対して同一フレームの複数のスロットが入札された場合、前記記憶部内のスロット定義データにより示される前記複数のスロットそれぞれに対応した標示を参照して、前記発話内容において前記複数のスロットが入札された前記概念表現に標示が付随しているかを検出し、検出された場合に、当該標示に対応したスロットを、当該概念表現へ入札されるスロットとして選択し、選択した結果に基づいて前記スロット割当表データを書き換えるスロット衝突解決部とをさらに備える、
ことを特徴とする請求項1から請求項3のいずれかの項に記載の言語理解装置。 - 前記入札部により、同じ概念に対応する複数の概念表現それぞれに対して同一意味フレームの複数のスロットが入札された場合、前記発話内容における前記複数の概念表現の出現順と、前記記憶部内に記憶されているスロット出現順序の情報により示されるスロットの順序とが対応するように、前記複数の概念表現それぞれへ入札されるスロットを選択し、選択した結果に基づいて前記スロット割当表データを書き換えるスロット衝突解決部とをさらに備える、
ことを特徴とする請求項1から請求項3のいずれかの項に記載の言語理解装置。 - 前記入札部によりどの概念表現にも入札されなかったスロットである空スロットがあった場合、当該空スロットと対応する概念が一致し、かつ、他のスロットが入札されていない概念表現に、当該空スロットを入札し、入札した結果に基づいて前記スロット割当表データを書き換えることを特徴とする構文誤り解析部とをさらに備える、
ことを特徴とする請求項1から請求項6のいずれかの項に記載の言語理解装置。 - 対応する概念名により前記意味フレームが特定された前記概念表現のうち、前記入札部により当該意味フレームのスロットが入札されなかった概念表現について、前記発話内容において当該概念表現より先に出現し、かつ、当該概念表現と同じ概念名に対応する他の概念表現を特定し、この特定した他の概念表現と当該概念表現とが並列構造をなすことを検出し、かつ、この特定した他の概念表現に対応した意味フレームが、当該概念表現に対応した前記意味フレームの入札されなかったスロットと同じスロットを持つことを検出し、かつ、この特定した他の概念表現に対応した概念名により特定された意味フレームの持つ当該検出したスロットが、前記入札部によりさらに別の概念表現に入札されていることを検出した場合、当該概念表現に対応した概念名により特定された当該意味フレームの入札されなかった当該スロットをこの検出した別の概念表現に入札し、入札した結果に基づいて前記スロット割当表データを書き換える文内省略解決部をさらに備える、
ことを特徴とする請求項1から請求項7のいずれかの項に記載の言語理解装置。 - 前記意味木生成部は、対応する概念名により前記意味フレームが特定された概念表現の下位ノードに、当該意味フレームの各スロットの入札先の概念表現を列挙して配置し、さらに、前記配置した概念表現に対応する概念名により前記意味フレームが特定された場合には、当該配置した概念表現の下位ノードに、当該配置した概念表現に対応する概念名により特定された前記意味フレームの各スロットの入札先の概念表現を配置することを繰り返して意味木を生成する、
ことを特徴とする請求項1から請求項8のいずれかの項に記載の言語理解装置。 - 前記意味木生成部は、対応する概念名により前記意味フレームが特定された概念表現の下位ノードに、入札先の概念表現が一つであるスロットの場合はその入札先の概念表現を、入札先が複数のスロットの場合は列挙を示す群ノードを列挙して配置し、前記列挙を示す群ノードの配下に当該群ノードに対応したスロットの入札先の複数の概念表現を列挙して配置し、さらに、前記配置した概念表現に対応する概念名により前記意味フレームが特定された場合には、当該配置した概念表現に対応する概念名により特定された前記意味フレームについて同様の処理を繰り返して意味木を生成し、生成した結果の意味木内に群ノードがある場合に、生成した意味木をトップのノードのみを群ノードとする意味木に変換する、
ことを特徴とする請求項9に記載の言語理解装置。 - 前記意味木生成部は、同一の意味フレームの中に、複数のスロットからなる繰り返しのパターンを検出した場合、当該繰り返しパターンをグループ化し、このグループ別に前記意味木を生成する、
ことを特徴とする請求項9または請求項10に記載の言語理解装置。 - 前記意味木生成部の作成した意味木から、タスクの実行指示を生成するタスク表現生成部とをさらに備える、
ことを特徴とする請求項9から請求項11のいずれかの項に記載の言語理解装置。 - 自然言語の発話内容をコンピュータ処理に用いられる意味表現に変換する言語理解装置に用いられる言語理解方法であって、
前記言語理解装置において、
ドメイン内で用いられる概念のツリー構造と、当該概念を特定する概念名と、当該概念の言語表現である概念表現との対応付けを示す概念体系データと、
前記概念名と、当該概念名の概念を他の概念により表現するための1以上の意味フレームと、当該意味フレームに用いられる1以上のスロットとの対応付けを示すフレーム定義データと、
スロットとして用いられる概念の前記概念名を示すスロット定義データと
を記憶する記憶部を備え、
入力発話データの入力を受け、前記記憶部内の前記概念体系データにより示される概念表現を参照して、入力された前記入力発話データの示す発話内容に含まれる概念表現を検出し、検出した概念表現に対応した概念名を読み出す語句解釈ステップと、
前記記憶部内の前記フレーム定義データを参照して、前記語句解釈ステップにより読み出された概念名に対応した意味フレームを特定し、特定した意味フレームに対応したスロットを読み出すとともに、前記記憶部内の前記スロット定義データを参照して、読み出した当該スロットに対応した概念名を読み出し、読み出したそれぞれの意味フレームについて、前記語句解釈部により検出された概念表現の中から、当該意味フレームの各スロットに対応する概念名またはその概念名が示す概念の下位概念の概念名に対応し、かつ、他の意味フレームのスロットが入札されていない概念表現を特定し、この特定した概念表現に当該スロットを入札することを繰り返し、入札した結果を示すスロット割当表データを生成する入札ステップと、
対応する概念名により意味フレームが特定された前記概念表現と、前記スロット割当表データにより示される、前記意味フレームのスロットが入札されている前記概念表現とから意味木を生成する意味木生成ステップと、
を備えることを特徴とする言語理解方法。 - 言語理解装置として用いられるコンピュータを、
ドメイン内で用いられる概念のツリー構造と、当該概念を特定する概念名と、当該概念の言語表現である概念表現との対応付けを示す概念体系データと、
前記概念名と、当該概念名の概念を他の概念により表現するための1以上の意味フレームと、当該意味フレームに用いられる1以上のスロットとの対応付けを示すフレーム定義データと、
スロットとして用いられる概念の前記概念名を示すスロット定義データと
を記憶する記憶部、
入力発話データの入力を受け、前記記憶部内の前記概念体系データにより示される概念表現を参照して、入力された前記入力発話データの示す発話内容に含まれる概念表現を検出し、検出した概念表現に対応した概念名を読み出す語句解釈部、
前記記憶部内の前記フレーム定義データを参照して、前記語句解釈部により読み出された概念名に対応した意味フレームを特定し、特定した意味フレームに対応したスロットを読み出すとともに、前記記憶部内の前記スロット定義データを参照して、読み出した当該スロットに対応した概念名を読み出し、読み出したそれぞれの意味フレームについて、前記語句解釈部により検出された概念表現の中から、当該意味フレームの各スロットに対応する概念名またはその概念名が示す概念の下位概念の概念名に対応し、かつ、他の意味フレームのスロットが入札されていない概念表現を特定し、この特定した概念表現に当該スロットを入札することを繰り返し、入札した結果を示すスロット割当表データを生成する入札部、
対応する概念名により意味フレームが特定された前記概念表現と、前記スロット割当表データにより示される、前記意味フレームのスロットが入札されている前記概念表現とから意味木を生成する意味木生成部、
として機能させることを特徴とするコンピュータプログラム。
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 JP2008146150A (ja) | 2008-06-26 |
JP4451435B2 true 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 (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11461812B2 (en) * | 2016-10-14 | 2022-10-04 | Soundhound, Inc. | Concept-based augmentation of queries for applying a buyer-defined function |
Families Citing this family (47)
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 |
WO2011015222A1 (en) * | 2009-07-15 | 2011-02-10 | 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 |
US9858343B2 (en) | 2011-03-31 | 2018-01-02 | Microsoft Technology Licensing Llc | Personalization of queries, conversations, and searches |
US10642934B2 (en) | 2011-03-31 | 2020-05-05 | Microsoft Technology Licensing, Llc | Augmented conversational understanding architecture |
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 |
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 |
JP5910194B2 (ja) * | 2012-03-14 | 2016-04-27 | 日本電気株式会社 | 音声対話要約装置、音声対話要約方法およびプログラム |
US10656808B2 (en) | 2012-09-18 | 2020-05-19 | Adobe Inc. | Natural language and user interface controls |
US9412366B2 (en) | 2012-09-18 | 2016-08-09 | Adobe Systems Incorporated | Natural language image spatial and tonal localization |
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 |
JP2014191549A (ja) * | 2013-03-27 | 2014-10-06 | Intelligent Wave Inc | 口語解析サーバ、口語解析装置、口語解析プログラム及び口語解析方法 |
CN103294666B (zh) * | 2013-05-28 | 2017-03-01 | 百度在线网络技术(北京)有限公司 | 语法编译方法、语义解析方法以及对应装置 |
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 |
JP2016061954A (ja) * | 2014-09-18 | 2016-04-25 | 株式会社東芝 | 対話装置、方法およびプログラム |
CN104360897B (zh) * | 2014-10-29 | 2017-09-22 | 百度在线网络技术(北京)有限公司 | 对话处理方法和对话管理系统 |
JP6960914B2 (ja) * | 2015-10-21 | 2021-11-05 | グーグル エルエルシーGoogle LLC | ダイアログ・システムにおけるパラメータ収集および自動ダイアログ生成 |
JP6898322B2 (ja) | 2015-11-12 | 2021-07-07 | マイクロソフト テクノロジー ライセンシング,エルエルシー | 対話補助 |
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 |
JP6744025B2 (ja) * | 2016-06-21 | 2020-08-19 | 日本電気株式会社 | 作業支援システム、管理サーバ、携帯端末、作業支援方法およびプログラム |
WO2018173943A1 (ja) * | 2017-03-21 | 2018-09-27 | 日本電気株式会社 | データ構造化装置、データ構造化方法およびプログラム記憶媒体 |
US11250476B2 (en) * | 2017-08-04 | 2022-02-15 | Engine Media, Llc | Dynamic header bidding configuration |
US10431219B2 (en) | 2017-10-03 | 2019-10-01 | Google Llc | User-programmable automated assistant |
US10572596B2 (en) | 2017-11-14 | 2020-02-25 | International Business Machines Corporation | Real-time on-demand auction based content clarification |
KR102648815B1 (ko) * | 2018-04-30 | 2024-03-19 | 현대자동차주식회사 | 음성 언어 이해 장치 및 이 장치를 이용한 음성 언어 이해 방법 |
US11308281B1 (en) * | 2018-11-08 | 2022-04-19 | Amazon Technologies, Inc. | Slot type resolution process |
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 |
JP7271942B2 (ja) * | 2018-12-25 | 2023-05-12 | 株式会社サテライトオフィス | ボットシステムのプログラム、人工知能スピーカシステムのプログラム |
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 |
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 |
US20210073440A1 (en) | 2019-09-06 | 2021-03-11 | BeamUp, Ltd. | Systems and methods for structural design using modeling and simulation to select equipment |
CN110705267B (zh) * | 2019-09-29 | 2023-03-21 | 阿波罗智联(北京)科技有限公司 | 语义解析方法、装置及存储介质 |
JP7237878B2 (ja) * | 2020-03-19 | 2023-03-13 | 株式会社 日立産業制御ソリューションズ | ドメイン知識活用支援装置、プログラムおよびドメイン知識活用支援方法 |
CN111563385B (zh) * | 2020-04-30 | 2023-12-26 | 北京百度网讯科技有限公司 | 语义处理方法、装置、电子设备和介质 |
CN111814487B (zh) * | 2020-07-17 | 2024-05-31 | 科大讯飞股份有限公司 | 一种语义理解方法、装置、设备及存储介质 |
US11797610B1 (en) * | 2020-09-15 | 2023-10-24 | Elemental Cognition Inc. | Knowledge acquisition tool |
CN113869046B (zh) * | 2021-09-29 | 2022-10-04 | 阿波罗智联(北京)科技有限公司 | 一种自然语言文本的处理方法、装置、设备及存储介质 |
Family Cites Families (14)
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 |
US7216073B2 (en) * | 2001-03-13 | 2007-05-08 | 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 | 株式会社東芝 | 意味解析装置、意味解析方法および意味解析プログラム |
-
2006
- 2006-12-06 JP JP2006329493A patent/JP4451435B2/ja not_active Expired - Fee Related
-
2007
- 2007-12-04 US US11/999,236 patent/US8117023B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11461812B2 (en) * | 2016-10-14 | 2022-10-04 | Soundhound, Inc. | Concept-based augmentation of queries for applying a buyer-defined function |
Also Published As
Publication number | Publication date |
---|---|
US20080140389A1 (en) | 2008-06-12 |
JP2008146150A (ja) | 2008-06-26 |
US8117023B2 (en) | 2012-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4451435B2 (ja) | 言語理解装置、言語理解方法、及び、コンピュータプログラム | |
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 | |
Meziane et al. | Generating natural language specifications from UML class diagrams | |
KR101726667B1 (ko) | 어법컴파일방법, 어의해석방법, 디바이스, 컴퓨터 저장매체 및 장치 | |
KR101678787B1 (ko) | 자동질의응답 방법 및 그 장치 | |
US7904291B2 (en) | Communication support apparatus and computer program product for supporting communication by performing translation between languages | |
US8515733B2 (en) | Method, device, computer program and computer program product for processing linguistic data in accordance with a formalized natural language | |
US8548805B2 (en) | System and method of semi-supervised learning for spoken language understanding using semantic role labeling | |
CN102084417B (zh) | 现场维护语音到语音翻译的系统和方法 | |
Bashir et al. | Arabic natural language processing for Qur’anic research: a systematic review | |
US20030121026A1 (en) | Grammar authoring system | |
US7716039B1 (en) | Learning edit machines for robust multimodal understanding | |
JPH0869470A (ja) | 自然言語処理装置及びその方法 | |
US11538466B2 (en) | Development of voice and other interaction applications | |
JPH1078964A (ja) | 一般に混同するワードを自然言語パーザにおいて識別及び分析する方法及びシステム | |
JPH05189481A (ja) | 翻訳用コンピュータ操作方法、字句モデル生成方法、モデル生成方法、翻訳用コンピュータシステム、字句モデル生成コンピュータシステム及びモデル生成コンピュータシステム | |
JP2005535007A (ja) | 文書検索システム用の知識抽出のための自己学習システムの合成方法 | |
Neme et al. | Pattern-and-root inflectional morphology: the Arabic broken plural | |
JP7279099B2 (ja) | 対話管理 | |
CN111656453A (zh) | 用于信息提取的层次实体识别和语义建模框架 | |
US10762890B1 (en) | Development of voice and other interaction applications | |
Mekki et al. | Syntactic Analysis of the Tunisian Arabic. | |
Wang et al. | Rapid development of spoken language understanding grammars | |
Winiwarter | Learning transfer rules for machine translation from parallel corpora | |
JP7312354B2 (ja) | 意図情報抽出プログラム、意図情報抽出装置および意図情報抽出方法 |
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 |