(57)【特許請求の範囲】
【請求項１】
対話の繋がりを示す情報であり、第一話者の出力文を抽象する第一対話行為タグ、または第二話者の出力文を抽象する第二対話行為タグを有する対話連結情報を１以上有する対話構造情報を格納し得る対話構造情報格納部と、
第二対話行為タグと１以上の文とを有する出力文情報を格納し得る出力文情報格納部と、
第一話者の出力文を受け付ける受付部と、
前記対話構造情報格納部から、前記受付部が受け付けた出力文を用いて、当該出力文に対応する第一対話行為タグを取得する第一対話行為タグ取得部と、
前記第一対話行為タグ取得部が取得した第一対話行為タグに対応する１以上の第二対話行為タグのうちの、一の第二対話行為タグを取得する第二対話行為タグ取得部と、
前記第二対話行為タグ取得部が取得した第二対話行為タグに対応する文を、前記出力文情報格納部から取得する文取得部と、
前記文取得部が取得した文を出力する文出力部を具備し、
前記対話連結情報は、
対話の始端を示すノードを識別する始端ノード識別子と、対話の終端を示すノードを識別する終端ノード識別子と、第一対話行為タグまたは／および第二対話行為タグと、前記始端ノード識別子で識別されるノードから前記終端ノード識別子で識別されるノードへの遷移の確率を示す情報である重み情報とを有し、
前記対話構造情報は、
ノードを状態とし、状態間の１以上の遷移を示す２以上のルートを有する有限状態遷移で構成され、
現在の対話の状態を示すノードを識別するカレントノード識別子を格納し得るカレントノード識別子格納部と、
前記文出力部が出力した文に対応する第二対話行為タグと対になる終端ノード識別子を、カレントノード識別子に書き換えるカレントノード識別子更新部とをさらに具備し、
前記第二対話行為タグ取得部は、
前記カレントノード識別子格納部に格納されているカレントノード識別子と一致する始端ノード識別子であり、前記有限状態遷移の中の始端ノード識別子に対応し、かつ、前記第一対話行為タグ取得部が取得した第一対話行為タグに対応する２以上の第二対話行為タグであり、前記有限状態遷移の中の２以上の第二対話行為タグのうち、前記カレントノード識別子で識別されるノードから当該ノードより２以上先の終端ノード識別子で識別されるノードまでのルートであり、前記有限状態遷移の中のルートにおける重み情報の合計である累積重み情報を用いて、最も高い遷移確率を示す累積重み情報に対応するルートに含まれる第二対話行為タグを取得する対話装置。
【請求項２】
前記出力文情報は、
第二対話行為タグと、用語と、１以上の文とを有し、
前記文取得部は、
前記受付部が受け付けた出力文から用語を取得する用語取得手段と、
前記用語取得手段が取得した用語に対応し、かつ、前記第二対話行為タグ取得部が取得した第二対話行為タグに対応する文を、前記出力文情報格納部から取得する文取得手段とを具備する請求項１記載の対話装置。
【請求項３】
前記対話連結情報は、
動作を示す情報である動作識別子を、さらに有し、
動作識別子に対応する動作を行う動作手段を１以上格納している動作手段格納部と、
前記第二対話行為タグ取得部が取得した第二対話行為タグに対応する動作識別子を取得し、当該動作識別子に対応する動作手段を実行する実行部とをさらに具備する請求項１または請求項２記載の対話装置。
【請求項４】
対話の履歴に関する情報である履歴情報を格納し得る履歴情報格納部と、
前記受付部が受け付けた出力文から、履歴情報を取得する履歴情報取得部と、
前記履歴情報取得部が取得した履歴情報を前記履歴情報格納部に蓄積する履歴情報蓄積部とをさらに具備し、
前記履歴情報は、
予め格納されており、肯定的な内容を示す１以上のいずれかの評価語の対象となる用語であり、第一話者が肯定的である対象を示す用語である肯定用語を含み、
前記文取得部は、
前記肯定用語に対応する文であり、前記第二対話行為タグ取得部が取得した第二対話行為タグに対応する文を、前記出力文情報格納部から取得する請求項１から請求項３いずれか記載の対話装置。
【請求項５】
対話の履歴に関する情報である履歴情報を格納し得る履歴情報格納部と、
前記受付部が受け付けた出力文から、履歴情報を取得する履歴情報取得部と、
前記履歴情報取得部が取得した履歴情報を前記履歴情報格納部に蓄積する履歴情報蓄積部とをさらに具備し、
前記履歴情報は、
予め格納されており、否定的な内容を示す１以上のいずれかの評価語の対象となる用語であり、第一話者が否定的である対象を示す用語である否定用語を含み、
前記文取得部は、
前記否定用語に対応する文以外の文であり、前記第二対話行為タグ取得部が取得した第二対話行為タグに対応する文を、前記出力文情報格納部から取得する請求項１から請求項３いずれか記載の対話装置。
【請求項６】
対話の履歴に関する情報である履歴情報を格納し得る履歴情報格納部と、
前記受付部が受け付けた出力文から、履歴情報を取得する履歴情報取得部と、
前記履歴情報取得部が取得した履歴情報を前記履歴情報格納部に蓄積する履歴情報蓄積部とをさらに具備し、
前記履歴情報は、
第一話者が肯定的か否定的かの判断を保留した対象を示す保留用語を含み、
前記文取得部は、
前記保留用語に対応する文であり、前記第二対話行為タグ取得部が取得した第二対話行為タグに対応する文を、前記出力文情報格納部から取得する請求項１から請求項３いずれか記載の対話装置。
【請求項７】
対話の履歴に関する情報である履歴情報を格納し得る履歴情報格納部と、
前記受付部が受け付けた出力文から、履歴情報を取得する履歴情報取得部と、
前記履歴情報取得部が取得した履歴情報を前記履歴情報格納部に蓄積する履歴情報蓄積部とをさらに具備し、
前記履歴情報は、
既に話題に出た用語である既出用語を含み、
前記文取得部は、
前記既出用語に対応する文以外の文であり、前記第二対話行為タグ取得部が取得した第二対話行為タグに対応する文を、前記出力文情報格納部から取得する請求項１から請求項３いずれか記載の対話装置。
【請求項８】
前記対話構造情報格納部における重み情報は、
第一対話行為タグまたは第二対話行為タグと対話文の対の集合であり、対話の流れを示す情報である対話行為タグ付き対話文コーパスを格納している対話行為タグ付き対話文コーパス格納部と、
前記対話行為タグ付き対話文コーパスから、第一対話行為タグまたは第二対話行為タグの順序付きの情報である対話行為タグ出現順序情報を取得する対話行為タグ出現順序情報取得部と、
前記対話行為タグ出現順序情報を用いて、前記対話構造情報格納部の対話構造情報を参照し、当該対話行為タグ出現順序情報が有する第一対話行為タグまたは／および第二対話行為タグを有する対話連結情報に含まれる重み情報を構成する重み情報構成部と、
前記重み情報構成部が構成した重み情報を、前記対話構造情報格納部に蓄積する重み情報蓄積部を具備する重み情報学習装置により学習された重み情報である、請求項１から請求項７いずれか記載の対話装置。
【請求項９】
受付部、第一対話行為タグ取得部、第二対話行為タグ取得部、文取得部、文出力部、およびカレントノード識別子更新部により実現される対話方法であって、
前記受付部により、第一話者の出力文を受け付ける受付ステップと、
前記第一対話行為タグ取得部により、対話の繋がりを示す情報であり、第一話者の出力文を抽象する第一対話行為タグ、または第二話者の出力文を抽象する第二対話行為タグを有する対話連結情報を１以上有する対話構造情報から、前記受付ステップで受け付けた出力文を用いて、当該出力文に対応する第一対話行為タグを取得する第一対話行為タグ取得ステップと、
前記第二対話行為タグ取得部により、前記第一対話行為タグ取得ステップで取得した第一対話行為タグに対応する１以上の第二対話行為タグのうちの、一の第二対話行為タグを取得する第二対話行為タグ取得ステップと、
前記文取得部により、第二対話行為タグと１以上の文とを有する出力文情報から、前記第二対話行為タグ取得ステップで取得した第二対話行為タグに対応する文を取得する文取得ステップと、
前記文出力部により、前記文取得部が取得した文を出力する文出力ステップとを具備し、
前記対話連結情報は、
対話の始端を示すノードを識別する始端ノード識別子と、対話の終端を示すノードを識別する終端ノード識別子と、第一対話行為タグまたは／および第二対話行為タグと、前記始端ノード識別子で識別されるノードから前記終端ノード識別子で識別されるノードへの遷移の確率を示す情報である重み情報とを有し、
前記対話構造情報は、
ノードを状態とし、状態間の１以上の遷移を示す２以上のルートを有する有限状態遷移で構成され、
記憶媒体に、
現在の対話の状態を示すノードを識別するカレントノード識別子を格納しており、
前記カレントノード識別子更新部により、前記文出力部が出力した文に対応する第二対話行為タグと対になる終端ノード識別子を、カレントノード識別子に書き換えるカレントノード識別子更新ステップとをさらに具備し、
前記第二対話行為タグ取得ステップにおいて、
前記記憶媒体に格納されているカレントノード識別子と一致する始端ノード識別子であり、前記有限状態遷移の中の始端ノード識別子に対応し、かつ、前記第一対話行為タグ取得部が取得した第一対話行為タグに対応する２以上の第二対話行為タグであり、前記有限状態遷移の中の２以上の第二対話行為タグのうち、前記カレントノード識別子で識別されるノードから当該ノードより２以上先の終端ノード識別子で識別されるノードまでのルートにおける重み情報の合計である累積重み情報を用いて、最も高い遷移確率を示す累積重み情報に対応するルートに含まれる第二対話行為タグを取得する対話方法。
【請求項１０】
コンピュータを、
第一話者の出力文を受け付ける受付部と、
対話の繋がりを示す情報であり、第一話者の出力文を抽象する第一対話行為タグ、または第二話者の出力文を抽象する第二対話行為タグを有する対話連結情報を１以上有する対話構造情報を格納している記憶媒体から、前記受付部が受け付けた出力文を用いて、当該出力文に対応する第一対話行為タグを取得する第一対話行為タグ取得部と、
前記第一対話行為タグ取得部が取得した第一対話行為タグに対応する１以上の第二対話行為タグのうちの、一の第二対話行為タグを取得する第二対話行為タグ取得部と、
第二対話行為タグと１以上の文とを有する出力文情報を格納している記憶媒体から、前記第二対話行為タグ取得部が取得した第二対話行為タグに対応する文を取得する文取得部と、前記文取得部が取得した文を出力する文出力部として機能させるためのプログラムであって、
前記対話連結情報は、
対話の始端を示すノードを識別する始端ノード識別子と、対話の終端を示すノードを識別する終端ノード識別子と、第一対話行為タグまたは／および第二対話行為タグと、前記始端ノード識別子で識別されるノードから前記終端ノード識別子で識別されるノードへの遷移の確率を示す情報である重み情報とを有し、
前記対話構造情報は、
ノードを状態とし、状態間の１以上の遷移を示す２以上のルートを有する有限状態遷移で構成され、
記憶媒体に、
現在の対話の状態を示すノードを識別するカレントノード識別子をさらに格納しており、
前記文出力部が出力した文に対応する第二対話行為タグと対になる終端ノード識別子を、カレントノード識別子に書き換えるカレントノード識別子更新部として、さらにコンピュータを機能させ、
前記第二対話行為タグ取得部は、
前記カレントノード識別子格納部に格納されているカレントノード識別子と一致する始端ノード識別子であり、前記有限状態遷移の中の始端ノード識別子に対応し、かつ、前記第一対話行為タグ取得部が取得した第一対話行為タグに対応する２以上の第二対話行為タグであり、前記有限状態遷移の中の２以上の第二対話行為タグのうち、前記有限状態遷移の中のルートであり、前記カレントノード識別子で識別されるノードから当該ノードより２以上先の終端ノード識別子で識別されるノードまでのルートにおける重み情報の合計である累積重み情報を用いて、最も高い遷移確率を示す累積重み情報に対応するルートに含まれる第二対話行為タグを取得するものとして、コンピュータを機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザとの対話を実行する対話装置等に関するものである。
【背景技術】
【０００２】
従来、対話の単調さを解消して対話に興味を持たせることにより使用頻度の低下を防止したコミュニケーション支援装置があった（特許文献１参照）。本コミュニケーション支援装置の対話処理手段は、音声入力部および音声出力部を通して使用者と自然言語による対話を行う。そして、その対話処理手段では使用者に応答する応答者として想定したキャラクタが複数種類から選択可能であり、統括制御部では対話環境に応じて適宜のキャラクタを選択する。また、キャラクタは声色や口調によって応答者を区別するものであった。
【０００３】
また、対話を活発化させ、円滑に継続させるような話題を提示することができる対話支援装置および対話支援システムがあった（特許文献２参照）。本対話支援システムは、利用者が相手と対話する際に、制御手段が、その相手のプロフィールをプロフィール保持部から取得して表示部に表示するように制御するものである。
【特許文献１】特開２００３−１０８３６２号公報（第１頁、第１図等）
【特許文献２】特開２００３−１５７２２４号公報（第１頁、第１図等）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の対話装置においては、人間が当該対話装置と自然に対話できることができなかった。
【課題を解決するための手段】
【０００５】
本第一の発明の対話装置は、対話の繋がりを示す情報であり、第一話者の出力文を抽象する第一対話行為タグ、または第二話者の出力文を抽象する第二対話行為タグとを有する対話連結情報を１以上有する対話構造情報を格納し得る対話構造情報格納部と、第二対話行為タグと１以上の文とを有する出力文情報を格納し得る出力文情報格納部と、第一話者の出力文を受け付ける受付部と、前記対話構造情報格納部から、前記受付部が受け付けた出力文を用いて、当該出力文に対応する第一対話行為タグを取得する第一対話行為タグ取得部と、前記第一対話行為タグ取得部が取得した第一対話行為タグに対応する１以上の第二対話行為タグのうちの、一の第二対話行為タグを取得する第二対話行為タグ取得部と、前記第二対話行為タグ取得部が取得した第二対話行為タグに対応する文を、前記出力文情報格納部から取得する文取得部と、前記文取得部が取得した文を出力する文出力部を具備する対話装置である。
【０００６】
かかる構成により、人間は対話装置と、より自然に対話できる。また、例えば、対話構造情報（対話状態の構造）と対話で用いる文の集合を分離しているので、文の集合を入れ替えれば、種々の話題（タスク）に対応できる。
【０００７】
また、本第二の発明の対話装置は、第一の発明に対して、前記出力文情報は、第二対話行為タグと、用語と、１以上の文とを有し、前記文取得部は、前記受付部が受け付けた出力文から用語を取得する用語取得手段と、前記用語取得手段が取得した用語に対応し、かつ、前記第二対話行為タグ取得部が取得した第二対話行為タグに対応する文を、前記出力文情報格納部から取得する文取得手段とを具備する対話装置である。
【０００８】
かかる構成により、人間は対話装置と、より自然に対話できる。
【０００９】
また、本第三の発明の対話装置は、第一、第二いずれかの発明に対して、前記対話連結情報は、対話の始端を示すノードを識別する始端ノード識別子と、対話の終端を示すノードを識別する終端ノード識別子と、第一対話行為タグと、第二対話行為タグとを有し、前記対話構造情報は、ノードを状態とする有限状態遷移で構成され、現在の対話の状態を示すノードを識別するカレントノード識別子を格納し得るカレントノード識別子格納部と、前記文出力部が出力した文に対応する第二対話行為タグと対になる終端ノード識別子を、カレントノード識別子に書き換えるカレントノード識別子更新部とをさらに具備し、前記第二対話行為タグ取得部は、前記カレントノード識別子格納部に格納されているカレントノード識別子と一致する始端ノード識別子に対応し、かつ、前記第一対話行為タグ取得部が取得した第一対話行為タグに対応する一の第二対話行為タグを取得する対話装置である。
【００１０】
かかる構成により、人間は対話装置と、より自然に、次々と対話できる。
【００１１】
また、本第四の発明の対話装置は、第三の発明に対して、前記対話連結情報は、始端ノード識別子で識別されるノードから終端ノード識別子で識別されるノードへの遷移の確率を示す情報である重み情報をも有し、前記第二対話行為タグ取得部は、前記カレントノード識別子格納部に格納されているカレントノード識別子と一致する始端ノード識別子に対応し、かつ、前記第一対話行為タグ取得部が取得した第一対話行為タグに対応する２以上の第二対話行為タグのうち、前記重み情報を用いて、より高い遷移確率を示す重み情報と対になる第二対話行為タグを選択する対話装置である。
【００１２】
かかる構成により、人間は対話装置と、より自然に、次々と対話できる。
【００１３】
また、本第五の発明の対話装置は、第一から第四いずれかの発明に対して、前記対話連結情報は、動作を示す情報である動作識別子を、さらに有し、動作識別子に対応する動作を行う動作手段を１以上格納している動作手段格納部と、前記第二対話行為タグ取得部が取得した第二対話行為タグに対応する動作識別子を取得し、当該動作識別子に対応する動作手段を実行する実行部とをさらに具備する対話装置である。
【００１４】
かかる構成により、対話の内容や、対話の状況に応じた動作が可能な動作識別子、動作手段を登録しておけば、種々の対話支援を提供できる。例えば、動作が音声認識処理および音声合成処理を含む場合、音声による対話を実現できる。また、動作が機械翻訳処理を含む場合、２カ国以上の言語間での対話を実現できる。
【００１５】
また、本第六の発明の対話装置は、第一から第五いずれかの発明に対して、対話の履歴に関する情報である履歴情報を格納し得る履歴情報格納部と、前記受付部が受け付けた出力文から、履歴情報を取得する履歴情報取得部と、前記履歴情報取得部が取得した履歴情報を前記履歴情報格納部に蓄積する履歴情報蓄積部とをさらに具備し、前記文取得部は、前記履歴情報を用いて、前記第二対話行為タグ取得部が取得した第二対話行為タグに対応する文を、前記出力文情報格納部から取得する対話装置である。
【００１６】
かかる構成により、行われている対話の履歴情報を蓄積していくことにより、人間は対話装置と、より自然に、次々と対話できる。
【００１７】
また、本第七の発明の対話装置は、第六の発明に対して、前記履歴情報は、第一話者が肯定的である対象を示す肯定用語を含み、前記文取得部は、前記肯定用語に対応する文であり、前記第二対話行為タグ取得部が取得した第二対話行為タグに対応する文を、前記出力文情報格納部から取得する対話装置である。
【００１８】
かかる構成により、ユーザが肯定的に考えている対象について、確実に、情報提供できる。
【００１９】
また、本第八の発明の対話装置は、第六の発明に対して、前記履歴情報は、第一話者が否定的である対象を示す否定用語を含み、前記文取得部は、前記否定用語に対応する文以外の文であり、前記第二対話行為タグ選択部が選択した第二対話行為タグに対応する文を、前記出力文情報格納部から取得する対話装置である。
【００２０】
かかる構成により、ユーザが否定的に考えている対象について、情報提供したりする不具合を防止できる。
【００２１】
また、本第九の発明の対話装置は、第六の発明に対して、前記履歴情報は、第一話者が肯定的か否定的かの判断を保留した対象を示す保留用語を含み、前記文取得部は、前記保留用語に対応する文であり、前記第二対話行為タグ取得部が取得した第二対話行為タグに対応する文を、前記出力文情報格納部から取得する対話装置である。
かかる構成により、ユーザが判断を保留した対象についても、情報提供できる。
【００２２】
また、本第十の発明の対話装置は、第六の発明に対して、前記履歴情報は、既に話題に出た用語である既出用語を含み、前記文取得部は、前記既出用語に対応する文以外の文であり、前記第二対話行為タグ取得部が取得した第二対話行為タグに対応する文を、前記出力文情報格納部から取得する対話装置である。
【００２３】
かかる構成により、一度、対話の中で出てきた対象について、情報提供したりする不具合を防止できる。
【００２４】
また、本第十一の発明の重み情報学習装置は、対話装置の対話構造情報格納部における重み情報を学習する重み情報学習装置であって、第一対話行為タグまたは第二対話行為タグと対話文の対の集合であり、対話の流れを示す情報である対話行為タグ付き対話文コーパスを格納している対話行為タグ付き対話文コーパス格納部と、前記対話行為タグ付き対話文コーパスから、第一対話行為タグまたは第二対話行為タグの順序付きの情報である対話行為タグ出現順序情報を取得する対話行為タグ出現順序情報取得部と、前記対話行為タグ出現順序情報を用いて、前記対話構造情報格納部の対話構造情報を参照し、当該対話行為タグ出現順序情報が有する第一対話行為タグまたは／および第二対話行為タグを有する対話連結情報に含まれる重み情報を構成する重み情報構成部と、前記重み情報構成部が構成した重み情報を、前記対話構造情報格納部に蓄積する重み情報蓄積部を具備する重み情報学習装置である。
【００２５】
かかる構成により、実際の対話の情報を格納したコーパスを用いて、対話の流れを制御するための重み情報を、自動的に蓄積できる。
【発明の効果】
【００２６】
本発明によれば、従来と比較し、人間は対話装置とより自然に対話できる。
【発明を実施するための最良の形態】
【００２７】
以下、対話装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
（実施の形態１）
【００２８】
本実施の形態において、対話構造情報、対話行為タグに対応する文の情報を用いて、対話を実行する対話装置１について説明する。また、本実施の形態において、対話の中で出現している主題に合致した対話文を出力できる対話装置について説明する。また、本実施の形態において説明する対話構造情報は、例えば、有限状態トランスデューサ（ＦＳＴ）、重み付き有限状態トランスデューサ（ＷＦＳＴ）の構造を有している。また、本実施の形態において、行った対話の情報である履歴情報を覚えておくことにより、例えば、ユーザが否定的に考えている対象や一度対話の中で出現した対象についての文が、対話文として出力されないような対話装置についても説明する。なお、主題とは、後述するキーワードであり、例えば、文中の名詞（名詞句を含む）、文中の主語や目的語となる名詞などである。
【００２９】
図１は、本実施の形態における対話装置１のブロック図である。対話装置１は、対話構造情報格納部１０１、出力文情報格納部１０２、動作手段格納部１０３、カレントノード識別子格納部１０４、履歴情報格納部１０５、受付部１０６、第一対話行為タグ取得部１０７、第二対話行為タグ取得部１０８、文取得部１０９、文出力部１１０、カレントノード識別子更新部１１１、実行部１１２、履歴情報取得部１１３、履歴情報蓄積部１１４を具備する。文取得部１０９は、用語取得手段１０９１、文取得手段１０９２を具備する。
【００３０】
対話構造情報格納部１０１は、対話構造情報を格納し得る。対話構造情報とは、対話の繋がりを示す情報である。対話構造情報は、対話連結情報を１以上有する。対話連結情報は、第一話者（通常、ユーザ）の出力文を抽象する第一対話行為タグと、第二話者（通常、対話装置１）の出力文を抽象する第二対話行為タグとを有する。ここで、第一話者は、例えば、対話装置１のユーザを示す。第二話者は、対話装置１内の仮想的な話者を示す。また、第一対話行為タグと第二対話行為タグのどちらかは空（後述する「ｅｐｓ」）でも良い。また、出力文の抽象とは、出力文の意義、意味などから、出力文を種類に分類することをいう。そして、出力文を抽象した対話行為タグは、対話行為の種類を示す情報であり、例えば、Ａｃｋ（肯定的）、Ａｃｋ（否定的）、Ｃｏｎｆｉｒｍ、Ｄｅｃｉｄｅ、Ｅｘｐｌａｉｎ、Ｆｉｌｌｅｒ、Ｇｒｅｅｔｉｎｇ、Ａｓｋ（Ｏｐｅｎ−ｅｎｄ  Ｑｕｅｓｔｉｏｎ）、Ａｓｋ（Ｙｅｓ／Ｎｏ  Ｑｕｅｓｔｉｏｎ）などがある。Ａｃｋは、応答を示す対話行為タグであり、ここでのＡｃｋは、肯定的なＡｃｋ、否定的なＡｃｋを有する。つまり、対話行為タグは、階層的なものでも良い。Ｃｏｎｆｉｒｍは、確認を示す対話行為タグである。Ｄｅｃｉｄｅは決定、Ｅｘｐｌａｉｎは説明、Ｆｉｌｌｅｒは〜、Ｇｒｅｅｔｉｎｇはあいさつ、Ａｓｋ（Ｏｐｅｎ−ｅｎｄ  Ｑｕｅｓｔｉｏｎ）は一般的な質問、Ａｓｋ（Ｙｅｓ／Ｎｏ  Ｑｕｅｓｔｉｏｎ）は「Ｙｅｓ／Ｎｏ」のいずれかで答えることができる質問を、ぞれぞれ示す対話行為タグである。対話行為タグの詳細については、後述する。第二話者の出力文は、通常、第一話者の出力文に対応する応答の文などである。対話連結情報は、始端ノード識別子と終端ノード識別子と第一対話行為タグと第二対話行為タグとを有しても良い。また、対話連結情報は、始端ノード識別子で識別されるノードから終端ノード識別子で識別されるノードへの遷移の確率を示す情報である重み情報をも有することは好適である。対話連結情報は、動作を示す情報である動作識別子をもさらに有することは好適である。また、対話連結情報は、始端ノード識別子と終端ノード識別子を有し、第一対話行為タグ、第二対話行為タグ、動作識別子のうちの１以上の情報とを有しても良い。動作識別子とは、例えば、関数名、メソッド名、実行モジュール名などである。ここで、ノードは、概念的な対話の状態を示すものである。なお、始端ノード識別子とは、対話の始端を示すノードを識別する情報である。また、終端ノード識別子とは、対話の終端を示すノードを識別する情報である。始端ノード識別子と、終端ノード識別子とにより、1回の対話のキャッチボール（質問と回答など）が実現していることとなる。なお、対話の繋がりを示す情報とは、対話連結情報に含まれる始端ノード識別子と、対話連結情報に含まれる終端ノード識別子とにより繋がりが示されている情報でも良いし、対話連結情報間を有向リンクにより繋げることにより、繋がりが示されている情報でも良い。また、動作識別子は、第一話者が入力した文に対する処理を行う前処理の動作識別子、第二話者の出力文に対する処理を行う後処理の動作識別子、その他の一般的な処理を行う動作識別子など、いくつかの種類があり、適用される文や情報が異なっても良い。
【００３１】
対話構造情報格納部１０１は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。対話構造情報格納部１０１に対話構造情報が記憶される過程は問わない。例えば、記録媒体を介して対話構造情報が対話構造情報格納部１０１で記憶されるようになってもよく、通信回線等を介して送信された対話構造情報が対話構造情報格納部１０１で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された対話構造情報が対話構造情報格納部１０１で記憶されるようになってもよい。
【００３２】
出力文情報格納部１０２は、出力文情報を格納し得る。出力文情報とは、第二対話行為タグと１以上の文とを有する。また、出力文情報は、第二対話行為タグと、用語と、１以上の文とを有しても良い。出力文情報格納部１０２は、後述するキーワード管理表を保持していても良い。キーワード管理表は、出力文を検索したり、構成したりするための情報の集合であり、詳細については、後述する。出力文情報格納部１０２は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。出力文情報格納部１０２に出力文情報が記憶される過程は問わない。例えば、記録媒体を介して出力文情報が出力文情報格納部１０２で記憶されるようになってもよく、通信回線等を介して送信された出力文情報が出力文情報格納部１０２で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された出力文情報が出力文情報格納部１０２で記憶されるようになってもよい。
【００３３】
動作手段格納部１０３は、動作手段を１以上格納している。動作手段は、動作識別子に対応する動作を行う。動作手段とは、プログラム、実行モジュール、関数、メソッド、ハードウェアで実現された処理回路などである。動作手段は、例えば、音声認識、音声合成、機械翻訳、履歴蓄積、観光案内検索、スケジューラー、ＷＷＷ検索、天気予報検索、レストラン検索、チケット予約などの動作を行う。動作手段が行える動作は問わない。動作手段格納部１０３は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。動作手段格納部１０３に動作手段が記憶される過程は問わない。例えば、記録媒体を介して動作手段が動作手段格納部１０３で記憶されるようになってもよく、通信回線等を介して送信された動作手段が動作手段格納部１０３で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された動作手段が動作手段格納部１０３で記憶されるようになってもよい。
【００３４】
カレントノード識別子格納部１０４は、現在の対話の状態を示すノードを識別するカレントノード識別子を格納し得る。カレントノード識別子格納部１０４は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。カレントノード識別子格納部１０４には、通常、最初は、対話のスタートポイントを示すノード識別子（例えば、「０」）が記憶されている。
【００３５】
履歴情報格納部１０５は、対話の履歴に関する情報である履歴情報を格納し得る。履歴情報とは、例えば、既に出現した対話文の中の情報であり、例えば、話題に挙がった用語である既出用語、第一話者が否定的である対象を示す否定用語、第一話者が肯定的である対象を示す肯定用語、話題に挙がった用語とユーザの評価（否定的または肯定的）を示すフラグ（例えば、肯定的な場合「１」、否定的な場合「２」など）、第一話者が保留した対象を示す保留用語などである。なお、「第一話者が否定的である対象」には、第一話者が既に行ったことがある場所、経験したことがある事象など、今後、話題に挙げて欲しいとは思わないであろう対象も含まれる。つまり、否定用語は、第一話者が否定した場所（「この場所は行きたくない。」「この場所は嫌いだ。」など）等だけではなく、第一話者が既に行ったことがある場所、経験したことがある事象などが含まれる。また、「第一話者が肯定的である対象」には、第一話者が「それに決めます。」「はい。」など、完全に肯定した対象だけではなく、「いいですね。」などの曖昧な、否定的でない対象も含まれる。つまり、肯定用語は、第一話者が完全に肯定した対象だけではなく、第一話者が曖昧に肯定したであろうと推認できる対象も含まれる。また、保留用語とは、いくつかの対象が含まれるリストのうち、一の対象が提示された場合、第一話者が「次」または「次にいってください」などの文を入力した場合、当該提示された対象が保留用語とされる。この保留用語をキーワードとして検索された文が後に、出力される可能性がある。つまり、履歴情報取得部１１３は、第一話者が「次」または「次にいってください」などの文を入力した場合、対話装置１が出力した文に含まれるキーワード（例えば、名詞）を取得し、当該キーワードを保留用語として、取得する。そして、履歴情報蓄積部１１４は、履歴情報格納部１０５に保留用語と保留用語であることを示すフラグを対応付けて蓄積する。なお、例えば、肯定用語を示すフラグは「１」、否定用語を示すフラグは「２」、保留用語を示すフラグは「３」などである。履歴情報格納部１０５は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【００３６】
受付部１０６は、第一話者の出力文を受け付ける。第一話者（例えば、対話装置１のユーザ）は、出力文を音声により入力しても良い。また、第一話者は、出力文を、キーボードなどの入力手段により、テキストで入力しても良い。なお、出力文とは、ユーザが発声した文や入力した文等、ユーザにより出力された文、または、対話装置が出力する文などを言う。受付部１０６は、通常、２以上の出力文を受け付ける。受付部１０６は、出力文以外の命令や情報（例えば、対話装置１の起動指示など）を受け付けても良い。出力文の入力手段は、マイクやテンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。受付部１０６は、マイクやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
【００３７】
第一対話行為タグ取得部１０７は、受付部１０６が受け付けた出力文から、当該出力文に対応する第一対話行為タグを取得する。第一対話行為タグ取得部１０７は、第一話者から入力され、受付部１０６が受け付けた出力文に対して、通常、自然言語処理し、第一対話行為タグを取得する。受付部１０６が受け付けた出力文が音声である場合、例えば、第一対話行為タグ取得部１０７は、実行部１１２が出力文を音声認識処理して得たテキストの出力文を取得し、当該テキストの出力文に対して自然言語処理し、第一対話行為タグを取得しても良い。第一対話行為タグ取得部１０７は、文対話行為情報群を検索し、例えば、受付部１０６が受け付けた出力文と対になる対話行為タグを取得する。また、第一対話行為タグ取得部１０７は、例えば、受付部１０６が受け付けた出力文を形態素解析し、一部の形態素（例えば、文「京都でよろしいでしょうか？」の一部の形態素である「よろしいですか？」）が含まれる文と対になる対話行為タグを取得する。また、第一対話行為タグ取得部１０７は、例えば、受付部１０６が受け付けた出力文の一部と、文対話行為情報をパターンマッチングし、マッチした（部分一致も含む）文対話行為情報に含まれる対話行為タグを取得する。この取得された対話行為タグが第一対話行為タグである。なお、文対話行為情報群は、1以上の文対話行為情報の集合である。文対話行為情報は、第一対話行為タグと文、または第一対話行為タグと句、または第一対話行為タグと文の構造を示す情報などを含む情報である。なお、第一対話行為タグ取得部１０７は、文対話行為情報群を格納している文対話行為情報群格納手段１０７１を保持している、とする。
【００３８】
第一対話行為タグ取得部１０７は、通常、ＭＰＵやメモリ等から実現され得る。第一対話行為タグ取得部１０７の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００３９】
第二対話行為タグ取得部１０８は、第一対話行為タグ取得部１０７が取得した第一対話行為タグに対応する一の第二対話行為タグを取得する。また、第二対話行為タグ取得部１０８は、カレントノード識別子格納部１０４に格納されているカレントノード識別子と一致する始端ノード識別子に対応し、かつ、第一対話行為タグ取得部１０７が取得した第一対話行為タグに対応する一の第二対話行為タグを取得することは好適である。第二対話行為タグ取得部１０８は、取得の候補となる第二対話行為タグが２以上、存在する場合、重み情報を用いて、より高い遷移確率を示す重み情報と対になる第二対話行為タグを選択することは好適である。第二対話行為タグ取得部１０８は、取得の候補となる第二対話行為タグが２以上、存在する場合、例えば、カレントノード識別子で識別されるノードより２以上先の始端ノード識別子に対応する重み情報を用いて、ＤＰ（動的プログラミング）アルゴリズムを適用し、ルート内で累積された重み情報の合計である累積重み情報を用いて、最も高い遷移確率を示す累積重み情報に対応するルートに含まれる第二対話行為タグを取得しても良い。さらに、第二対話行為タグ取得部１０８は、対話の初めに、初期ノード（例えば、後述する始端ノード識別子「０」に対応するノード）に対応する第二対話行為タグを取得しても良い。第二対話行為タグ取得部１０８は、通常、ＭＰＵやメモリ等から実現され得る。第二対話行為タグ取得部１０８の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００４０】
文取得部１０９は、第二対話行為タグ取得部１０８が取得した第二対話行為タグに対応する文を、出力文情報格納部１０２から取得する。また、文取得部１０９は、履歴情報を用いて、第二対話行為タグ取得部１０８が取得した第二対話行為タグに対応する文を、出力文情報格納部１０２から取得することは好適である。例えば、文取得部１０９は、否定用語に対応する文以外の文であり、第二対話行為タグ取得部１０８が取得した第二対話行為タグに対応する文を、出力文情報格納部１０２から取得しても良い。また、例えば、文取得部１０９は、既出用語に対応する文以外の文であり、第二対話行為タグ取得部１０８が取得した第二対話行為タグに対応する文を、出力文情報格納部１０２から取得する。ここで、取得とは、第二対話行為タグに対応する文をすべて取得する必要はない。文取得部１０９は、複数の文のうちの１以上を選択して、取得しても良いし、２以上の文をすべて取得しても良い。また、「履歴情報を用いて」とは、過去に現われた用語である既出用語についての文（用語が含まれる文）は抽出しない、ユーザが否定的な評価をした用語である否定用語についての文は抽出しない、ユーザが肯定的な評価をした用語である肯定用語についての文は抽出する、１以上の保留用語をキーとして検索し、取得できた文を抽出する、などである。つまり、上記の「否定用語に対応する文」とは、例えば、否定用語が含まれる文、否定用語と対になる文、否定用語を主語に含む文などである。また、「既出用語に対応する対応する文」とは、例えば、既出用語が含まれる文、既出用語と対になる文、既出用語を主語に含む文などである。文取得部１０９は、通常、ＭＰＵやメモリ等から実現され得る。文取得部１０９の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００４１】
用語取得手段１０９１は、受付部１０６が受け付けた出力文から用語を取得する。用語取得手段１０９１は、例えば、出力文を形態素解析し、出力文を構成する名詞や、出力文の主語を構成する名詞、目的語となる名詞などを取得する。また、用語取得手段１０９１は、例えば、評価の良し悪しを示す単語や句や文の一部を格納しており、当該単語等を出力文から抽出しても良い。なお、肯定的な評価を示す単語等は、例えば、「好き」「いい」「良い」「すばらしい」などである。また、否定的な評価を示す単語等は、例えば、「嫌い」「行った」「ダメ」「いや」などである。なお、否定的な評価を示す単語等には、例えば、既に行った行動を示す用語（「行った」「やった」など）も含まれても良い。また、用語取得手段１０９１は、保留用語に対応する文「次」「次にいってください」などを格納しており、当該保留用語に対応する文が第一話者から入力された場合、当該第一話者からの入力前に対話装置１が出力した文や句や単語などから、保留用語を取得する。保留用語に対応する文「次」「次にいってください」などは、出力文情報格納部１０２に格納されている出力文情報内の文でも良い。用語取得手段１０９１は、通常、ＭＰＵやメモリ等から実現され得る。用語取得手段１０９１の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００４２】
文取得手段１０９２は、用語取得手段１０９１が取得した用語に対応し、かつ、第二対話行為タグ取得部１０８が取得した第二対話行為タグに対応する文を、出力文情報格納部１０２から取得する。文取得手段１０９２は、履歴情報を用いて、第二対話行為タグ取得部１０８が取得した第二対話行為タグに対応する文を、出力文情報格納部１０２から取得することは好適である。文取得手段１０９２は、通常、ＭＰＵやメモリ等から実現され得る。文取得手段１０９２の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００４３】
文出力部１１０は、文取得部１０９が取得した文を出力する。ここで、出力とは、すべて出力する必要はない意図である。また、出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタへの印字、音声出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラム等への処理結果の引渡し等を含む概念である。文出力部１１０は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。文出力部１１０は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
【００４４】
カレントノード識別子更新部１１１は、文出力部１１０が出力した文に対応する第二対話行為タグと対になる終端ノード識別子を、カレントノード識別子格納部１０４のカレントノード識別子に書き換える。カレントノード識別子更新部１１１は、通常、ＭＰＵやメモリ等から実現され得る。カレントノード識別子更新部１１１の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００４５】
実行部１１２は、第二対話行為タグ取得部１０８が選択した第二対話行為タグに対応する動作識別子を取得し、当該動作識別子に対応する動作手段を実行する。実行部１１２は、受付部１０６が受け付けた出力文に対して、予め決められた動作識別子に対応する動作手段を実行しても良い。かかる処理を、適宜、前処理という。実行部１１２は、例えば、関数の呼び出し処理、メソッドの実行処理、実行モジュールの起動処理などの処理を行う。実行部１１２は、通常、ＭＰＵやメモリ等から実現され得る。実行部１１２の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００４６】
履歴情報取得部１１３は、受付部１０６が受け付けた出力文から、履歴情報を取得する。履歴情報取得部１１３は、例えば、出力文から主語や目的語となる名詞を取得し、履歴情報とする。また、履歴情報取得部１１３は、例えば、出力文から主語や目的語となる名詞、および評価語（「好き」「いや」など）を取得し、当該名詞と評価の結果（肯定的または否定的）を示すフラグなどを、履歴情報として取得する。履歴情報取得部１１３は、通常、ＭＰＵやメモリ等から実現され得る。履歴情報取得部１１３の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００４７】
履歴情報蓄積部１１４は、履歴情報取得部１１３が取得した履歴情報を履歴情報格納部１０５に蓄積する。履歴情報蓄積部１１４は、通常、ＭＰＵやメモリ等から実現され得る。履歴情報蓄積部１１４の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００４８】
次に、対話装置１の動作について図２のフローチャートを用いて説明する。
【００４９】
（ステップＳ２０１）受付部１０６は、ユーザから、出力文を受け付けたか否かを判断する。出力文を受け付ければステップＳ２０２に行き、出力文を受け付けなければステップＳ２０１に戻る。
【００５０】
（ステップＳ２０２）実行部１１２は、前処理を行う。前処理とは、ステップＳ２０１で受け付けられた出力文に対して、予め決められた動作識別子に対応する動作手段を実行することである。なお、ここでは、例えば、実行部１１２は、音声認識処理を実行し、出力文のテキスト列を得る。
【００５１】
（ステップＳ２０３）第一対話行為タグ取得部１０７は、第一話者から入力され、ステップＳ２０１で受け付けられた出力文に対して自然言語処理し、第一対話行為タグを取得する。かかる処理を第一対話行為タグ取得処理という。第一対話行為タグ取得処理の詳細について、図３のフローチャートを用いて説明する。
【００５２】
（ステップＳ２０４）第二対話行為タグ取得部１０８は、ステップＳ２０３で取得された第一対話行為タグに対応する一の第二対話行為タグを取得する。かかる処理を第二対話行為タグ取得処理という。第二対話行為タグ取得処理の詳細について、図４のフローチャートを用いて説明する。なお、本ステップで、第二対話行為タグが取得できない場合もあり得る。
【００５３】
（ステップＳ２０５）文取得部１０９は、ステップＳ２０４で取得された第二対話行為タグに対応する文を、出力文情報格納部１０２から取得する。かかる処理を文取得処理という。文取得処理の詳細について、図５のフローチャートを用いて説明する。なお、ステップＳ２０４で第二対話行為タグが取得できなかった場合、本ステップで、文取得部１０９は、文を取得しない。
【００５４】
（ステップＳ２０６）文出力部１１０は、ステップＳ２０５で取得された文を出力する。ここでの出力は、対話装置１の画面への表示でも良いし、音声合成を行う動作手段へ文を渡す処理などでも良い。なお、ステップＳ２０４で第二対話行為タグが取得できなかった場合、本ステップで、文出力部１１０は、文を出力しない。
【００５５】
（ステップＳ２０７）実行部１１２は、いわゆる後処理を行う。後処理の詳細について、図６のフローチャートを用いて説明する。ステップＳ２０１に戻る。なお、ステップＳ２０１に戻ることにより、ユーザと対話装置１との対話が次々と進んでいく。
【００５６】
なお、図２のフローチャートにおいて、前処理が無い場合がある。
【００５７】
また、図２のフローチャートにおいて、ステップＳ２０７の後処理の後、ステップＳ２０１に戻った。しかし、ユーザからの出力文を受け付けるノード（状態）に行くまで（ユーザからの出力文を受け付ける対話連結情報に進むまで）、対話構造情報格納部１０１の繋がっている対話連結情報を処理しても良い。かかる処理は、ステップＳ２０２からステップＳ２０７までの処理である。その詳細は、後述する具体例において説明する。
【００５８】
また、図２のフローチャートにおいて、ステップＳ２０４から処理を開始しても良い。
【００５９】
さらに、図２のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【００６０】
次に、ステップＳ２０３の第一対話行為タグ取得処理の詳細の具体例について、図３のフローチャートを用いて説明する。
【００６１】
（ステップＳ３０１）第一対話行為タグ取得部１０７は、受付部１０６が受け付けた出力文を形態素解析し、1以上の形態素の集合を得る。
【００６２】
（ステップＳ３０２）第一対話行為タグ取得部１０７は、カウンタｉに１を代入する。
【００６３】
（ステップＳ３０３）第一対話行為タグ取得部１０７は、ステップＳ３０１で得た形態素の集合の中に、ｉ番目の形態素が存在するか否かを判断する。ｉ番目の形態素が存在すればステップＳ３０４に行き、ｉ番目の形態素が存在しなければ上位処理にリターンする。なお、上位処理にリターンする前に、対話行為タグが付与されていない形態素には、対話行為タグ「ｅｐｓ」を付与することは好適である。
【００６４】
（ステップＳ３０４）第一対話行為タグ取得部１０７は、ｉ番目の形態素を取得する。
【００６５】
（ステップＳ３０５）第一対話行為タグ取得部１０７は、ｉ番目の形態素または２以上の形態素をキーとして、文対話行為情報群を検索する。
【００６６】
（ステップＳ３０６）第一対話行為タグ取得部１０７は、文対話行為情報群の中のいずれかの文対話行為情報が、キーとなる１以上の形態素に合致するか否かを判断する。合致すればステップＳ３０７に行き、合致しなければステップＳ３０８に行く。なお、合致とは、一致でも良いし、部分一致でも良い。また、表現のゆらぎや類義語などでも合致する、と看做すように処理することは好適である。表現のゆらぎや類義語などの処理は公知技術であるので、詳細な説明を省略する。
【００６７】
（ステップＳ３０７）第一対話行為タグ取得部１０７は、ステップＳ３０６で合致した文対話行為情報に含まれる対話行為タグを取得する。上位処理にリターンする。
【００６８】
（ステップＳ３０８）第一対話行為タグ取得部１０７は、次の順番の形態素が存在するか否かを判断する。次の形態素が存在すればステップＳ３０９に行き、次の形態素が存在しなければステップＳ３１０に行く。
【００６９】
（ステップＳ３０９）第一対話行為タグ取得部１０７は、検索キーとなっている１以上の形態素に次の形態素を連結する。ステップＳ３０５に戻る。
【００７０】
（ステップＳ３１０）第一対話行為タグ取得部１０７は、ｉ番目の形態素に対話行為タグ「ｅｐｓ」を付与する。
【００７１】
（ステップＳ３１１）第一対話行為タグ取得部１０７は、カウンタｉを１、インクリメントする。ステップＳ３０３に戻る。
【００７２】
次に、ステップＳ２０４の第二対話行為タグ取得処理の詳細について、図４のフローチャートを用いて説明する。
【００７３】
（ステップＳ４０１）第二対話行為タグ取得部１０８は、カレントノード識別子格納部１０４に格納されているカレントノード識別子を読み出し、メモリ上に配置する。
【００７４】
（ステップＳ４０２）第二対話行為タグ取得部１０８は、ステップＳ４０１で取得されたカレントノード識別子と一致する始端ノード識別子に対応し、かつ、第一対話行為タグ取得部１０７が取得した第一対話行為タグに対応する１以上の第二対話行為タグを、対話構造情報格納部１０１から取得する。本ステップにより、最終的に第二対話行為タグの候補となる１以上の第二対話行為タグが取得されることとなる。
【００７５】
（ステップＳ４０３）第二対話行為タグ取得部１０８は、カウンタｉに１を代入する。
【００７６】
（ステップＳ４０４）第二対話行為タグ取得部１０８は、ステップＳ４０２で取得された１以上の第二対話行為タグの中に、ｉ番目の高い遷移確率を示す重み情報と対になる第二対話行為タグが存在するか否かを判断する。かかる第二対話行為タグが存在すればステップＳ４０５に行き、存在しなければステップＳ４０８に行く。なお、かかる判断は、対話構造情報格納部１０１の対話構造情報を参照することにより行われる。
【００７７】
（ステップＳ４０５）第二対話行為タグ取得部１０８は、ステップＳ４０２で取得された１以上の第二対話行為タグの中から、ｉ番目の高い遷移確率を示す重み情報と対になる第二対話行為タグを取得し、メモリ上に配置する。
【００７８】
（ステップＳ４０６）第二対話行為タグ取得部１０８は、ｉ番目の高い遷移確率を示す重み情報と対になる第二対話行為タグに対応する文を出力したか否か（ｉ番目の高い遷移確率を示す重み情報と対になる第二対話行為タグを処理済みか否か）を判断する。処理済みであればステップＳ４０７に行き、処理済みでなければステップＳ４０９に行く。
【００７９】
（ステップＳ４０７）第二対話行為タグ取得部１０８は、カウンタｉを１、インクリメントする。ステップＳ４０４に戻る。
【００８０】
（ステップＳ４０８）第二対話行為タグ取得部１０８は、デフォルトの第二対話行為タグを、最終的な第二対話行為タグに決定する。デフォルトの第二対話行為タグとは、例えば、Ｃｏｎｆｉｒｍ等である。上位処理にリターンする。なお、ステップＳ４０８を経由することが無い場合には、デフォルトの第二対話行為タグを予め格納する必要は無い。
【００８１】
（ステップＳ４０９）第二対話行為タグ取得部１０８は、ｉ番目の高い遷移確率を示す重み情報と対になる第二対話行為タグを、最終的な第二対話行為タグに決定する。上位処理にリターンする。
【００８２】
なお、図４のフローチャートにおいて、例えば、既に処理された第二対話行為タグには、フラグが付されている、とする。
【００８３】
次に、ステップＳ２０５の文取得処理の詳細について、図５のフローチャートを用いて説明する。
【００８４】
（ステップＳ５０１）文取得部１０９は、第二対話行為タグ取得部１０８が、最終的に決定した第二対話行為タグを取得する。
【００８５】
（ステップＳ５０２）用語取得手段１０９１は、受付部１０６が受け付けた出力文から用語を取得する。ここでの用語は、例えば、出力文を構成する名詞、出力文を構成する名詞と評価語等である。用語取得手段１０９１は、出力文を形態素解析し、出力文を構成する名詞等を抽出する。なお、文から名詞や評価語を取得する技術は公知技術であるので、詳細な説明を省略する。
【００８６】
（ステップＳ５０３）文取得手段１０９２は、用語取得手段１０９１が取得した用語に対応し、かつ、第二対話行為タグ取得部１０８が取得した第二対話行為タグに対応する１以上の文を、出力文情報格納部１０２から取得する。
【００８７】
（ステップＳ５０４）文取得手段１０９２は、履歴情報格納部１０５から履歴情報を読み出す。
【００８８】
（ステップＳ５０５）文取得手段１０９２は、ステップＳ５０４で読み出された履歴情報に、肯定用語が含まれるか否かを判断する。肯定用語が含まれればステップＳ５０６に行き、肯定用語が含まれなければステップＳ５０７に行く。
【００８９】
（ステップＳ５０６）文取得手段１０９２は、ステップＳ５０３で取得した１以上の文から、ステップＳ５０５で取得した肯定用語に対応する文を抽出する。ステップＳ５１１に行く。
【００９０】
（ステップＳ５０７）文取得手段１０９２は、ステップＳ５０４で読み出された履歴情報に、否定用語が含まれるか否かを判断する。否定用語が含まれればステップＳ５０８に行き、否定用語が含まれなければステップＳ５０９に行く。
【００９１】
（ステップＳ５０８）文取得手段１０９２は、ステップＳ５０３で取得した１以上の文から、ステップＳ５０７で取得した否定用語に対応する文を削除する。
【００９２】
（ステップＳ５０９）文取得手段１０９２は、ステップＳ５０４で読み出された履歴情報に、既出用語が含まれるか否かを判断する。既出用語が含まれればステップＳ５１０に行き、既出用語が含まれなければステップＳ５１１に行く。
【００９３】
（ステップＳ５１０）文取得手段１０９２は、ステップＳ５０３で取得した１以上の文から、ステップＳ５０９で取得した既出用語に対応する文を削除する。
【００９４】
（ステップＳ５１１）文取得手段１０９２は、残っている文から、１以上の文を取得する。ここで、残っている文が１文であれば、文取得手段１０９２は、当該１文を取得する。また、残っている文が２文以上であれば、文取得手段１０９２は、１文を選択して取得しても良いし、２文以上のうちのいくつか、またはすべてを取得しても良い。上位処理にリターンする。
【００９５】
なお、図５のフローチャートにおいて、履歴情報が存在しなくても良い。かかる場合、文取得手段１０９２は、ステップＳ５０３で取得した１以上の文から、最終的に、１文または２文以上の文を取得する。
【００９６】
また、図５のフローチャートのステップＳ５０２において、用語が取得できなくても良い。かかる場合、文取得手段１０９２は、第二対話行為タグ取得部１０８が取得した第二対話行為タグに対応する１以上の文を、出力文情報格納部１０２から取得する。
【００９７】
次に、ステップＳ２０７の後処理の詳細について、図６のフローチャートを用いて説明する。
【００９８】
（ステップＳ６０１）カレントノード識別子更新部１１１は、文出力部１１０が出力した文に対応する第二対話行為タグと対になる終端ノード識別子を、対話構造情報格納部１０１から取得し、メモリ上に配置する。
【００９９】
（ステップＳ６０２）カレントノード識別子更新部１１１は、ステップＳ６０１で取得された終端ノード識別子を、カレントノード識別子格納部１０４のカレントノード識別子に書き換える。
【０１００】
（ステップＳ６０３）実行部１１２は、第二対話行為タグ取得部１０８が選択した第二対話行為タグに対応する１以上の動作識別子を、対話構造情報格納部１０１から取得する。
【０１０１】
（ステップＳ６０４）実行部１１２は、ステップＳ６０３で取得された１以上の動作識別子が存在するか否かを判断する。１以上の動作識別子が存在すればステップＳ６０５に行き、１以上の動作識別子が存在しなければステップＳ６０６に行く。
【０１０２】
（ステップＳ６０５）実行部１１２は、ステップＳ６０３で取得された１以上の動作識別子に対応する動作手段を実行する。
【０１０３】
（ステップＳ６０６）履歴情報取得部１１３は、受付部１０６が受け付けた出力文から、キーワードを取得する。なお、キーワードは、例えば、文中の名詞、主語となる名詞、目的語となる名詞などである。履歴情報の取得方法は問わない。
【０１０４】
（ステップＳ６０７）履歴情報取得部１１３は、受付部１０６が受け付けた出力文から、評価語を取得する。
【０１０５】
（ステップＳ６０８）履歴情報取得部１１３は、ステップＳ６０６、ステップＳ６０７において、主語や目的語となる名詞、または、主語等となる名詞と評価語を取得できたか否かを判断する。取得できればステップＳ６０９に行き、取得できなければ上位処理にリターンする。
【０１０６】
（ステップＳ６０９）履歴情報取得部１１３は、取得した主語等となる名詞、または、主語等となる名詞と評価語を用いて履歴情報を構成する。取得された情報の中に評価語を含む場合、履歴情報取得部１１３は、当該評価語が肯定的か否定的かを判断し、「肯定的」または「否定的」に対応するフラグを取得し、当該フラグと主語となる名詞を対にして、履歴情報を構成する。
【０１０７】
（ステップＳ６１０）履歴情報蓄積部１１４は、ステップＳ６０９で取得された履歴情報を履歴情報格納部１０５に蓄積する。上位処理にリターンする。
【０１０８】
以下、本実施の形態における対話装置１の具体的な動作について説明する。
【０１０９】
今、対話構造情報格納部１０１は、図７、および図８に示す対話構造情報管理表を格納している。対話構造情報管理表は、１以上の対話連結情報のレコードを保持している。対話連結情報は、「ＩＤ」「始端ノード識別子」「終端ノード識別子」「第一対話行為タグ」「第二対話行為タグ」「重み情報」「動作識別子」の属性を有する。なお、対話連結情報は、「始端ノード識別子」「終端ノード識別子」の属性値を有し、かつ、「第一対話行為タグ」「第二対話行為タグ」「動作識別子」のうちの１以上の属性値を有する。また、「重み情報」の属性値は存在しなくても良い。また、図７、図８において、「第一対話行為タグ」「第二対話行為タグ」の「−」はＮＵＬＬである。また、「動作識別子」の属性値として、記載がない場合も、「動作識別子」がＮＵＬＬである。さらに、対話連結情報のレコードは、図示していないが、ユーザからの文の入力を待つためのノードであることを示す入力待ちフラグを有しても良い。入力待ちフラグは、図７、図８において、「ＩＤ＝３，４，５，１２，１３，１８，１９，３０，３１」のレコードに付与されている。
【０１１０】
なお、図７、図８で使用されている対話行為タグ等について、その動作識別子の由来、意味等について、図９、図１０に示す。
【０１１１】
また、図７、および図８に示す対話構造情報管理表の「動作識別子」には、例えば、音声合成処理を示す動作識別子が、適宜、格納されている、とする。音声合成処理を示す動作識別子が格納されているレコードは、文を出力する場合に対応するレコードである。
【０１１２】
さらに、図７、図８に示す対話構造情報管理表は、図１１に示す対話状態遷移図で示される。図１１に示す対話状態遷移図は、いわゆるＷＦＳＴである。
図１１に示す対話状態遷移図において、網掛けノード（状態）は、ユーザからの文を待っているノードである。また、二重丸の（０）は初期ノードであり、対話の始まりを示すノードである。さらに、二重丸の（１７）は終了ノードであり、対話の終了を示すノードである。
【０１１３】
また、出力文情報格納部１０２は、図１２、図１３に示す出力文情報管理表を格納している。出力文情報管理表は、「ＩＤ」「出力文情報」を有する。「出力文情報」は、「対話行為タグ」「文」を有する。「対話行為タグ」は、「第１層」「第２層」と階層化されている。なお、「対話行為タグ」は、階層化されておらず、「第１層」のみの属性値を有する対話行為タグがあり得る。「文」において＜＞内の情報は、内部変数の値が代入されることを示す。内部変数は、例えば、対話装置１が、図示しない記憶媒体に予め保持しているシステム名を示す＜自分＞や、スポットの検索結果を示す＜ｓｐｏｔ＞や、キーワードを示す＜対象＞などである。
【０１１４】
また、出力文情報格納部１０２は、図１４に示すキーワード管理表を保持している。キーワード管理表は、対話装置１が行うタスク（ある話題）について、キーワードになり得る情報を格納している表である。図１４において、「ｒａｎｋｉｎｇ」「ｓｐｏｔ」「ａｃｔｉｖｉｔｙ」「ｓｉｇｈｔｓｅｅｉｎｇ」「ｅｖｅｎｔ」などの属性を有するレコードを多数格納している。対話装置１が行うタスクは、京都観光のガイドである。「ｒａｎｋｉｎｇ」は京都観光でのスポットの人気の度合いを示す情報である。「ｓｐｏｔ」「ａｃｔｉｖｉｔｙ」「ｓｉｇｈｔｓｅｅｉｎｇ」「ｅｖｅｎｔ」は、ガイドの情報をモデル化したものである。
【０１１５】
また、動作手段格納部１０３は、動作識別子で識別される各種の動作手段を格納している。動作手段には、例えば、音声合成する動作手段、文からキーワードを抽出する動作手段（Extrct_kywd）などがある。また、カレントノード識別子格納部１０４のカレントノード識別子は、「０」である。
【０１１６】
また、第一対話行為タグ取得部１０７は、図１５に示す文対話行為情報群管理表を保持している。文対話行為情報群管理表は、「ＩＤ」「対話行為タグ」「文」を有するレコードを１以上格納している。「文」は、文だけではなく、文の一部、１以上の句、１以上の節、１以上の単語などでも良い。「文」は、２以上の文を含んでも良い。なお、図１５に示す文対話行為情報群管理表は、図１２、図１３に示す出力文情報管理表と同じ構造でも良い。そして、文対話行為情報群管理表は、図１２、図１３に示す出力文情報管理表と共用しても良い。かかる場合、第一対話行為タグ取得部１０７は、出力文情報管理表を参照して、第一対話行為タグを取得する。
【０１１７】
さらに、対話装置１は、内部変数として、変数＜自分＞に「京都観光案内システム」を保持している、とする。内部変数は、例えば、履歴情報格納部１０５に格納されている。
【０１１８】
かかる状況において、ユーザ（第一話者）が対話装置１を用いて、京都観光のガイドをしてもらう実施例について、以下、説明する。
【０１１９】
ユーザは、対話装置１の電源を入れた、とする。すると、対話装置１の第二対話行為タグ取得部１０８は、初期ノード（例えば、始端ノード識別子「０」に対応するノード）に対応する第二対話行為タグ「Ｇｒｔ（ｓｔａｒｔ）」を、図７の対話構造情報管理表から取得する。
【０１２０】
次に、文取得部１０９は、取得された第二対話行為タグ「Ｇｒｔ（ｓｔａｒｔ）」に対応する文「おいでやす。＜自分＞です。」を、図１２の出力文情報管理表から取得する。そして、文取得部１０９は、文「おいでやす。＜自分＞です。」の変数＜自分＞に「京都観光案内システム」を挿入し、文「おいでやす。京都観光案内システムです。」を構成する。
【０１２１】
次に、文出力部１１０は、取得された文を出力する（音声合成を行う動作手段へ文を渡す）。そして、音声合成手段は、文を音声出力する。なお、候補となる文が２以上ある場合、ここでは、文取得部１０９は、任意に一つの文を選択したが、２以上選択して出力しても良い。
【０１２２】
次に、カレントノード識別子更新部１１１は、文出力部１１０が出力した文に対応する第二対話行為タグ「Ｇｒｔ（ｓｔａｒｔ）」と対になる終端ノード識別子「１」を、対話構造情報格納部１０１から取得し、メモリ上に配置する。
【０１２３】
次に、カレントノード識別子更新部１１１は、取得された終端ノード識別子「１」を、カレントノード識別子格納部１０４のカレントノード識別子に書き換える。
【０１２４】
次に、実行部１１２は、第二対話行為タグ「Ｇｒｔ（ｓｔａｒｔ）」に対応する１以上の動作識別子を、図７の対話構造情報管理表から取得しようとするが取得できない。
【０１２５】
次に、履歴情報取得部１１３は、受付部１０６が受け付けた出力文は無いので、キーワードを取得できない。つまり、履歴情報蓄積部１１４は、履歴情報を履歴情報格納部１０５に蓄積しない。
【０１２６】
次に、対話装置１は、第二対話行為タグ取得部１０８は、カレントノード識別子「１」をカレントノード識別子格納部１０４から読み出す。
【０１２７】
そして、第二対話行為タグ取得部１０８は、カレントノード識別子「１」に対応する第二対話行為タグ「ＯＱ」を、図７の対話構造情報管理表から取得する。
【０１２８】
次に、文取得部１０９は、取得された第二対話行為タグ「ＯＱ」に対応する文「どこか行きたいところはありますか？」を、図１２の出力文情報管理表から取得する。そして、文出力部１１０は、取得された文「どこか行きたいところはありますか？」を音声出力する。
【０１２９】
次に、カレントノード識別子更新部１１１は、文出力部１１０が出力した文に対応する第二対話行為タグ「ＯＱ」と対になる終端ノード識別子「２」を、対話構造情報格納部１０１から取得し、メモリ上に配置する。
【０１３０】
次に、カレントノード識別子更新部１１１は、取得された終端ノード識別子「２」を、カレントノード識別子格納部１０４のカレントノード識別子に書き換える。
【０１３１】
次に、実行部１１２は、第二対話行為タグ「ＯＱ」に対応する１以上の動作識別子を、図７の対話構造情報管理表から取得しようとするが取得できない。
【０１３２】
次に、履歴情報取得部１１３は、受付部１０６が受け付けた出力文は無いので、キーワードを取得できない。つまり、履歴情報蓄積部１１４は、履歴情報を履歴情報格納部１０５に蓄積しない。
【０１３３】
次に、対話装置１からの問いかけ「どこか行きたいところはありますか？」に対して、ユーザは、「二条城に行きたい」と音声入力した、とする。
【０１３４】
次に、受付部１０６は、ユーザから、出力文「二条城に行きたい」を受け付ける。そして、実行部１１２は、受け付けられた出力文「二条城に行きたい」に対して、予め決められた動作識別子（音声認識処理）に対応する動作手段（音声認識処理）を実行する。そして、実行部１１２は、テキスト列「二条城に行きたい」を得る。
【０１３５】
次に、第一対話行為タグ取得部１０７は、以下のように、「二条城に行きたい」に対応する第一対話行為タグを取得する。まず、第一対話行為タグ取得部１０７は、出力文「二条城に行きたい」を形態素解析し、1以上の形態素の集合「二条城，に，行き，たい」を得る。そして、第一対話行為タグ取得部１０７は、図３のフローチャートに従って、対話行為タグを形態素に付与し、「二条城（ｅｐｓ），に（ｅｐｓ），行きたい（Ｓｔｔ（ｐｒｆ（ｓｐｏｔ／ｇｅｎｅｒａｌ）））」を得る。次に、第一対話行為タグ取得部１０７は、「二条城に行きたい」に対応する第一対話行為タグを「Ｓｔｔ（ｐｒｆ（ｓｐｏｔ／ｇｅｎｅｒａｌ））」に決定する。ここで、第一対話行為タグ取得部１０７は、第一対話行為タグ（ｅｐｓ）を無視し、（Ｓｔｔ（ｐｒｆ（ｓｐｏｔ／ｇｅｎｅｒａｌ）））を採用する。
【０１３６】
次に、第二対話行為タグ取得部１０８は、取得された第一対話行為タグ「Ｓｔｔ（ｐｒｆ（ｓｐｏｔ／ｇｅｎｅｒａｌ））」に対応する一の第二対話行為タグを取得する。具体的には、第二対話行為タグ取得部１０８は、カレントノード識別子格納部１０４に格納されているカレントノード識別子「２」を読み出し、メモリ上に配置する。
【０１３７】
次に、第二対話行為タグ取得部１０８は、取得されたカレントノード識別子「２」と一致する始端ノード識別子に対応し、かつ、第一対話行為タグ取得部１０７が取得した第一対話行為タグ「Ｓｔｔ（ｐｒｆ（ｓｐｏｔ／ｇｅｎｅｒａｌ））」に対応する第二対話行為タグを、図７の対話構造情報管理表から取得しようとするが、取得できない。したがって、文の取得、出力は行われない。
【０１３８】
次に、カレントノード識別子更新部１１１は、対応する第二対話行為タグと対になる終端ノード識別子「３」を、対話構造情報格納部１０１から取得し、メモリ上に配置する。
【０１３９】
次に、カレントノード識別子更新部１１１は、取得された終端ノード識別子「３」を、カレントノード識別子格納部１０４のカレントノード識別子に書き換える。
【０１４０】
次に、履歴情報取得部１１３は、受付部１０６が受け付けた出力文「二条城に行きたい」から、名詞「桜」を取得する。また、履歴情報取得部１１３は、受付部１０６が受け付けた出力文から、評価語を取得しようとするが取得できない。
【０１４１】
次に、履歴情報蓄積部１１４は、取得した名詞「桜」を履歴情報格納部１０５に蓄積する。なお、かかる履歴情報は、適宜、キーワードとも言う。つまり、キーワードとは、履歴情報の一種である。
【０１４２】
次に、次のノードに遷移し、図７の対話構造情報管理表の「ＩＤ＝６」のレコードがアクセスされる。そして、実行部１１２は、いわゆる後処理を行う。つまり、カレントノード識別子更新部１１１は、「ＩＤ＝６」のレコードの終端ノード識別子「４」を、カレントノード識別子格納部１０４のカレントノード識別子に書き換える。
【０１４３】
次に、実行部１１２は、「ＩＤ＝６」のレコード内の動作識別子「Ｅｘｔｒｃｔ＿ｋｙｗｄ」を、対話構造情報格納部１０１から取得する。
【０１４４】
そして、実行部１１２は、取得された動作識別子「Ｅｘｔｒｃｔ＿ｋｙｗｄ」に対応する動作手段を実行する。なお、この動作は、上述した履歴情報取得部１１３、履歴情報蓄積部１１４の動作と同様である。つまり、実行部１１２が「Ｅｘｔｒｃｔ＿ｋｙｗｄ」を実行することと、履歴情報取得部１１３、履歴情報蓄積部１１４の動作は同様の動作になる場合がありえる。つまり、履歴情報取得部１１３、履歴情報蓄積部１１４は、実行部１１２の動作の一部と特に着目して、外に出した態様である。
【０１４５】
さらに、次のノードに遷移し、図７の対話構造情報管理表の「ＩＤ＝７」のレコードがアクセスされる。そして、実行部１１２は、いわゆる後処理を行う。つまり、カレントノード識別子更新部１１１は、「ＩＤ＝７」のレコードの終端ノード識別子「５」を、カレントノード識別子格納部１０４のカレントノード識別子に書き換える。
【０１４６】
次に、実行部１１２は、「ＩＤ＝７」のレコード内の動作識別子「Ｍｋ＿ｒｃｍｄｌｉｓｔ（ｋｗｄ）」を、対話構造情報格納部１０１から取得する。
【０１４７】
そして、実行部１１２は、取得された動作識別子「Ｍｋ＿ｒｃｍｄｌｉｓｔ（ｋｗｄ）」に対応する動作手段を実行する。なお、この動作は、文取得部１０９が、履歴情報を用いて、第二対話行為タグ取得部１０８が取得した第二対話行為タグに対応する文を、出力文情報格納部１０２から取得する処理と同様である。
【０１４８】
つまり、実行部１１２は、「Ｍｋ＿ｒｃｍｄｌｉｓｔ（桜）」を実行し、図１４のキーワード管理表から「桜」を＜ｖｉｅｗ＞に含む＜ｓｐｏｔ＞である「二条城」「仁和寺」の推薦リストを取得する。
【０１４９】
さらに、次のノードに遷移しようとする。つまり、次に、第二対話行為タグ取得部１０８は、カレントノード識別子格納部に格納されているカレントノード識別子「５」と一致する始端ノード識別子に対応する第二対話行為タグを取得しようとするが取得できない。したがって、文は出力されない。そして、実行部１１２は、当該レコード（「ＩＤ＝９」のレコード）の動作識別子「Ｓｅｔ＿ｔｇｔ」を取得する。次に、実行部１１２は、「Ｓｅｔ＿ｔｇｔ」を実行し、例えば、推薦リスト「二条城」「仁和寺」から推薦候補「二条城」を選択する。そして、カレントノード識別子更新部１１１は、「ＩＤ＝９」のレコードの終端ノード識別子「６」を、カレントノード識別子格納部１０４のカレントノード識別子に書き換える。
【０１５０】
さらに、次のノードに遷移しようとする。つまり、次に、第二対話行為タグ取得部１０８は、カレントノード識別子格納部に格納されているカレントノード識別子「６」と一致する始端ノード識別子に対応し、かつ、２つの第二対話行為タグ「Ｒｃｍｄ（ｔｇｔ）」「Ｓｔｔ（ｐｒｃｓ（ｒｃｍｄ））」のうち、重み情報「３／４，１／４」を用いて、より高い遷移確率を示す重み情報「３／４」と対になる第二対話行為タグ「Ｒｃｍｄ（ｔｇｔ）」を選択する。
【０１５１】
そして、文取得部１０９は、「二条城」を用いて、出力する文の候補「二条城はいかがでしょうか？」を構成する。なお、出力文情報格納部１０２は、「＜ｓｐｏｔ＞はいかがでしょうか？」「＜ｓｐｏｔ＞をご案内します。」を、それぞれ、対話行動タグ「Ｒｃｍｄ（ｔｇｔ）」「Ｓｔｔ（ｐｒｃｓ（ｒｃｍｄ））」と対応付けて、予め保持している、とする。
【０１５２】
次に、文取得部１０９は、取得された第二対話行為タグ「Ｒｃｍｄ（ｔｇｔ）」に対応する文「二条城はいかがでしょうか？」を取得する。
【０１５３】
そして、文出力部１１０は、取得された文「二条城はいかがでしょうか？」を出力する。
【０１５４】
次に、実行部１１２は、上述した後処理を行う。
【０１５５】
以後、対話装置１とユーザは、図７、図８の対話構造情報管理表が示すＷＦＳＴに従って、対話を進め、図１６の太い矢印で示す対話を続けた、とする。
【０１５６】
以上、本実施の形態によれば、人間は対話装置１と、より自然に、次々と対話できる。
【０１５７】
また、本実施の形態によれば、例えば、対話構造情報（対話状態の構造）と対話で用いる文の集合を分離しているので、文の集合を入れ替えれば、種々の話題（タスク）に対応できる。
【０１５８】
また、本実施の形態によれば、対話の内容や、対話の状況に応じた動作が可能な動作識別子、動作手段を登録しておけば、種々の対話支援を提供できる。例えば、動作が音声認識処理および音声合成処理を含む場合、音声による対話を実現できる。また、動作が機械翻訳処理を含む場合、２カ国以上の言語間での対話を実現できる。
【０１５９】
なお、本実施の形態において、行われている対話の履歴情報（行きたい場所、肯定的な対象物、否定的な対象物など）を蓄積していくことにより、人間は対話装置１と、より自然に、次々と対話できる。つまり、ユーザが「二条城には行ったことがあります。」と入力した場合、履歴情報取得部１１３は、「行ったことがあります。」から、第一話者が否定的である対象を示す否定用語「二条城」を取得する。そして、文取得部１０９は、否定用語「二条城」に対応する文以外の文を出力文情報格納部１０２から取得することとなる。なお、「行ったことがあります。」「嫌い」「良くない」など、否定的な内容を示す評価語は、予め記憶手段に記憶されている。
【０１６０】
また、本実施の形態において、対話の中で既に出現した対象（例えば、「二条城」）について、履歴情報取得部１１３は、既出用語として取得し、履歴情報取得部１１３は、既出用語「二条城」を蓄積する。そして、文取得部１０９は、既出用語「二条城」に対応する文以外の文を出力文情報格納部１０２から取得することとなる。
【０１６１】
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをＣＤ−ＲＯＭなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における対話装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、第一話者の出力文を受け付ける受付部と、対話の繋がりを示す情報であり、第一話者の出力文を抽象する第一対話行為タグ、または第二話者の出力文を抽象する第二対話行為タグとを有する対話連結情報を１以上有する対話構造情報を格納している記憶媒体から、前記受付部が受け付けた出力文を用いて、当該出力文に対応する第一対話行為タグを取得する第一対話行為タグ取得部と、前記第一対話行為タグ取得部が取得した第一対話行為タグに対応する１以上の第二対話行為タグのうちの、一の第二対話行為タグを取得する第二対話行為タグ取得部と、第二対話行為タグと１以上の文とを有する出力文情報を格納している記憶媒体から、前記第二対話行為タグ取得部が取得した第二対話行為タグに対応する文を取得する文取得部と、前記文取得部が取得した文を出力する文出力部として機能させるためのプログラム、である。
【０１６２】
また、上記プログラムにおいて、前記出力文情報は、第二対話行為タグと、用語と、１以上の文とを有し、コンピュータを、前記文取得部は、前記受付部が受け付けた出力文から用語を取得する用語取得手段と、前記用語取得手段が取得した用語に対応し、かつ、前記第二対話行為タグ取得部が取得した第二対話行為タグに対応する文を、前記出力文情報格納部から取得する文取得手段とを具備するものとして機能させるためのプログラム、であることは好適である。
【０１６３】
また、上記プログラムにおいて、前記対話連結情報は、対話の始端を示すノードを識別する始端ノード識別子と、対話の終端を示すノードを識別する終端ノード識別子と、第一対話行為タグと、第二対話行為タグとを有し、前記対話構造情報は、ノードを状態とする有限状態遷移で構成され、コンピュータを、前記文出力部が出力した文に対応する第二対話行為タグと対になる終端ノード識別子を、記憶媒体に格納されているカレントノード識別子に書き換えるカレントノード識別子更新部とをさらに具備するものとして機能させ、前記第二対話行為タグ取得部は、前記カレントノード識別子格納部に格納されているカレントノード識別子と一致する始端ノード識別子に対応し、かつ、前記第一対話行為タグ取得部が取得した第一対話行為タグに対応する一の第二対話行為タグを取得するものとして機能させるプログラム、であることは好適である。
【０１６４】
また、上記プログラムにおいて、前記対話連結情報は、始端ノード識別子で識別されるノードから終端ノード識別子で識別されるノードへの遷移の確率を示す情報である重み情報をも有し、前記第二対話行為タグ取得部は、前記カレントノード識別子格納部に格納されているカレントノード識別子と一致する始端ノード識別子に対応し、かつ、前記第一対話行為タグ取得部が取得した第一対話行為タグに対応する２以上の第二対話行為タグのうち、前記重み情報を用いて、より高い遷移確率を示す重み情報と対になる第二対話行為タグを選択するものとして機能させるプログラム、であることは好適である。
【０１６５】
また、上記プログラムにおいて、前記対話連結情報は、動作を示す情報である動作識別子をさらに有し、コンピュータを、前記第二対話行為タグ取得部が取得した第二対話行為タグに対応する動作識別子を取得し、当該動作識別子に対応する動作手段を実行する実行部としてさらに機能させるプログラム、であることは好適である。
【０１６６】
また、上記プログラムにおいて、コンピュータを、前記受付部が受け付けた出力文から、履歴情報を取得する履歴情報取得部と、前記履歴情報取得部が取得した履歴情報を前記履歴情報格納部に蓄積する履歴情報蓄積部としてさらに機能させるプログラムであり、前記文取得部は、前記履歴情報を用いて、前記第二対話行為タグ取得部が取得した第二対話行為タグに対応する文を、前記出力文情報格納部から取得するものとしてさらに機能させるプログラム、であることは好適である。
【０１６７】
また、上記プログラムにおいて、前記履歴情報は、第一話者が否定的である対象を示す否定用語を含み、前記文取得部は、前記否定用語に対応する文以外の文であり、前記第二対話行為タグ取得部が取得した第二対話行為タグに対応する文を、前記出力文情報格納部から取得するものとしてさらに機能させるプログラム、であることは好適である。
【０１６８】
さらに、上記プログラムにおいて、前記履歴情報は、既に話題に出た用語である既出用語を含み、前記文取得部は、前記既出用語に対応する文以外の文であり、前記第二対話行為タグ取得部が取得した第二対話行為タグに対応する文を、前記出力文情報格納部から取得するものとしてさらに機能させるプログラム、であることは好適である。
【０１６９】
（実施の形態２）
本実施の形態において、対話行為タグ付き対話文コーパスから、重み情報を自動的に学習する処理について説明する。なお、本実施の形態において、かかる学習処理は、対話装置２で行われるが、対話装置２とは別の装置で行われても良い。
【０１７０】
図１７は、本実施の形態における対話装置２のブロック図である。
【０１７１】
対話装置２は、対話構造情報格納部１０１、出力文情報格納部１０２、動作手段格納部１０３、カレントノード識別子格納部１０４、履歴情報格納部１０５、受付部１０６、第一対話行為タグ取得部１０７、第二対話行為タグ取得部１０８、文取得部１０９、文出力部１１０、カレントノード識別子更新部１１１、実行部１１２、履歴情報取得部１１３、履歴情報蓄積部１１４を具備する。文取得部１０９は、用語取得手段１０９１、文取得手段１０９２、対話行為タグ付き対話文コーパス格納部２０１、対話行為タグ出現順序情報取得部２０２、重み情報構成部２０３、重み情報蓄積部２０４を具備する。
【０１７２】
対話行為タグ付き対話文コーパス格納部２０１は、対話行為タグ付き対話文コーパスを格納している。対話行為タグ付き対話文コーパスとは、第一対話行為タグまたは第二対話行為タグと対話文の対の集合であり、対話の流れを示す情報である。対話行為タグ付き対話文コーパス格納部２０１は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。対話行為タグ付き対話文コーパス格納部２０１に対話行為タグ付き対話文コーパスが記憶される過程は問わない。例えば、記録媒体を介して対話行為タグ付き対話文コーパスが対話行為タグ付き対話文コーパス格納部２０１で記憶されるようになってもよく、通信回線等を介して送信された対話行為タグ付き対話文コーパスが対話行為タグ付き対話文コーパス格納部２０１で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された対話行為タグ付き対話文コーパスが対話行為タグ付き対話文コーパス格納部２０１で記憶されるようになってもよい。
【０１７３】
対話行為タグ出現順序情報取得部２０２は、対話行為タグ付き対話文コーパス格納部２０１に格納されている対話行為タグ付き対話文コーパスから、第一対話行為タグまたは第二対話行為タグの順序付きの情報である対話行為タグ出現順序情報を取得する。対話行為タグ出現順序情報取得部２０２は、通常、ＭＰＵやメモリ等から実現され得る。対話行為タグ出現順序情報取得部２０２の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【０１７４】
重み情報構成部２０３は、対話行為タグ出現順序情報取得部２０２が取得した対話行為タグ出現順序情報を用いて、対話構造情報格納部１０１の対話構造情報を参照し、当該対話行為タグ出現順序情報が有する第一対話行為タグまたは／および第二対話行為タグを有する対話連結情報に含まれる重み情報を構成する。なお、第一対話行為タグまたは／および第二対話行為タグは、第一対話行為タグと第二対話行為タグのどちらか一方、または両方という意味である。重み情報構成部２０３は、通常、ＭＰＵやメモリ等から実現され得る。重み情報構成部２０３の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【０１７５】
重み情報蓄積部２０４は、重み情報構成部２０３が構成した重み情報を、対話構造情報格納部１０１に蓄積する。なお、蓄積する重み情報は、対話行為タグ出現順序情報が有する第一対話行為タグまたは／および第二対話行為タグを含む対話構造情報内の重み情報である。重み情報蓄積部２０４は、通常、ＭＰＵやメモリ等から実現され得る。重み情報蓄積部２０４の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【０１７６】
次に、対話装置２が重み情報を蓄積するまでの動作について図１８のフローチャートを用いて説明する。
【０１７７】
（ステップＳ１８０１）対話行為タグ出現順序情報取得部２０２は、カウンタｉに１を代入する。
【０１７８】
（ステップＳ１８０２）対話行為タグ出現順序情報取得部２０２は、ｉ番目の対話文が、対話行為タグ付き対話文コーパス格納部２０１の中の対話行為タグ付き対話文コーパスに存在するか否かを判断する。存在すればステップＳ１８０３に行き、存在しなければ処理を終了する。
【０１７９】
（ステップＳ１８０３）対話行為タグ出現順序情報取得部２０２は、対話行為タグ付き対話文コーパスから、ｉ番目の対話文に対応する対話行為タグ（第一対話行為タグまたは／および第二対話行為タグ）を取得し、メモリ上に配置する。なお、取得した１つ、または２つの対話行為タグは、対話の順序の情報も有し（２つの対話行為タグの格納順序が順序を示す情報である、としても良い）、いわゆる対話行為タグ出現順序情報である。
【０１８０】
（ステップＳ１８０４）重み情報構成部２０３は、カレントノード識別子格納部１０４からカレントノード識別子を取得し、メモリ上に配置する。なお、カレントノード識別子の初期値は、例えば、「０」である。
【０１８１】
（ステップＳ１８０５）重み情報構成部２０３は、ステップＳ１８０４で取得したカレントノード識別子を始端ノード識別子とし、ステップＳ１８０３で取得された対話行為タグを、それぞれ第一対話行為タグまたは／および第二対話行為タグとし、これらの情報（始端ノード識別子、第一対話行為タグ、第二対話行為タグ）に対応する対話構造情報（レコード）を、対話構造情報格納部１０１から取得し、メモリ上に配置する。
【０１８２】
（ステップＳ１８０６）重み情報構成部２０３は、ステップＳ１８０５で取得した情報の中に、第一対話行為タグと第二対話行為タグの両方を含むか否かを判断する。両方を含めばステップＳ１８０７に行き、両方を含まなければステップＳ１８１０に行く。
【０１８３】
（ステップＳ１８０７）重み情報構成部２０３は、対話行為タグ付き対話文コーパスから、（ｉ＋１）番目の対話文を取得する。
【０１８４】
（ステップＳ１８０８）重み情報構成部２０３は、（ｉ＋１）番目の対話文に対応する対話行為タグを、対話行為タグ付き対話文コーパスから取得する。
【０１８５】
（ステップＳ１８０９）ステップＳ１８０５で取得された第二対話行為タグが、ステップＳ１８０８で取得された第二対話行為タグと同じであるか（対応するか否か）を判断する。対応すればステップＳ１８１０に行き、対応しなければエラー処理（ステップＳ１８１５）を行う。なお、エラー処理とは、例えば、エラーメッセージを出力し、処理を終了することなどである。
【０１８６】
（ステップＳ１８１０）重み情報構成部２０３は、ステップＳ１８０５で取得したレコードから重み情報を取得する。
【０１８７】
（ステップＳ１８１１）重み情報構成部２０３は、ステップＳ１８０５で取得した重み情報を更新する。例えば、重み情報構成部２０３は、ステップＳ１８０５で取得した重み情報に予め決められた数（例えば、「１」）を加算する。かかる場合、重み情報は、いわゆるＷＦＳＴのパスを通過した回数が重み情報となる。または、重み情報構成部２０３は、当該回数をパラメータとして、予め決められた演算式により重み情報を算出することとなる。なお、かかる演算式は、通常、回数が多いほど重みが重くなる、回数をパラメータとする増加関数である。
【０１８８】
また、必要に応じて、更新した重み情報に対応するレコードと同じ始端ノード識別子を有するアークに対応するレコードに含まれる重み情報を更新する。この更新とは、経由する確率を下げるように更新することである。
【０１８９】
（ステップＳ１８１２）重み情報蓄積部２０４は、ステップＳ１８１１で更新された重み情報を対話構造情報格納部１０１に蓄積する。なお、更新する重み情報は、ステップＳ１８１０で取得された重み情報等である。
【０１９０】
（ステップＳ１８１３）カレントノード識別子更新部１１１は、カレントノード識別子を、ステップＳ１８０５で取得された始端ノード識別子に対応する終端ノード識別子に、更新する。
【０１９１】
（ステップＳ１８１４）対話行為タグ出現順序情報取得部２０２は、カウンタｉを、処理した文の数だけ、インクリメントする。ステップＳ１８０２に戻る。
【０１９２】
なお、図１８のフローチャートにおいて、重み情報の更新の方法、アルゴリズムは問わない。重み情報がそのアークを経由した回数であれば、経由したアークに対応するレコードの重み情報を１、インクリメントするだけで良い。
【０１９３】
以下、本実施の形態における対話装置２の具体的な動作について説明する。実施の形態１と同様に、対話構造情報格納部１０１は、図７、および図８に示す対話構造情報管理表を格納している。また、出力文情報格納部１０２は、図１２、図１３に示す出力文情報管理表を格納している。また、出力文情報格納部１０２は、図１４に示すキーワード管理表を保持している。さらに、第一対話行為タグ取得部１０７は、図１５に示す文対話行為情報群管理表を保持している。
【０１９４】
また、対話行為タグ付き対話文コーパス格納部２０１は、図１９に示す対話行為タグ付き対話文コーパスを格納している。対話行為タグ付き対話文コーパスは、対話行為タグと、文が対応付けられている。この対話行為タグは、例えば、人手により付与されたタグであっても良いし、図３のフローチャートを用いて説明したアルゴリズム等により、自動付与されても良い。
【０１９５】
かかる場合、ユーザは、重み情報を自動的に学習する処理の開始指示を入力した、とする。すると、以下のように対話装置２は処理する。
【０１９６】
まず、対話行為タグ出現順序情報取得部２０２は、カレントノード識別子「０」を取得する。
【０１９７】
次に、対話行為タグ出現順序情報取得部２０２は、対話行為タグ付き対話文コーパスから、１番目の対話文に対応する対話行為タグ＜Ｇｒｔ（ｓｔａｒｔ）＞を取得する。
【０１９８】
次に、対話行為タグ出現順序情報取得部２０２は、カレントノード識別子「０」を始端ノード識別子とし、１番目の対話文に対応する対話行為タグ＜Ｇｒｔ（ｓｔａｒｔ）＞を第一対話行為タグまたは第二対話行為タグとするレコードを、図７または図８の対話構造情報管理表から検索する。そして、対話行為タグ出現順序情報取得部２０２は、「ＩＤ＝１」のレコードを得る。
【０１９９】
次に、重み情報構成部２０３は、取得したレコードに含まれる重み情報「１」を取得し、メモリ上に配置する。なお、「１」は「１／１」と同値である、とする。
【０２００】
次に、重み情報構成部２０３は、取得した重み情報「１／１」を「２／２」に更新する。「２／２」は、２回の対話中、２回とも、本アークを経由したことを示す。なお、ここで、重み情報構成部２０３は、取得した重み情報「ｎ／ｍ」に対して、「（ｎ＋１）／（ｍ＋１）」に更新する。また、重み情報構成部２０３は、経由しなかったアークに対応するレコードの重み情報「ｎ／ｍ」に対して、「ｎ／（ｍ＋１）」に更新する。
【０２０１】
次に、重み情報蓄積部２０４は、更新された重み情報「２／２」を、図７の対対話構造情報管理表の「ＩＤ＝１」のレコードの属性「重み情報」に蓄積する。
【０２０２】
次に、カレントノード識別子更新部１１１は、カレントノード識別子を、取得された始端ノード識別子に対応する終端ノード識別子「１」に、更新する。
【０２０３】
次に、対話行為タグ出現順序情報取得部２０２は、カレントノード識別子「１」を取得する。
【０２０４】
次に、対話行為タグ出現順序情報取得部２０２は、対話行為タグ付き対話文コーパスから、２番目の対話文に対応する対話行為タグ＜ＯＱ＞を取得する。
【０２０５】
次に、対話行為タグ出現順序情報取得部２０２は、カレントノード識別子「１」を始端ノード識別子とし、２番目の対話文に対応する対話行為タグ＜ＯＱ＞を第一対話行為タグまたは第二対話行為タグとするレコードを、図７または図８の対話構造情報管理表から検索する。そして、対話行為タグ出現順序情報取得部２０２は、「ＩＤ＝２」のレコードを得る。
【０２０６】
次に、重み情報構成部２０３は、取得したレコードに含まれる重み情報「１」を取得し、メモリ上に配置する。なお、「１」は「１／１」と同値である、とする。
【０２０７】
次に、重み情報構成部２０３は、取得した重み情報「１／１」を「２／２」に更新する。そして、重み情報蓄積部２０４は、更新された重み情報「２／２」を、図７の対対話構造情報管理表の「ＩＤ＝２」のレコードの属性「重み情報」に蓄積する。
【０２０８】
次に、カレントノード識別子更新部１１１は、カレントノード識別子を、取得された始端ノード識別子に対応する終端ノード識別子「２」に、更新する。
【０２０９】
次に、対話行為タグ出現順序情報取得部２０２は、カレントノード識別子「２」を取得する。
【０２１０】
次に、対話行為タグ出現順序情報取得部２０２は、対話行為タグ付き対話文コーパスから、３番目の対話文に対応する対話行為タグ＜Ｓｔｔ（ｎｏ＿ｒｅｑｕｉｒｅｍｅｎｔ）＞を取得する。
【０２１１】
次に、対話行為タグ出現順序情報取得部２０２は、カレントノード識別子「２」を始端ノード識別子とし、３番目の対話文に対応する対話行為タグ＜Ｓｔｔ（ｎｏ＿ｒｅｑｕｉｒｅｍｅｎｔ）＞を第一対話行為タグまたは第二対話行為タグとするレコードを、図７または図８の対話構造情報管理表から検索する。そして、対話行為タグ出現順序情報取得部２０２は、「ＩＤ＝５」のレコードを得る。また、「ＩＤ＝５」のレコードは、対話行為タグ＜Ｓｔｔ（ｎｏ＿ｒｅｑｕｉｒｅｍｅｎｔ）＞ではない、対話行為タグ＜Ｇｒｔ（ｅｎｄ）＞を含むことを、対話行為タグ出現順序情報取得部２０２は、検出する。そして、対話行為タグ出現順序情報取得部２０２は、次の文に対応する対話行為タグ＜Ｇｒｔ（ｅｎｄ）＞を取得し、一致しているか否かを判断する。そして、一致しているので、対話行為タグ出現順序情報取得部２０２は、「ＩＤ＝５」のレコードが処理対象のレコードであると決定する。
【０２１２】
次に、重み情報構成部２０３は、取得したレコードに含まれる重み情報「１／１０」を取得し、メモリ上に配置する。
【０２１３】
次に、重み情報構成部２０３は、取得した重み情報「１／１０」を「２／１１」に更新する。そして、重み情報蓄積部２０４は、更新された重み情報「２／１１」を、図７の対対話構造情報管理表の「ＩＤ＝５」のレコードの属性「重み情報」に蓄積する。
【０２１４】
また、重み情報構成部２０３は、経由しないアークに対応するレコード（「ＩＤ＝３」「ＩＤ＝４」のレコード）の重み情報「５／１０」「４／１０」をそれぞれ取得する。
【０２１５】
そして、重み情報構成部２０３は、重み情報「５／１０」「４／１０」を、それぞれ「５／１１」「４／１１」に更新する。
【０２１６】
そして、重み情報蓄積部２０４は、更新された重み情報「５／１１」「４／１１」を、それぞれ図７の対対話構造情報管理表の「ＩＤ＝３」「ＩＤ＝４」のレコードの属性「重み情報」に蓄積する。
【０２１７】
以上により、図１９の対話行為タグ付き対話文コーパスを学習し、重み情報を更新する処理が完了する。
【０２１８】
以上、本実施の形態によれば、実際の対話の情報を格納したコーパスを用いて、対話の流れを制御するための重み情報を、自動的に蓄積できる。
【０２１９】
なお、本実施の形態によれば、対話装置２が重み情報を学習した。しかし、対話構造情報格納部１０１、対話行為タグ付き対話文コーパス格納部２０１、対話行為タグ出現順序情報取得部２０２、重み情報構成部２０３、重み情報蓄積部２０４のみを有する重み情報学習装置が存在しても良いことは言うまでもない。かかる場合、対話装置２は、実施の形態１で説明した対話装置１と、重み情報学習装置に分離されたこととなる。
【０２２０】
さらに、本実施の形態における対話装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、対話装置の対話構造情報格納部における重み情報を学習させるためのプログラムであって、第一対話行為タグまたは第二対話行為タグと対話文の対の集合であり、対話の流れを示す情報である対話行為タグ付き対話文コーパスから、第一対話行為タグまたは第二対話行為タグの順序付きの情報である対話行為タグ出現順序情報を取得する対話行為タグ出現順序情報取得部と、前記対話行為タグ出現順序情報を用いて、前記対話構造情報格納部の対話構造情報を参照し、当該対話行為タグ出現順序情報が有する第一対話行為タグと第二対話行為タグを有する対話連結情報に含まれる重み情報を構成する重み情報構成部と、前記重み情報構成部が構成した重み情報を、前記対話構造情報格納部に蓄積する重み情報蓄積部として機能させるためのプログラム、である。
【０２２１】
また、図２０は、本明細書で述べたプログラムを実行して、上述した実施の形態の対話装置等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図２０は、このコンピュータシステム３４０の概観図であり、図２１は、コンピュータシステム３４０のブロック図である。なお、対話装置が携帯型の装置であることは好適である。
【０２２２】
図２０において、コンピュータシステム３４０は、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）ドライブ、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ドライブを含むコンピュータ３４１と、キーボード３４２と、マウス３４３と、モニタ３４４、マイク３４５、スピーカー３４６とを含む。
【０２２３】
図２１において、コンピュータ３４１は、ＦＤドライブ３４１１、ＣＤ−ＲＯＭドライブ３４１２に加えて、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３４１３と、ＣＤ−ＲＯＭドライブ３４１２及びＦＤドライブ３４１１に接続されたバス３４１４と、ブートアッププログラム等のプログラムを記憶するためのＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）３４１５と、ＣＰＵ３４１３に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３４１６と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク３４１７とを含む。ここでは、図示しないが、コンピュータ３４１は、さらに、ＬＡＮへの接続を提供するネットワークカードを含んでも良い。
【０２２４】
コンピュータシステム３４０に、上述した実施の形態の対話装置等の機能を実行させるプログラムは、ＣＤ−ＲＯＭ３５０１、またはＦＤ３５０２に記憶されて、ＣＤ−ＲＯＭドライブ３４１２またはＦＤドライブ３４１１に挿入され、さらにハードディスク３４１７に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ３４１に送信され、ハードディスク３４１７に記憶されても良い。プログラムは実行の際にＲＡＭ３４１６にロードされる。プログラムは、ＣＤ−ＲＯＭ３５０１、ＦＤ３５０２またはネットワークから直接、ロードされても良い。
【０２２５】
プログラムは、コンピュータ３４１に、上述した実施の形態の対話装置等の機能を実行させるオペレーティングシステム（ＯＳ）、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能（モジュール）を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム３４０がどのように動作するかは周知であり、詳細な説明は省略する。
【０２２６】
なお、上記プログラムにおいて、情報を送信する送信ステップや、情報を受信する受信ステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理（ハードウェアでしか行われない処理）は含まれない。
【０２２７】
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【０２２８】
また、上記各実施の形態において、各処理（各機能）は、単一の装置（システム）によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
【０２２９】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【０２３０】
以上のように、本発明にかかる対話装置は、人間が対話装置と自然に対話できるという効果を有し、対話支援システム等として有用である。
【図面の簡単な説明】
【０２３１】
【図１】実施の形態１における対話装置のブロック図
【図２】同対話装置の動作について説明するフローチャート
【図３】同第一対話行為タグ取得処理の動作について説明するフローチャート
【図４】同第二対話行為タグ取得処理の動作について説明するフローチャート
【図５】同文取得処理の動作について説明するフローチャート
【図６】同後処理の詳細について説明するフローチャート
【図７】同対話構造情報管理表を示す図
【図８】同対話構造情報管理表を示す図
【図９】同対話行為タグ等について説明する図
【図１０】同対話行為タグ等について説明する図
【図１１】同対話状態遷移図
【図１２】同出力文情報管理表を示す図
【図１３】同出力文情報管理表を示す図
【図１４】同キーワード管理表を示す図
【図１５】同文対話行為情報群管理表を示す図
【図１６】同対話状態遷移図
【図１７】実施の形態２における対話装置のブロック図
【図１８】同対話装置の動作について説明するフローチャート
【図１９】同対話行為タグ付き対話文コーパスを示す図
【図２０】同コンピュータシステムの概観図
【図２１】同コンピュータシステムのブロック図
【符号の説明】
【０２３２】
１、２  対話装置
１０１  対話構造情報格納部
１０２  出力文情報格納部
１０３  動作手段格納部
１０４  カレントノード識別子格納部
１０５  履歴情報格納部
１０６  受付部
１０７  第一対話行為タグ取得部
１０８  第二対話行為タグ取得部
１０９  文取得部
１１０  文出力部
１１１  カレントノード識別子更新部
１１２  実行部
１１３  履歴情報取得部
１１４  履歴情報蓄積部
２０１  対話文コーパス格納部
２０２  対話行為タグ出現順序情報取得部
２０３  情報構成部
２０４  情報蓄積部
１０９１  用語取得手段
１０９２  文取得手段
【図１】
0005582225.tif 000002
【図２】
0005582225.tif 000003
【図３】
0005582225.tif 000004
【図４】
0005582225.tif 000005
【図５】
0005582225.tif 000006
【図６】
0005582225.tif 000007
【図７】
0005582225.tif 000008
【図８】
0005582225.tif 000009
【図１１】
0005582225.tif 000010
【図１２】
0005582225.tif 000011
【図１３】
0005582225.tif 000012
【図１４】
0005582225.tif 000013
【図１５】
0005582225.tif 000014
【図１６】
0005582225.tif 000015
【図１７】
0005582225.tif 000016
【図１８】
0005582225.tif 000017
【図１９】
0005582225.tif 000018
【図２０】
0005582225.tif 000019
【図２１】
0005582225.tif 000020
【図９】
0005582225.tif 000021
【図１０】
0005582225.tif 000022