特許第5829000号(P5829000)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社ユニバーサルエンターテインメントの特許一覧
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5829000
(24)【登録日】2015年10月30日
(45)【発行日】2015年12月9日
(54)【発明の名称】会話シナリオ編集装置
(51)【国際特許分類】
   G06F 17/28 20060101AFI20151119BHJP
   G06F 3/048 20130101ALI20151119BHJP
   G10L 15/22 20060101ALI20151119BHJP
【FI】
   G06F17/28 681
   G06F3/048 654A
   G10L15/22 300U
【請求項の数】9
【全頁数】54
(21)【出願番号】特願2009-150147(P2009-150147)
(22)【出願日】2009年6月24日
(65)【公開番号】特開2010-73192(P2010-73192A)
(43)【公開日】2010年4月2日
【審査請求日】2012年5月9日
【審判番号】不服-8614(P-8614/J1)
【審判請求日】2014年5月9日
(31)【優先権主張番号】特願2008-212190(P2008-212190)
(32)【優先日】2008年8月20日
(33)【優先権主張国】JP
(73)【特許権者】
【識別番号】598098526
【氏名又は名称】株式会社ユニバーサルエンターテインメント
(74)【代理人】
【識別番号】110001531
【氏名又は名称】特許業務法人タス・マイスター国際特許事務所
(72)【発明者】
【氏名】黄 声揚
(72)【発明者】
【氏名】勝倉 裕
【合議体】
【審判長】 手島 聖治
【審判官】 川崎 優
【審判官】 小田 浩
(56)【参考文献】
【文献】 特開2006−277519(JP,A)
【文献】 特開2007−264198(JP,A)
【文献】 特開2008−52449(JP,A)
【文献】 特開2002−169818(JP,A)
【文献】 特開2002−169589(JP,A)
【文献】 特開2003−337039(JP,A)
【文献】 特開2000−48038(JP,A)
【文献】 特開平6−110835(JP,A)
【文献】 特開2008−89729(JP,A)
【文献】 特開平5−143342(JP,A)
【文献】 倉田ほか、耐震化促進eラーニングのための自然言語インターフェース開発、日本建築学会技術報告集、2007年6月、第13巻、第25号、P.331−336
(58)【調査した分野】(Int.Cl.,DB名)
G06F17/28,G06F3/048,G10L15/22
(57)【特許請求の範囲】
【請求項1】
ユーザ発話である入力文を受け付けると、入力文に応じた回答文を会話サーバに要求する会話装置と、前記会話装置から回答文を要求された場合、会話シナリオに基づいて回答文を決定し、この回答文を前記会話装置に送信し、回答文をユーザに出力させる会話サーバとを有する自動会話システムのために、前記会話シナリオを生成する制御手段を備えた会話シナリオ編集装置であって、
対象と射とからなる前記会話シナリオであって、射である入力文と、その射に対応する対象である回答文とを有する前記会話シナリオを生成するシナリオ生成手段と、
記シナリオ生成手段が生成した会話シナリオの内容の削除を行うシナリオ削除手段と、を備え、
前記会話シナリオ編集装置は、
複数の射を合成して一つの射として記述する会話シナリオの例と、
単位元である射をどのようなユーザ発話であっても、無視し、所定の回答文を強制出力する会話シナリオの例と、
ある射に対応する回答列に対して、異なる複数の経路に沿う回答列を構築し、前記構築した回答列を一つの会話シナリオに到達させる会話シナリオの例と、
循環する結合関係を有する複数の射及び対象を合成することにより構成された単位元を記述する会話シナリオの例と、を使用可能にすることを特徴とする会話シナリオ編集装置。
【請求項2】
ユーザ発話である入力文を受け付けると、入力文に応じた回答文を会話サーバに要求する会話装置と、前記会話装置から回答文を要求された場合、会話シナリオに基づいて回答文を決定し、この回答文を前記会話装置に送信し、回答文をユーザに出力させる会話サーバとを有する自動会話システムのために、前記会話シナリオを生成する制御手段を備えた会話シナリオ編集装置であって、
対象と射とからなる前記会話シナリオであって、射である入力文と、その射に対応する対象である回答文とを有する前記会話シナリオを生成するシナリオ生成手段と、
前記シナリオ生成手段が生成した会話シナリオの内容の削除を行うシナリオ削除手段と、を備え、
前記会話シナリオ編集装置は、第1の射が発生しない場合、対象X1から対象X2に遷移し、前記第1の射が発生した場合、前記対象X1から対象X3に遷移するが、いずれの射が発生しても又は一定の期間の経過により、前記対象X3から前記対象X2に遷移する会話シナリオの例を使用可能にすることを特徴とする会話シナリオ編集装置。
【請求項3】
前記会話シナリオから射に対応する対象を検索するために再構成されたデータである動的知識を生成する動的知識生成手段をさらに有することを特徴とする請求項1又は2に記載の会話シナリオ編集装置。
【請求項4】
前記会話シナリオ編集装置は、予め定めた内容のユーザ発話以外の全てのユーザ発話を一つの射として記述することが可能であることを特徴とする、請求項1乃至3の何れか1項に記載の会話シナリオ編集装置。
【請求項5】
前記会話シナリオ編集装置は、ユーザが無言である状態を射として記述することが可能であることを特徴とする、請求項1乃至3の何れか1項に記載の会話シナリオ編集装置。
【請求項6】
前記会話シナリオ編集装置は、単位元である射をどのようなユーザ発話であっても、無視し、所定の回答文を強制出力することを特徴とする、請求項に記載の会話シナリオ編集装置。
【請求項7】
前記会話シナリオ編集装置は、ある射に対応する回答列に対して、異なる複数の経路に沿う回答列を構築し、前記構築した回答列を一つの会話シナリオに到達させることを特徴とする、請求項に記載の会話シナリオ編集装置。
【請求項8】
前記会話シナリオ編集装置は、循環する結合関係を有する複数の射及び対象を合成することにより構成された単位元を記述することが可能であることを特徴とする、請求項に記載の会話シナリオ編集装置。
【請求項9】
回答文に対応した動作であって、ユーザ端末装置に実行させる動作を記述するとともに、動作に対応する会話サーバを起動させることを要求するメッセージを送信し、前記メッセージを受信する会話サーバを切り替えるサーバ切替手段を備えたことを特徴とする請求項1乃至3の何れか1項に記載の会話シナリオ編集装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、会話シナリオ編集装置、ユーザ端末装置、並びに電話取り次ぎシステムに関し、より詳しくはユーザの発話に応答する回答を自動的に出力して、ユーザとの会話を成立させることが可能な装置である自動会話装置に用いられる会話シナリオを生成及び編集する会話シナリオ編集装置、ユーザ端末装置、並びに電話取り次ぎシステムに関する。
【背景技術】
【0002】
従来、ユーザの発話を受け取ると、この発話内容に応じた回答を出力する自動会話装置が提案されるようになってきた(例えば、特許文献1)。従来の自動会話装置では、ユーザの発話とそれに対応する回答を一対として記憶したデータベースを用い、このデータベースを検索することによって、ユーザの発話に対応する回答を出力させる方式が一般的であった。
【先行技術文献】
【特許文献】
【0003】
特開2002−366190号公開公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、ユーザの発話に対応する回答を一対一の関係で出力する従来の方式では、ある話題に関して自然な会話をユーザと自動会話装置との間で成立させたり、予め用意したストーリー性のある内容(例えば、制度の仕組みの説明、救急治療の内容など)を少しずつ、ユーザに語りかけたりすることを、自動会話装置により実現することは難しい。
【0005】
このような、自然な流れの会話を成立するための技術として、ユーザ発話に応答しながら、予め用意した会話の流れに沿った会話内容を実現するシナリオを用いることが提案されているが、シナリオを作成するには、専門知識を有するKB(ナレッジ・ベース、知識ベース)技術者によらなければ、シナリオを作成することはできなかった。
【0006】
本発明の目的は、専門知識を有さないものであっても、ユーザ発話に応答しながら、予め用意した会話の流れに沿った会話内容を実現する会話シナリオを生成、編集することを可能とすることを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するための手段として、本発明は以下の特徴を備えている。
【0008】
本発明は、会話シナリオ編集装置として提案される。
ユーザ発話である入力文を受け付けると、入力文に応じた回答文を会話サーバに要求する会話装置と、前記会話装置から回答文を要求された場合、会話シナリオに基づいて回答文を決定し、この回答文を前記会話装置に送信し、回答文をユーザに出力させる会話サーバとを有する自動会話システムのために、前記会話シナリオを生成する制御手段を備えた会話シナリオ編集装置であって、対象と射とからなる前記会話シナリオであって、射である入力文と、その射に対応する対象である回答文とを有する前記会話シナリオを生成するシナリオ生成手段と、前記生成手段シナリオ生成手段が生成した会話シナリオの内容の削除を行うシナリオ削除手段と、を備え、前記会話シナリオ編集装置は、複数の射を合成して一つの射として記述する会話シナリオの例と、単位元である射をどのようなユーザ発話であっても、無視し、所定の回答文を強制出力する会話シナリオの例と、ある射に対応する回答列に対して、異なる複数の経路に沿う回答列を構築し、前記構築した回答列を一つの会話シナリオに到達させる会話シナリオの例と、循環する結合関係を有する複数の射及び対象を合成することにより構成された単位元を記述する会話シナリオの例と、を使用可能にすることを特徴とする。
また、ユーザ発話である入力文を受け付けると、入力文に応じた回答文を会話サーバに要求する会話装置と、前記会話装置から回答文を要求された場合、会話シナリオに基づいて回答文を決定し、この回答文を前記会話装置に送信し、回答文をユーザに出力させる会話サーバとを有する自動会話システムのために、前記会話シナリオを生成する制御手段を備えた会話シナリオ編集装置であって、対象と射とからなる前記会話シナリオであって、射である入力文と、その射に対応する対象である回答文とを有する前記会話シナリオを生成するシナリオ生成手段と、前記シナリオ生成手段が生成した会話シナリオの内容の削除を行うシナリオ削除手段と、を備え、前記会話シナリオ編集装置は、第1の射が発生しない場合、対象X1から対象X2に遷移し、前記第1の射が発生した場合、前記対象X1から対象X3に遷移するが、いずれの射が発生しても又は一定の期間の経過により、前記対象X3から前記対象X2に遷移する会話シナリオの例を使用可能にすることを特徴とする。
【0009】
この会話シナリオ編集装置によれば、ユーザ発話に応答しながら、予め用意した会話の流れに沿った会話内容を実現する会話シナリオを生成、編集することが可能な会話シナリオ編集装置を提供することができる。
【0010】
また、本発明は以下の利点を有する。
・システム回答を対象、ユーザ発話を射とする(会話を状態遷移としてとらえることができる)
・システム回答の遷移先が一覧できる(遷移先の情報で状態遷移が読める)
・システム回答の引用元が一覧できる(引用元の情報で「合成や単位元」が読める)
・システム回答の回答列が一覧できる(回答列でシナリオが読める)
【0011】
上記会話シナリオ装置は、前記会話シナリオから射に対応する対象を検索するために再構成されたデータである動的知識を生成する動的知識生成手段をさらに有していてもよい。かかる会話シナリオ編集装置によれば、高速で、入力文に相当する射及びこの射に対応する対象を検索し、対象である回答文を出力させることが可能となる。
【0012】
また、上記会話シナリオ編集装置において、前記会話シナリオ編集装置は、予め定めた内容のユーザ発話以外の全てのユーザ発話を一つの射として記述することが可能であるようにしてもよい。かかる会話シナリオ編集装置によれば、無限のユーザ発話を被覆可能な回答文を定義することが可能となる。
【0013】
前記会話シナリオ編集装置において、ユーザが無言である状態を射として記述することが可能であるようにしてもよい。かかる会話シナリオ編集装置によれば、ユーザの無言状態であっても、会話を継続することが可能となる。
【0014】
前記会話シナリオ編集装置において、複数の射を合成して一つの射として記述することが可能であるようにしてもよい。かかる会話シナリオ編集装置によれば、相手の発話を尊重しつつ、固執したい自分(自動会話システム)の発話に導く会話の流れをつくることができる。
【0015】
前記会話シナリオ編集装置において、単位元である射をどのようなユーザ発話であっても、無視し、所定の回答文を強制出力することが可能であるようにしてもよい。かかる会話シナリオ編集装置によれば、相手(ユーザ)の発話とは関係なく自分(自動会話システム)の発話を言い切る会話の流れを作ることができる。
【0016】
前記会話シナリオ編集装置は、ある射に対応する回答列に対して、異なる複数の経路に沿う回答列を構築し、前記構築した回答列を一つの会話シナリオに到達させることが可能であるようにしてもよい。
また、前記会話シナリオ編集装置において、循環する結合関係を有する複数の射及び対象を合成することにより構成された単位元を記述することが可能であるようにしてもよい。かかる会話シナリオ編集装置によれば、閉じられた会話の流れの中で相手(ユーザ)の発話を促し続けることができる会話の流れを作ることができる。
また、回答文に対応した動作であって、ユーザ端末装置に実行させる動作を記述するとともに、動作に対応する会話サーバを起動させることを要求するメッセージを送信し、前記メッセージを受信する会話サーバを切り替えるサーバ切替手段を備えたことを特徴とする。
【発明の効果】
【0024】
本発明によれば、ユーザ発話に応答しながら、予め用意した会話の流れに沿った会話内容を実現する会話シナリオを生成、編集することが可能な会話シナリオ編集装置を提供することができる。
【発明を実施するための最良の形態】
【0025】
以下、本発明の実施の形態を、図面を参照しながら説明する。
本実施の形態は、予め用意された会話シナリオに基づいて、ユーザの発話などに応答して回答を出力する自動会話システム、及び会話シナリオを生成、編集する会話シナリオ編集装置として提案される。
【0026】
[1.自動会話システム、会話シナリオ編集装置の構成例]
以下、自動会話システム、会話シナリオ編集装置の構成例について説明する。図1は、自動会話システム1の構成例を示すブロック図である。自動会話システム1は、会話装置10と、会話装置10に接続された会話サーバ20と、会話サーバ20が使用する会話シナリオを生成、編集する会話シナリオ編集装置30で構成される。
【0027】
会話装置10は、ユーザが発話を入力すると、その発話内容を会話サーバ20に送信する。会話サーバ20は、発話内容を受け取ると、会話シナリオに基づいて発話内容に対する返事である回答とこの回答に対応した動作であって会話装置10に実行させる動作を記述した情報である動作制御情報を決定し、回答及び動作制御情報を会話装置10に出力する。会話シナリオ編集装置30は、会話シナリオ40を生成、編集し、生成済み、若しくは編集済みの会話シナリオを出力する。出力された会話シナリオ40は会話サーバ20に記憶される。
【0028】
以下に、上記装置のそれぞれについて詳述する。
[1.1.会話装置]
会話装置10は、ユーザの発話(ユーザ発話)を入力として取得し、この入力内容(以下、入力文と呼ぶ)を会話サーバ20に送信し、会話サーバ20から返信されてくる回答及び動作制御情報を受信し、受信内容に基づいて、回答の出力及び動作制御情報に応じた動作を実行する機能を有する。
【0029】
会話装置10は、演算処理装置(CPU)、主メモリ(RAM)、読出し専用メモリ(ROM)、入出力装置(I/O)、必要な場合にはハードディスク装置等の外部記憶装置を具備している情報処理装置、或いはそのような情報処理装置を含む器具、おもちゃなどであって、例えばコンピュータ、携帯電話機、いわゆるインターネット家電、又はロボットなどの装置である。会話装置10の前記ROM、若しくはハードディスク装置などにプログラムが記憶されており、このプログラムを主メモリ上に載せ、CPUがこれを実行することにより会話装置が実現される。また、上記プログラムは必ずしも情報処理装置内の記憶装置に記憶されていなくともよく、外部の装置(例えば、ASP(アプリケーション・サービス・プロバイダのサーバなど))から提供され、これを主メモリに乗せる構成であってもよい。
【0030】
図2は、会話装置10の一構成例を示すブロック図である。会話装置10は、入力部11と、入力部11に接続された会話処理部12と、会話処理部12に接続された動作制御部13と、会話処理部12及び動作制御部13に接続された出力部14とを有している。また、会話処理部12は会話サーバ20と通信可能である。
【0031】
入力部11は、ユーザの発話内容(入力文)を受け取り、これを電気信号など会話処理部12が処理可能な信号に変換して渡す機能を有する。入力部11は、例えば、キーボード、ポインティングデバイス、タッチパネル、マイクのいずれか或いはこれらの組み合わせである。
【0032】
会話処理部12は、入力部11から受け取った入力文を会話サーバ20に送り、入力文に応じた回答文及びその回答文に対応する動作制御情報を送信するよう、会話サーバ20に要求する。また、会話処理部12は、会話サーバ20から回答文及びその回答文に対応する動作制御情報を受信すると、回答文を出力部14に渡して出力させるとともに、動作制御情報を動作制御部13に渡す。
【0033】
動作制御部13は、会話処理部12から渡された動作制御情報に基づいて、指定された動作を実行する。指定された動作が出力部14による表示の実行(例えば、指定された動作の再生)であれば、これを出力部14に実行させる。また、指定された動作が、会話サーバ20から取得した回答文とは別の回答文の出力(例えば、会話サーバ20から取得した回答文が「何について話しますか?」、別の回答文が「何か言ってくださいね!」)である場合には、そのような回答文を出力部14に出力させる。
【0034】
出力部14は、回答文をユーザが了知可能な態様で出力する機能を有する。回答文をどのような態様で出力するかについては、本発明において制限はない。出力部14は、例えば、回答文を文字情報としてユーザに提供する場合には、液晶ディスプレイ装置などであり、また回答文を音声情報としてユーザに提供する場合には、人工音声生成装置及びスピーカである。
【0035】
[1.2.会話サーバ]
会話サーバ20は、会話シナリオに基づいて発話内容に対する返事である回答とこの回答に対応した動作であって会話装置10に実行させる動作を記述した情報である動作制御情報を決定し、回答及び動作制御情報を会話装置10に出力する機能を有する装置である。
【0036】
会話サーバ20は、演算処理装置(CPU)、主メモリ(RAM)、読出し専用メモリ(ROM)、入出力装置(I/O)、必要な場合にはハードディスク装置等の外部記憶装置を具備している情報処理装置などであって、例えばコンピュータ、ワークステーション、サーバ装置などである。会話サーバ20の前記ROM、若しくはハードディスク装置などにプログラムが記憶されており、このプログラムを主メモリ上に載せ、CPUがこれを実行することにより会話サーバが実現される。また、上記プログラムは必ずしも情報処理装置内の記憶装置に記憶されていなくともよく、外部の装置(例えば、ASP(アプリケーション・サービス・プロバイダのサーバなど))から提供され、これを主メモリに乗せる構成であってもよい。
【0037】
会話装置10と会話サーバ20とは、有線又は無線により接続される構成でも良く、また、LAN,無線LAN,インターネットなどの通信網(複数の通信網を組み合わせても良い)を介して接続されていても良い。また、会話装置10と会話サーバ20とは、必ずしも個別独立の装置でなくとも良く、会話装置10と会話サーバ20とを同一の装置により実現する構成であっても本発明は成立する。
【0038】
図3は、会話サーバ20の一構成例を示すブロック図である。会話サーバ20は、会話装置10と通信可能な回答処理部21と、回答処理部21に接続された意味解釈辞書部23及び会話シナリオ記憶部22とを有している。
【0039】
回答処理部21は、会話装置10から入力文を受け取り、この入力文に応じた回答文を会話シナリオ記憶部22に記憶されている会話シナリオに基づいて選択若しくは決定し、決定した回答文とこの回答文に対応づけられた動作制御情報を会話装置10に送信する。また、回答処理部21は、意味解釈辞書部23が記憶する意味解釈辞書を参照して、入力文の同意語又は同意文を取得し、この同意語又は同意文に基づいた回答文の選択若しくは決定を行う。
【0040】
意味解釈辞書部23は、入力文に対応する回答文の言い換え(同意語による拡張など)をおこなうための意味解釈辞書を記憶する機能を有する。意味解釈辞書はシソーラスのような機能を有するデータベースに相当する。
【0041】
会話シナリオ記憶部22は、会話シナリオ編集装置30によって生成、又は編集された会話シナリオ40を記憶する機能を有する。会話シナリオ40の説明については後述する。
【0042】
[1.3.会話シナリオ編集装置]
会話シナリオ編集装置30は、前述の会話サーバ20が使用する会話シナリオを新たに生成し、又は生成済みの会話シナリオを変更し、内容を追加し、又は内容の一部削除を行って修正された会話シナリオを生成する機能を有する。
【0043】
会話シナリオ編集装置30は、演算処理装置(CPU)、主メモリ(RAM)、読出し専用メモリ(ROM)、入出力装置(I/O)、必要な場合にはハードディスク装置等の外部記憶装置を具備している情報処理装置などであって、例えばコンピュータ、ワークステーションなどである。会話シナリオ編集装置30の前記ROM、若しくはハードディスク装置などにプログラムが記憶されており、このプログラムを主メモリ上に載せ、CPUがこれを実行することにより会話シナリオ編集装置30が実現される。また、上記プログラムは必ずしも情報処理装置内の記憶装置に記憶されていなくともよく、外部の装置(例えば、ASP(アプリケーション・サービス・プロバイダのサーバなど))から提供され、これを主メモリに乗せる構成であってもよい。
【0044】
図4は、会話シナリオ編集装置30の一構成例を示すブロック図である。会話シナリオ編集装置30は、入力部31と、入力部31に接続されたエディタ部32と、エディタ部32に接続された出力部34及び会話シナリオ保持部33とを有している。
【0045】
入力部31は、ユーザの入力を受け取り、これを電気信号などエディタ部32が処理可能な信号に変換して渡す機能を有する。入力部31は、例えば、キーボード、ポインティングデバイス、タッチパネル、マイクのいずれか或いはこれらの組み合わせである。
【0046】
出力部34は、編集中又は編集完了後の会話シナリオの内容を会話シナリオ編集装置30の使用者(オペレータ)が認識可能な態様で出力する機能を有する。出力部34は、例えば、液晶ディスプレイ装置などである。
【0047】
エディタ部32は、入力部31から入力された内容に応じて、会話シナリオとしてのデータの生成、及びその編集(追加、変更、削除)を行う機能を有する。なお、編集中の会話シナリオの内容は出力部34に表示させることにより、オペレータが会話シナリオの内容をリアルタイムで把握できるようにしている。また、エディタ部32は、編集が完了した会話シナリオのデータを会話シナリオ保持部33に出力する。
【0048】
また、エディタ部32は、生成されている会話シナリオにおいて適正な状態遷移関係が保たれているか否かをチェックし、違反が生じている場合にはオペレータに違反が生じていること、違反が生じている入力文又は回答文を知らせるメッセージ等を生成し、出力部に表示等させる機能を有していても良い。
【0049】
また、エディタ部32は会話サーバ20の意味解釈辞書部23に相当する意味解釈辞書部をさらに有していても良く、エディタ部32はこの意味解釈辞書部を用いて、会話シナリオにおいて重複する意味内容の入力文又は回答文が存在する場合、これらを整理したり統合したりする、或いは整理、統合をオペレータに促す機能を有していても良い。
【0050】
会話シナリオ保持部33は、エディタ部32から受け取った会話シナリオのデータを、後に読み取りできる態様で記憶又は保持する機能を有する。会話シナリオ保持部33に記憶された会話シナリオのデータは、必要に応じて、又は、所定のタイミングなどで会話サーバ20の会話シナリオ記憶部22に送られる。会話シナリオ保持部33から会話シナリオ記憶部22への会話シナリオの転送は、記憶媒体を経由した態様で行われても良いし、通信網、通信ケーブルを経由して行われるものであってもよい。
【0051】
[1.3.1.会話シナリオについて]
ここで、会話シナリオ40について説明する。本発明における会話シナリオは下記の特徴を有する。
【0052】
(1)回答文を「対象」とし、ユーザ発話(入力文)を「射」とする。
この特徴を備えることにより、会話シナリオが定める会話の流れを「状態遷移図」で表現することが可能となる。本発明の会話シナリオは、後述する「その他」機能を用いることにより、全ての入力文(ユーザ発話)に対応した回答文の出力が可能となる。また、後述する「タイマー」発話によりユーザの「無言」(入力無し)に対応できる(無言を射として扱える)。
【0053】
図5は、会話シナリオの例を示す状態遷移図である。図中、楕円枠X1,X2,X3,X4はそれぞれ回答文であり、これらは「対象」に相当する。図中、矢印近傍に表示された文は、入力文であり、これらは「射」に相当する。図中<その他>はX1からの射「好きです」及び「嫌いです」以外の入力文を示す。図中、<timer>は、ユーザが無言のまま所定期間の経過させた状態を示す。また、「<その他>|<timer>」という表記は、<その他>又は<timer>を意味する。
【0054】
図5に示した例では、「何か食べたい」という「射」は回答文X1である「あなたはラーメンが好きですか」である「対象」に遷移させる。回答文X1の出力後、第1の射「嫌いです」が発生した場合には、回答文X4「残念!話題を変えましょう」に遷移する。一方、回答文X1の出力後、第2の射「好きです」が発生した場合には、回答文X3「じゃ、美味しい店を紹介してあげる」に遷移する。一方、回答文X1の出力後、第1及び第2の射以外の射が発生した場合又はユーザが無言のまま一定期間が経過した場合、回答文X2「ラーメンは好き?嫌い?」に遷移する。
【0055】
上記図5の会話シナリオをデータとして表現すると、一例として図6のような内容となる。ここで、「X1(発話A)X2」は回答列であり、X1の回答状態は発話AによりX2の回答状態に遷移することを記述している。
【0056】
(2)射には合成が定義できる
この特徴により、主シナリオから分岐するような発話を受け付けることができるようになるとともに、分岐しても元(主シナリオ)に戻すことができる。従って、会話シナリオの作成者は自らが思い描く会話の流れ「ストーリー」が構築でき、このストーリーに沿った会話を会話システムに行わせることができる。
【0057】
図7は、射の合成を含む会話シナリオの例を示した状態遷移図である。図中の記号及び表記については、図5に準じる。この例の会話シナリオでは、回答文X1「あなたはラーメンが好きですか?」の出力後、第1の射「嫌いです」が発生した場合には、回答文X3「そう?ラーメンは美味しいんだけどな」に遷移する。一方、第1の射以外の射が発生した場合又はユーザが無言のまま一定期間が経過した場合、回答文X2「本当に美味しい店を紹介してあげる」に遷移する。
【0058】
上記の回答文X3「そう?ラーメンは美味しいんだけどな」の出力後は、一つの射<その他>|<timer>のみが規定されており、いずれの入力文(ユーザ発話)又は一定期間の経過により回答文X2「本当に美味しい店を紹介してあげる」に遷移する。
【0059】
このような射の合成を含む会話シナリオの例を使用することを可能としているため、本発明では、相手の発話を尊重しつつ、固執したい自分の発話に導くことが可能となる。
【0060】
なお、上記図7の会話シナリオを回答列として表現すると、図8のような内容となる。ここにX2はX2の引用である。引用されたX2の引用元はX2であり、形式的には、対象X1とX2との間に射「(嫌いです) X3 (<その他>|<timer>)」が定められていることに相当する。この射は、射「嫌いです」と射「<その他>|<timer>」の合成である。
(3)単位元が定義できる
本発明の会話シナリオでは、単位元が定義できる。「単位元」とは対象を遷移させない射をいう。単位元が定義できることにより、以下のことが可能となる。
【0061】
(イ) ユーザ発話に対して「強制回答」をすることができる。
図9は、強制回答を行う会話シナリオの例を示した状態遷移図である。この例では、回答文X1「私はラーメンが好きです。ラーメンこそグルメの本質」の出力時において、NULLの付いた第1の射<その他>が規定されており、どのような入力文(ユーザ発話)であっても、入力文を無視して「私はラーメンが好きです。ラーメンこそグルメの本質」の強制出力がなされる。一方、回答文X1「私はラーメンが好きです。ラーメンこそグルメの本質」の出力後、第2の射<timer>により回答文X2「本当に美味しい店を紹介してあげる」に遷移する。
【0062】
この例では、相手の発話を無視することを「NULL」と表記している。図9に示した例では、全ての発話を無視するために<その他>にNULLを付けているが、「嫌い」だけを無視するようにすることもできる。
なお、上記図9の会話シナリオを回答列として表現すると、図10のような内容となる。ここにX1はX1の引用である。引用されたX1は引用元のX1と同じ遷移先を有する。このような意味でX1とX1は同形であり、この場合の射「(<その他>)」はX1からX1への射であり、単位元である。
【0063】
(ロ)ユーザ発話に対して「固執回答」をすることができる。
図11は、ユーザ発話に対して「固執回答」をする会話シナリオの例を示す状態遷移図である。図11の例では、回答文X1「ラーメン好き?嫌い?」の出力後、第1の射「嫌いです」が発生した場合には、回答文X3「そう?ラーメンは美味しいんだけどな」に遷移する。一方、回答文X1の出力後、第2の射「好き」が発生した場合には、回答文X2「本当に美味しい店を紹介してあげる」に遷移する。一方、回答文X1の出力後、第1及び第2の射以外の射が発生した場合又はユーザが無言のまま一定期間が経過した場合、再び回答文X1「ラーメンは好き?嫌い?」に戻る。このようにして、ユーザに「好き」か「嫌い」かの二者択一を強制的に行わせることができるようになる。
【0064】
なお、上記図11の会話シナリオを回答列として表現すると、図12のような内容となる。ここにX1はX1の引用である。引用されたX1は引用元のX1と同じ遷移先を有する。このような意味でX1とX1は同形であり、この場合の射「(<その他>|<timer>)」もX1からX1への射に相当するので単位元と呼ぶ。
【0065】
(ハ)「合成により構成された単位元」により「閉ループ回答」が構築できる。
この特徴を備えることにより、閉じられたループの中で相手の発話を促すことが可能となる。図13は、「合成により構成された単位元」により「閉ループ回答」が構築された会話シナリオの例を示した状態遷移図である。この例では、回答文X1、X2,X3,X4によって閉ループが構築されており、この閉ループにより会話の流れをコントロールすることが可能となる。上記図13の会話シナリオを回答列として表現すると、図14のような内容となる。この場合にもX1からX1の射に相当する
【0066】
(<その他>|<timer>) X2 (<その他>|<timer>)
X3 (<その他>|<timer>) X4 (<その他>|<timer>)
を単位元と呼ぶ。この場合の単位元は「閉ループ」を構成している。
以上で、「項目(3)単位元が定義できる」の説明を終了する。
【0067】
(4)射の合成には結合法則が成り立つ
この特徴により、ある射に対応する回答列Sに対して、異なる2つの経路に沿う回答列S1とS2の構築が可能であり、しかもそれらが等しいものとして扱うことができる。このとき、Sをある問題に関わる回答列とすると、S1とS2は、Sに対する異なる解釈を与える回答列であり、問題解決に関わる情報を提供している。この特徴を有するが故に、本発明にかかる会話シナリオでは、ロジカルなユーザ発話に対応することができる。
【0068】
図15に、射の合成に結合法則が成り立つ会話シナリオの例の状態遷移図を示す。なお、上記図15の会話シナリオを回答列として表現すると、図16のような内容となる。ここに、X2X4はそれぞれX2、X4の引用である。形式的に次式が成立する。
(ヒントは)X3(××です)X4(<その他>|<timer>)
=(××です)X4(<その他>|<timer>)
=(ヒントは)X3(<その他>|<timer>)
【0069】
(5)可換な図式が描ける
この特徴により、任意の対象に到着するための射が定義できる。このため、シナリオにゴールが設定できるとともに、シナリオ全体の把握ができることとなる。
【0070】
(6)その他
本発明は、「入力文を対象とし、回答文を射として扱える談話の範囲」では「検索の仕組みが全く異なるため、「入力文を射とし、回答文を対象として扱える談話の範囲」と同様の扱いはできない。本件では、前者のような談話の範囲は扱わない。
【0071】
[1.4.会話シナリオ編集装置の位置づけ]
ここで、本発明の会話シナリオ編集装置30の位置づけについてまとめる。
(1)対象と射とを有する会話シナリオに関しては、以下の特徴をあげることができる。
・回答文を対象、入力文を射とする(状態遷移)
・入力文を尊重しつつ、固執したい回答文に導く(文脈維持:合成)
・入力文とは関係なく、回答文を言い切る(強制回答:単位元)
・相手に対して必要な発話を言うまで繰り返し催促する(固執回答:単位元)
・閉じられたループの中で入力文を促す(閉ループ:単位元)
・問題解決に繋がるような会話を行う(問題解決:結合法則)
・ゴールに向かうような会話を行う(ゴールのある会話:可換な図式)
【0072】
なお、回答列によっても上記の特徴を整理することができる。会話シナリオ編集装置30は、上記の会話シナリオの特徴を回答列で表現する機能を有したものである。
上記の会話シナリオを利用することにより、会話サーバ20は、単なる検索を行えばよい。すなわち、会話サーバは、現在の状態を、会話シナリオの対象(回答文)として把握し、利用者発話が発生した場合には、会話サーバ20は、意味解析を行いながら最適な射(入力文)を検索し、次の状態は、検索された射(入力文)に対応する対象(回答文)とする。
【0073】
なお、上記の会話シナリオは状態遷移図やそれに基づいたデータ(図6,8,10等)として表現するだけでなく、図17に示すような、アウトラインエディタのようなGUIを用いて生成、編集されるようにしてもかまわない。
【0074】
[2.会話シナリオ生成装置の動作例]
次に、上記会話シナリオ編集装置30の動作例について説明する。
本実施の形態にかかる会話シナリオ編集装置30は、複数の異なる主題(会話のテーマ)についてユーザとの会話を成立させることが出来る。図18は、会話シナリオ保持部33及び会話シナリオ記憶部22(以下、単に会話シナリオ保持部33と略す)が記憶する会話シナリオのデータ構成例を示す図である。
【0075】
会話シナリオ保持部33は、談話の圏又は主題(会話テーマ)201に対応するドメイン200ごとに個別の会話シナリオデータを持つことが出来る。例えば、「天候」ドメインと「コーヒー豆」ドメインそれぞれに関する会話シナリオデータを有することが出来、ユーザが天候に関する発話をした場合には、会話サーバ20、より詳しくは回答処理部21は、「天候」ドメインである会話シナリオデータを優先して入力文(ユーザ発話ともいう)に対応する回答文(システム発話ともいう)を探索し、ユーザ発話に応答するシステム発話を出力させる。一方、ユーザが「コーヒー豆」に関する発話をした場合には、回答処理部21は、「コーヒー豆」ドメインである会話シナリオデータを優先してユーザ発話に対応するシステム発話を探索し、ユーザ発話に応答するシステム発話を出力させる。
【0076】
各ドメイン200は、ユーザ発話文210とユーザ発話文に対する自動会話システムの回答として用意されたシステム発話文220を有している。図18に示した例では、ユーザ発話分210−1と、これに関連づけされたシステム発話220−1が記録されているともに、このシステム発話220−1に応答してユーザが発話すると想定されるユーザ発話文210−2が記録され、このユーザ発話文210−2に対する自動会話システムの回答として用意されたシステム発話文220―2が記録されている。
【0077】
例えば、上記の会話シナリオは以下のようなユーザとシステムの会話となる。
ユーザ発話文210−1:「いい天気ですね」
システム発話文220―1:「いい天気は好きですか?」
ユーザ発話文210−1:「はい、好きですよ」
システム発話文220―1:「雨の日は嫌いですか?」
【0078】
図18に示した会話シナリオは最も単純な形態のものを示した。本自動会話システムが扱える会話シナリオでは、同一のシステム発話に対して、ユーザが異なる反応をしてユーザ発話を返した場合に対応できるよう、一つのシステム発話文に対して複数のユーザ発話文を用意することも可能である。
【0079】
会話シナリオ編集装置30は、会話シナリオ保持部33に格納させる新たなドメイン200と、そのドメイン200ユーザ発話文210、システム発話文220からなる会話シナリオデータを生成し、会話シナリオ保持部33に記憶させる機能を有する。
【0080】
[3.会話シナリオの入力例]
次に、会話シナリオの入力例について説明する。図19から図23は、あるドメイン200について会話シナリオを入力した場合の入力画面の遷移の一例を示した図である。
【0081】
図19は、会話シナリオ編集装置30によって生成された入力インターフェイス画面の一例を示す。ここでは、ドメイン200が「コーヒー豆」についてのものであるとして説明する。
【0082】
会話シナリオ編集装置30、より詳しくはエディタ部32は、入力インターフェイスとなるウインドウ300を生成し、出力部34に表示させる。ウインドウ300には表示領域301が設けられており、ユーザが入力部31を操作することによって、ユーザ発話文及びシステム発話文がここに入力される。図19の例では、ドメイン名302が表示されており、このドメイン200に格納される会話シナリオの入力を待ち受けている状態である。
【0083】
図20は、このドメイン200に格納される会話シナリオの開始であるユーザ発話文401が入力された状態の画面例である。
【0084】
実際に自動会話が実行される場合には、会話サーバ20の回答処理部21は、ユーザ発話がここで記述されているユーザ発話文401「コーヒー豆について」と一致するか、或いはこれと同一視可能な発話内容である場合には、ユーザ発話に応答するシステム発話文を抽出するドメイン200としてドメイン名302を「コーヒー豆」とするドメイン200を会話シナリオ記憶部22から選択し、このドメイン200を優先してシステム発話文を選択することになる。
【0085】
会話シナリオの入力者であるユーザは、上記ユーザ発話文401に対する回答であるシステム発話文の入力を行う。図21は、ユーザ発話文401「コーヒー豆について」についてのシステム発話文501がユーザにより入力された状態のウインドウ300の表示例を示す。この例では、「コーヒー豆について」というユーザ発話文401に対して、『味の特徴についてお答えします。「モカ」、「ブルーマウンテン」、「キリマンジャロ」のうち、どれが知りたいですか?』という問いかけであるシナリオ回答文501を自動会話システムが発する会話シナリオが記述されたものとする。
【0086】
次に、会話シナリオの入力者であるユーザは、上記シナリオ回答文501に対して、予想されるユーザ発話文を入力する。図22は、前記のシナリオ回答文501に対して、予想されるユーザ発話文601が入力された状態のウインドウ300の表示例を示す。この例では、『味の特徴についてお答えします。「モカ」、「ブルーマウンテン」、「キリマンジャロ」のうち、どれがしりたいですか?』というシステム発話文501に対して、ユーザが「ブルーマウンテン」という回答をすると予想して、ユーザ発話文601「ブルーマウンテン」がユーザにより入力されたものとする。
【0087】
次に、会話シナリオの入力者であるユーザは、上記ユーザ発話文601に対するシステム発話文を入力する。図23は、前記のユーザ発話文601に対するシステム発話文701が入力された状態のウインドウ300の表示例を示す。会話シナリオの入力者は、ユーザ発話文601の回答として、システム発話文701を入力する。
このような会話シナリオにより、自動会話システムはユーザがコーヒー豆のブルーマウンテンについて知りたい場合に、その回答を返すことが出来るようになる。なお、これ以降も会話シナリオの入力者は、ユーザと自動会話システムの会話が続くように、ユーザ発話文、システム発話文の入力を継続することが出来る。
【0088】
上記のようにして入力された会話シナリオ(ユーザ発話文とシステム発話文の集合)は、エディタ部32により会話シナリオ保持部33へ書き込まれ、記憶される。この会話シナリオは会話サーバ20の会話シナリオ記憶部22に移される。なお、会話シナリオ記憶部22に移される場合に、会話サーバ20に適したものとするように会話シナリオの変換、移植を行うようにしてもよい。
【0089】
会話サーバ20の回答処理部21は会話シナリオ記憶部22に記憶された新たな会話シナリオをも参照して、ユーザ発話に対するシナリオ回答を出力できるようになる。
【0090】
[4.変形例]
本実施の形態は、以下のように変形されても成立する。
(1)会話シナリオ編集装置の変形例
図24に変形例にかかわる会話シナリオ編集装置30Xの機能ブロック図である。会話シナリオ編集装置30Xは、基本的に前述した会話シナリオ編集装置30と同様の構成を有しており、会話シナリオ保持部33に接続された動的知識生成部35を有している点が異なっている。なお、同一の構成要素については同一の参照符号を付し、それらの説明については省略する。
【0091】
動的知識生成部35は、会話シナリオ保持部33に記憶される会話シナリオ40にもとづいて、動的知識40Xを生成する機能を有する。動的知識40Xは、回答列である会話シナリオ40から、会話サーバ20がより高速且つ高効率に射である入力文および、その対象である回答文を検索できるように再構成されたデータである。
【0092】
かかる変形例によれば、会話サーバ20の処理負荷を低減させ、高速な回答文の返信を可能とすることができる。
【0093】
[5.会話サーバの構成の別の例]
本発明にかかる会話サーバ20、回答処理部21は下記のような構成を採用しても、本発明を実現可能である。以下、会話サーバ20,より詳しくは回答処理部21の構成例について述べる。図25は、回答処理部21の拡大ブロック図であって、会話制御部300及び文解析部400の具体的構成例を示すブロック図である。回答処理部21は、会話制御部300と、文解析部400と、会話データベース500を有している。会話データベース500は、会話シナリオ40又は、動的知識40Xを記憶する機能を有する。
【0094】
[5.1.文解析部]
次に、図25を参照しながら文解析部400の構成例について説明する。
文解析部400は、入力部100又は音声認識部200で特定された文字列を解析するものである。この文解析部400は、本実施の形態では、図25に示すように、文字列特定部410と、形態素抽出部420と、形態素データベース430と、入力種類判定部440と、発話種類データベース450とを有している。文字列特定部410は、入力部100及び音声認識部200で特定された一連の文字列を一文節毎に区切るものである。この一文節とは、文法の意味を崩さない程度に文字列をできるだけ細かく区切った一区切り文を意味する。具体的に、文字列特定部410は、一連の文字列の中に、ある一定以上の時間間隔があるときは、その部分で文字列を区切る。文字列特定部410は、その区切った各文字列を形態素抽出部420及び入力種類判定部440に出力する。尚、以下で説明する「文字列」は、一文節毎の文字列を意味するものとする。
【0095】
[5.1.1.形態素抽出部]
形態素抽出部420は、文字列特定部410で区切られた一文節の文字列に基づいて、その一文節の文字列の中から、文字列の最小単位を構成する各形態素を第一形態素情報として抽出するものである。ここで、形態素とは、本実施の形態では、文字列に現された語構成の最小単位を意味するものとする。この語構成の最小単位としては、例えば、名詞、形容詞、動詞などの品詞が挙げられる。
【0096】
各形態素は、図26に示すように、本実施の形態ではm1、m2、m3…、と表現することができる。図26は、文字列とこの文字列から抽出される形態素との関係を示す図である。図26に示すように、文字列特定部410から文字列が入力された形態素抽出部420は、入力された文字列と、形態素データベース430に予め格納されている形態素群(この形態素群は、それぞれの品詞分類に属する各形態素についてその形態素の見出し語・読み・品詞・活用形などを記述した形態素辞書として用意されている)とを照合する。その照合をした形態素抽出部420は、その文字列の中から、予め記憶された形態素群のいずれかと一致する各形態素(m1、m2、…)を抽出する。この抽出された各形態素を除いた要素(n1、n2、n3…)は、例えば助動詞等が挙げられる。
【0097】
この形態素抽出部420は、抽出した各形態素を第一形態素情報として話題特定情報検索蔀320に出力する。なお、第一形態素情報は構造化されている必要はない。ここで「構造化」とは、文字列の中に含まれる形態素を品詞等に基づいて分類し配列することをいい、たとえば発話文である文字列を、「主語+目的語+述語」などの様に、所定の順番で形態素を配列してなるデータに変換することを言う。もちろん、構造化した第一形態素情報を用いたとしても、それが本実施の形態を実現をさまたげることはない。
【0098】
[5.1.2.入力種類判定部]
入力種類判定部440は、文字列特定部410で特定された文字列に基づいて、発話内容の種類(発話種類)を判定するものである。この発話種類は、発話内容の種類を特定する情報であって、本実施の形態では、例えば図27に示す「発話文のタイプ」を意味する。図27は、「発話文のタイプ」と、その発話文のタイプを表す二文字のアルファベット、及びその発話文のタイプに該当する発話文の例を示す図である。
【0099】
ここで、「発話文のタイプ」は、本実施の形態では、図27に示すように、陳述文(D ; Declaration)、時間文(T ; Time)、場所文(L ; Location)、反発文(N ; Negation)などから構成される。この各タイプから構成される文は、肯定文又は質問文で構成される。「陳述文」とは、利用者の意見又は考えを示す文を意味するものである。この陳述文は本実施の形態では、図27に示すように、例えば"私は佐藤が好きです"などの文が挙げられる。「場所文」とは、場所的な概念を伴う文を意味するものである。「時間文」とは、時間的な概念を伴う文を意味するものである。「反発文」とは、陳述文を否定するときの文を意味する。「発話文のタイプ」についての例文は図27に示す通りである。
【0100】
入力種類判定部440が「発話文のタイプ」を判定するには、入力種類判定部440は、本実施の形態では、図28に示すように、陳述文であることを判定するための定義表現辞書、反発文であることを判定するための反発表現辞書等を用いる。具体的に、文字列特定部410から文字列が入力された入力種類判定部440は、入力された文字列に基づいて、その文字列と発話種類データベース450に格納されている各辞書とを照合する。その照合をした入力種類判定部440は、その文字列の中から、各辞書に関係する要素を抽出する。
【0101】
この入力種類判定部440は、抽出した要素に基づいて、「発話文のタイプ」を判定する。例えば、入力種類判定部440は、ある事象について陳述している要素が文字列の中に含まれる場合には、その要素が含まれている文字列を陳述文として判定する。入力種類判定部440は、判定した「発話文のタイプ」を回答取得部380に出力する。
【0102】
[5.2.会話データベース]
次に、会話データベース500が記憶するデータのデータ構成例について図29を参照しながら説明する。図29は、会話データベース500が記憶するデータの構成例を示す概念図である。
【0103】
会話データベース500は、図29に示すように、話題を特定するための話題特定情報810を予め複数記憶している。又、それぞれの話題特定情報810は、他の話題特定情報810と関連づけられていてもよく、例えば、図29に示す例では、話題特定情報C(810)が特定されると、この話題特定情報C(810)に関連づけられている他の話題特定情報A(810)、話題特定情報B(810),話題特定情報D(810)が定まるように記憶されている。
【0104】
具体的には、話題特定情報810は、本実施の形態では、利用者から入力されると予想される入力内容、又は利用者への回答文に関連性のある「キーワード」を意味する。
【0105】
話題特定情報810には、一又は複数の話題タイトル820が対応付けられて記憶されている。話題タイトル820は、一つの文字、複数の文字列又はこれらの組み合わせからなる形態素により構成されている。各話題タイトル820には、利用者への回答文830が対応付けられて記憶されている。また、回答文830の種類を示す複数の回答種類は、回答文830に対応付けられている。
【0106】
次に、ある話題特定情報810と他の話題特定情報810との関連づけについて説明する。図30は、ある話題特定情報810Aと他の話題特定情報810B、810C〜810C、810D〜810D…との関連付けを示す図である。なお、以下の説明において「関連づけされて記憶される」とは、ある情報Xを読み取るとその情報Xに関連づけられている情報Yを読み取りできることをいい、例えば、情報Xのデータの中に情報Yを読み出すための情報(例えば、情報Yの格納先アドレスを示すポインタ、情報Yの格納先物理メモリアドレス、論理アドレスなど)が格納されている状態を、「情報Yが情報Xに『関連づけされて記憶され』ている」というものとする。
【0107】
図30に示す例では、話題特定情報は他の話題特定情報との間で上位概念、下位概念、同義語、対義語(本図の例では省略)が関連づけされて記憶させることができる。本図に示す例では、話題特定情報810A(=「映画」)に対する上位概念の話題特定情報として話題特定情報810B(=「娯楽」)が話題特定情報810Aに関連づけされて記憶されており、たとえば話題特定情報(「映画」)に対して上の階層に記憶される。
【0108】
また、話題特定情報810A(=「映画」)に対する下位概念の話題特定情報810C(=「監督」)、話題特定情報810C(=「主演」)、話題特定情報810C(=「配給会社」)、話題特定情報810C(=「上映時間」)、および話題特定情報810D(=「七人の侍」)、話題特定情報810D(=「乱」)、話題特定情報810D(=「用心棒」)、…、が話題特定情報810Aに関連づけされて記憶されている。
【0109】
又、話題特定情報810Aには、同義語900が関連付けられている。この例では、話題特定情報810Aであるキーワード「映画」の同義語として「作品」、「内容」、「シネマ」が記憶されている様子を示している。このような同意語を定めることにより、発話にはキーワード「映画」は含まれていないが「作品」、「内容」、「シネマ」が発話文等に含まれている場合に、話題特定情報810Aが発話文等に含まれているものとして取り扱うことを可能とする。
【0110】
回答処理部21は、会話データベース500の記憶内容を参照することにより、ある話題特定情報810を特定するとその話題特定情報810に関連づけられて記憶されている他の話題特定情報810及びその話題特定情報810の話題タイトル820、回答文830などを高速で検索・抽出することが可能となる。
【0111】
次に、話題タイトル820(「第二形態素情報」ともいう)のデータ構成例について、図31を参照しながら説明する。図31は、話題タイトル820のデータ構成例を示す図である。
【0112】
話題特定情報810D、810D、810D、…はそれぞれ複数の異なる話題タイトル820、820、…、話題タイトル820、820、…、話題タイトル820、820、…を有している。本実施の形態では、図31に示すように、それぞれの話題タイトル820は、第一特定情報1001と、第二特定情報1002と、第三特定情報1003によって構成される情報である。ここで、第一特定情報1001は、本実施の形態では、話題を構成する主要な形態素を意味するものである。第一特定情報1001の例としては、例えば文を構成する主語が挙げられる。また、第二特定情報1002は、本実施の形態では、第一特定情報1001と密接な関連性を有する形態素を意味するものである。この第二特定情報1002は、例えば目的語が挙げられる。更に、第三特定情報1003は、本実施の形態では、ある対象についての動きを示す形態素、又は名詞等を修飾する形態素を意味するものである。この第三特定情報1003は、例えば動詞、副詞又は形容詞が挙げられる。なお、第一特定情報1001、第二特定情報1002、第三特定情報1003それぞれの意味は上述の内容に限定される必要はなく、別の意味(別の品詞)を第一特定情報1001、第二特定情報1002、第三特定情報1003に与えても、これらから文の内容を把握可能な限り、本実施の形態は成立する。
【0113】
例えば、主語が「七人の侍」、形容詞が「面白い」である場合には、図31に示すように、話題タイトル(第二形態素情報)820は、第一特定情報1001である形態素「七人の侍」と、第三特定情報1003である形態素「面白い」とから構成されることになる。なお、この話題タイトル820には第二特定情報1002に該当する形態素は含まれておらず、該当する形態素がないことを示すための記号「*」が第二特定情報1002として格納されている。
【0114】
なお、この話題タイトル820(七人の侍;*;面白い)は、「七人の侍は面白い」の意味を有する。この話題タイトル820を構成する括弧内は、以下では左から第一特定情報1001、第二特定情報1002、第三特定情報1003の順番となっている。また、話題タイトル820のうち、第一から第三特定情報に含まれる形態素がない場合には、その部分については、「*」を示すことにする。
【0115】
なお、上記話題タイトル820を構成する特定情報は、上記のような第一から第三特定情報のように三つに限定されるものではなく、例えば更に他の特定情報(第四特定情報、およびそれ以上)を有するようにしてもよい。
【0116】
次に、回答文830について図32を参照して説明する。回答文830は、図32に示すように、本実施の形態では、利用者から発話された発話文のタイプに対応した回答をするために、陳述(D ; Declaration)、時間(T ; Time)、場所(L ; Location)、否定(N ; Negation)などのタイプ(回答種類)に分類されて、各タイプごとに用意されている。また肯定文は「A」とし、質問文は「Q」とする。
【0117】
話題特定情報810のデータ構成例について、図33を参照して説明する。図33は、ある話題特定情報810「佐藤」に対応付けされた話題タイトル820,回答文830の具体例を示す。
【0118】
話題特定情報810「佐藤」には、複数の話題タイトル(820)1−1、1−2、…が対応付けされている。それぞれの話題タイトル(820)1−1,1−2,…には回答文(830)1−1,1−2、…が対応付けされて記憶されている。回答文830は、回答種類840ごとに用意されている。
【0119】
話題タイトル(820)1−1が(佐藤;*;好き){これは、「佐藤が好きです」に含まれる形態素を抽出したもの}である場合には、その話題タイトル(820)1-1に対応する回答文(830)1−1は、(DA;陳述肯定文「私も佐藤が好きです」)、(TA;時間肯定文「私は打席に立ったときの佐藤が好きです」)などが挙げられる。後述する回答取得部380は、入力種類判定部440の出力を参照しながらその話題タイトル820に対応付けられた一の回答文830を取得する。
【0120】
各回答文には、当該回答文に対応するように、ユーザ発話に対して優先的に出力される回答文(「次回答文」とよぶ)を指定する情報である次プラン指定情報840が定められている。次プラン指定情報840は、次回答文を特定できる情報であれば、どのような情報であってもよく、たとえば、会話データベース500に格納されているすべての回答文から少なくとも一つの回答文を特定できる回答文ID、などである。
【0121】
なお、本実施の形態においては、次プラン指定情報840は、回答文単位で次回答文を特定する情報(例えば、回答文ID)として説明するが、次プラン指定情報840は、話題タイトル820、話題特定情報810単位で、次回答文(この場合には、複数の回答文が次回答文として指定されるので、次回答文群とよぶ。ただし、実際に回答文として出力されるのは、この回答文群に含まれるいずれかの回答文となる)を特定する情報であってもかまわない。たとえば、話題タイトルID、話題特定情報IDを時プラン指定情報として使用しても本実施の形態は成立する。
【0122】
[5.3.会話制御部]
ここで図25に戻り、会話制御部300の構成例を説明する。
会話制御部300は、回答処理部21内の各構成要素(音声認識部200,文解析部400、会話データベース500,出力部600,音声認識辞書記憶部700)間のデータの受け渡しを制御するとともに、ユーザ発話に応答する回答文の決定、出力を行う機能を有する。
【0123】
会話制御部300は、本実施の形態では、図25に示すように、管理部310と、プラン会話処理部320と,談話空間会話制御処理部330と、CA会話処理部340とを有している。以下これらの構成要素について説明する。
【0124】
[5.3.1.管理部]
管理部310は談話履歴を記憶し、且つ必要に応じて更新する機能を有する。管理部310は話題特定情報検索部350と、省略文補完部360と、話題検索部370と、回答取得部380からの要求に応じて、記憶している談話履歴の全部又は一部をこれら各部に渡す機能を有する。
【0125】
[5.3.2.プラン会話処理部]
プラン会話処理部320は、プランを実行し、プランに従った会話をユーザとの間で成立させる機能を有する。「プラン」とは、予め定めた順番に従って予め定めた回答をユーザに提供することをいう。以下、プラン会話処理部320について説明する。
【0126】
プラン会話処理部320は、ユーザ発話に応じて、予め定めた順番に従って予め定めた回答を出力する機能を有する。
【0127】
図34は、プランを説明するための概念図である。図34に示すように、プラン空間1401には複数のプラン1、プラン2,プラン3、プラン4など様々なプラン1402があらかじめ準備されている。プラン空間1401とは、会話データベース500に格納された複数のプラン1402の集合をいう。回答処理部21は、装置起動時若しくは会話開始時にあらかじめ開始用に定められたプランを選択し、若しくは各ユーザ発話の内容に応じて、プラン空間1401の中から適宜いずれかのプラン1402を選択し、選択したプラン1402を用いてユーザ発話に対する回答文の出力を行う。
【0128】
図35は、プラン1402の構成例を示す図である。プラン1402は、回答文1501と、これに関連づけられた次プラン指定情報1502を有している。次プラン指定情報1502は、当該プラン1402に含まれる回答文1501の次に、ユーザに出力する予定の回答文(次候補回答文と呼ぶ)を含むプラン1402を特定する情報である。この例では、プラン1は、プラン1実行時に回答処理部21が出力する回答文A(1501)と、この回答文A(1501)に関連づけられた次プラン指定情報1502とを有している。次プラン指定情報1502は、回答文A(1501)についての次候補回答文である回答文B(1501)を有するプラン1402を特定する情報「ID:002」である。同様に、回答文B(1501)についても、次プラン指定情報1502が定められており、回答文B(1501)が出力された場合に、次候補回答文を含むプラン2(1402)が指定される。このように、プラン1402は次プラン指定情報1502により連鎖的につながり、一連の連続した内容をユーザに出力するというプラン会話を実現する。すなわち、ユーザに伝えたい内容(説明文、案内文、アンケート、など)を複数の回答文に分割し、かつ各回答文の順番を予め定めてプランとして準備して置くことにより、ユーザの発話に応じてこれら回答文を順番にユーザに提供することが可能となる。なお、次プラン指定情報1502によって指定されたプラン1402に含まれる回答文1501は、直前の回答文の出力に応答するユーザ発話があれば、必ずしも直ちに出力される必要はなく、ユーザと回答処理部21との間で、当該プラントは別の話題についての会話を挟んだ後に、次プラン指定情報1502によって指定されたプラン1402に含まれる回答文1501が出力されることもあり得る。
【0129】
なお、図35に示す回答文1501は、図33に示す回答文830の中のいずれか一の回答文文字列に対応し、また図35に示す次プラン指定情報1502は、図33に示す次プラン指定情報840に対応している。
【0130】
なお、プラン1402のつながりは、図35に示すような一次元的配列に限られるものではない。図36は、図35とは別のつながり方を有するプラン1402の例を示す図である。図36に示す例では、プラン1(1402)は次候補回答文となる2つの回答文1501,すなわちプラン1402を指定できるよう、2つの次プラン指定情報1502を有している。ある回答文A(1501)を出力した場合の次候補回答文を有するプラン1402として、回答文B(1501)を有するプラン2(1402)、及び回答文C(1501)を有するプラン3(1402)の2つのプラン1402が定まるよう、次プラン指定情報1502が2つ設けられる。なお、回答文B、回答文Cは選択的・択一的であり、一方が出力された場合は他方は出力されず、当該プラン1(1402)は終了する。このように、プラン1402のつながりは一次元的順列の形態に限定されるものではなく、樹形図的な連結、網的な連結であってもかまわない。
【0131】
なお、各プランがいくつの次候補回答文を有するかは限定されるものではない。また、話の終了となるプラン1402については、次プラン指定情報1502が存在しないこともあり得る。
【0132】
図37に、ある一連のプラン1402の具体例を示す。この一連のプラン1402〜1402は、危機管理に関する情報をユーザに知らせるための4つの回答文1501〜1501に対応している。4つの回答文1501〜1501は全部で一つのまとまりのある話(説明文章)を構成する。各プラン1402〜1402はそれぞれ「1000−01」「1000−02」「1000−03」「1000−04」というIDデータ1702〜1702を有している。なお、IDデータ中のハイフン以下の番号は、出力の順番を示す情報である。また、各プラン1402〜1402はそれぞれ次プラン指定情報1502〜1502を有している。次プラン指定情報1502の内容は、「1000−0F」というデータであるが、このハイフン以下の番号「0F」は、次に出力する予定のプランは存在せず、当該回答文が一連の話(説明文章)の終わりであることを示す情報である。
【0133】
この例では、ユーザ発話が「大地震が発生したときの危機管理を教えて」である場合に、プラン会話処理部320がこの一連のプランを実行開始する。すなわち、ユーザ発話「大地震が発生したときの危機管理を教えて」をプラン会話処理部320が受け付けると、プラン会話処理部320はプラン空間1401を検索して、ユーザ発話「大地震が発生したときの危機管理を教えて」に対応する回答文1501を有するプラン1402があるかどうかを調べる。この例では、「大地震が発生したときの危機管理を教えて」に対応するユーザ発話文字列1701が、プラン1402に対応するものとする。
【0134】
プラン会話処理部320はプラン1402を発見すると、そのプラン1402に含まれる回答文1501を取得し、この回答文1501をユーザ発話に対する回答として出力するとともに、次プラン指定情報1502により次候補回答文を特定する。
【0135】
つぎに、回答文1501の出力後に入力部100や音声認識部200などを介してユーザ発話を受け付けると、プラン会話処理部320は、プラン1402の実行を行う。すなわち、プラン会話処理部320は、次プラン指定情報1502により指定されたプラン1402の実行、すなわち2番目の回答文1501を出力するか否かを判定する。具体的には、プラン会話処理部320は当該回答文1501に対応づけられたユーザ発話文字列(用例文ともいう)1701、あるいは話題タイトル820(図37において図略)と、受け付けたユーザ発話とを比較し、これらが一致するか否かを判定する。一致する場合には、2番目の回答文1501を出力する。また、2番目の回答文1501を含むプラン1402には、次プラン指定情報1502が記述されているので、次候補回答文が特定される。
【0136】
同様に、これ以降継続して成されるユーザ発話に応じて、プラン会話処理部320はプラン1402、プラン1402に順に移行して、3番目の回答文1501、4番目の回答文1501の出力を行うことができる。なお、4番目の回答文1501は最終回答文であり、4番目の回答文1501の出力が完了すると、プラン会話処理部320はプラン実行を終了する。
【0137】
このように、プラン1402〜1402を次々と実行することにより、あらかじめ用意した会話内容を定めた順番通りにユーザに提供することが可能となる。
【0138】
[5.3.3.談話空間会話制御処理部]
図25に戻り、会話制御部300の構成例の説明を続ける。
談話空間会話制御処理部330は、話題特定情報検索部350と、省略文補完部360と、話題検索部370と、回答取得部380とを有している。前記管理部310は、会話制御部300の全体を制御するものである。
【0139】
「談話履歴」とは、ユーザと回答処理部21間の会話の話題や主題を特定する情報であって、談話履歴は後述する「着目話題特定情報」「着目話題タイトル」「利用者入力文話題特定情報」「回答文話題特定情報」の少なくともいずれか一つを含む情報である。また、談話履歴に含まれる「着目話題特定情報」「着目話題タイトル」「回答文話題特定情報」は直前の会話によって定められたものに限定されず、過去の所定期間の間に着目話題特定情報」「着目話題タイトル」「回答文話題特定情報」となったもの、若しくはそれらの累積的記録であってもよい。
以下、談話空間会話制御処理部330を構成するこれら各部について説明する。
【0140】
[5.3.3.1.話題特定情報検索部]
話題特定情報検索部350は、形態素抽出部420で抽出された第一形態素情報と各話題特定情報とを照合し、各話題特定情報の中から、第一形態素情報を構成する形態素と一致する話題特定情報を検索するものである。具体的に、話題特定情報検索部350は、形態素抽出部420から入力された第一形態素情報が「佐藤」及び「好き」の二つの形態素で構成される場合には、入力された第一形態素情報と話題特定情報群とを照合する。
【0141】
この照合をした話題特定情報検索部320は、着目話題タイトル820focus(前回までに検索された話題タイトル、他の話題タイトルと区別するため820focusと表記する)に第一形態素情報を構成する形態素(例えば「佐藤」)が含まれているときは、その着目話題タイトル820focusを回答取得部380に出力する。一方、着目話題タイトル820focusに第一形態素情報を構成する形態素が含まれていないときは、話題特定情報検索部350は、第一形態素情報に基づいて利用者入力文話題特定情報を決定し、入力された第一形態素情報及び利用者入力文話題特定情報を省略文補完部360に出力する。なお、「利用者入力文話題特定情報」は、第一形態素情報に含まれる形態素の内、利用者が話題としている内容に該当する形態素に相当する話題特定情報、若しくは第一形態素情報に含まれる形態素の内、利用者が話題としている内容に該当する可能性がある形態素に相当する話題特定情報をいう。
【0142】
[5.3.3.2.省略文補完部]
省略文補完部360は、前記第一形態素情報を、前回までに検索された話題特定情報810(以下、「着目話題特定情報」と呼ぶ)及び前回の回答文に含まれる話題特定情報810(以下、「回答文話題特定情報」と呼ぶ)を利用して、補完することにより複数種類の補完された第一形態素情報を生成する。例えばユーザ発話が「好きだ」という文であった場合、省略文補完部360は、着目話題特定情報「佐藤」を、第一形態素情報「好き」に含めて、補完された第一形態素情報「佐藤、好き」を生成する。
【0143】
すなわち、第一形態素情報を「W」、着目話題特定情報や回答文話題特定情報の集合を「D」とすると、省略文補完部360は、第一形態素情報「W」に集合「D」の要素を含めて、補完された第一形態素情報を生成する。
【0144】
これにより、第一形態素情報を用いて構成される文が、省略文であって日本語として明解でない場合などにおいて、省略文補完部360は、集合「D」を用いて、その集合「D」の要素(例えば、"佐藤")を第一形態素情報「W」に含めることができる。この結果、省略文補完部360は、第一形態素情報「好き」を補完された第一形態素情報「佐藤、好き」にすることができる。なお、補完された第一形態素情報「佐藤、好き」は、「佐藤が好きだ」というユーザ発話に対応する。
【0145】
すなわち、省略文補完部360は、利用者の発話内容が省略文である場合などであっても、集合「D」を用いて省略文を補完することができる。この結果、省略文補完部360は、第一形態素情報から構成される文が省略文であっても、その文が適正な日本語となるようにすることができる。
【0146】
また、省略文補完部360が、前記集合「D」に基づいて、補完後の第一形態素情報に一致する話題タイトル820を検索する。補完後の第一形態素情報に一致する話題タイトル820を発見した場合は、省略文補完部360はこの話題タイトル820を回答取得部380に出力する。回答取得部380は、省略文補完部360で検索された適切な話題タイトル820に基づいて、利用者の発話内容に最も適した回答文830を出力することができる。
【0147】
尚、省略文補完部360は、集合「D」の要素を第一形態素情報に含めるだけに限定されるものではない。この省略文補完部360は、着目話題タイトルに基づいて、その話題タイトルを構成する第一特定情報、第二特定情報又は第三特定情報のいずれかに含まれる形態素を、抽出された第一形態素情報に含めても良い。
【0148】
[5.3.3.3.話題検索部]
話題検索部370は、省略文補完部360で話題タイトル810が決まらなかったとき、第一形態素情報と、利用者入力文話題特定情報に対応する各話題タイトル810とを照合し、各話題タイトル810の中から、第一形態素情報に最も適する話題タイトル810を検索するものである。
【0149】
具体的に、省略文補完部360から検索命令信号が入力された話題検索部370は、入力された検索命令信号に含まれる利用者入力文話題特定情報及び第一形態素情報に基づいて、その利用者入力文話題特定情報に対応付けられた各話題タイトルの中から、その第一形態素情報に最も適した話題タイトル810を検索する。話題検索部370は、その検索した話題タイトル810を検索結果信号として回答取得部380に出力する。
【0150】
先に掲げた図33は、ある話題特定情報810(=「佐藤」)に対応付けされた話題タイトル820,回答文830の具体例を示す。図33に示すように、例えば、話題検索部370は、入力された第一形態素情報「佐藤、好き」に話題特定情報810(=「佐藤」)が含まれるので、その話題特定情報810(=「佐藤」)を特定し、次に、その話題特定情報810(=「佐藤」)に対応付けられた各話題タイトル(820)1-1,1-2,…と入力された第一形態素情報「佐藤、好き」とを照合する。
【0151】
話題検索部370は、その照合結果に基づいて、各話題タイトル(820)1-1〜1-2の中から、入力された第一形態素情報「佐藤、好き」と一致する話題タイトル(820)1-1(佐藤;*;好き)を特定する。話題検索部340は、検索した話題タイトル(820)1-1(佐藤;*;好き)を検索結果信号として回答取得部380に出力する。
【0152】
[5.3.3.4.回答取得部]
回答取得部380は、省略文補完部360,或いは話題検索部370で検索された話題タイトル820に基づいて、その話題タイトル820に対応付けられた回答文830を取得する。また、回答取得部380は、話題検索部370で検索された話題タイトル820に基づいて、その話題タイトル820に対応付けられた各回答種類と、入力種類判定部440で判定された発話種類とを照合する。その照合をした回答取得部380は、各回答種類の中から、判定された発話種類と一致する回答種類を検索する。
【0153】
図33に示す例においては、回答取得部350は、話題検索部370で検索された話題タイトルが話題タイトル1-1(佐藤;*;好き)である場合には、その話題タイトル1-1に対応付けられている回答文1-1(DA,TAなど)の中から、入力種類判定部440で判定された「発話文のタイプ」(例えばDA)と一致する回答種類(DA)を特定する。この回答種類(DA)を特定した回答取得部380は、特定した回答種類(DA)に基づいて、その回答種類(DA)に対応付けられた回答文1-1(「私も佐藤が好きです。」)を取得する。
【0154】
ここで、上記"DA"、"TA"等のうち、"A"は、肯定形式を意味する。従って、発話種類及び回答種類に"A"が含まれているときは、ある事柄について肯定することを示している。また、発話種類及び回答種類には、"DQ"、"TQ"等の種類を含めることもできる。この"DQ"、"TQ"等のうち"Q"は、ある事柄についての質問を意味する。
【0155】
回答種類が上記質問形式(Q)からなるときは、この回答種類に対応付けられる回答文は、肯定形式(A)で構成される。この肯定形式(A)で作成された回答文としては、質問事項に対して回答する文等が挙げられる。例えば、発話文が「あなたはスロットマシンを操作したことがありますか?」である場合には、この発話文についての発話種類は、質問形式(Q)となる。この質問形式(Q)に対応付けられる回答文は、例えば「私はスロットマシンを操作したことがあります」(肯定形式(A))が挙げられる。
【0156】
一方、発話種類が肯定形式(A)からなるときは、この回答種類に対応付けられる回答文は、質問形式(Q)で構成される。この質問形式(Q)で作成された回答文としては、発話内容に対して聞き返す質問文、又は特定の事柄を聞き出す質問文等が挙げられる。例えば、発話文が「私はスロットマシンで遊ぶのが趣味です」である場合には、この発話文についての発話種類は、肯定形式(A)となる。この肯定形式(A)に対応付けられる回答文は、例えば"パチンコで遊ぶのは趣味ではないのですか?"(特定の事柄を聞き出す質問文(Q))が挙げられる。
【0157】
回答取得部380は、取得した回答文830を回答文信号として管理部310に出力する。回答取得部350から回答文信号が入力された管理部310は、入力された回答文信号を出力部600に出力する。
【0158】
[5.3.3.5.CA会話処理部]
CA会話処理部340は、ユーザ発話に対して、プラン会話処理部320および談話空間会話制御処理部330のいずれにおいても回答文が決定しない場合に、ユーザ発話の内容に応じて、ユーザとの会話を継続できるような回答文を出力する機能を有する。
以上で回答処理部21の構成例の説明を終了する。
【0159】
[5.4.会話制御方法]
上記構成を有する回答処理部21は、以下のように動作することにより会話制御方法を実行する。本実施の形態にかかる回答処理部21,より詳しくは会話制御部300の動作について説明する。
【0160】
図38は、会話制御部300のメイン処理の一例を示すフローチャートである。このメイン処理は、会話制御部300がユーザ発話を受け付けるごとに実行される処理であり、このメイン処理が行われることによりユーザ発話に対する回答文の出力が行われ、会話装置10と会話サーバ20(回答処理部21)間の会話(対話)が成立する。
【0161】
メイン処理にはいると、会話制御部300、より詳しくはプラン会話処理部320はまずプラン会話制御処理(S1801)を実行する。プラン会話制御処理は、プランを実行する処理である。
【0162】
図39図40はプラン会話制御処理の一例を示すフローチャートである。以下に図39図40を参照しながら、プラン会話制御処理の例について説明する。
【0163】
プラン会話制御処理を開始すると、プラン会話処理部320はまず、基本制御状態情報チェックを行う(S1901)。基本制御状態情報は、プラン1402の実行の完了の有無が、基本制御状態情報として所定の記憶領域に格納される。
【0164】
基本制御状態情報は、プランの基本制御状態を記述する役割を有する。
図41は、シナリオと呼ばれるタイプのプランについて生じうる4つの基本制御状態を示す図である。以下、それぞれの状態について説明する。
【0165】
(1)結束
この基本制御状態は、ユーザ発話が実行中のプラン1402、より詳しくはプラン1402に対応する話題タイトル820や用例文1701に一致する場合である。この場合は、プラン会話処理部320は当該プラン1402を終了し、次プラン指定情報1502にて指定された回答文1501に対応するプラン1402に移行する。
【0166】
(2)破棄
この基本制御状態は、ユーザ発話内容がプラン1402の終了を要求していると判断される場合、またはユーザの関心が実行中のプラン以外の事項に移ったと判定される場合に、設定される基本制御状態である。基本制御状態情報が破棄を示している場合は、プラン会話処理部320は、破棄の対象となったプラン1402以外にユーザ発話に対応するプラン1402がないかどうかを検索し、存在する場合にはそのプラン1402の実行を開始し、存在しない場合には、プランの実行を終了する。
【0167】
(3)維持
この基本制御状態は、ユーザ発話が、実行中のプラン1402に対応するに対応する話題タイトル820(図33参照)や用例文1701(図37参照)に該当しない場合であって、かつユーザ発話が基本制御状態「破棄」に該当するものではないと判断される場合に、基本制御状態情報に記述される基本制御状態である。
【0168】
この基本制御状態である場合には、プラン会話処理部320は、ユーザ発話を受け付けると、まず保留・中止しているプラン1402を再開するか否かを検討し、ユーザ発話がプラン1402再開に適さない場合、例えばユーザ発話がプラン1402に対応する話題タイトル802や用例文1702に対応しない場合は、他のプラン1402の実行を開始したり、或いは後述の談話空間会話制御処理(S1902)などをおこなう。ユーザ発話がプラン1402再開に適している場合は、記憶している次プラン指定情報1502に基づいて、回答文1501の出力を行う。
【0169】
基本制御状態が「維持」である場合は、プラン会話処理部320は、当該プラン1402に対応する回答文1501以外の回答を出力できるように、他のプラン1402を検索し、あるいは後述の談話空間会話制御処理などをおこなうが、ユーザ発話が再びプラン1402に関するものとなった場合は、そのプラン1402の実行を再開する。
【0170】
(4)継続
この状態は、ユーザ発話が、実行中のプラン1402に含まれる回答文1501に対応しない場合であって、かつユーザ発話内容が基本制御状態「破棄」に該当するものではないと判断され、かつユーザ発話から解釈されるユーザの意図が明瞭でない場合に、設定される基本制御状態である。
【0171】
基本制御状態が「継続」である場合は、プラン会話処理部320は、ユーザ発話を受け付けるとまず保留・中止しているプラン1402を再開するか否かを検討し、ユーザ発話がプラン1402の再開に適さない場合は、ユーザからさらなる発話を引き出すための回答文を出力できるように、後述のCA会話制御処理などをおこなう。
【0172】
図39に戻り、プラン会話制御処理の説明を続ける。
基本制御状態情報を参照したプラン会話処理部320は、基本制御状態情報が示す基本制御状態が「結束」であるか否かを判定する(S1902)。基本制御状態が「結束」であると判定した場合(S1902、Yes)は、プラン会話処理部320は、基本制御状態情報が示す実行中のプラン1402において、回答文1501が最終回答文であるかどうかを判定する(S1903)。
【0173】
最終回答文1501が出力済みであると判定した場合(S1903、Yes)、プラン会話処理部320は、すでにそのプラン1402においてユーザに回答すべき内容をすべて伝え終えているので、新たな別のプラン1402を開始するかいなかを判定するため、プラン空間内にユーザ発話に対応するプラン1402が存在するか検索を行う(S1904)。この検索の結果ユーザ発話に対応するプラン1402が発見できなかった場合(S1905、No)、ユーザに提供すべきプラン1402は存在していないので、プラン会話処理部320はそのままプラン会話制御処理終了する。
【0174】
一方、この検索の結果、ユーザ発話に対応するプラン1402を発見した場合(S1905、Yes)、プラン会話処理部320は当該プラン1402に移行する(S1906)。これは、ユーザに提供すべきプラン1402が存在しているため、当該プラン1402の実行(プラン1402に含まれる回答文1501の出力)を開始するためである。
【0175】
次に、プラン会話処理部320は当該プラン1402の回答文1501を出力する(S1908)。出力された回答文1501は、ユーザ発話に対する回答となり、プラン会話処理部320はユーザに伝えたい情報を提供することとなる。
【0176】
回答文出力処理(S1908)後、プラン会話処理部320はプラン会話制御処理を終了する。
一方、先に出力した回答文1501が最終の回答文1501であるか否かの判定(S1903)において、先に出力した回答文1501が最終の回答文1501でない場合(S1903,No)は、プラン会話処理部320は、先に出力した回答文1501に続く回答文1501、すなわち次プラン指定情報1502により特定されている回答文1501に対応するプラン1402に移行する(S1907)。
【0177】
この後、プラン会話処理部320は該当するプラン1402に含まれる回答文1501を出力し、ユーザ発話に対する回答を行う(S1908)。出力された回答文1501は、ユーザ発話に対する回答となり、プラン会話処理部320はユーザに伝えたい情報を提供することとなる。回答文出力処理(S1908)後、プラン会話処理部320はプラン会話制御処理を終了する。
【0178】
さて、S1902の判定処理において、基本制御状態情報が「結束」でない場合(S1902,No)は、プラン会話処理部320は基本制御状態情報が示す基本制御状態が「破棄」であるか否かを判定する(S1909)。基本制御状態が「破棄」であると判定した場合(S1909、Yes)は、継続すべきプラン1402が存在していないため、プラン会話処理部320は、開始すべき新たな別のプラン1402が存在するか判定すべく、プラン空間1401内にユーザ発話に対応するプラン1402が存在するか検索を行う(S1904)。この後、先に述べたS1903(Yes)における処理と同様に、S1905からS1908までの処理をプラン会話処理部320は実行する。
【0179】
一方、基本制御状態情報が示す基本制御状態が「破棄」であるか否かの判定(S1909)において、基本制御状態が「破棄」でないと判定した場合(S1909,No)は、プラン会話処理部320は、基本制御状態情報が示す基本制御状態が「維持」であるか否かの判定(S1910)をさらに行う。
【0180】
基本制御状態情報が示す基本制御状態が「維持」である場合(S1910、Yes)には、プラン会話処理部320は、保留・停止しているプラン1402についてユーザが再び関心を示したか否かを調べ、関心を示した場合には、一時保留・停止しているプラン1402を再開するように動作する。すなわち、プラン会話処理部320は、保留・停止中のプラン1402を検査(図40;S2001)し、ユーザ発話が保留・停止中の当該プラン1402が対応するか否かを判定する(S2002)。
【0181】
ユーザ発話が当該プラン1402に対応すると判定された場合(S2002、Yes)は、プラン会話処理部320はそのユーザ発話に対応するプラン1402に移行し(S2003)、その後、そのプラン1402に含まれる回答文1501を出力するように、回答文出力処理(図39;S1908)を実行する。このように動作することにより、プラン会話処理部320は、保留・中断していたプラン1402を、ユーザ発話に応じて、再開することが可能となり、あらかじめ用意していたプラン1402に含まれる内容をすべてユーザに伝達することが可能となる。
【0182】
一方、先のS2002(図40参照)において、保留・停止中のプラン1402がユーザ発話に対応しないと判定された場合(S2002、No)は、プラン会話処理部320は、開始すべき新たな別のプラン1402が存在するか判定すべく、プラン空間1401内にユーザ発話に対応するプラン1402が存在するか検索を行う(図39;S1904)。この後、先に述べたS1903(Yes)における処理と同様に、S1905からS1909までの処理をプラン会話処理部320は実行する。
【0183】
さて、S1910の判定において、基本制御状態情報が示す基本制御状態が「維持」でない場合(S1910、No)は、基本制御状態情報が示す基本制御状態が「継続」であることを意味する。この場合には、プラン会話処理部320は、回答文の出力を行うことなく、プラン会話制御処理を終了する。
以上で、プラン会話制御処理の説明を終了する。
【0184】
図38に戻り、メイン処理の説明を続ける。
プラン会話制御処理(S1801)を終了すると、会話制御部300は談話空間会話制御処理を開始する(S1802)。ただし、プラン会話制御処理(S1801)において回答文出力を行った場合は、会話制御部300は談話空間会話制御処理(S1802)、および後に説明するCA会話制御処理(S1803)のいずれも行わず、基本制御情報更新処理(S1904)を行ってメイン処理を終了する。
【0185】
図42は、本実施の形態に係る談話空間会話制御処理の一例を示すフローチャートである。
先ず、入力部100が、利用者からの発話内容を取得するステップを行う(ステップS2201)。具体的には、入力部100は、利用者の発話内容を構成する音声を取得する。入力部100は、取得した音声を音声信号として音声認識部200に出力する。なお、入力部100は、利用者からの音声ではなく、利用者から入力された文字列(例えば、テキスト形式で入力された文字データ)を取得してもよい。この場合、入力部100はマイクではなく、キーボードやタッチパネルなどの文字入力装置となる。
【0186】
次いで、音声認識部200が、入力部100で取得した発話内容に基づいて、発話内容に対応する文字列を特定するステップを行う(ステップS2202)。具体的には、入力部100から音声信号が入力された音声認識部200は、入力された音声信号に基づいて、その音声信号に対応する単語仮説(候補)を特定する。音声認識部200は、特定した単語仮説(候補)に対応付けられた文字列を取得し、取得した文字列を文字列信号として会話制御部300、より詳しくは談話空間会話制御部330に出力する。
【0187】
そして、文字列特定部410が、音声認識部200で特定された一連の文字列を一文毎に区切るステップを行う(ステップS2203)。具体的には、管理部310から文字列信号(あるいは形態素信号)が入力された文字列特定部410は、その入力された一連の文字列の中に、ある一定以上の時間間隔があるときは、その部分で文字列を区切る。文字列特定部410は、その区切った各文字列を形態素抽出部420及び入力種類判定部440に出力する。なお、文字列特定部410は、入力された文字列がキーボードから入力された文字列である場合には、句読点又はスペース等のある部分で文字列を区切るのが好ましい。
【0188】
その後、形態素抽出部420が、文字列特定部410で特定された文字列に基づいて、文字列の最小単位を構成する各形態素を第一形態素情報として抽出するステップを行う(ステップS2204)。具体的に、文字列特定部410から文字列が入力された形態素抽出部420は、入力された文字列と、形態素データベース430に予め格納されている形態素群とを照合する。なお、その形態素群は、本実施の形態では、それぞれの品詞分類に属する各形態素について、その形態素の見出し語・読み・品詞・活用形などを記述した形態素辞書として準備されている。
【0189】
この照合をした形態素抽出部420は、入力された文字列の中から、予め記憶された形態素群に含まれる各形態素と一致する各形態素(m1、m2、…)を抽出する。形態素抽出部420は、抽出した各形態素を第一形態素情報として話題特定情報検索部350に出力する。
【0190】
次いで、入力種類判定部440が、文字列特定部410で特定された一文を構成する各形態素に基づいて、「発話文のタイプ」を判定するステップを行う(ステップS2205)。具体的には、文字列特定部410から文字列が入力された入力種類判定部440は、入力された文字列に基づいて、その文字列と発話種類データベース450に格納されている各辞書とを照合し、その文字列の中から、各辞書に関係する要素を抽出する。この要素を抽出した入力種類判定部440は、抽出した要素に基づいて、その要素がどの「発話文のタイプ」に属するのかを判定する。入力種類判定部440は、判定した「発話文のタイプ」(発話種類)を回答取得部380に出力する。
そして、話題特定情報検索部350が、形態素抽出部420で抽出された第一形態素情報と着目話題タイトル820focusとを比較するステップを行う(ステップS2206)。
【0191】
第一形態素情報を構成する形態素と着目話題タイトル820focusとが一致する場合、話題特定情報検索部350は、その話題タイトル820を回答取得部380に出力する。一方、話題特定情報検索部350は、第一形態素情報を構成する形態素と話題タイトル820とが一致しなかった場合には、入力された第一形態素情報及び利用者入力文話題特定情報を検索命令信号として省略文補完部360に出力する。
【0192】
その後、省略文補完部360が、話題特定情報検索部350から入力された第一形態素情報に基づいて、着目話題特定情報及び回答文話題特定情報を、入力された第一形態素情報に含めるステップを行う(ステップS2207)。具体的には、第一形態素情報を「W」、着目話題特定情報及び回答文話題特定情報の集合を「D」とすると、省略文補完部360は、第一形態素情報「W」に話題特定情報「D」の要素を含めて、補完された第一形態素情報を生成し、この補完された第一形態素情報と集合「D」に関連づけされたすべての話題タイトル820とを照合し、補完された第一形態素情報と一致する話題タイトル820があるか検索する。補完された第一形態素情報と一致する話題タイトル820がある場合は、省略文補完部360は、その話題タイトル820を回答取得部380に出力する。一方、補完された第一形態素情報と一致する話題タイトル820を発見しなかった場合は、省略文補完部360は、第一形態素情報と利用者入力文話題特定情報とを話題検索部370に渡す。
【0193】
次いで、話題検索部370は、第一形態素情報と、利用者入力文話題特定情報とを照合し、各話題タイトル820の中から、第一形態素情報に適した話題タイトル820を検索するステップを行う(ステップS2208)。具体的には、省略文補完部360から検索命令信号が入力された話題検索部370は、入力された検索命令信号に含まれる利用者入力文話題特定情報及び第一形態素情報に基づいて、その利用者入力文話題特定情報に対応付けられた各話題タイトル820の中から、その第一形態素情報に適した話題タイトル820を検索する。話題検索部370は、その検索の結果得られた話題タイトル820を検索結果信号として回答取得部380に出力する。
【0194】
次いで、回答取得部380が、話題特定情報検索部350、省略文補完部360,あるいは話題検索部370で検索された話題タイトル820に基づいて、文解析部400により判定された利用者の発話種類と、話題タイトル820に対応付けられた各回答種類とを照合し、回答文830の選択を行う(ステップS2209)。
【0195】
具体的には、以下のようにして回答文830の選択が行われる。すなわち、話題検索部370から検索結果信号と、入力種類判定部440から「発話文のタイプ」とが入力された回答取得部380は、入力された検索結果信号に対応する「話題タイトル」と、入力された「発話文のタイプ」とに基づいて、その「話題タイトル」に対応付けられている回答種類群の中から、「発話文のタイプ」(DAなど)と一致する回答種類を特定する。
【0196】
続いて、回答取得部380は、管理部310を介して、ステップS2209において取得した回答文830を出力部600に出力する(ステップS2210)。管理部310から回答文を受け取った出力部600は、入力された回答文830を出力する。
以上で、談話空間会話制御処理の説明を終了し、図38に戻りメイン処理の説明を再開する。
【0197】
会話制御部300は談話空間会話制御処理を終了すると、CA会話制御処理を実行する(S1803)。ただし、プラン会話制御処理(S1801)および談話空間会話制御処理(S1801)において回答文出力を行った場合は、会話制御部300はCA会話制御処理(S1803)を行わず、基本制御情報更新処理(S1804)を行ってメイン処理を終了する。
【0198】
CA会話制御処理(S1803)は、ユーザ発話が、「何かを説明している」のか、「何かを確認している」のか、「非難や攻撃をしている」のか、「これら以外」なのかを判定し、ユーザ発話の内容および判定結果に応じた回答文を出力する処理である。このCA会話制御処理を行うことにより、プラン会話制御処理、および談話空間会話制御処理のいずれにおいても、ユーザ発話に適した回答文が出力できなくとも、ユーザとの会話の流れをとぎれさせることなく継続できるような、いわば「つなぎ」の回答文を出力することが可能となる。
【0199】
つぎに、会話制御部300は基本制御情報更新処理を行う(S1804)。この処理において、会話制御部300,より詳しくは管理部310は、プラン会話処理部320が回答文出力を行った場合は基本制御情報を「結束」に設定し、プラン会話処理部320が回答文出力を停止した場合は基本制御情報を「破棄」に設定し、談話空間会話制御処理部330が回答文出力を行った場合は基本制御情報を「維持」に設定し、CA会話処理部340が回答文出力を行った場合は基本制御情報を「継続」に設定する。
【0200】
この基本制御情報更新処理で設定された基本制御情報は、前述のプラン会話制御処理(S1801)において参照され、プランの継続や再開に利用される。
【0201】
以上、メイン処理を、ユーザ発話を受け付けるごとに実行することにより、回答処理部21は、ユーザ発話に応じて、予め用意したプランを実行できるとともに、プランに含まれない話題についても適宜応答することができる。
【0202】
[6.本発明の別の実施形態]
次に、本発明の別の実施形態について説明する。
本実施の形態は、前述の自動会話システム1を用いたガイドシステムとして提案される。ここで「ガイドシステム」とは、ユーザに対して情報やコンテンツなどに関する案内、誘導、アシストなどのサービスを行うシステムをいう。
[6.1.ガイドシステムの基本的構成]
【0203】
まず、本ガイドシステムの基本的構成について説明する。図43は、ガイドシステムの構成例を示したブロック図である。図43に示したガイドシステムは、通信網120に接続されたユーザ端末装置110と、通信網120に接続されたメディア・サーバ100と、通信網130に接続された会話サーバ選択装置130とを有する。なお、会話サーバ選択装置130が用いる会話シナリオ40は、前述の自動会話システム1と同様に、会話シナリオ編集装置30により編集可能である。
【0204】
[6.1.1.ユーザ端末装置]
ユーザ端末装置110は、メディア・サーバ100と接続し、メディア・サーバ100から供給されるコンテンツをユーザに閲覧させることが出来るとともに、前述の会話装置10として機能する装置である。
【0205】
ユーザ端末装置110は、演算処理装置(CPU)、主メモリ(RAM)、読出し専用メモリ(ROM)、入出力装置(I/O)、及び必要な場合にはハードディスク装置等の外部記憶装置を具備している情報処理装置によって実現される。このような情報処理装置は、例えば、ネットワーク通信機能を備えたPC(パーソナルコンピュータ)、携帯電話機、携帯ゲーム機である。ここにいうPCには、「ネットブック(NetBook)」と呼ばれるような製品を含む。ネットブック(NetBook)はネットトップとも呼ばれ、比較的安価で小型軽量なパーソナルコンピュータ(ノートパソコン/デスクトップパソコン)としての最低限の機能を備える製品である。
【0206】
図44にユーザ端末装置110の構成例を示した機能ブロック図を掲げる。ユーザ端末装置110は、通信制御部112と、通信制御部112に接続されたブラウザ部111と、通信制御部112に接続された会話処理部12と、会話処理部12及びブラウザ部111に接続された動作制御部13と、会話処理部に接続された入力部11と、会話処理部12及びブラウザ部111に接続された出力部14とを有している。なお、前述の会話装置10と同一の構成要素については、同一の参照符号を付したのでそれら構成要素の説明は省略する。なお、会話処理部12は本発明の第1の処理部に相当し、動作制御部13は本発明の第2の処理手段に相当する。
【0207】
通信制御部112は、通信網120を介して会話サーバ選択装置130及びメディア・サーバ100とデータの送受信を実行する機能を有する。具体的には、通信制御部112は、所定のプロトコルの実行、データと電気信号との相互変換などを行う。なお、ユーザ端末装置110が無線通信により通信網120と接続を行う装置(例えば、携帯電話機など)である場合は、通信制御部112は、無線信号の受信、復調、変調、送信を行う。
【0208】
本発明の閲覧手段に相当するブラウザ部111は、メディア・サーバ100からコンテンツ(例えば、動画ファイル、HTMLファイルなどのWeb文書、など)のデータを受信し、受信したコンテンツをユーザが閲覧可能に解釈、再生、表示、実行等を行う機能を有し、例えば、インターネット閲覧ソフト(Webブラウザ)である。
【0209】
[6.1.2.会話サーバ選択装置]
会話サーバ選択装置130は、複数の会話サーバ20を有し、ユーザ端末装置110からの要求、又は状況に応じていずれかの会話サーバ20を選択して動作させ、ユーザ端末装置110と協働して自動会話システム1として動作する装置である。
【0210】
会話サーバ選択装置130は、演算処理装置(CPU)、主メモリ(RAM)、読出し専用メモリ(ROM)、入出力装置(I/O)、及び必要な場合にはハードディスク装置等の外部記憶装置を具備している情報処理装置によって実現される。情報装置は、PC、ワークステーション、サーバなどである。会話サーバ選択装置130は、複数の情報処理装置をネットワークで接続して構成されるものであってもよい。
【0211】
図45は、会話サーバ選択装置130の構成例を示した機能ブロック図である。会話サーバ選択装置130は、複数の会話サーバ20を有する会話サーバ集合部131と、会話サーバ選択部132とを有している。複数の会話サーバ20は、それぞれ独立した意味解釈辞書部23,会話シナリオ22(図3参照)を有しており、それぞれが固有の話題についての会話を扱うように用意されている。会話サーバ20の中には、一般的な話題を扱うための会話サーバ20が用意されており、まず始めにこの会話サーバ20(区別のために、汎用会話サーバ20と呼ぶものとする)が選択されて起動され、ユーザとの会話を行い、その会話の中で登場した話題に応じて当該話題に適した別の会話サーバ20が起動され、ユーザとの会話処理を引き継ぐように動作する。
【0212】
会話サーバ選択部132は、ユーザ端末装置110、より詳しくは動作制御部13からの要求若しくは指示に応じて、会話サーバ集合部131の有する会話サーバ20を選択的に起動させる(指定された会話サーバ20を新たに起動させ、それまで起動していた会話サーバ20は終了させる)。
【0213】
ユーザ端末装置110、より詳しくは動作制御部13は動作制御情報に基づいて、会話サーバ20の選択の要求又は指示を会話サーバ選択装置130に送信する。例えば、ユーザ発話である入力文が「天気について知りたい」である場合には、その回答文として「では、天気について話しましょう」が用意され、この回答文について、天気を話題とする会話シナリオ40を会話シナリオ記憶部22に記憶させた会話サーバ20を起動させる旨の動作制御情報が用意されるようにしておけばよい。
【0214】
[6.1.3.メディア・サーバ]
メディア・サーバ100は、ユーザ端末装置110、より詳しくはブラウザ部111により閲覧可能なコンテンツを、通信網120を介してユーザ端末装置110に送信する装置である。
【0215】
[6.2.動作]
次に、上記ガイドシステムの動作例について説明する。
ユーザ端末装置110が起動すると、会話処理部12が会話サーバ選択装置130に汎用会話サーバ20を起動させるように要求する。会話サーバ選択装置130は、この要求に応じて汎用会話サーバ20を起動させ、ユーザからの入力文を待ち受ける。
【0216】
図46は、会話サーバ選択装置130が汎用会話サーバ20を起動させ、ユーザからの入力文を待ち受けている状態において、ユーザ端末装置110の出力部14(この例では、液晶ディスプレイ装置であるとする)に表示される画面例を示す。図に示すように、出力部14である液晶ディスプレイ装置の表示領域1000内に、ウインドウ1100が生成されており、ウインドウ1100内には、汎用会話サーバ20に相当するキャラクタ1200が表示されている。キャラクタ1200には文字表示ボックス1300が附されており、この文字表示ボックス内に回答文が文字列として表示される。なお、ここで説明する例では、回答文は文字列として出力されるとしたが、文字列の表示に代えて、或いは文字列の表示とともに人工音声による音声出力により回答文をユーザに提供してもかまわない。
【0217】
表示領域1000内の右下方には、起動キャラクタ表示領域1400がさらに設けられている。起動キャラクタ表示領域1400には、汎用会話サーバ20以外の会話サーバ20が会話サーバ選択装置130において起動された場合、その会話サーバ20(区別のため、アクティブ会話サーバ20と呼ぶ)に対応するキャラクタが表示される。
【0218】
さて、図46の状態でユーザ端末装置110にユーザ発話「料理番組が見たい」が入力部11に入力されたとする。ユーザ端末装置110は、この時点で会話サーバ選択装置130で起動している汎用会話サーバ20に、ユーザ発話「料理番組が見たい」に対する回答文を求める。汎用会話サーバ20は、回答文として「かしこまりました。」を選択し、ユーザ端末装置110に送信する。また、この回答文「かしこまりました。」には動作制御情報が附されており、この動作制御情報は、会話サーバ集合部131が有する会話サーバ20のうち、料理番組に関する話題を扱う会話サーバ20を起動させることを会話サーバ選択装置130に要求することが記述されている。
【0219】
上記回答文及び動作制御情報を受信したユーザ端末装置110は、回答文を文字表示ボックス1300に表示させるとともに、動作制御情報によって指定された、料理番組に関する話題を扱う会話サーバ20を起動させることを要求するメッセージを会話サーバ選択装置130に送信する。
【0220】
会話サーバ選択装置130はこのメッセージに応答して、指定された会話サーバ20を起動させて、アクティブ会話サーバ20にする。以降のユーザ発話に対する回答文の決定は、従前の汎用会話サーバ20に代わってこのアクティブ会話サーバ20が処理する。ここでは、アクティブ会話サーバ20は、先のユーザ発話「料理番組が見たい」に対する回答文「どんな料理番組が見たいですか?」をその会話サーバ20の会話シナリオ記憶部22から選択し、その回答文に設定されている動作制御情報とともにユーザ端末装置110に送信する。この例では動作制御情報としてこのアクティブ会話サーバ20のキャラクタとして予め設定されているキャラクタの画像を起動キャラクタ表示領域1400に表示させる命令が記述されているものとする。
【0221】
図47は、上記の回答文「どんな料理番組が見たいですか?」及びその動作制御情報を受信したユーザ端末装置110の出力部14に表示される画面例である。この画面では、アクティブ会話サーバ20のキャラクタとして予め設定されているキャラクタ1500の画像を起動キャラクタ表示領域1400に表示されているとともに、このキャラクタ1500に附された文字表示ボックス1600に、回答文である「どんな料理番組が見たいですか?」という文字列が表示されている。
【0222】
この後のユーザ発話はこのアクティブ会話サーバ20によって処理され、回答文の出力が制御され、また回答文に附された動作制御情報によってユーザ端末装置110における動作などが制御されることとなる。
【0223】
この後、ガイドシステムとの会話によってみたい料理番組が決定した場合には、その料理番組を指定する動作制御情報がアクティブ会話サーバ20からユーザ端末装置110に送信され、ユーザ端末装置110において、この動作制御情報に基づいて動作制御部13がブラウザ部111に当該料理番組のデータをメディア・サーバ100からダウンロードするように制御し、ダウンロードされた料理番組のデータをブラウザ部111が再生することにより、ユーザはガイドシステムに案内されて所望のコンテンツの視聴を行うこととなる。
【0224】
[6.2.1.CM視聴中における動作]
本ガイドシステムは、メディア・サーバ100からのCM(コマーシャル・メッセージ)をユーザがユーザ端末装置110により視聴中の場合にも機能する。
【0225】
図48は、ユーザ端末装置110を用いてユーザがCMを視聴している場合の画面例を示す図である。この例では、ユーザがユーザ端末装置110によりあるコンテンツに関する商品(この例では、ドラマのDVD)のCMが再生領域1700で表示中であるものとする。このとき、この商品に関する会話サーバ20がアクティブ会話サーバ20として起動中であり、そのため起動キャラクタ表示領域1400には、このアクティブ会話サーバ20に対応するキャラクタ1500が表示されている。
【0226】
さて、図48の状態でユーザ端末装置110にユーザ発話「このドラマはいつ放送するかしら?」が入力部11に入力されたとする。ユーザ端末装置110は、アクティブ会話サーバ20に、ユーザ発話「このドラマはいつ放送するかしら?」に対する回答文を求める。アクティブ会話サーバ20は、その会話シナリオ記憶部22を参照して回答文として「来月初めからモーニング時間帯に放送する予定です。」を選択し、ユーザ端末装置110に送信する。また、この回答文「来月初めからモーニング時間帯に放送する予定です。」には動作制御情報が附されており、この動作制御情報は、そのドラマの紹介番組のデータをダウンロードし、再生する旨の命令が記述されている。
【0227】
前記回答文及び動作制御情報がアクティブ会話サーバ20からユーザ端末装置110に送信され、ユーザ端末装置110において、この動作制御情報に基づいて動作制御部13がブラウザ部111に当該紹介番組のデータをメディア・サーバ100からダウンロードするように制御し、ダウンロードされた紹介番組のデータをブラウザ部111が再生することにより、ユーザはガイドシステムに案内されて所望のコンテンツの視聴を行うこととなる。
【0228】
図49は、回答文及び動作制御情報を受信したユーザ端末装置110の出力部14に表示される画面例を示した図である。回答文「来月初めからモーニング時間帯に放送する予定です。」が文字表示ボックス1600に表示されているとともに、ウインドウ1100内に生成された再生領域1800に前記紹介番組が再生されている。
【0229】
[6.2.2.番組間での動作]
本ガイドシステムは、ユーザが番組(コンテンツ)を視聴し終わり、次の番組(コンテンツ)の視聴を介するまでの期間である番組間の場合にも機能する。
【0230】
図50は、番組間におけるユーザ端末装置110の画面例を示す図である。ウインドウ1100内には、次に視聴可能な番組の紹介画面が列挙されているとともに、起動キャラクタ表示領域1400には、番組間において起動されるアクティブ会話サーバ20に対応するキャラクタ1500が表示されている。
【0231】
この例では、アクティブ会話サーバ20が回答文「先の番組はどうでした?」を出力する。これは、動作制御情報の<timer>を用いることなどによって、ユーザ発話を待たないで出力される回答文である。
【0232】
これに対してユーザが応答としてユーザ発話をなすことにより、キャラクタ1500とユーザとの会話を成立させ、ユーザをある情報(例えば、商品の宣伝サイト)に誘導したり、商品に関するアンケートを行ってマーケティング情報として取得することなどが可能となる。
【0233】
[6.2.3.番組視聴中での動作]
本ガイドシステムは、ユーザが番組(コンテンツ)を視聴中の場合にも機能する。
図51は、番組視聴中におけるユーザ端末装置110の画面例を示す図である。ウインドウ1100内には、視聴中の番組画面1900が生成されているとともに、起動キャラクタ表示領域1400には、番組中において起動しているアクティブ会話サーバ20に対応するキャラクタ1500が表示されている。
【0234】
ここで、ユーザが番組中の出演人物の衣服(ここでは、コートであるとする)について興味を持ち、ガイドシステムに質問したとする。すなわち、ユーザはユーザ発話「このコートは本当におしゃれ」を入力部11に入力したものとする。これに対して会話サーバ選択装置130、より詳しくはアクティブ会話サーバ20は、回答文「通販ショップをご案内しますか?」をユーザ端末装置110に返し、ユーザ端末装置110箱の回答文を出力すると、ユーザはさらに次にユーザ発話「お願い」を入力する。アクティブ会話サーバ20は、これに対して回答文「では、左側の画面を見て下さい」を選択するとともに、この回答文に設定されている動作制御情報をユーザ端末装置110に送信する。この動作制御情報は前記コートを含む商品を販売する販売サイトにアクセスし、サイト画面を出力部14に表示させる命令が設定されている。
【0235】
前記回答文及び動作制御情報を受信したユーザ端末装置110は、回答文「では、左側の画面を見て下さい」を表示するとともに、指定された販売サイトにアクセスして当該サイトの販売ページを表示してユーザに閲覧を促す。
【0236】
図52は、図51に示した画面表示から遷移して、前記回答文及び販売サイトの表示がなされた状態の画面例を示す図である。この画面例では、視聴中の番組画面1900が縮小されて、その下方に新たに通販サイトの画面を表示する表示領域1950が生成される。また、文字表示ボックス1600には、上記の回答文が表示されている。
このようにガイドシステムにより、新たな販売機会を創出することが出来る。
【0237】
[6.2.4.コンテンツ・ナビゲータ]
本ガイドシステムは、コンテンツナビゲータとしても機能する。コンテンツ・ナビゲータとは、ユーザが必要とする知識を得るためのコンテンツを取得する支援を行うシステムである。ユーザが必要とする知識を得るためのコンテンツは、いわゆるeラーニングのような講義や講習を録画した動画などである。
【0238】
ここでは、料理レシピを紹介するコンテンツを紹介するコンテンツナビゲータとして機能する場合の、本ガイドシステムの動作について説明する。
【0239】
まずユーザはユーザ端末装置110をキッチンに置いて起動した状態で料理の準備を始めているものとする。ここでユーザは酢豚を作ろうと思うのだが、そのレシピがはっきり思い出せないので、本ガイドシステムを利用して酢豚のレシピを視聴すすることを試みる。
【0240】
図53は、ユーザ端末装置110をキッチンに置いて起動した状態において、出力部14に表示される画面例を示した図である。ウインドウ1100には、料理レシピに関する話題を扱う会話サーバ20に対応するキャラクタ2000が表示されている。このキャラクタを呼び出す、すなわち会話サーバ選択装置130において、料理レシピに関する話題を扱う会話サーバ20をアクティブ会話サーバ20とするためには、予め汎用会話サーバ20に対してユーザ発話「料理レシピを使いたい」を入力し、会話サーバ20の切り替えを会話サーバ選択装置130に行わせておけばよい。
【0241】
この状態で、ユーザはユーザ端末装置110にユーザ発話「酢豚のレシピを教えてちょうだい」と入力すると、アクティブ会話サーバ20となっている料理レシピに関する話題を扱う会話サーバ20がその会話シナリオ記憶部22から前記ユーザ発話「酢豚のレシピを教えてちょうだい」に対応する回答文を選択し、それに設定された動作制御情報とともにユーザ端末装置110に送信する。この動画制御情報は、酢豚レシピを紹介する動画ファイルを取得して再生する指令である。
【0242】
前記回答文及び動作制御情報がアクティブ会話サーバ20からユーザ端末装置110に送信され、ユーザ端末装置110において、この動作制御情報に基づいて動作制御部13がブラウザ部111に当該動画ファイルのデータをそのデータの格納場所(メディア・サーバ100であってもよいし、その他どのような装置であってもよい)からダウンロードするように制御し、ダウンロードされた動画ファイルのデータをブラウザ部111が再生することにより、ユーザはガイドシステムに案内されて所望のレシピの視聴を行うこととなる。
【0243】
図54は、本ガイドシステムにより料理レシピの動画の再生が行われている画面例を示す図である。ウインドウ1100内には、料理レシピの動画再生領域2100が生成され、ここにユーザが求めた料理レシピの動画が表示される。なお、本ガイドシステムによれば、ユーザがユーザ発話「ちょっとそこで止めて」、「繰り返して」などにより動画ファイルを一時停止させたり、再生の繰り返しを行うことが可能となる。
【0244】
[6.2.5.インタラクティブ・テロップ]
本ガイドシステムは、番組の視聴中に、ユーザがガイドシステムと視聴中の番組に関する会話を楽しむことを可能とする。
【0245】
まず、前提としてユーザは本ガイドシステムと会話を行って視聴する番組を決定しているものとする。これにより、本ガイドシステムは、その番組の再生(視聴)が開始されたことを条件として、その番組に関する会話を扱う会話サーバをアクティブ会話サーバ20として起動させる。このアクティブ会話サーバ20は、その番組に関する会話を扱うシナリオを有している。たとえば、その番組のあらかじめ予定されたシーンの再生が行われているときに、そのシーンに関する会話のきっかけとなる回答文を出力して、ユーザとの会話を進行させるように動作する。このきっかけとなる回答文に対してユーザが発話すれば、それに対する回答文を出力するなどする。なお、アクティブ会話サーバ20は、ユーザの発話に対して回答文を出力するだけでなく、視聴中の番組にテロップが表示される場合に、ユーザの発話がなくともこのテロップに対するコメントを回答文として出力するように動作してもよい。
【0246】
図55は、視聴中の番組中にテロップが表示されている場合の画面例を示す図である。表示領域1000内のウインドウには、視聴中の番組の番組表示領域2150が生成されている。この番組には、テロップ2200が表示されている。一方、番組表示領域2100の右方には、起動中である会話サーバ20に対応するキャラクタ2300が表示されている。
【0247】
図56は、テロップの内容について、コメントである回答文を出力した画面例を示す図である。キャラクタ2300の上方には、回答文を表示する文字表示ボックス2400が生成され、番組の内容(ここではテロップの内容)に関するコメントである回答文が表示される。ユーザはこの回答文に対して発話してよい。ユーザ発話はガイドシステムに取得され、このユーザ発話に対してさらにガイドシステムが回答文を出力することにより、番組を視聴しながらの会話がユーザとガイドシステムの間で成立することになる。
【0248】
[7.さらに別の実施の態様:電話取り次ぎシステム]
本自動会話システム1は、電話取り次ぎシステムとして利用することが可能である。この電話取り次ぎシステムは、ユーザが他の人に電話をかける場合には、電話取り次ぎシステムが相手方に電話をかけ、相手が出た場合にユーザに取り次ぎ、一方他の人からユーザ宛に電話がかかってきた場合には、誰からの電話かをユーザに伝えユーザが電話に出ると回答した場合には、相手方からの電話をユーザにつなぐシステムである。
【0249】
図57は、上記電話取り次ぎシステムの構成例を示したブロック図である。電話取り次ぎシステムは、通信網3002に接続されたユーザ端末装置3000と、通信網3002に接続された会話サーバ20とを有している。ユーザとの通話相手となる相手方の電話機3001は通信網3002に接続されている。
【0250】
ユーザ端末装置3000は、IP電話の電話機として機能するとともに、本発明の会話装置10としても機能する情報処理装置であって、例えばPC,IP電話機などである。図58に、ユーザ端末装置3000の構成例を示す機能ブロック図を掲げる。ユーザ端末装置3000は、通信網3002に接続可能な通信制御部3010と、通信制御部3010に接続されたIP電話部3020と、通信制御部3010及びIP電話部3020に接続された会話制御部3030と、会話制御部3030及びIP電話部3020に接続された音声入力部3050と、IP電話部3020に接続された音声出力部3040とを有している。
【0251】
本発明の電話手段に相当するIP電話部3020は、IP電話の端末機として発信、着信、通話を実行する機能を有し、例えばSkype(スカイプ社登録商標)のアプリケーションである。
【0252】
本発明の会話制御手段に相当する会話制御部3030は、会話装置10に相当する構成要素であって、すなわち会話入力部12,動作制御部13、入力部11,出力部14を有する構成要素である。但し入力部11,出力部14は音声入力部3050、音声出力部3040に置き換えてもかまわない。会話制御部3030は、ユーザからある相手に電話をしたい旨のユーザ発話を受け取ると、会話サーバ20にその回答文を求める。会話サーバ20は前記ユーザ発話に対する回答文及びそれに附された動作制御情報をユーザ端末装置3000,より詳しくは会話制御部3030に送信する。この回答文に附される動作制御情報は、前記相手の電話番号宛に発呼するようにIP電話部3020に指令する内容を有する。相手方の通話機3010前記発呼に応答した場合、相手方の応答音声信号をIP電話部3020から会話制御部3030が取得し、音声信号を音声認識によって入力文に置き換え、これに対する回答文を会話サーバ20に要求する。会話サーバ20はこの入力文に応じて回答文を決定し、動作制御情報とともにユーザ端末装置3000,より詳しくは会話制御部3030に送信する。前記入力文がユーザの求める相手であることを認めるものである場合は、その回答文に附される動作制御情報は、IP電話部3020に通話を維持するように指令する内容を有する。
【0253】
ある相手方からユーザに対する着呼が合った場合は、IP電話部3020が相手の通話機との通話を確立し、相手からの音声信号を会話制御部3030に渡す。会話制御部3030は音声信号を入力文にしてこれに対する回答文を会話サーバ20に要求する。会話サーバ20は、前記入力文に対する回答として、その相手から電話にユーザが出るかどうかを問う回答文をユーザ端末装置3000,より詳しくは会話制御部3030に送信する。会話制御部3030はその回答文を出力部14に出力させ、ユーザの次の発話を促す。ユーザ発話がなされたら、会話制御部3030はそのユーザ発話に対する回答文を会話サーバ20に要求する。ユーザ発話が電話に出る内容であれば、会話サーバ20は、IP電話部3020にユーザと相手方の通話を開始するよう命令する内容の動作制御情報が附された回答文をユーザ端末装置3000,より詳しくは会話制御部3030に送信する。会話制御部3030、より詳しくは動作制御部13は、IP電話部3020にユーザと相手方の通話を開始するよう命令する。
【0254】
一方、ユーザ発話が電話に出ない内容であれば、会話サーバ20は、IP電話部3020にユーザと相手方の通話を終了するよう命令する内容の動作制御情報が附された回答文をユーザ端末装置3000,より詳しくは会話制御部3030に送信する。会話制御部3030、より詳しくは動作制御部13は、IP電話部3020に相手方からの接続を切断するよう命令する。
【0255】
音声入力部3050は、音声を電気信号に変換する構成要素であって、例えばマイクである。音声出力部3040は電気信号を音声に変換する構成要素であって、例えばスピーカである。
【0256】
[7.1.動作例]
上記電話取り次ぎシステムの動作例について説明する。
[7.1.1.呼び出し]
図59は、ユーザから相手に対して本電話取り次ぎシステムにより発信する場合の動作例を示したシーケンス図である。
【0257】
まず、発信する場合、ユーザは相手に発信する旨の発話をユーザ端末装置3000に入力する(S5010)。ユーザ端末装置3000は、このユーザ発話に対する回答文を会話サーバ20に要求し、会話サーバ20から回答文及び動作制御情報を取得する(S5020)。動作制御情報は、相手先の電話番号への発呼の実行であり、この動作制御情報によってユーザ端末装置3000は通話機へ発呼をおこなう(S5030)。相手方はこの呼び出しに応じて通話を開始し、名前を名乗る発話をおこなう(S5040)。この発話内容はユーザ端末装置3000によって受け取られ、ユーザ端末装置3000は、このユーザ発話に対する回答文を会話サーバ20に要求し、会話サーバ20から回答文及び動作制御情報を取得する(S5050)。このときの動作制御情報は、回答文の内容を音声信号に変換し、通話機3010に送信させることを内容としている。この動作制御情報に従って、ユーザ端末装置3000は通話機3010に回答文の内容を音声で送信する(S5060)。
【0258】
相手が電話に出る旨の回答を発話したものとする。この発話はユーザ端末装置3000に送信される(S5070)。この発話に対する回答文を会話サーバ20に要求し、会話サーバ20から回答文及び動作制御情報を取得する(S5080)。ユーザ端末装置3000は相手方、ユーザに対して電話をつなぐ旨の回答文を出力する(S5090,S5100)。また動作制御情報としてユーザと相手方の通話を開始させる旨が定められており、ユーザ端末装置3000と通話機301の通話接続が維持され(S5110)、電話取り次ぎシステムによる取り次ぎが完了する。
【0259】
なお、ステップS5070における相手方の回答が電話に出たくないというないようであれば、これに対する回答文に附された動作制御情報にユーザ端末装置3000と通話機の接続の終了がさだめられており、これに従ってユーザ端末装置3000は通話を終了するように動作する。
【0260】
[7.1.2.着信]
図60は、相手からユーザに対しての着信があった場合の本電話取り次ぎシステムの動作例を示したシーケンス図である。
【0261】
まず、通話機3001からユーザ端末装置3000に着呼し、発信者名を名乗る発話がユーザ端末装置3000に送信される(S6010)。ユーザ端末装置3000は、この発話に対する回答文を会話サーバ20に要求し、会話サーバ20から回答文及び動作制御情報を取得する(S6020)。回答文は電話を取り次いでいる旨の相手方用の回答文と、相手の名前をユーザに伝えるユーザ用の回答文であり、ユーザ端末装置3000は、それぞれの回答文を相手方及びユーザに出力する(S6030、S6040)。ここでユーザが電話に出ない旨の発話を行ったものとする(S6050)。ユーザ端末装置3000は、この発話に対する回答文を会話サーバ20に要求し、会話サーバ20から回答文及び動作制御情報を取得する(S6020)。この回答文は、ユーザが電話に出られない旨を伝える内容のものであり、動作制御情報は伝言メッセージの録音開始及びその後の通話の終了を内容とする。ユーザ端末装置3000は、回答文を通話機3001に送信するとともに、動作制御情報に従って伝言メッセージの録音及びその後の通話終了を実行する。
【0262】
なお、ステップS6050におけるユーザの発話内容が、電話に出る旨の内容であれば、それに対する回答文に附される動作制御情報はユーザ端末装置3000と通話機3001の通信の維持となり、この動作制御情報に従ってユーザと相手方の通話が開始されることになる。
【図面の簡単な説明】
【0263】
図1】自動会話システムの構成例を示すブロック図
図2】会話装置の一構成例を示すブロック図
図3】会話サーバの一構成例を示すブロック図
図4】会話シナリオ編集装置の一構成例を示すブロック図
図5】談話の圏に相当する会話シナリオの例を示す状態遷移図
図6図5の会話シナリオをデータとして表現した例を示す図
図7】射の合成を含む会話シナリオの例を示した状態遷移図
図8図7の会話シナリオをデータとして表現した例を示す図
図9】NULL機能による強制回答を行う会話シナリオの例を示した状態遷移図
図10図9の会話シナリオをデータとして表現した例を示す図
図11】引用機能により、ユーザ発話に対して「固執回答」をする会話シナリオの例を示す状態遷移図
図12図11の会話シナリオをデータとして表現した例を示す図
図13】「合成により構成された単位元」により「閉ループ回答」が構築された会話シナリオの例を示した状態遷移図
図14図13の会話シナリオをデータとして表現した例を示す図
図15】射の合成に結合法則が成り立つ会話シナリオの例の状態遷移図
図16図15の会話シナリオをデータとして表現した例を示す図
図17】会話シナリオ編集装置の編集画面例を示す図
図18】会話シナリオ保持部のデータ構成例を示す図
図19】会話シナリオ編集装置による会話シナリオデータ生成のための入力画面例を示す図
図20図19に続く、会話シナリオ編集装置による会話シナリオデータ生成のための入力画面例を示す図
図21図20に続く、会話シナリオ編集装置による会話シナリオデータ生成のための入力画面例を示す図
図22図21に続く、会話シナリオ編集装置による会話シナリオデータ生成のための入力画面例を示す図
図23図22に続く、会話シナリオ編集装置による会話シナリオデータ生成のための入力画面例を示す図
図24】会話シナリオ編集装置の変形構成例を示す機能ブロック図
図25】回答処理部の機能ブロック図
図26】文字列とこの文字列から抽出される形態素との関係を示す図
図27】「発話文のタイプ」と、その発話文のタイプを表す二文字のアルファベット、及びその発話文のタイプに該当する発話文の例を示す図
図28】文のタイプとそのタイプを判定するための辞書の関係を示す図
図29】会話データベースが記憶するデータのデータ構成の一例を示す概念図
図30】ある話題特定情報と他の話題特定情報との関連付けを示す図
図31】話題タイトル(「第二形態素情報」ともいう)のデータ構成例を示す図
図32】回答文のデータ構成例を説明するための図
図33】ある話題特定情報に対応付けされた話題タイトル,回答文、次プラン指定情報の具体例を示す図
図34】プラン空間を説明するための概念図
図35】プランの例を示す図
図36】別のプランの例を示す図
図37】プラン会話処理の具体例を示す図
図38】会話制御部のメイン処理の一例を示すフローチャート
図39】プラン会話制御処理の一例を示すフローチャート
図40図39に続く、プラン会話制御処理の一例を示すフローチャート
図41】基本制御状態を示す図
図42】談話空間会話制御処理の一例を示すフローチャート
図43】ガイドシステムの構成例を示したブロック図
図44】ユーザ端末装置の構成例を示した機能ブロック図
図45】会話サーバ選択装置の構成例を示した機能ブロック図
図46】ユーザ端末装置の出力部に表示される画面例を示す図
図47】ユーザ端末装置の出力部に表示される画面例を示す図
図48】ユーザ端末装置の出力部に表示される画面例を示す図
図49】ユーザ端末装置の出力部に表示される画面例を示す図
図50】ユーザ端末装置の出力部に表示される画面例を示す図
図51】ユーザ端末装置の出力部に表示される画面例を示す図
図52】ユーザ端末装置の出力部に表示される画面例を示す図
図53】ユーザ端末装置の出力部に表示される画面例を示す図
図54】ユーザ端末装置の出力部に表示される画面例を示す図
図55】ユーザ端末装置の出力部に表示される画面例を示す図
図56】ユーザ端末装置の出力部に表示される画面例を示す図
図57】電話取り次ぎシステムの構成例を示したブロック図
図58】ユーザ端末装置の構成例を示す機能ブロック図
図59】ユーザから相手に対して本電話取り次ぎシステムにより発信する場合の動作例を示したシーケンス図
図60】相手からユーザに対しての着信があった場合の本電話取り次ぎシステムの動作例を示したシーケンス図
【符号の説明】
【0264】
1 … 自動会話装置
10 … 会話装置
20 … 会話サーバ
30 … 会話シナリオ編集装置
40 … 会話シナリオ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33
図34
図35
図36
図37
図38
図39
図40
図41
図42
図43
図44
図45
図46
図47
図48
図49
図50
図51
図52
図53
図54
図55
図56
図57
図58
図59
図60