(57)【要約】【課題】テーマが変わったり、テーマから外れた単語が入力された場合であっても、ユーザとシステムとの間の会話の連続性を維持することを可能とする。【解決手段】質問と、回答と、質問と回答との間の会話のテーマとを、テーマごとに対応付けたデータベースを記憶する記憶部と、ユーザから質問の入力を受け付ける入力部と、質問を単語に分解する言語処理部と、分解された単語とデータベースとに基づいて会話のカレントテーマを特定し、特定したカレントテーマ内で質問に対する回答をデータベースの中から検索し、検索した回答を出力する第１の会話処理と、続いて入力された質問に含まれる単語とデータベースとに基づいて、続いて入力された質問のテーマがカレントテーマであるか否かを判定し、テーマがカレントテーマでないと判定した場合、テーマ内で質問に対する回答をデータベースの中から検索し、検索した回答を出力する第２の会話処理と、を実行する処理部と、を備える。【選択図】  図１１
2016126452.tif 000002
【特許請求の範囲】
【請求項１】
質問と、回答と、前記質問と前記回答との間の会話のテーマとを、前記テーマごとに対応付けたデータベースを記憶する記憶部と、
ユーザから前記質問の入力を受け付ける入力部と、
前記質問を単語に分解する言語処理部と、
分解された前記単語と前記データベースとに基づいて前記会話のカレントテーマを特定し、特定した前記カレントテーマ内で前記質問に対する回答を前記データベースの中から検索し、検索した前記回答を出力する第１の会話処理と、続いて入力された質問に含まれる単語と前記データベースとに基づいて、前記続いて入力された質問のテーマが前記カレントテーマであるか否かを判定し、前記テーマが前記カレントテーマでないと判定した場合、前記テーマ内で前記質問に対する回答を前記データベースの中から検索し、検索した前記回答を出力する第２の会話処理と、を実行する処理部と、
を備えることを特徴とする会話処理システム。
【請求項２】
前記データベースは、階層化して前記テーマを記憶し、
前記処理部は、前記カレントテーマを下位階層から上位階層に順に検索して特定し、前記検索により前記カレントテーマが特定できない場合、他のテーマの上位階層から下位階層に順に前記カレントテーマを検索する、
ことを特徴とする請求項１に記載の会話処理システム。
【請求項３】
前記データベースは、前記テーマに属さない汎用的な質問と、前記汎用的な質問に対する回答と、前記汎用的な質問と前記回答との間の会話のテーマであるニュートラルテーマとを対応付けて記憶し、
前記処理部は、前記第１の会話処理または前記第２の会話処理において、前記入力部から前記汎用的な質問が受け付けられた場合には、前記ニュートラルテーマ内で前記回答を前記データベースの中から検索し、検索した前記回答を出力する、
ことを特徴とする請求項１または２に記載の会話処理システム。
【請求項４】
前記データベースは、前記会話を進めることが望ましくない質問と、前記望ましくない質問に対する回答と、前記望ましくない質問とを対応付けて記憶し、
前記処理部は、前記入力部から前記望ましくない質問が受け付けられた場合、前記第１の会話処理または前記第２の会話処理を実行せずに、前記望ましくない質問に対する回答を前記データベースの中から検索し、検索した前記回答を出力する、
ことを特徴とする請求項１〜３のいずれか１項に記載の会話処理システム。
【請求項５】
前記データベースは、前記回答を出力する前記会話処理システム上のキャラクタを示す固有名詞と、前記固有名詞のゆらぎを含む単語とを対応付けて記憶し、
前記処理部は、前記入力部からゆらぎを含む前記質問が受け付けられた場合、入力された前記ゆらぎを含む単語が前記キャラクタの固有名詞であると判断する、
ことを特徴とする請求項１〜４のいずれか１項に記載の会話処理システム。
【請求項６】
前記データベースは、前記データベースに記憶される前記質問または汎用的な質問または望ましくない質問を入力するための質問入力欄と、前記回答または前記汎用的な質問に対する回答または前記望ましくない質問に対する回答を入力するための回答入力欄と、前記テーマまたは前記汎用的な質問と前記回答との間の会話のテーマであるニュートラルテーマを入力するためのテーマ入力欄とを含む入力画面を記憶し、
前記データベースに記憶された前記入力画面を読み出して端末が有する表示部に表示し、表示部に表示された前記入力画面の各入力欄から入力された各質問または各回答または各テーマを、前記データベースに登録する登録処理部を備える、
ことを特徴とする請求項１〜５のいずれか１項に記載の会話処理システム。
【請求項７】
ユーザから質問の入力を受け付ける入力ステップと、
前記質問を単語に分解する言語処理ステップと、
分解された前記単語と、記憶部に記憶され、前記質問と、回答と、前記質問と前記回答との間の会話のテーマとを、前記テーマごとに対応付けたデータベースとに基づいて前記会話のカレントテーマを特定するステップと、
特定した前記カレントテーマ内で前記質問に対する回答を前記データベースの中から検索し、検索した前記回答を出力するステップと、
続いて入力された質問に含まれる単語と前記データベースとに基づいて、前記続いて入力された質問のテーマが前記カレントテーマであるか否かを判定するステップと、
前記テーマが前記カレントテーマでないと判定した場合、前記テーマ内で前記質問に対する回答を前記データベースの中から検索するステップと、
検索した前記回答を出力するステップと、
を含むことを特徴とする会話処理方法。
【請求項８】
コンピュータに、
ユーザから質問の入力を受け付ける入力ステップと、
前記質問を単語に分解する言語処理ステップと、
分解された前記単語と、記憶部に記憶され、前記質問と、回答と、前記質問と前記回答との間の会話のテーマとを、前記テーマごとに対応付けたデータベースとに基づいて前記会話のカレントテーマを特定するステップと、
特定した前記カレントテーマ内で前記質問に対する回答を前記データベースの中から検索し、検索した前記回答を出力するステップと、
続いて入力された質問に含まれる単語と前記データベースとに基づいて、前記続いて入力された質問のテーマが前記カレントテーマであるか否かを判定するステップと、
前記テーマが前記カレントテーマでないと判定した場合、前記テーマ内で前記質問に対する回答を前記データベースの中から検索するステップと、
検索した前記回答を出力するステップと、
を実行させることを特徴とする会話処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、会話処理ステム、会話処理方法、及び会話処理プログラムに関する。
【背景技術】
【０００２】
ユーザがコンピュータ上のキャラクタを通じてバーチャルに会話する技術がある。例えば、特許文献１では、多数の語彙を収めた意味ネットワークデータベースを参照し、自由文を生成するＳＤＤモジュールと特定トピックを中心に会話を展開する定型トピックモジュールとの間の談話的結束性を維持・管理しつつ、会話の連続展開を可能にする技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−２６９０８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１では、日本語の談話文法の特徴に鑑み、既知情報を省略して談話中に表出させないようにロボットを制御したり、先行するトピックを追い越す新情報語彙の出現に制限をかける等して談話の結束性を維持することにより談話を連続展開している。しかしながら、テーマが変わった場合や、ユーザからテーマから外れた言葉を示す単語が入力された場合には談話の連続性を維持できないという問題があった。
【０００５】
本発明は、上記に鑑みてなされたものであって、テーマが変わったり、テーマから外れた単語が入力された場合であっても、ユーザとシステムとの間の会話の連続性を維持することが可能な会話処理ステム、会話処理方法、及び会話処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明にかかる会話処理ステムは、質問と、回答と、前記質問と前記回答との間の会話のテーマとを、前記テーマごとに対応付けたデータベースを記憶する記憶部と、ユーザから前記質問の入力を受け付ける入力部と、前記質問を単語に分解する言語処理部と、分解された前記単語と前記データベースとに基づいて前記会話のカレントテーマを特定し、特定した前記カレントテーマ内で前記質問に対する回答を前記データベースの中から検索し、検索した前記回答を出力する第１の会話処理と、続いて入力された質問に含まれる単語と前記データベースとに基づいて、前記続いて入力された質問のテーマが前記カレントテーマであるか否かを判定し、前記テーマが前記カレントテーマでないと判定した場合、前記テーマ内で前記質問に対する回答を前記データベースの中から検索し、検索した前記回答を出力する第２の会話処理と、を実行する処理部と、を備えることを特徴とする会話処理システムとして構成される。
【０００７】
また、本発明は、上記会話処理システムにおける会話処理方法、上記会話処理システムを実行する会話処理プログラムとしても把握される。
【発明の効果】
【０００８】
本発明によれば、テーマが変わったり、テーマから外れた単語が入力された場合であっても、ユーザとシステムとの間の会話の連続性を維持することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】本実施の形態における会話処理ステムの構成例を示す図である。
【図２】記憶部が記憶するデータの例を示す図である。
【図３】ステートメントＤＢの例を示す図である。
【図４】タームスＤＢの例を示す図である。
【図５】シーンＤＢの例を示す図である。
【図６】キャラクタエイリアスＤＢの例を示す図である。
【図７】エイリアスＤＢの例を示す図である。
【図８】アクションＤＢの例を示す図である。
【図９】セッションＤＢの例を示す図である。
【図１０】ログＤＢの例を示す図である。
【図１１】会話処理の実行中におけるユーザ端末に表示される画面および会話の流れの例を示す図である。
【図１２】本システムで行われる会話処理の処理手順を示すシーケンス図である。
【図１３】キャラクタを登録するためのキャラクタ登録画面の例を示す図である。
【図１４】会話登録画面の例を示す図である。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、本発明にかかる会話処理ステム、会話処理方法、及び会話処理プログラムの実施の形態を詳細に説明する。
【００１１】
図１は、本実施の形態における会話処理ステム１０００の構成例を示す図である。図１に示すように、会話処理ステムシステム１０００は、ユーザ端末１００と、サーバ２００とを有し、これらがネットワーク３００を介して接続されている。なお、ネットワーク３００は、インターネット等の一般的な通信回線網である。
【００１２】
ユーザ端末１００は、ユーザがシステム上のキャラクタと会話するための端末であり、一般的なＰＣ（Personal Computer）や携帯端末から構成される。図１に示すように、ユーザ端末１００は、入力部１０１と、表示部１０２と、通信部１０３と、制御部１０４とを有して構成されている。
【００１３】
入力部１０１は、キーボード等の一般的な入力装置であり、ユーザからの質問その他の情報の入力操作を受け付ける。表示部１０２は、ＬＣＤ（Liquid Crystal Display）等の一般的な表示装置であり、ユーザによる入力文である質問やその回答文を含む各種情報を表示する。通信部１０３は、ＮＩＣ（Network Interface Card）等の一般的な通信装置であり、ユーザ端末１００とサーバ２００との間の各種情報を送受信する。制御部１０４は、ＣＰＵ（Central Processing Unit）等の一般的な演算装置であり、上記各部の動作を制御し、後述する各処理を実行する。なお、以下では、回答に対応づける意味で入力文を質問と表現しているが、会話における様々な情報を含むものとする。例えば、文字だけでなく、数字、記号、符号、図表、アイコン等、会話で用いられる可能性のある情報を含む。同様に、以下では、質問に対応付ける意味で回答文を回答と表現しているが、上記質問のように、会話における様々な情報を含むものとする。
【００１４】
ユーザ端末１００で行われる処理は、ユーザ端末１００にインストールされたプログラムを実行することにより、実現することができる。上記プログラムは、ユーザ端末１００にインストール可能な形式又は実行可能な形式のファイルであって、ＵＳＢ（Universal Serial Bus）メモリ等のコンピュータで読み取り可能な記録媒体に記録されて提供されたり、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。
【００１５】
サーバ２００は、ユーザ端末１００と間で会話処理を実行するためのサーバであり、一般的なコンピュータから構成される。図１に示すように、サーバ２００は、記憶部２０１と、言語処理部２０２と、優先アクション処理部２０３と、ステートメント処理部２０４と、シーン処理部２０５と、アクション処理部２０６と、通信部２０７と、制御部２０８とを有して構成されている。
【００１６】
なお、本システムにおけるサーバ２００での処理は、ユーザ端末１００の場合と同様に、サーバ２００にインストールされたプログラムを実行することにより、実現することができる。上記プログラムは、ユーザ端末１００の場合と同様に、サーバ２００にインストール可能な形式又は実行可能な形式のファイルであって、ＵＳＢメモリ等のコンピュータで読み取り可能な記録媒体に記録されて提供されたり、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。
【００１７】
記憶部２０１は、ＨＤＤ（Hard disk drive）等の一般的な記憶装置であり、会話処理を実行するための各種データを記憶する。
【００１８】
図２は、記憶部２０１が記憶するデータの例を示す図である。図２に示すように、記憶部２０１は、ユーザＤＢ（DataBase）２０１１と、ステートメントＤＢ２０１２と、タームスＤＢ２０１３と、シーンＤＢ２０１４と、キャラクタエイリアスＤＢ２０１５と、エイリアスＤＢ２０１６と、アクションＤＢ２０１７と、セッションＤＢ２０１８と、ログＤＢ２０１９と、辞書ＤＢ２０２０とを記憶する。
【００１９】
ユーザＤＢ２０１１は、本システムを利用するユーザを記憶するＤＢである。ユーザＤＢ２０１１は、ユーザを認証するための一般的なＤＢであるため、以下ではその例示を省略しているが、例えば、ユーザを識別するためのユーザＩＤおよびパスワード、そのユーザ名、そのユーザの氏名および住所が対応付けて記憶されている。
【００２０】
ステートメントＤＢ２０１２は、本システムで想定するユーザとキャラクタとの間の会話を記憶するＤＢである。図３は、ステートメントＤＢ２０１２の例を示す図である。図３に示すように、ステートメントＤＢ２０１２は、会話を識別するための連番と、その会話のテーマ（大、中、小）と、会話における質問と、その回答とが対応付けて記憶されている。
【００２１】
図３では、連番「ＳＴ３」〜「ＳＴ６」によって識別される会話は、大テーマ「ＰＣ」に属する会話であって、質問に「ｐｃ」、「パソコン」、「パソコンを調べたい」、「パソコンが欲しい」といった質問がユーザ端末１００から入力された場合には、その回答として、「どちらのパソコンのことをお調べしますか？」という単語がユーザ端末１００に出力されることを示している。このように、ステートメントＤＢ２０１２には、階層化されたテーマごとに、質問およびその回答が記憶されている。具体的には後述するが、例えば、ユーザとキャラクタとの間で「Thinkpad（登録商標）」についての会話がなされている場合に、「価格」という質問が投げかけられると、本システムでは、「LIFEBOOK（登録商標）」の「ＵＨシリーズ  ＷＵ１／Ｍ」についての「価格」ではなく、階層化された「Thinkpad（登録商標）」の「Ｔ４４０Ｓ」というテーマにおける「価格」のことであると判断し、質問に対して相応しい内容を回答することができるようになっている。
【００２２】
タームスＤＢ２０１３は、会話で用いられた単語から推測される場面を記憶するＤＢである。図４は、タームスＤＢ２０１３の例を示す図である。図４に示すように、タームスＤＢ２０１３は、単語を識別するための連番と、その単語が用いられる場面を示す単語キー分類と、単語とが対応付けて記憶されている。図４では、例えば、連番「Ｔ１」〜「１４」によって識別される単語「おはよう」〜「おはよー」までの各単語は、朝（morning）の場面に用いられる単語であるとして、その単語キー分類が登録されている。図４では、各キー分類について、単語のゆらぎを保持するため、様々な単語が同じ単語キー分類で登録されている。上記「morning」等の場面を示す単語のほか、連番「Ｔ１９」、「Ｔ２０」。「Ｔ２１」に示すように、ＮＧワードを示す単語キー分類（卑猥な単語：ng_obscene、犯罪に関連する単語：ng_crime、未成年者に関連する単語：ng_minor等）とそのＮＧワードとを登録しておき、そのような単語が入力された場合には会話を先に進めず、質問をかわすような回答を、本ＤＢや後述するアクションＤＢに登録しておいてもよい。
【００２３】
さらには、連番「Ｔ２２」に示すように、意味を持たない単語を示す単語キー分類（interlude）とそのワードとを登録しておき、そのような単語が入力された場合には、会話のテーマとは全く関係ない質問が入力されたと判断し、その逆を表現するワード（例えば、質問として「もー」が入力された場合には、「もーじゃないよ！」等）による回答を、本ＤＢや後述するアクションＤＢに登録しておいてもよい。
【００２４】
シーンＤＢ２０１４は、単語を用いた会話から推測される場面を記憶するＤＢである。図５は、シーンＤＢ２０１４の例を示す図である。図５に示すように、シーンＤＢ２０１４は、会話を識別するための連番と、その会話の場面を示すシーンキー分類と、会話の回答とが対応付けて記憶されている。図５では、例えば、連番「Ｓ１」で識別される会話の回答「今日はどんな一日でしたか？ゆっくりやすんでくださいね。」は、夜（night）の場面に用いられる回答であるとして、そのシーンキー分類が登録されている。
【００２５】
キャラクタエイリアスＤＢ２０１５は、会話で用いられるキャラクタの別名を記憶するＤＢである。図６は、キャラクタエイリアスＤＢ２０１５の例を示す図である。図６に示すように、キャラクタエイリアスＤＢ２０１５は、別名を識別するための連番と、別名を有するキャラクタの固有名詞と、そのキャラクタの別名であるキャラクタゆらぎとが対応付けて記憶されている。図６では、例えば、連番「ＡＣ１」〜「ＡＣ５」によって識別される固有名詞「雨八百子」は、「雨八百子」〜「ももちゃん」までの５つの呼び方があり、これらの単語をそのキャラクタのゆらぎとして登録されていることを示している。すなわち、ユーザ端末１００からこれらの単語が入力されると、システム側ではその単語が「雨八百子」のことであると認識する。
【００２６】
エイリアスＤＢ２０１６は、会話で用いられる単語の別名を記憶するＤＢである。図７は、エイリアスＤＢ２０１６の例を示す図である。図７に示すように、エイリアスＤＢ２０１６は、別名を識別するための連番と、別名を有する単語を示すベース語句と、その単語の別名である語句ゆらぎとが対応付けて記憶されている。図７では、例えば、連番「Ａ９」〜「Ａ１３」によって識別される単語であるベース語句は、「母親」〜「かあさん」までの６つの呼び方があり、これらの単語をその語句のゆらぎとして登録されていることを示している。すなわち、上記キャラクタエイリアスＤＢ２０１５の場合と同様に、ユーザ端末１００からこれらの単語が入力されると、システム側ではその単語が「母親」のことであると認識する。
【００２７】
アクションＤＢ２０１７は、テーマやシーンに属さない会話におけるユーザへの回答を記憶するＤＢである。図８は、アクションＤＢ２０１７の例を示す図である。図８に示すように、アクションＤＢ２０１７は、アクションを識別するための連番と、ステートメントＤＢ２０１２と同様のテーマ（大、中、小）と、そのアクションを生じさせた理由を示すアクションキー分類と、アクションとが対応付けて記憶されている。図８では、例えば、連番「ＡＴ１」によって識別されるアクション「はじめまして…お調べしましょうか？」は、会話が大テーマ「キャラクタ」に属するアクションであり、そのアクションを生じさせるトリガが、システムへのログイン時（welcome）であることを示している。すなわち、ユーザがユーザ端末１００からシステムにログインした場合に、システム側が上記回答を出力する。また、例えば、ユーザ端末１００から入力された質問が長すぎる場合（アクションキー分類：too_long）、図４で説明したようなＮＧワードが含まれる場合（アクションキー分類：ng_obscene、ng_crime、ng_minor等）において、質問をかわすような回答「申し訳ありません…ご対応させていただきます。」、「すみません、お仕事中なので…」等のような回答をシステム側から出力する。さらには、ユーザ端末１００から名前を入力して呼ばれた場合（アクションキー分類：call）、褒める単語が入力された場合（アクションキー分類：congratulation）等には、「え？呼びましたか？」、「ありがとうございます！」等のような回答をシステム側から出力する。このように、入力される単語の中でテーマやシーンに属さないと考えられる単語を想定し、様々な回答をアクションとして登録しておくことができる。
【００２８】
セッションＤＢ２０１８は、ユーザが本システムにログインして会話を開始してからログオフして会話を終了するまでの一連の質問および回答であるセッション情報を記憶するＤＢである。図９は、セッションＤＢ２０１８の例を示す図である。図９に示すように、セッションＤＢ２０１８は、一連の質問および回答のそれぞれを識別するための連番と、会話の開始から終了までのセッションを識別するためのセッションＩＤと、質問および回答とが対応付けて記憶されている。図９では、例えば、連番ＩＤ「ＳＳ１」〜「ＳＳ１３」によって識別されるセッションＩＤは「Ｓ０００１」であり、各連番で識別されるセッションでの会話は、ステートメントＤＢ２０１２における「ＳＴ７」によって識別される質問とその回答とによって成立していることを示している。このように、セッションＤＢ２０１８には、セッションごとに質問と回答とが対応付けて記憶され。どのセッションにおいてどのような会話がなされたのかを把握することができるようになっている。
【００２９】
ログＤＢ２０１９は、ユーザと本システムのキャラクタとの間で行われた会話の履歴であるログ情報を記憶するＤＢである。図１０は、ログＤＢ２０１９の例を示す図である。図１０に示すように、ログＤＢ２０１９は、会話されたときのそれぞれの質問およびその回答を識別するための連番と、そのときの質問および回答と、その質問および回答のタイプを示す会話タイプと、その質問および回答が行われた日時とが対応付けて記憶されている。図１０では、例えば、２０１４年８月３１日の１１時４６分１３秒から２０１４年８月３１日の１１時５１分３０秒までの間に、連番「ＬＧ１」〜「ＬＧ２１」によって識別される会話がユーザとキャラクタとの間で行われたことを示している。また、「ＬＧ２」から「ＬＧ１２」までの会話、「ＬＧ１４」、「ＬＧ１５」、「ＬＧ１７」〜「ＬＧ２１」までの会話はテーマに属する会話であり、「ＬＧ１３」の会話は「シーン」に属する会話、「ＬＧ１」、「ＬＧ１６」の会話は「アクション」に属する会話であることを示している。
【００３０】
なお、図１０では、ユーザとキャラクタとの会話が１つのセッション内で行われている場合について示しているが、セッションを跨った会話の場合も続けて記憶される。この場合には、連番に対応付けて、図９に示したセッションＩＤをログ情報に対応付けて記憶しておくことにより、どのセッションでどのような会話がなされたのかを把握することができる。なお、会話タイプとは、質問や回答がテーマに属するものであるか、シーンやアクション等、テーマに属さないものであるかを分類するための情報である。
【００３１】
辞書ＤＢ２０２０は、会社名や市区町村等、様々な固有名詞を記憶するＤＢである。辞書ＤＢ２０２０は、一般的なデータベースであるため、以下ではその例示を省略しているが、例えば、固有名詞を識別するための固有名詞ＩＤ、その固有名詞が対応付けて記憶されている。続いて、図１に戻って、言語処理部２０２以降の各部について説明する。
【００３２】
言語処理部２０２は、ユーザ端末１００から受信した質問を解析し、その結果を優先アクション部２０３、ステートメント処理部２０４、シーン処理部２０５、アクション処理部２０６に引き渡し、またはこれらの各部から質問に対する回答や優先アクションを受け取り、ユーザ端末１００に送信する処理部である。言語処理部２０２が行う具体的な処理については、図１２に示すフローチャートを用いて後述する。なお、優先アクションとは、以降の会話処理を進めることが望ましくないと考えられる質問がユーザ端末１００から入力された場合、ユーザがユーザ端末１００からシステムにログインした場合等、ステートメント処理部２０４、シーン処理部２０５、アクション処理部２０６に処理を実行させる前に優先すべきアクションを表している。
【００３３】
優先アクションの例としては、上述したシステムへのログイン時（welcome）、ユーザ端末１００から入力された質問が長すぎる場合（too_long）、ユーザ端末１００から入力された質問にＮＧワードが含まれる場合（ng_obscene、ng_crime、ng_minor等）を含み、公序良俗に反する質問が入力された場合や質問が規定値以上に長い場合等、以降の会話処理を進めることが望ましくないと考えられる質問に対するアクションである。
【００３４】
優先アクション部２０３は、会話を進める前に優先すべきアクションがあるか否かを判定し、優先すべきアクションがあると判定した場合には、その質問に対する回答に代えて、優先アクションとして登録されている回答を言語処理部２０２に引き渡す処理部である。優先アクション部２０３が行う具体的な処理については、図１２に示すフローチャートを用いて後述する。
【００３５】
ステートメント処理部２０４は、ステートメントＤＢ２０１１を参照し、優先アクション処理部２０３から受け取った質問に含まれる単語から、その質問に対する回答を言語処理部２０２に引き渡す処理部である。具体的にはフローチャートを用いて後述するが、ステートメント処理部２０４は、受け取った質問に対する回答を、会話のテーマと同じテーマの中から検索し、その中で回答がない場合には次の上位階層（次の上位階層の中で回答がない場合にはさらにその次の上位階層）のテーマの中から検索し、さらにその上位階層の中で回答がない場合には、どのテーマにも属さない汎用的な質問（例えば、「へー」、「そう？」、「良い」、「悪い」、「遊ぶ」等、それ自体では具体的な質問として成立せず、複数の回答候補が存在する可能性のある単語による質問）が登録されているニュートラルテーマの中から回答を検索し、言語処理部２０２に引き渡す。ステートメントＤＢ２０１１に回答がないと判断した場合には、受け取った質問に含まれる単語をシーン処理部２０５に引き渡す。
【００３６】
シーン処理部２０５は、ステートメント処理部２０４が質問に対する回答がステートメントＤＢ２０１１にないと判断した場合に、シーンＤＢ２０１４、タームスＤＢ２０１３を参照し、ステートメント処理部２０４から受け取った質問に含まれる単語から、その質問に対する回答を言語処理部２０２に引き渡す処理部である。シーン処理部２０５が行う具体的な処理については、図１２に示すフローチャートを用いて後述する。
【００３７】
アクション処理部２０６は、シーン処理部２０５が質問に対する回答がシーンＤＢ２０１４にないと判断した場合に、アクションＤＢ２０１７を参照し、シーン処理部２０５から受け取った質問に含まれる単語から、その質問に対する回答を言語処理部２０２に引き渡す処理部である。アクション処理部２０６が行う具体的な処理については、図１２に示すフローチャートを用いて後述する。
【００３８】
通信部２０７は、ＮＩＣ等の一般的な通信装置であり、サーバ２００とユーザ端末１００との間の各種情報を送受信する。制御部２０８は、ＣＰＵ等の一般的な演算装置であり、上記各部の動作を制御し、後述する各処理を実行する。続いて、本システムで行われる会話処理について説明する。
【００３９】
図１１は、会話処理の実行中におけるユーザ端末１００に表示される画面および会話の流れの例を示す図である。図１１に示すように、ユーザ端末１００の表示部１０２では、ユーザがログインすると、言語処理部２０２は、本システムから「はじめまして…お調べしましょうか？」といった最初の回答Ａを表示する。このとき、その回答に対応付けて、あらかじめサーバ２００に登録されているキャラクタの画像Ｃを表示する。以降、ユーザ端末１００の入力部１０１が、この回答に対する質問Ｑ「パソコンかな」を受け付け、言語処理部２０２は、その質問に対する回答「どちらのパソコンのことをお調べしますか？」を表示する。
【００４０】
このように、ユーザとシステムとの会話が進むにつれて、順次、質問と回答とがユーザ端末１００の表示部１０２に表示される。実際には、ユーザがユーザ端末１００から質問を入力する際には、画面右下に示す入力欄ＱＲに質問を入力し、送信ボタンＢＳをクリックすることにより、質問がサーバ２００に送信される。また、ユーザがオペレータに直接問い合わせる場合には、チャット操作を受けつけるボタンＢＣや電話操作を受け付けるＢボタンＢＴをクリックすることにより、あらかじめ登録されているサイトや電話番号との間の回線が繋がって、各種の問い合わせを行うことができる。
【００４１】
図１２は、本システムで行われる会話処理の処理手順を示すシーケンス図である。図１２に示すように、言語処理部２０２は、まず、ユーザ端末１００によるユーザのログイン操作を受け付け（Ｓ１２０１）、ユーザ端末１００から入力された質問、およびセッション情報を取得する（Ｓ１２０２）。セッション情報は、図９に示したように、ログインして会話を開始してからログオフして会話を終了するまでの一連の質問および回答を示す情報であり、会話が開始されると、言語処理部２０２は、連番「ＳＳ１」およびセッションＩＤ「Ｓ０００１」をセッションＤＢ２０１８に登録する。
【００４２】
続いて、言語処理部２０２は、セッションＤＢ２０１８を参照し、現在の会話がログイン直後のものであるか否かを判定し（Ｓ１２０３）、現在の会話がログイン直後のものであると判定した場合（Ｓ１２０３；Ｙｅｓ）、優先アクションとして登録され、ログイン直後である旨を示す「welcome」を出力し、Ｓ１２０７に進む。
【００４３】
一方、言語処理部２０２は、現在の会話がログイン直後のものでないと判定した場合（Ｓ１２０３；Ｎｏ）、質問を解析して動詞、形容詞、名詞、副詞等の品詞に分かち書きし（Ｓ１２０４）、分かち書きしたそれぞれの品詞の単語について、半角全角変換する等して標準化する（Ｓ１２０５）。その後、言語処理部２０２は、キャラクタエイリアスＤＢ２０１５、エイリアスＤＢ２０１６を参照し、標準化したそれぞれの品詞の単語についてのゆらぎを保持し（Ｓ１２０５）、ゆらぎを保持した単語を優先アクション処理部２０３に引き渡す（Ｓ１２０６）。
【００４４】
優先アクション処理部２０３は、アクションＤＢ２０１７、タームスＤＢ２０１３を参照し、引き渡された単語をアクションＤＢ２０１７の中から検索し（Ｓ１２０７）、優先アクションＤＢ２０１７にその単語を含むアクションが存在するか否かを判定する（Ｓ１２０８）。
【００４５】
優先アクション処理部２０３は、アクションＤＢ２０１７にその単語を含むアクションが存在すると判定した場合（Ｓ１２０８；Ｙｅｓ）、言語処理部２０２にそのアクションを引き渡し（Ｓ１２１０）、言語処理部２０２は、引き渡されたアクションキー分類に対応するアクションを優先アクションとして受け取り（Ｓ１２１１）、セッション情報、ログ情報を保存する（Ｓ１２１２）。例えば、言語処理部２０２は、Ｓ１２０３のＹｅｓにおいて出力された「welcome」をアクションＤＢ２０１７のアクションキー分類と比較し、アクションキー分類「welcome」に対応するアクション「はじめまして…お調べしましょうか？」の連番「ＡＴ１」を取得し、Ｓ１２０２において登録した連番「ＳＳ１」およびセッションＩＤ「Ｓ０００１」に対応する回答ＩＤとして登録する。また、言語処理部２０２は、上記セッションＤＢ２０１８に保存したセッション情報の質問ＩＤによって識別される質問（起動時は対応する質問がないため「−」）、回答ＩＤによって識別される回答（上記「ＡＴ１」に対応する回答）、会話タイプ「アクション」、会話日時を取得し、連番「ＬＧ１」に対応するログ情報として保存する。
【００４６】
なお、優先アクション処理部２０３は、タームスＤＢ２０１３を参照し、質問に含まれる単語の中で、犯罪に関連する単語、卑猥な単語等、公序良俗に反する単語を受け取ったか否かを判定し、そのような単語を受け取ったと判定した場合には、その単語に対応する単語キー分類（例えば、「ng_obscene」、「ng_crime」、「ng_minor」）を読み取り、読み取った単語キー分類に対応するアクション（例えば、アクション「すみません、お仕事中なので…。」）をアクションＤＢ２０１７の中から抽出し、優先アクションとして言語処理部２０２に引き渡してＳ１２１１に進み、Ｓ１２１５以降の会話処理を実行することなく、優先アクション処理部２０３が、上記アクションに対応する連番「ＡＴ１０」、「ＡＴ１１」をセッションＤＢ２０１８の回答ＩＤ欄に登録する。
【００４７】
このように、会話処理を進めることが望ましくないと考えられる質問が入力された場合には、優先アクションとしてあらかじめ定められた回答を言語処理部２０２に引き渡すことにより、以降の会話処理を実行しないため、ユーザは健全にバーチャルな会話を楽しむことができ、システム側の負荷が軽減される。なお、公序良俗に反する単語を使用せざるをえない職務や性格のキャラクタ（例えば、公序良俗に反する行為を取り締まる警察官を表現するキャラクタ、正義感の強いキャラクタなど）については、アクションＤＢ２０１７から上記「ng_obscene」、「ng_crime」、「ng_minor」等の単語キー分類をあらかじめ登録せずに、そのまま会話処理を進めてもよい。すなわち、キャラクタの職務や性格に応じて、上記のような優先アクションを設定することができる。
【００４８】
そして、言語処理部２０２は、Ｓ１２１１で受け取った優先アクションをユーザ端末１００に送信し、ユーザ端末１００の表示部１０２にその回答が表示される（Ｓ１２１３）。さらに、言語処理部２０２は、ユーザがシステムからログアウトしているか否かを判定し（Ｓ１２１４）、ログアウトしている場合には（Ｓ１２１４；Ｙｅｓ）、本会話処理を終了する一方、ログアウトしていない場合には（Ｓ１２１４；Ｎｏ）、Ｓ１２０１に戻って会話処理を続行する。
【００４９】
Ｓ１２０８において、優先アクションＤＢ２０１７にその単語を含むアクションが存在しないと判定した場合（Ｓ１２０８；Ｎｏ）、優先すべきアクションはないと判断し、引き渡された単語をステートメント処理部２０４に引き渡す（Ｓ１２０９）。例えば、言語処理部２０２は、質問「パソコンかな」を分かち書き、標準化した「パソコン」、「パーソナルコンピュータ」、「ｐｃ」等の単語と、「かな」をステートメント処理部２０４に引き渡す。
【００５０】
ステートメント処理部２０４は、優先アクション処理部２０３から単語を受け取ると（Ｓ１２１５）、Ｓ１２０２の場合と同様に、セッション情報を取得する（Ｓ１２１６）。例えば、ステートメント処理部２０４は、連番「ＳＳ２」およびセッションＩＤ「Ｓ０００１」をセッションＤＢ２０１８に登録する。
【００５１】
ステートメント処理部２０４は、ステートメントＤＢ２０１２を参照して、受け取った単語がテーマについての質問であるか否かを判定し（Ｓ１２１７）、受け取った単語がテーマについての質問であると判定した場合（Ｓ１２１７；Ｙｅｓ）、Ｓ１２１９に進む。例えば、ステートメント処理部２０４は、「パソコン」、「パーソナルコンピュータ」、「ｐｃ」等の単語が、ステートメントＤＢ２０１２の連番「ＳＴ３」〜「ＳＴ６」に対応する質問として登録されているため、会話が「ＰＣ」に関するテーマであると判定し、Ｓ１２１９に進む。
【００５２】
一方、ステートメント処理部２０４は、単語にテーマについての質問が含まれていないと判定した場合（Ｓ１２１７；Ｎｏ）、具体的なテーマ以外についての質問（すなわち、大〜小の各テーマにはないニュートラルに属する質問）であると判断し、ステートメントＤＢ２０１２の「ニュートラル」に属するテーマから単語を検索する（Ｓ１２１８）。さらに、ステートメント処理部２０４は、ステートメントＤＢ２０１２の中で「ニュートラル」に属するテーマの単語が存在したか否かを判定し（Ｓ１２１９）、「ニュートラル」に属するテーマの単語が存在したと判定した場合（Ｓ１２１９；Ｙｅｓ）、Ｓ１２１９に進む。例えば、ステートメント処理部２０４は、ユーザ端末１００から質問として「へー」という単語（へー、そうなんだ、という頷き）が入力された場合、その質問がどのテーマにも属さない「ニュートラル」であると判定し、Ｓ１２１９に進む。
【００５３】
一方、ステートメント処理部２０４は、「ニュートラル」に属するテーマの単語が存在しないと判定した場合（Ｓ１２１９；Ｎｏ）、ステートメントＤＢ２０１２にはその質問がないと判断し、引き渡された単語をシーン処理部２０５に引き渡す（Ｓ１２２９）。例えば、ステートメント処理部２０４は、質問「ありがとう」を受け取った場合、ステートメントＤＢ２０１２にはその質問がないため、「ありがとう」をシーン処理部２０５に引き渡す。
【００５４】
そして、ステートメント処理部２０４は、ステートメントＤＢ２０１２の中から、検索するテーマがなくなるまで（すなわち、すべてのテーマについて）、質問に対する回答を検索する処理を開始し（Ｓ１２２０、Ｓ１２２６）、テーマ内における質問に対する回答を検索する（Ｓ１２２１）。そして、テーマ内における質問に対する回答が存在したか否かを判定し（Ｓ１２２２）、テーマ内における質問に対する回答が存在したと判定した場合（Ｓ１２２１；Ｙｅｓ）、言語処理部２０２にその回答を引き渡し（Ｓ１２２３）、言語処理部２０２は、優先アクションの場合と同様に、引き渡された回答を受け取り（Ｓ１２１１）、セッション情報、ログ情報を保存する（Ｓ１２１２）。
【００５５】
例えば、ステートメント処理部２０４は、優先アクション処理部２０３から受け取った「パソコン」、「パーソナルコンピュータ」、「ｐｃ」等の単語が、「ＰＣ」に関するテーマの会話で用いられると判定し、ステートメントＤＢ２０１２の連番「ＳＴ３」〜「ＳＴ６」の中で最も受け取った単語に近い質問である連番「ＳＴ４」の「パソコン」を特定し、対応する回答「どちらのパソコンのことをお調べしますか？」を言語処理部２０２に引き渡す。言語処理部２０２は、ステートメント処理部２０４から上記回答を受け取ると、優先アクションの場合と同様に、ステートメントＤＢ２０１２の中から上記質問および回答に対応する連番「ＳＴ４」を取得し、Ｓ１２１６において登録した連番「ＳＳ２」およびセッションＩＤ「Ｓ０００１」に対応する回答ＩＤとして登録する。また、言語処理部２０２は、上記セッションＤＢ２０１８に保存したセッション情報の質問ＩＤによって識別される質問、回答ＩＤによって識別される回答（上記「ＳＴ４」に対応する回答）、会話タイプ「アクション」、会話日時を取得し、連番「ＬＧ２」に対応するログ情報として保存する。
【００５６】
さらに、ステートメント処理部２０４は、テーマ内における質問に対する回答が存在しないと判定した場合（Ｓ１２２１；Ｎｏ）、その上位テーマ内における質問に対する回答が存在したか否かを判定し（Ｓ１２２４）、その上位テーマ内における質問に対する回答が存在したと判定した場合（Ｓ１２２４；Ｙｅｓ）、言語処理部２０２にその回答を引き渡し（Ｓ１２２５）、言語処理部２０２は、優先アクション等の場合と同様に、引き渡された回答を受け取り（Ｓ１２１１）、セッション情報、ログ情報を保存する（Ｓ１２１２）。
【００５７】
さらに、ステートメント処理部２０４は、どのテーマにも属さない回答が存在するか否かを判定し（Ｓ１２２７）、どのテーマにも属さない回答が存在すると判定した場合（Ｓ１２２７；Ｙｅｓ）、ニュートラルに対応する回答を言語処理部２０２に引き渡し（Ｓ１２２８）、言語処理部２０２は、優先アクション等の場合と同様に、引き渡された回答を受け取り（Ｓ１２１１）、セッション情報、ログ情報を保存する（Ｓ１２１２）。
【００５８】
上記ステートメント処理部２０４における処理では、あるテーマ内（中テーマ内や小テーマ内）で回答を検索し、回答が存在しない場合には、その上位階層のテーマ内（大テーマ内や中テーマ内）で回答を検索する。そして、ステートメント処理部２０４は、その上位階層のテーマの中で回答が存在した場合には、その回答に対応するテーマがカレントテーマであるとしてセッションＤＢ２０１８に登録され、以降の会話処理では、そのカレントテーマ内の下位階層（中テーマ内や小テーマ内）で回答を検索し、回答が存在しない場合には、その上位階層のテーマ内（大テーマ内や中テーマ内）で回答を検索する。このような検索を実行することにより、現在会話中のテーマの中から回答を検索し、それまでのテーマの中に回答がない場合には、システム側でテーマが変わったと判断し、変更後のテーマ内で回答を検索するので、質問したユーザの意図したテーマに沿った会話を続行することができる。
【００５９】
「ニュートラル」に属するテーマの単語が存在しないと判定され（Ｓ１２１９；Ｎｏ）、ステートメント処理部２０４から単語がシーン処理部２０５に引き渡されると（Ｓ１２２９）、シーン処理部２０５は、Ｓ１２０２やＳ１２１６の場合と同様に、セッション情報を取得する（Ｓ１２１６）。例えば、シーン処理部２０５は、連番「ＳＳ１３」およびセッションＩＤ「Ｓ０００１」をセッションＤＢ２０１８に登録する（Ｓ１２３０）。
【００６０】
そして、シーン処理部２０５は、タームスＤＢ２０１３を用いて、ステートメント処理部２０４から受け取った単語からシーンＤＢ２０１４を検索し（Ｓ１２３１）、その単語がシーンＤＢ２０１４に存在するか否かを判定する（Ｓ１２３２）。そして、シーン処理部２０５は、その単語がシーンＤＢ２０１４に存在すると判定した場合（Ｓ１２３２；Ｙｅｓ）、言語処理部２０２にその回答を引き渡し（Ｓ１２３３）、言語処理部２０２は、優先アクション等の場合と同様に、引き渡された回答を受け取り（Ｓ１２１１）、セッション情報、ログ情報を保存する（Ｓ１２１２）。
【００６１】
例えば、シーン処理部２０５は、ステートメント処理部２０４から単語「ありがとう」を受け取った場合、タームスＤＢ２０１３を検索し、「ありがとう」に対応する単語キー分類「thank」を取得する。シーン処理部２０５は、シーンＤＢ２０１４の中から、取得した単語キー分類「thank」に対応する回答「とんでもございません。」を言語処理部２０２に引き渡す。言語処理部２０２は、シーン処理部２０５から上記回答を受け取ると、優先アクション等の場合と同様に、タームスＤＢ２０１３の中から上記質問に対応する連番「Ｔ１５」及びシーンＤＢ２０１４の中から上記回答に対応する連番「Ｓ８」を取得し、Ｓ１２３０において登録した連番「ＳＳ１３」およびセッションＩＤ「Ｓ０００１」に対応する質問ＩＤ及び回答ＩＤとしてそれぞれ登録する。また、言語処理部２０２は、上記セッションＤＢ２０１８に保存したセッション情報の質問ＩＤによって識別される質問、回答ＩＤによって識別される回答（上記「Ｔ１５」に対応する回答）、会話タイプ「シーン」、会話日時を取得し、連番「ＬＧ１３」に対応するログ情報として保存する。
【００６２】
一方、シーン処理部２０５は、その単語がシーンＤＢ２０１４に存在しないと判定した場合（Ｓ１２３２；Ｎｏ）、シーンＤＢ２０１４にはその質問がないと判断し、引き渡された単語をアクション処理部２０６に引き渡す（Ｓ１２３４）。例えば、シーン処理部２０５は、質問「もも！」を受け取った場合、シーンＤＢＤＢ２０１４にはその質問がないため、「もも！」をアクション処理部２０６に引き渡す。
【００６３】
シーンＤＢ２０１４に属する単語が存在しないと判定され（Ｓ１２３２；Ｎｏ）、シーン処理部２０５から単語がアクション処理部２０６に引き渡されると（Ｓ１２３４）、アクション処理部２０６は、Ｓ１２０２やＳ１２１６、Ｓ１２３０の場合と同様に、セッション情報を取得する（Ｓ１２３５）。例えば、アクション処理部２０６は、連番「ＳＳ１６」およびセッションＩＤ「Ｓ０００１」をセッションＤＢ２０１８に登録する（Ｓ１２３５）。
【００６４】
そして、アクション処理部２０６は、キャラクタエイリアスＤＢ２０１５を用いて、シーン処理部２０５から受け取った単語からアクションＤＢ２０１７を検索し（Ｓ１２３６）、言語処理部２０２に検索した回答を引き渡し（Ｓ１２３７）、言語処理部２０２は、優先アクション等の場合と同様に、引き渡された回答を受け取り（Ｓ１２１１）、セッション情報、ログ情報を保存する（Ｓ１２１２）。
【００６５】
例えば、アクション処理部２０６は、シーン処理部２０５から単語「もも！」を受け取った場合、キャラクタエイリアスＤＢ２０１５を検索し、「もも」に対応するキャラクタの固有名詞「雨八百子」を取得し、システム側では自身が呼ばれたことを示すアクション（call）を認識する。アクション処理部２０６は、アクションＤＢ２０１７の中から、認識したアクション（call）に対応する回答「え？呼びましたか？」を言語処理部２０２に引き渡す。言語処理部２０２は、アクション処理部２０６から上記回答を受け取ると、優先アクション等の場合と同様に、キャラクタエイリアスＤＢ２０１５の中から上記質問に対応する連番「ＡＣ４」及びアクションＤＢ２０１７の中から上記回答に対応する連番「ＡＴ８」を取得し、Ｓ１２３５において登録した連番「ＳＳ１６」およびセッションＩＤ「Ｓ０００１」に対応する質問ＩＤ及び回答ＩＤとしてそれぞれ登録する。また、言語処理部２０２は、上記セッションＤＢ２０１８に保存したセッション情報の質問ＩＤによって識別される質問、回答ＩＤによって識別される回答（上記「ＡＣ４」に対応する回答）、会話タイプ「アクション」、会話日時を取得し、連番「ＬＧ１６」に対応するログ情報として保存する。
【００６６】
なお、アクション処理部２０６は、Ｓ１２３６を実行した後、その単語がアクションＤＢ２０１７に存在するか否かを判定し、その単語がアクションＤＢ２０１７に存在すると判定した場合に言語処理部２０２にその回答を引き渡し、その単語がアクションＤＢ２０１７に存在しないと判定した場合には、「どうお答えしようかしら？」等、回答に躊躇することを示す所定の回答文を言語処理部２０２に引き渡してもよい。
【００６７】
このようにして、図１１に示したように、ユーザとキャラクタとの間で上記処理が繰り返し実行されると、図９に示したセッションＤＢ２０１７や図１０に示したログＤＢ２０１９が蓄積される。その会話の中では、まず、テーマ「ＰＣ」に関する会話が行われ（図１０の連番「ＬＧ２」、図３の連番「ＳＴ４」）、ユーザから質問「thinkpad（登録商標）」が入力されると（図１０の連番「ＬＧ３」、図３の連番「ＳＴ９」）、テーマ「ＰＣ」には「thinkpad（登録商標）」に関するテーマがないため、他のテーマ（大テーマ）の中からその質問のテーマ「thinkpad（登録商標）」を検索し、その質問に対応する回答が出力される。さらにユーザから質問「t440s」が入力されると、カレントテーマである「thinkpad（登録商標）」の中からその質問に対する回答を検索し、回答が出力される。さらに、同じテーマ内で会話が続き、ユーザから質問「lifebook（登録商標）」が入力されると、カレントテーマ「thinkpad（登録商標）」内の大、中、小のいずれのテーマにもないため、他のテーマ（大テーマ）の中からその質問のテーマ「lifebook（登録商標）」を検索し、その質問に対応する回答が出力される（図１０の連番「ＬＧ８」、図３の連番「ＳＴ２１」）。
【００６８】
以降、上記と同様に同じテーマ内での会話が進み、さらにユーザから質問「ありがとう」が入力されると、カレントテーマである「lifebook（登録商標）」やステートメントＤＢ２０１２の他のテーマの中からその質問に対する回答を検索するが、回答が存在しないため、シーンＤＢ２０１４を検索する。このとき、タームスＤＢ２０１３を用いて単語「ありがとう」に対応する単語キー分類「thank」を取得し、システムでは、お礼を言う場面であると判断し、その「thank」に対応する回答を、シーンＤＢ２０１４の中から検索し、その質問に対応する回答が出力される（図１０の連番「ＬＧ１３」、図５の連番「Ｓ８」）。
【００６９】
さらに、ユーザから質問「お名前は？」が入力されると、カレントテーマである「lifebook（登録商標）」やの中からその質問に対する回答を検索するが、回答が存在しないため、他のテーマ「キャラクタ」の中から検索し、その質問に対応する回答が出力される（図１０の連番「ＬＧ１４」、図３の連番「ＳＴ３４」）。そして、ユーザから質問「あだ名は？」が入力されると、カレントテーマである「キャラクタ」の中からその回答を検索し、その質問に対応する回答が出力される（図１０の連番「ＬＧ１５」、図３の連番「ＳＴ３５」）。
【００７０】
さらに、ユーザから質問「好きな音楽は？」が入力されると、カレントテーマである「キャラクタ」（大テーマ）、「好き」（中テーマ）、「音楽」（小テーマ）の中からその質問に対する回答を検索し、その質問に対応する回答が出力される（図１０の連番「ＬＧ１７」、図３の連番「ＳＴ４６」）。そして、ユーザから質問「例えば？」が入力されると、カレントテーマである「キャラクタ」、「好き」、「音楽」の中からその質問に対する回答を検索し、その質問に対応する回答が出力される（図１０の連番「ＬＧ１８」、図３の連番「ＳＴ５０」）。さらに、ユーザから質問「他には？」が入力されると、上記と同じカレントテーマ（「キャラクタ」（大テーマ）、「好き」（中テーマ）、「音楽」（小テーマ））の中からその質問に対する回答を検索し、その質問に対応する回答が出力される（図１０の連番「ＬＧ１９」、図３の連番「ＳＴ５２」）。
【００７１】
ここで、ユーザから質問「へー」が入力されると、カレントテーマである「キャラクタ」、「好き」、「音楽」の中ではその質問に対する回答が存在しないため、他のテーマを検索し、カレントテーマ「ニュートラル」の中で、質問に対応する回答が出力される（図１０の連番「ＬＧ２０」、図３の連番「ＳＴ３９」）。このとき、図３では、他のテーマ「キャラクタ」、「性格」における質問「へー」に対応する回答「テニス大好き！スポーツ女子です。」が登録されているが、システム側では、中テーマや小テーマの中に条件に該当する回答が存在した場合であっても、上位階層である大テーマから下位階層である小テーマの順に回答を検索するので、上記回答は選択しない。その理由は、キャラクタの性格についての「へー」と、単なるうなずきの「へー」とは意味が全く異なるためであり、カレントテーマである「キャラクタ」、「好き」、「音楽」に中に質問に対する回答がない場合には、どのテーマにも属さない単なるうなずきであると判断し、テーマ「ニュートラル」の中の「へー」に対応する回答「済みません、今上司に呼ばれてしまいまして…。」がその質問に対応する回答として出力される。さらに、ユーザから質問「ゴメンね」が入力されると、カレントテーマである「ニュートラル」の中からその質問に対する回答を検索し、その質問に対応する回答が出力される（図１０の連番「ＬＧ２１」、図３の連番「ＳＴ５４」）。
【００７２】
このように、上記のように会話処理を実行するので、テーマが変わったり、テーマから外れた単語が入力された場合であっても、ユーザとシステムとの間の会話の連続性を維持することが可能となる。例えば、ユーザから入力された質問に対して、システム側は、見当違いの回答を出力することなくユーザの質問意図に沿った回答を出力することができ、ユーザ側は、バーチャルな会話を、テーマを横断して楽しむことができる。
【００７３】
また、従来から会話処理に使用されている、いわゆる「シナリオ方式」とは異なり、会話のテーマが変更されても柔軟に対応することができ、変更されたテーマでも連続対話を再現することができる。さらには、会話の途中にユーザが意味のない「あ〜あ」や「疲れた」などつぶやきや上記のようなうなずきが入力されたような場合であっても、そのつぶやきやうなずきに対応しつつも会話のテーマを保持し、会話を継続することができる。
【００７４】
これまで説明した会話処理を実行するために、本システムでは、ユーザと会話するキャラクタや上記各種ＤＢをあらかじめ登録する登録処理を実行する。登録処理は、図１に示したユーザ端末１００から行ってもよいし、ユーザ端末１００と同様の構成を有した管理者端末から実行してもよい。
【００７５】
図１３は、キャラクタを登録するためのキャラクタ登録画面の例を示す図である。キャラクタ登録画面は、上記ユーザ端末１００や管理者端末の表示部に表示される。図１３に示すように、キャラクタ登録画面には、登録するキャラクタの一覧が表示され、ユーザはあるキャラクタ（例えば、雨八百子）を選択すると、ユーザ端末１００や管理者端末がその操作を受け付けて、そのキャラクタとユーザとの間で行われる会話を登録する会話登録画面が表示される。
【００７６】
図１４は、会話登録画面の例を示す図である。図１４では、会話（すなわち、ステートメントＤＢ２０１２の内容）を登録する場合を例示しているが、シーンＤＢ２０１４等の他のＤＢについても同様に登録することができる。図１４に示すように、会話登録画面には、大〜小の各テーマと、想定される質問および回答とを対応付けた入力欄が設けられている。ユーザがこれらの入力欄からテーマや質問および回答を入力すると、ユーザ端末１００や管理者端末がその操作により受け付けたこれらの情報をサーバ２００に送信し、サーバ２００は、図３に示したような表形式でこれらの情報をステートメントＤＢ２０１２に登録する。このようなユーザインタフェースを利用することにより、本システムの管理者は、本システムで利用する各種ＤＢの内容を容易に登録することが可能となる。
【００７７】
上記キャラクタ登録画面や会話登録画面はあらかじめ記憶部２０１に記憶され、サーバ２００の制御部２０８の一機能である登録処理部が記憶部２０１に記憶された上記画面を読み出してユーザ端末１００の表示部１０２に表示し、ユーザ端末１００の入力部１０１は、上記画面の各項目の内容の入力を受け付け、上記登録処理部が、入力された各項目の内容をステートメントＤＢ２０１２やキャラクタエイリアスＤＢ２０１５等の各ＤＢに登録される。
【００７８】
本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。例えば、各データベースを１又は複数のデータベースに纏めたり、優先アクションを定義する必要のないキャラクタの場合には、アクションＤＢ２０１７から優先アクションとして登録した内容を削除し、優先アクション処理部２０３を備えない等、各構成を組み合わせたり削除する等して本発明の要旨を逸脱しない範囲で適宜変形してもよい。
【００７９】
さらには、上記実施例では、キャラクタエイリアスＤＢ２０１５があらかじめ記憶されている前提で説明したが、上記登録処理部がユーザ端末１００から入力された内容をキャラクタエイリアスＤＢ２０１５に登録し、図１２に示した会話処理で読み出してもよい。この場合、流行の言葉を用いるなどしてユーザ主導でキャラクタの呼び方を設定することができる。
【符号の説明】
【００８０】
１０００              会話処理システム
１００                ユーザ端末
１０１                入力部
１０２                表示部
１０３                通信部
１０４                制御部
２００                サーバ
２０１                記憶部
２０１１              ユーザＤＢ
２０１２              ステートメントＤＢ
２０１３              タームスＤＢ
２０１４              シーンＤＢ
２０１５              キャラクタエイリアスＤＢ
２０１６              エイリアスＤＢ
２０１７              アクションＤＢ
２０１８              セッションＤＢ
２０１９              ログＤＢ２０１９
２０２０              辞書ＤＢ
２０２                言語処理部
２０３                優先アクション処理部
２０４                ステートメント処理部
２０５                シーン処理部
２０６                アクション処理部
２０７                通信部
２０８                制御部
３００                ネットワーク。
【図１】
2016126452.tif 000003
【図２】
2016126452.tif 000004
【図３】
2016126452.tif 000005
【図４】
2016126452.tif 000006
【図５】
2016126452.tif 000007
【図６】
2016126452.tif 000008
【図７】
2016126452.tif 000009
【図８】
2016126452.tif 000010
【図９】
2016126452.tif 000011
【図１０】
2016126452.tif 000012
【図１１】
2016126452.tif 000013
【図１２】
2016126452.tif 000014
【図１３】
2016126452.tif 000015
【図１４】
2016126452.tif 000016