(57)【要約】【課題】ユーザの発言データの内容を表す適切なカテゴリを決定する技術を提供する。【解決手段】カテゴリ決定装置１００は、ユーザの発言テキストデータを取得する発言データ取得部３１と、発言データ取得部３１により取得される発言テキストデータの中から対象ワードを抽出するワード抽出部３２と、ワード抽出部３２により抽出される対象ワードを検索キーワードとして用いて、情報提供部１０１から抽出された情報データを取得するデータ取得部３３と、データ取得部３３により取得される情報データから、上記対象ワードに対応する、カテゴリ判別のための候補ワードを抽出する候補抽出部３４と、カテゴリ判別テーブル３６に格納されるカテゴリ判別ワードと、候補抽出部３４により抽出される候補ワードとを比較することにより、上記発言テキストデータの内容に対応するカテゴリを決定するカテゴリ決定部３５と、を有する。【選択図】図１
2014110002.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの発言テキストデータを取得する発言データ取得部と、
前記発言データ取得部により取得される発言テキストデータの中から、対象ワードを抽出するワード抽出部と、
前記ワード抽出部により抽出される対象ワードを検索キーワードとして用いて、情報提供部から抽出された情報データを取得するデータ取得部と、
前記データ取得部により取得される情報データから、前記対象ワードに対応する、カテゴリ判別のための候補ワードを抽出する候補抽出部と、
カテゴリ判別ワードとカテゴリとの対応関係を格納するカテゴリ判別テーブルに格納されるカテゴリ判別ワードと、前記候補抽出部により抽出される候補ワードとを比較することにより、前記発言テキストデータの内容に対応するカテゴリを決定するカテゴリ決定部と、
を備えるカテゴリ決定装置。
【請求項２】
前記候補抽出部は、前記情報データから複数の候補ワードを抽出すると共に、前記情報データの中での各候補ワードの出現頻度をそれぞれ取得し、
前記カテゴリ決定部は、高い出現頻度を持つ候補ワードから順に、前記カテゴリ判別テーブルに格納されるカテゴリ判別ワードと比較することにより、該カテゴリ判別ワードに適合する最も高い出現頻度を持つ候補ワードに対応するカテゴリを特定し、該特定されたカテゴリを前記発言テキストデータの内容に対応するカテゴリに決定する、
請求項１に記載のカテゴリ決定装置。
【請求項３】
前記カテゴリ決定部は、前記候補抽出部により抽出される候補ワードに適合するカテゴリ判別ワードが前記カテゴリ判別テーブルに格納されていない場合に、最も高い出現頻度を持つ候補ワードを前記発言テキストデータの内容に対応するカテゴリに決定する、
請求項１又は２に記載のカテゴリ決定装置。
【請求項４】
前記発言データ取得部により取得される発言テキストデータの少なくとも１部、及び、前記カテゴリ決定部により決定されるカテゴリを発言格納部に格納する格納処理部、
を更に備える請求項１から３のいずれか１項に記載のカテゴリ決定装置。
【請求項５】
前記発言データ取得部により取得される発言テキストデータの少なくとも１部、及び、前記カテゴリ決定部により決定されるカテゴリを発言格納部に格納し、前記候補抽出部により抽出される候補ワードに適合するカテゴリ判別ワードが前記カテゴリ判別テーブルに格納されていない場合に、前記対象ワードを前記カテゴリ判別ワードとし、かつ、前記情報データの中の出現頻度が最も高い候補ワードを前記カテゴリとする対応関係を前記カテゴリ判別テーブルに追加する格納処理部、
を更に備える請求項３に記載のカテゴリ決定装置。
【請求項６】
前記発言データ取得部により取得される発言テキストデータの中から、カテゴリワードを取得するカテゴリ取得部と、
前記発言格納部から、前記カテゴリ取得部により取得されるカテゴリワードに対応する前記発言テキストデータの少なくとも１部を抽出し、該抽出される発言テキストデータの少なくとも１部を含む対話メッセージデータを生成するメッセージ生成部と、
前記メッセージ生成部により生成される対話メッセージデータを出力するデータ出力部と、
を更に備える請求項４又は５に記載のカテゴリ決定装置。
【請求項７】
前記発言データ取得部により取得される発言テキストデータにカテゴリワードが含まれない場合に、前記発言格納部からカテゴリを抽出し、該抽出されるカテゴリを含む対話メッセージデータを生成するメッセージ生成部と、
前記メッセージ生成部により生成される対話メッセージデータを出力するデータ出力部と、
を更に備える請求項４から６のいずれか１項に記載のカテゴリ決定装置。
【請求項８】
少なくとも１つのコンピュータにより実行されるカテゴリ決定方法において、
ユーザの発言テキストデータを取得し、
前記取得された発言テキストデータの中から、対象ワードを抽出し、
前記抽出された対象ワードを検索キーワードとして用いて、情報提供部から抽出された情報データを取得し、
前記取得された情報データから、前記対象ワードに対応する、カテゴリ判別のための候補ワードを抽出し、
カテゴリ判別ワードとカテゴリとの対応関係を格納するカテゴリ判別テーブルに格納されるカテゴリ判別ワードと、前記抽出された候補ワードとを比較することにより、前記発言テキストデータの内容に対応するカテゴリを決定する、
ことを含むカテゴリ決定方法。
【請求項９】
前記候補ワードの抽出は、前記情報データから複数の候補ワードを抽出すると共に、前記情報データの中での各候補ワードの出現頻度をそれぞれ取得し、
前記カテゴリの決定は、高い出現頻度を持つ候補ワードから順に、前記カテゴリ判別テーブルに格納されるカテゴリ判別ワードと比較することにより、該カテゴリ判別ワードに適合する最も高い出現頻度を持つ候補ワードに対応するカテゴリを特定し、該特定されたカテゴリを前記発言テキストデータの内容に対応するカテゴリに決定する、
請求項８に記載のカテゴリ決定方法。
【請求項１０】
前記カテゴリの決定は、前記抽出される候補ワードに適合するカテゴリ判別ワードが前記カテゴリ判別テーブルに格納されていない場合に、最も高い出現頻度を持つ候補ワードを前記発言テキストデータの内容に対応するカテゴリに決定する、
請求項８又は９に記載のカテゴリ決定方法。
【請求項１１】
前記発言テキストデータの少なくとも１部、及び、前記決定されるカテゴリを発言格納部に格納する、
ことを更に含む請求項８から１０のいずれか１項に記載のカテゴリ決定方法。
【請求項１２】
前記発言テキストデータの少なくとも１部、及び、前記決定されるカテゴリを発言格納部に格納し、
前記抽出される候補ワードに適合するカテゴリ判別ワードが前記カテゴリ判別テーブルに格納されていない場合に、前記対象ワードを前記カテゴリ判別ワードとし、かつ、前記情報データの中の出現頻度が最も高い候補ワードを前記カテゴリとする対応関係を前記カテゴリ判別テーブルに追加する、
ことを更に含む請求項１０に記載のカテゴリ決定方法。
【請求項１３】
前記発言テキストデータの中から、カテゴリワードを取得し、
前記発言格納部から、前記取得されるカテゴリワードに対応する前記発言テキストデータの少なくとも１部を抽出し、
前記抽出される発言テキストデータの少なくとも１部を含む対話メッセージデータを生成し、
前記生成される対話メッセージデータを出力する、
ことを更に含む請求項１１又は１２に記載のカテゴリ決定方法。
【請求項１４】
前記発言テキストデータにカテゴリワードが含まれない場合に、前記発言格納部からカテゴリを抽出し、
前記抽出されるカテゴリを含む対話メッセージデータを生成し、
前記生成される対話メッセージデータを出力する、
ことを更に含む請求項１１から１３のいずれか１項に記載のカテゴリ決定方法。
【請求項１５】
少なくとも１つのコンピュータにカテゴリ決定処理を実行させるプログラムにおいて、
前記カテゴリ決定処理は、
ユーザの発言テキストデータを取得し、
前記取得された発言テキストデータの中から、対象ワードを抽出し、
前記抽出された対象ワードを検索キーワードとして用いて、情報提供部から抽出された情報データを取得し、
前記取得された情報データから、前記対象ワードに対応する、カテゴリ判別のための候補ワードを抽出し、
カテゴリ判別ワードとカテゴリとの対応関係を格納するカテゴリ判別テーブルに格納されるカテゴリ判別ワードと、前記抽出された候補ワードとを比較することにより、前記発言テキストデータの内容に対応するカテゴリを決定する、
ことを含むプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザの発言データを類別する技術に関する。
【背景技術】
【０００２】
音声対話型のコンピュータインタフェースが提供され始めている。このインタフェースでは、ユーザの発話が音声認識され、その発話に対応する処理が実行され、その処理結果がコンピュータからユーザへ応答される。これにより、ユーザは、自然な対話形式でコンピュータを操作することができる。
【０００３】
下記特許文献１は、インターネットを利用したチャットシステムを提案している。このシステムは、ユーザ端末から取得された発言文章を形態素解析することにより、その発言文章に含まれている所定のキーワードを抽出し、当該抽出されたキーワードを利用して、当該キーワードに対応する一乃至複数の応答文が登録されている会話用ＤＢを用いて上記ユーザ端末に送信する応答文を決定する。更に、このシステムは、当該発言文章をユーザごとに登録しておき、登録された発言文章を検索することにより、各ユーザに関する、年齢、性別、趣味、嗜好などを把握する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１４５５４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述の提案手法によれば、ユーザの発言文章に含まれる単語ベースで、各ユーザに関する情報を得ることができる。即ち、上述の提案手法では、ユーザの発言文章に含まれる単語をキーワードとして、その発言文章の内容が判別される。従って、ユーザの発言文章「イチローってすごいよね」が登録されている場合、そのユーザの嗜好を表す情報として、個人名「イチロー」が抽出されると思われる。
【０００６】
ところが、上記発言文章をそれに含まれる単語だけでなく、もう少し上位の概念としてのプロ野球選手というカテゴリで類別したい場合がある。例えば、プロ野球自体のファンであり、複数のプロ野球選手の名前を含む多くの発言を行うユーザについては、プロ野球選手個々の名前の情報だけでなく、プロ野球というカテゴリの情報を取得することが望まれる場合がある。
【０００７】
本発明は、このような事情に鑑みてなされたものであり、ユーザの発言データの内容を表す適切なカテゴリを決定する技術を提供する。ここで、ユーザの発言データとは、ユーザの発言が録音された音声データ、この音声データに対する音声認識により得られるテキストデータ、入力装置を用いてユーザにより入力されたテキストデータ等を含む。
【課題を解決するための手段】
【０００８】
本発明の各態様では、上述した課題を解決するために、それぞれ以下の構成を採用する。
【０００９】
第１の態様は、カテゴリ決定装置に関する。第１態様に係るカテゴリ決定装置は、ユーザの発言テキストデータを取得する発言データ取得部と、発言データ取得部により取得される発言テキストデータの中から、対象ワードを抽出するワード抽出部と、ワード抽出部により抽出される対象ワードを検索キーワードとして用いて、情報提供部から抽出された情報データを取得するデータ取得部と、データ取得部により取得される情報データから、上記対象ワードに対応する、カテゴリ判別のための候補ワードを抽出する候補抽出部と、カテゴリ判別ワードとカテゴリとの対応関係を格納するカテゴリ判別テーブルに格納されるカテゴリ判別ワードと、候補抽出部により抽出される候補ワードとを比較することにより、上記発言テキストデータの内容に対応するカテゴリを決定するカテゴリ決定部と、を有する。
【００１０】
第２の態様は、カテゴリ決定方法に関する。第２態様に係るカテゴリ決定方法は、少なくとも１つのコンピュータが、ユーザの発言テキストデータを取得し、取得された発言テキストデータの中から、対象ワードを抽出し、抽出された対象ワードを検索キーワードとして用いて、情報提供部から抽出された情報データを取得し、取得された情報データから、上記対象ワードに対応する、カテゴリ判別のための候補ワードを抽出し、カテゴリ判別ワードとカテゴリとの対応関係を格納するカテゴリ判別テーブルに格納されるカテゴリ判別ワードと、上記抽出された候補ワードとを比較することにより、上記発言テキストデータの内容に対応するカテゴリを決定する、ことを含む。
【００１１】
なお、本発明の他の態様としては、上記第１の態様の構成を少なくとも１つのコンピュータに実現させるプログラムであってもよいし、このようなプログラムを記録したコンピュータが読み取り可能な記録媒体であってもよい。この記録媒体は、非一時的な有形の媒体を含む。
【発明の効果】
【００１２】
上記各態様によれば、ユーザの発言データの内容を表す適切なカテゴリを決定する技術を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態に係るカテゴリ決定装置の処理構成例を概念的に示す図である。
【図２】第１実施形態における音声対話サーバ装置の構成例を概念的に示す図である。
【図３】第１実施形態における音声対話サーバ装置及びクライアント装置の処理構成例を概念的に示す図である。
【図４】対話記録テーブルの例を示す図である。
【図５】カテゴリ決定処理に関する音声対話サーバ装置の動作例を示すフローチャートである。
【図６Ａ】対話メッセージデータ生成処理に関する音声対話サーバ装置の動作例を示すフローチャートである。
【図６Ｂ】カテゴリ質問データに対する対話メッセージデータ生成処理に関する音声対話サーバ装置の動作例を示すフローチャートである。
【図６Ｃ】曖昧質問データに対する対話メッセージデータ生成処理に関する音声対話サーバ装置の動作例を示すフローチャートである。
【図７】変形例における音声対話サーバ装置及びクライアント装置並びに対話記録装置の処理構成例を概念的に示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について説明する。なお、以下に挙げる実施形態は例示であり、本発明は以下の実施形態の構成に限定されない。
【００１５】
図１は、本発明の実施の形態に係るカテゴリ決定装置１００の処理構成例を概念的に示す図である。図１に示されるように、カテゴリ決定装置１００は、ユーザの発言テキストデータを取得する発言データ取得部３１と、発言データ取得部３１により取得される発言テキストデータの中から、対象ワードを抽出するワード抽出部３２と、ワード抽出部３２により抽出される対象ワードを検索キーワードとして用いて、情報提供部１０１から抽出された情報データを取得するデータ取得部３３と、データ取得部３３により取得される情報データから、上記対象ワードに対応する、カテゴリ判別のための候補ワードを抽出する候補抽出部３４と、カテゴリ判別ワードとカテゴリとの対応関係を格納するカテゴリ判別テーブル３６に格納されるカテゴリ判別ワードと、候補抽出部３４により抽出される候補ワードとを比較することにより、上記発言テキストデータの内容に対応するカテゴリを決定するカテゴリ決定部３５と、を有する。
【００１６】
カテゴリ決定装置１００は、例えば、後述する詳細実施形態における音声対話サーバ装置１と同様のハードウェア構成を有し、その音声対話サーバ装置１と同様にプログラムが処理されることで、上述の各処理部が実現される。情報提供部１０１及びカテゴリ判別テーブル３６は、カテゴリ決定装置１００により実現されてもよいし、他のコンピュータにより実現されてもよい。
【００１７】
本発明の実施の形態に係るカテゴリ決定方法は、図１に示されるカテゴリ決定装置１００のような、少なくとも１つのコンピュータにより実行される次のような工程を含む。即ち、当該カテゴリ決定方法は、ユーザの発言テキストデータを取得し、取得された発言テキストデータの中から、対象ワードを抽出し、抽出された対象ワードを検索キーワードとして用いて、情報提供部１０１から抽出された情報データを取得し、取得された情報データから、上記対象ワードに対応する、カテゴリ判別のための候補ワードを抽出し、上述のカテゴリ判別テーブル３６に格納されるカテゴリ判別ワードと、上記抽出された候補ワードとを比較することにより、上記発言テキストデータの内容に対応するカテゴリを決定する、ことを含む。
【００１８】
本実施形態では、ユーザの発言テキストデータが取得される。発言テキストデータは、ユーザにより発声された発言音声が録音及び音声認識されることにより得られる文章データであってもよいし、当該ユーザ又は他の者により、キーボード、タッチパネル等の入力装置を用いて入力された文章データであってもよい。このような発言テキストデータから、対象ワードが抽出される。
【００１９】
続いて、上記発言テキストデータから対象ワードが抽出され、その対象ワードを検索キーワードとして用いて情報提供部１０１から情報データが抽出され、その情報データが取得される。従って、取得される情報データは、発言テキストデータに含まれる対象ワードを含む情報データ、その対象ワードに関連すると情報提供部１０１により判断された情報データなどである。
【００２０】
本実施形態では、更に、当該情報データから候補ワードが抽出される。これにより、抽出される候補ワードは、当該対象ワードに関連する単語又は単語列となる。この候補ワードは、カテゴリを決める上でキーワードとして用いられる。つまり、カテゴリ判別テーブル３６に格納されるカテゴリ判別ワードと、その候補ワードとが比較されることにより、当該候補ワードに対応するカテゴリが特定され、結果、その特定されたカテゴリが、発言テキストデータの内容に対応するカテゴリに決定される。
【００２１】
このように、本実施形態では、ユーザの発言内容に関連する単語又は単語列（候補ワード）が、情報提供部１０１に対する検索結果から取得され、そのように取得された単語又は単語列に基づいて、ユーザの発言内容を示すカテゴリが決定される。従って、本実施形態によれば、ユーザの発言テキストデータの内容を表す適切なカテゴリを決定することができる。更に、本実施形態では、発言テキストデータにあまり使われない単語又は単語列が対象ワードとして含まれている場合でも、情報提供部１０１に対する検索結果から取得される単語又は単語列を利用してカテゴリを決めるため、カテゴリ判別テーブル３６のヒット率を上げることができる。逆に言えば、本実施形態によれば、カテゴリ判別テーブル３６に格納しておくべきカテゴリ判別ワードとカテゴリとの対応関係の数を減らすことができる。
【００２２】
以下、上述の実施形態について更に詳細を説明する。以下には、詳細実施形態として、第１実施形態を例示する。以下の各詳細実施形態は、上述のカテゴリ決定装置１００及びカテゴリ決定方法をクラウド型の音声対話サーバ装置に適用した場合の例である。但し、上述のカテゴリ決定装置１００及びカテゴリ決定方法は、入出力形態として音声を用いる音声対話システムへの適用に限定されるものではなく、様々な入出力形態の装置又はシステムに適用可能である。
【００２３】
［第１実施形態］
〔装置構成〕
図２は、第１実施形態における音声対話サーバ装置（以降、単に、対話サーバと表記する）１の構成例を概念的に示す図である。対話サーバ１は、通信網３を介して、ユーザが利用するクライアント装置２、及び、情報提供サイト５に通信可能に接続される。通信網３は、インターネット等のような公衆網、ＷＡＮ（Wide Area Network）、ＬＡＮ（Local Area Network）、無線通信ネットワーク等である。なお、本実施形態において、対話サーバ１、クライアント装置２及び情報提供サイト５の間の通信形態は限定されない。
【００２４】
情報提供サイト５は、一般的なコンピュータであり、ＷＥＢサーバ、データベースサーバ等のような各種情報を提供するサーバ装置である。本実施形態は、情報提供サイト５のハードウェア構成及びソフトウェア構成を制限しない。情報提供サイト５は、上述の実施形態における情報提供部１０１に相当する。
【００２５】
対話サーバ１は、クライアント装置２からユーザの発言テキストデータを取得し、この発言テキストデータに基づいて情報提供サイト５を検索することにより、その検索結果をクライアント装置２へ提供する。
【００２６】
対話サーバ１は、図２に示されるように、ハードウェア構成として、相互にバス１５により接続される、ＣＰＵ（Central Processing Unit）１０、メモリ１１、入出力インタフェース（Ｉ／Ｆ）１２、通信装置１３等を有する。メモリ１１は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ハードディスク、可搬型記憶媒体等である。入出力Ｉ／Ｆ１２は、キーボード、マウス等のようなユーザ操作の入力を受け付ける装置、表示装置やプリンタ等のようなユーザに情報を提供する装置などと接続される。通信装置１３は、通信網３を介して、他のノードと通信を行う。なお、対話サーバ１のハードウェア構成は制限されない。
【００２７】
クライアント装置２は、ＰＣ（Personal Computer）、タブレット端末、スマートフォン、携帯電話等のような一般的なユーザ端末である。以降、クライアント装置２は、単に、クライアント２と表記する。クライアント２は、図２に示されるように、相互にバス１５により接続される、ＣＰＵ１０、メモリ１１、入出力Ｉ／Ｆ１２、通信装置１３等を有する。入出力Ｉ／Ｆ１２は、キーボード、マウス等のようなユーザ操作の入力を受け付ける入力装置（図示せず）、ユーザの発言音声を取得するマイクロホンのような音声入力部１７、音声を出力するスピーカ等のような音声出力部１８、ディスプレイ装置やプリンタ等のようなユーザに情報を提供する出力装置（図示せず）などと接続される。なお、クライアント２のハードウェア構成は制限されない。
【００２８】
〔処理構成〕
図３は、第１実施形態における対話サーバ１及びクライアント２の処理構成例を概念的に示す図である。図３において、図１に示されるカテゴリ決定装置１００の処理部と同じ処理部には、図１と同じ符号が付されている。
【００２９】
〈クライアント装置〉
クライアント２は、音声認識部２１、音声合成部２２等を有する。これら各処理部は、例えば、ＣＰＵ１０によりメモリ１１に格納されるプログラムが実行されることにより実現される。また、当該プログラムは、例えば、ＣＤ（Compact Disc）、メモリカード等のような可搬型記録媒体やネットワーク上の他のコンピュータから入出力Ｉ／Ｆ１２又は通信装置１３を介してインストールされ、メモリ１１に格納されてもよい。
【００３０】
音声認識部２１は、音声入力部１７を介して入力されかつ録音されたユーザの発言音声に対して音声認識処理を実行することにより、その発言音声に対応する発言テキストデータを生成する。発言テキストデータは、送信元識別情報（送信元ＩＤと表記）と共に、対話サーバ１へ送られる。送信元ＩＤは、クライアント装置２を識別する情報であってもよいし、ユーザを識別する情報であってもよいし、それら両方であってもよい。発言テキストデータとは、ユーザにより発された声がテキスト化された文字データである。なお、本実施形態では、この音声認識処理には、周知な手法が利用されればよく、その音声認識処理自体及びその音声認識処理で利用される各種音声認識パラメータを制限しない。
【００３１】
音声合成部２２は、対話サーバ１から送られる対話メッセージデータ等を音声合成処理することにより、その対話メッセージの音声を音声出力部１８を介して出力する。音声出力部１８から出力される音声は、例えば、その対話メッセージデータに含まれるメッセージを読み上げる音声である。なお、本実施形態では、この音声合成処理には、周知な手法が利用されればよく、その音声合成処理自体は制限されない。
【００３２】
〈音声対話サーバ装置〉
対話サーバ１は、図３に示されるように、対話制御エンジン２５、ＷＥＢサーバ処理部２６等を有する。これら各処理部は、例えば、ＣＰＵ１０によりメモリ１１に格納されるプログラムが実行されることにより実現される。また、当該プログラムは、例えば、ＣＤ、メモリカード等のような可搬型記録媒体やネットワーク上の他のコンピュータから入出力Ｉ／Ｆ１２又は通信装置１３を介してインストールされ、メモリ１１に格納されてもよい。
【００３３】
ＷＥＢサーバ処理部２６は、一般的なＷＥＢサーバ機能を実現する。例えば、ＷＥＢサーバ処理部２６は、クライアント２と音声対話サーバ装置１との間の双方向通信や、ＷＥＢサーバ上でのサーブレットの実行等を可能とする。本実施形態は、このＷＥＢサーバ処理部２６の具体的処理を制限しない。
【００３４】
対話制御エンジン２５は、クライアント２からユーザの発言テキストデータを取得し、この発言テキストデータに適切なカテゴリを付与し、そのカテゴリと共に、発言テキストデータを記録する。対話制御エンジン２５は、図３に示されるように、発言データ取得部３１、ワード抽出部３２、データ取得部３３、候補抽出部３４、カテゴリ決定部３５、カテゴリ判別テーブル３６、格納処理部３７、対話記録テーブル３９、カテゴリ取得部４１、メッセージ生成部４２、データ出力部４３等を有する。これら各処理部は、同様に、例えば、ＣＰＵ１０によりメモリ１１に格納されるプログラムが実行されることにより実現される。
【００３５】
発言データ取得部３１は、クライアント２から送られるユーザの発言テキストデータ及び送信元ＩＤをＷＥＢサーバ処理部２６を介して取得する。発言データ取得部３１により取得されるユーザの発言テキストデータには、ユーザが直接聞きたい対象を表す単語を忘れた場合に発し、かつ、その対象のカテゴリを表すカテゴリワードを含む第１所定文言形式を持つ発言テキストデータ、ユーザが直接聞きたい対象を表す単語を忘れた場合に発し、かつ、当該カテゴリワードを含まない第２所定文言形式を持つ発言テキストデータ、対話サーバ１からクライアント２に送信される対話メッセージデータに対して、クライアント２から返信される発言テキストデータ等が含まれる。第１所定文言形式とは、例えば、「ちょっと前の／あのときの／あの／この前の／この間の／さっきの／前の／昨日の／一昨日の」＋名詞（カテゴリワード）＋「なんだっけ／誰だっけ」といった形式である。第２所定文言形式とは、例えば、「あれなんだっけ」や「さっき」＋「あれなんだっけ」等のような形式である。以降、第１所定文言形式を持つ発言テキストデータをカテゴリ質問データと表記し、第２所定文言形式を持つ発言テキストデータを曖昧質問データと表記し、返信される発言テキストデータを応答発言データと表記する場合もある。
【００３６】
なお、本実施形態における対話制御エンジン２５で処理対象とされる発言テキストデータは、制限されてもよい。例えば、対話サーバ１は、本実施形態で説明される処理とは別の処理ではカテゴリが決まらない発言テキストデータのみを、本実施形態における対話制御エンジン２５の処理対象とするようにしてもよい。この場合、当該別の処理では、対話サーバ１は、キーワードとカテゴリとの対応関係を保持するテーブルを持ち、そのキーワードと一致する単語又は単語列が発言テキストデータに含まれている場合に、その発言テキストデータに対応するカテゴリをそのテーブルから決めるようにしてもよい。
【００３７】
ワード抽出部３２は、発言データ取得部３１により取得される発言テキストデータの中から、少なくとも１つの対象ワードを抽出する。対象ワードは、名詞又は名詞句を示す単語又は単語列のデータである。例えば、ワード抽出部３２は、発言データ取得部３１により取得される発言テキストデータが品詞分解されることにより得られる単語データの中から、少なくとも１つの対象ワードを抽出する。品詞分解処理は、ワード抽出部３２により実行されてもよいし、他のコンピュータにより実行されてもよい。他のコンピュータにより品詞分解処理が実行される場合には、ワード抽出部３２は、発言テキストデータをそのコンピュータに送り、品詞分解の結果をそのコンピュータから取得する。本実施形態では、周知の品詞分解処理が実行されればよいため、品詞分解処理自体の説明はここでは省略する。
【００３８】
また、ワード抽出部３２は、発言データ取得部３１により取得される発言テキストデータのうち、応答発言データを取得し、この応答発言データに肯定語又は否定語が含まれるか否かを判定する。例えば、ワード抽出部３２は、肯定語候補及び否定語候補に相当する単語又は単語列のデータを格納するテーブル（図示せず）を持ち、そのテーブルを参照することにより、上記判定を行う。このテーブルには、「はい」、「そう」、「うん」、「その通り」、「それそれ」等のような肯定語候補と、「いいえ」、「違う」、「それじゃない」等のような否定語候補とが格納される。
【００３９】
データ取得部３３は、ワード抽出部３２により抽出された対象ワードを検索キーワードとして用いた検索を少なくとも１つの情報提供サイト５に要求する。本実施形態では、インターネット上の情報の検索サービスを提供するサイトと、オンライン百科事典サービスを提供するサイトとの２つの情報提供サイト５に検索がそれぞれ要求される。但し、対象ワードに関する情報が得られる情報提供サイト５であれば、本実施形態は、検索要求先の情報提供サイト５、及び、検索要求先の数を制限しない。データ取得部３３は、その検索要求に応じて、各情報提供サイト５から、検索結果を示す情報データをそれぞれ取得する。情報データは、例えば、ＷＥＢページである。
【００４０】
候補抽出部３４は、データ取得部３３により取得された情報データから、当該対象ワードに対応する複数の候補ワードを抽出し、更に、当該情報データの中での各候補ワードの出現頻度をそれぞれ取得する。例えば、候補抽出部３４は、当該情報データに含まれるテキストデータから、名詞又は名詞句を候補ワードとして抽出し、当該情報データの中の各候補ワードの数を上記出現頻度としてカウントする。なお、候補抽出部３４は、データ取得部３３により取得された情報データの中の一部から候補ワードを抽出するようにしてもよい。
【００４１】
カテゴリ判別テーブル３６は、カテゴリ判別ワードとカテゴリとの複数の対応関係を格納する。例えば、カテゴリ判別テーブル３６には、カテゴリ判別ワード「打撃成績」とカテゴリ「プロ野球選手」との対応関係が格納される。
【００４２】
カテゴリ決定部３５は、高い出現頻度を持つ候補ワードから順に用いて、候補ワードとカテゴリ判別ワードとが適合するレコードをカテゴリ判別テーブル３６から検索する。カテゴリ決定部３５は、最初に検索されたレコード、即ち、カテゴリ判別ワードと適合する候補ワードの中で最も高い出現頻度を持つ候補ワードに関し検索されたレコードのカテゴリを、発言データ取得部３１により取得された発言テキストデータの内容に対応するカテゴリに決定する。ここで、候補ワードとカテゴリ判別ワードとが適合するとは、完全一致であってもよいし、包含関係であってもよいし、類似関係であってもよい。
【００４３】
一方、カテゴリ決定部３５は、候補抽出部３４により抽出される候補ワードに適合するカテゴリ判別ワードがカテゴリ判別テーブル３６に格納されていない場合に、最も高い出現頻度を持つ候補ワードを、発言データ取得部３１により取得された発言テキストデータの内容に対応するカテゴリに決定する。本実施形態では、最高の出現頻度を持つ候補ワードがカテゴリに決定されることが望ましいが、２番目又は３番目の出現頻度を持つ候補ワードがカテゴリに決定されることを排除しない。
【００４４】
格納処理部３７は、発言データ取得部３１により取得された発言テキストデータの少なくとも１部、及び、カテゴリ決定部３５により決定されたカテゴリを対話記録テーブル３９に格納する。格納処理部３７は、発言テキストデータの全てを対話記録テーブル３９に格納してもよいが、本実施形態では、格納処理部３７は、発言テキストデータの中の、その内容を示す名詞又は名詞句を対話記録テーブル３９に格納する。例えば、発言テキストデータ「今日のイチローについて教えて」が取得された場合には、「今日のイチロー」が対話記録テーブル３９に格納される。
【００４５】
更に、格納処理部３７は、候補抽出部３４により抽出された候補ワードに適合するカテゴリ判別ワードがカテゴリ判別テーブル３６に格納されていない場合に、当該対象ワードをカテゴリ判別ワードとし、かつ、データ取得部３３により取得された情報データの中の出現頻度が最も高い候補ワードをカテゴリ（カテゴリ決定部３５により決定されたカテゴリ）とする対応関係をカテゴリ判別テーブル３６に追加する。
【００４６】
対話記録テーブル３９は、発言テキストデータの履歴を、各発言テキストデータの内容を示す各カテゴリと共に格納する。これにより、対話記録テーブル３９は、発言格納部と呼ぶこともできる。図４は、対話記録テーブル３９の例を示す図である。本実施形態における対話記録テーブル３９は、図４に示されるように、各発言テキストデータに対し、送信元ＩＤ、記録時間、カテゴリ、発言内容、返答内容をそれぞれ格納する。送信元ＩＤは、発言テキストデータと共に発言データ取得部３１により取得されるデータであり、記録時間は、対象レコードが格納された時間を示す。発言内容とは、各発言テキストデータの中の対話記録テーブル３９に格納されたデータを意味する。返答内容とは、発言テキストデータに対して対話サーバ１により生成されクライアント装置２から出力された対話メッセージデータの中の、対話記録テーブル３９に格納されたデータを意味する。格納処理部３７は、クライアント２からの発言テキストデータを示す発言内容を対話記録テーブル３９に格納する際に、送信元ＩＤ、記録時間及びカテゴリを共に格納する。更に、格納処理部３７は、その発言テキストデータに対して対話メッセージデータがクライアント２へ送信された場合には、その対話メッセージデータを示す返答内容を対話記録テーブル３９に格納する。
【００４７】
カテゴリ取得部４１は、発言データ取得部３１により取得された発言テキストデータのうち、カテゴリ質問データを取得し、このカテゴリ質問データの中から、カテゴリワードを取得する。例えば、発言テキストデータが「あのプロ野球選手誰だっけ」である場合、カテゴリ取得部４１は、「プロ野球選手」をカテゴリワードとして取得する。カテゴリ取得部４１は、予め保持されている振り分けワードを用いて、発言テキストデータの中から、カテゴリ質問データを特定する。この振り分けワードとは、上述の第１所定文言形式に含まれ得る特定単語（「ちょっと前の」、「なんだっけ」など）である。
【００４８】
メッセージ生成部４２は、対話記録テーブル３９から、カテゴリ取得部４１により取得されたカテゴリワードに適合し、かつ、最も記録時間が新しいレコードを検索し、そのレコードに含まれる発言内容を取得し、その取得された発言内容を含む対話メッセージデータを生成する。上記例によれば、メッセージ生成部４２は、カテゴリ「プロ野球選手」と対応付けられて対話記録テーブル３９に格納される発言内容のうち、最近、対話記録テーブル３９に記録された発言内容「イチロー」を抽出し、その発言内容「イチロー」を含む対話メッセージデータ「イチローのことですか」を生成する。
【００４９】
メッセージ生成部４２は、対話記録テーブル３９から最も記録時間が新しいレコードのカテゴリを抽出し、この抽出されたカテゴリを含む対話メッセージデータを生成する。具体的には、メッセージ生成部４２は、発言データ取得部３１により取得された発言テキストデータのうち、曖昧質問データを取得し、その曖昧質問データの送信元ＩＤが一致し、かつ、最も記録時間が新しいレコードを対話記録テーブル３９から検索する。メッセージ生成部４２は、検索されたレコードのカテゴリを含む対話メッセージデータを生成する。メッセージ生成部４２は、予め保持されている振り分けワードを用いて、発言テキストデータの中から、曖昧質問データを特定する。この振り分けワードとは、上述の第２所定文言形式に含まれ得る特定単語（「あれなんだっけ」など）である。
【００５０】
なお、メッセージ生成部４２の具体的処理内容については、動作例の項において、対話サーバ１の動作として説明する。
【００５１】
データ出力部４３は、メッセージ生成部４２により生成された対話メッセージデータを、発言データ取得部３１により取得された発言テキストデータの送信元であるクライアント２へ送信する。
【００５２】
〔動作例〕
まず、第１実施形態におけるカテゴリ決定方法について図５を用いて説明する。図５は、カテゴリ決定処理に関する対話サーバ１の動作例を示すフローチャートである。
【００５３】
対話サーバ１は、クライアント２から発言テキストデータ及び送信元ＩＤを取得する。送信元ＩＤは、例えば、クライアント２を識別する情報である。対話サーバ１は、その発言テキストデータから少なくとも１つの対象ワードを抽出する（Ｓ５１）。例えば、対話サーバ１は、発言テキストデータから名詞又は名詞句を対象ワードとして抽出する。
【００５４】
対話サーバ１は、（Ｓ５１）で抽出された対象ワードを検索キーワードとして用いた検索を第１の情報提供サイト５に要求し、その検索結果に対応する情報データを第１の情報提供サイト５から取得する（Ｓ５２）。本実施形態では、対話サーバ１は、第２の情報提供サイト５からも同様に、当該対象ワードを検索キーワードとして用いた検索結果に対応する情報データを取得する（Ｓ５３）。
【００５５】
対話サーバ１は、（Ｓ５２）及び（Ｓ５３）で取得された各情報データから、当該対象ワードに対応する複数の候補ワードと、（Ｓ５２）及び（Ｓ５３）で取得された情報データの中での、各候補ワードの出現頻度とを取得する（Ｓ５４）。例えば、対話サーバ１は、（Ｓ５２）及び（Ｓ５３）で取得された各情報データに含まれる名詞又は名詞句を候補ワードとして取得する。
【００５６】
対話サーバ１は、（Ｓ５４）で取得された全ての候補ワードを、カテゴリ判別テーブル３６に格納される全カテゴリ判別ワードと比較するか、又は、候補ワードと適合するカテゴリ判別ワードを検出するまで（Ｓ５５）、工程（Ｓ５６）を繰り返す。（Ｓ５６）では、対話サーバ１は、高い出現頻度を持つ候補ワードから優先的に、カテゴリ判別テーブル３６のカテゴリ判別ワードと比較する。
【００５７】
対話サーバ１は、候補ワードに適合するカテゴリ判別ワードが存在した場合、即ち、候補ワードとカテゴリ判別ワードとが適合するレコードがカテゴリ判別テーブル３６から検出された場合（Ｓ５８；ＹＥＳ）、候補ワードに適合したカテゴリ判別ワードに対応するカテゴリを、（Ｓ５１）で取得された対象ワードのカテゴリに決定する（Ｓ５９）。
【００５８】
一方、対話サーバ１は、候補ワードに適合するカテゴリ判別ワードが存在しなかった場合、即ち、候補ワードとカテゴリ判別ワードとが適合するレコードがカテゴリ判別テーブル３６から検出されなかった場合（Ｓ５８；ＮＯ）、（Ｓ５４）で取得された全ての候補ワードの中で最高の出現頻度を持つ候補ワードを、（Ｓ５１）で取得された対象ワードのカテゴリに決定する（Ｓ６０）。
【００５９】
対話サーバ１は、カテゴリ判別ワードとしての当該対象ワードと、（Ｓ６０）で決定されたカテゴリ（最高の出現頻度を持つ候補ワード）との対応関係をカテゴリ判別テーブル３６に追加する（Ｓ６１）。
【００６０】
対話サーバ１は、送信元ＩＤ、記録時間、及び、発言テキストデータの少なくとも一部、（Ｓ５９）及び（Ｓ６０）で決定されたカテゴリを対話記録テーブル３９に格納する（Ｓ６２）。対話サーバ１は、その発言テキストデータに対して、返答となる対話メッセージを送信した場合、その対話メッセージの少なくとも一部を対話記録テーブル３９の対象レコードに返答内容として格納する。
【００６１】
本実施形態におけるカテゴリ決定方法は、図５に示される工程の実行順序に制限されない。例えば、第１の情報提供サイト５及び第２の情報提供サイト５から各情報データを取得する工程（Ｓ５２）及び（Ｓ５３）は、逆の順番で実行されてもよいし、同時に実行されてもよい。また、１つの情報提供サイト５から情報データが取得される場合には、（Ｓ５３）は不要となる。また、３つ以上の情報提供サイト５から情報データが取得される場合には、更に工程が追加される。
【００６２】
次に、第１実施形態における対話メッセージ生成方法について図６Ａ、図６Ｂ及び図６Ｃを用いて説明する。この対話メッセージ生成方法は、対話サーバ１により、図５に示される上述のカテゴリ決定方法と並行に、又は、上述のカテゴリ決定方法の前又は後に実行される。ここでも、上述と同様に、対話サーバ１により、クライアント２から発言テキストデータ及び送信元ＩＤが取得されている。
【００６３】
図６Ａは、対話メッセージ生成処理に関する対話サーバ１の動作例を示すフローチャートである。対話サーバ１は、処理対象となる発言テキストデータを判別するための振り分けワードを読み込む（Ｓ７１）。振り分けワードは、予め対話サーバ１により保持される単語又は単語列データであって、カテゴリ質問データ及び曖昧質問データを他の発言テキストデータと区別するためのデータである。
【００６４】
対話サーバ１は、更に、応答発言データを判別するための、肯定語候補及び否定語候補に関する情報を読み込む（Ｓ７２）。読み込まれる情報は、肯定語候補及び否定語候補に相当する単語又は単語列のデータを格納するテーブルから取得される。
【００６５】
対話サーバ１は、発言テキストデータに当該振り分けワードが含まれるか否かを判定し（Ｓ７３）、含まれない場合（Ｓ７３；ＮＯ）、対話メッセージ生成処理を終了する。一方、対話サーバ１は、発言テキストデータに当該振り分けワードが含まれる場合（Ｓ７３；ＹＥＳ）、即ち、発言テキストデータがカテゴリ質問データか曖昧質問データの場合（Ｓ７３；ＹＥＳ）、更に、その発言テキストデータにカテゴリワードが含まれるか否かを判定する（Ｓ７４）。この（Ｓ７４）の判定は、カテゴリ質問データか曖昧質問データかを区別するものである。
【００６６】
対話サーバ１は、発言テキストデータにカテゴリワードが含まれない場合（Ｓ７４；ＮＯ）、即ち、発言テキストデータが曖昧質問データである場合、図６Ｃに示される処理を実行する。一方で、対話サーバ１は、発言テキストデータにカテゴリワードが含まれる場合（Ｓ７４；ＹＥＳ）、即ち、発言テキストデータがカテゴリ質問データである場合、その発言テキストデータからカテゴリワードを取得した後（Ｓ７５）、図６Ｂに示される処理を実行する。
【００６７】
図６Ｂは、カテゴリ質問データに対する対話メッセージデータを生成する処理に関する対話サーバ１の動作例を示すフローチャートである。
【００６８】
対話サーバ１は、（Ｓ８５）で送信される対話メッセージデータに対してクライアント２から返信される応答発言テキストデータに否定語以外が含まれるか、又は、否定語を含む応答発言が所定回数以上発声されるまで（Ｓ８１）、工程（Ｓ８１）から（Ｓ８６）を繰り返し実行する。
【００６９】
対話サーバ１は、最初のループの場合（Ｓ８１；ＹＥＳ）、対話記録テーブル３９から、送信元ＩＤ及び（Ｓ７５）で取得されたカテゴリワードに適合し、最も記録時間が新しいレコードを抽出する（Ｓ８２）。ここで抽出されるレコードは、その発言テキストデータの送信元と同じユーザの以前の発言であって、その発言テキストデータに含まれるカテゴリワードで分類されている発言に対応するレコードである。対話サーバ１は、この抽出されたレコードの発言内容を含む対話メッセージデータを生成し（Ｓ８４）、その対話メッセージデータを送信元ＩＤで識別されるクライアント２へ送信する（Ｓ８５）。
【００７０】
これにより、例えば、クライアント２からのカテゴリ質問データ「あのプロ野球選手誰だっけ」が得られた場合、カテゴリワード「プロ野球選手」が取得され、そのカテゴリワードが付与されて記録される直近の発言内容「イチロー」が対話記録テーブル３９から取得される。そして、対話メッセージデータ「イチローのことですか」が生成され、その音声がクライアント２で出力される。
【００７１】
対話サーバ１は、対話メッセージデータの送信（Ｓ８５）後、その対話メッセージに対する応答発言テキストデータをクライアント２から取得する（Ｓ８６）。
【００７２】
２回目以降のループの場合（Ｓ８１；ＮＯ）、対話サーバ１は、対話記録テーブル３９から、送信元ＩＤ、（Ｓ７５）で取得されたカテゴリワード、及び、前回のループの（Ｓ８４）で取得された抽出レコードの発言内容以外に適合し、最も記録時間が新しいレコードを抽出する（Ｓ８３）。ここで抽出されるレコードは、その発言テキストデータの送信元と同じユーザの以前の発言であって、その発言テキストデータに含まれるカテゴリワードで分類され、前回の対話メッセージに対して否定された発言内容以外の発言に対応するレコードである。対話サーバ１は、この抽出されたレコードの発言内容を含む対話メッセージデータを生成し（Ｓ８４）、その対話メッセージデータを送信元ＩＤで識別されるクライアント２へ送信する（Ｓ８５）。
【００７３】
これにより、上述の例で、対話メッセージデータ「イチローのことですか」が出力された返答として、クライアント２から応答発言テキストデータが送信され、その応答発言テキストデータに否定語候補「いいえ」が含まれる場合に、その発言内容「イチロー」以外の発言内容「松井秀樹」を含む対話メッセージデータ「松井秀樹のことですか」が生成される。
【００７４】
対話サーバ１は、上述のループ終了後、応答発言テキストデータに肯定語又は否定語が含まれていない場合（Ｓ８７；ＮＯ）、話題が変わったと判断し、図６Ｂに示される処理を終了する。このとき、例えば、対話サーバ１は、その話題に関する処理を実行する。
【００７５】
対話サーバ１は、上述のループ終了後、応答発言テキストデータに肯定語又は否定語が含まれている場合（Ｓ８７；ＹＥＳ）、その応答発言テキストデータに肯定語が含まれるか否かを判定する（Ｓ８８）。対話サーバ１は、その応答発言テキストデータに肯定語が含まれる場合（Ｓ８８；ＹＥＳ）、（Ｓ８２）又は（Ｓ８３）で対話記録テーブル３９から抽出されたレコードの返答内容を含む対話メッセージデータを生成する（Ｓ８９）。対話サーバ１は、その返答内容を含む対話メッセージデータをクライアント２へ送信する（Ｓ９１）。これにより、対話記録テーブル３９に格納される以前の対話における返答内容と同じ内容の対話メッセージがクライアント２へ送信され、その返答内容がクライアント２で音声出力される。
【００７６】
一方、対話サーバ１は、その応答発言テキストデータに肯定語が含まれない場合（Ｓ８８；ＮＯ）、否定語の発言が所定回数以上繰り返されたため、フィードバック情報がない旨の対話メッセージデータを生成する（Ｓ９０）。フィードバック情報がないとは、聞き直すべきキーワードが見当たらないことを意味する。対話サーバ１は、そのフィードバック情報がない旨の対話メッセージデータをクライアント２へ送信する（Ｓ９１）。
【００７７】
図６Ｃは、曖昧質問データに対する対話メッセージデータを生成する処理に関する対話サーバ１の動作例を示すフローチャートである。
【００７８】
対話サーバ１は、（Ｓ１０５）で送信される対話メッセージデータに対してクライアント２から返信される応答発言テキストデータに否定語以外が含まれるか、又は、否定語を含む応答発言が所定回数以上発声されるまで（Ｓ１０１）、工程（Ｓ１０１）から（Ｓ１０６）を繰り返し実行する。
【００７９】
対話サーバ１は、最初のループの場合（Ｓ１０１；ＹＥＳ）、対話記録テーブル３９から、送信元ＩＤに適合し、最も記録時間が新しいレコードを抽出する（Ｓ１０２）。ここで抽出されるレコードは、その発言テキストデータの送信元と同じユーザの以前の直近の発言に対応するレコードである。対話サーバ１は、この抽出されたレコードのカテゴリを含む対話メッセージデータを生成し（Ｓ１０４）、その対話メッセージデータを送信元ＩＤで識別されるクライアント２へ送信する（Ｓ１０５）。
【００８０】
これにより、例えば、クライアント２からの曖昧質問データ「あれ誰だっけ」が得られた場合、その送信元の直近の発言のカテゴリ「プロ野球選手」が対話記録テーブル３９から取得される。そして、対話メッセージデータ「プロ野球選手のことですか」が生成され、その音声がクライアント２で出力される。
【００８１】
対話サーバ１は、対話メッセージデータの送信（Ｓ１０５）後、その対話メッセージに対する応答発言テキストデータをクライアント２から取得する（Ｓ１０６）。
【００８２】
２回目以降のループの場合（Ｓ１０１；ＮＯ）、対話サーバ１は、対話記録テーブル３９から、送信元ＩＤ、及び、前回のループの（Ｓ１０４）で取得された抽出レコードのカテゴリ以外に適合し、最も記録時間が新しいレコードを抽出する（Ｓ１０３）。ここで抽出されるレコードは、その発言テキストデータの送信元と同じユーザの以前の発言であって、前回の対話メッセージに対して否定されたカテゴリ以外の発言に対応するレコードである。対話サーバ１は、この抽出されたレコードのカテゴリを含む対話メッセージデータを生成し（Ｓ１０４）、その対話メッセージデータを送信元ＩＤで識別されるクライアント２へ送信する（Ｓ１０５）。
【００８３】
これにより、上述の例で、対話メッセージデータ「プロ野球選手のことですか」が出力された返答として、クライアント２から応答発言テキストデータが送信され、その応答発言テキストデータに否定語候補「いいえ」が含まれる場合に、そのカテゴリ「プロ野球選手」以外のカテゴリ「企業」を含む対話メッセージデータ「企業のことですか」が生成される。
【００８４】
対話サーバ１は、上述のループ終了後、応答発言テキストデータに肯定語又は否定語が含まれていない場合（Ｓ１０７；ＮＯ）、話題が変わったと判断し、図６Ｃに示される処理を終了する。このとき、例えば、対話サーバ１は、その話題に関する処理を実行する。
【００８５】
対話サーバ１は、上述のループ終了後、応答発言テキストデータに肯定語又は否定語が含まれている場合（Ｓ１０７；ＹＥＳ）、その応答発言テキストデータに肯定語が含まれるか否かを判定する（Ｓ１０８）。対話サーバ１は、その応答発言テキストデータに肯定語が含まれる場合（Ｓ１０８；ＹＥＳ）、（Ｓ１０２）又は（Ｓ１０３）で対話記録テーブル３９から抽出されたレコードの返答内容を含む対話メッセージデータを生成する（Ｓ１０９）。対話サーバ１は、その返答内容を含む対話メッセージデータをクライアント２へ送信する（Ｓ１１１）。これにより、対話記録テーブル３９に格納される以前の対話における返答内容と同じ内容の対話メッセージがクライアント２へ送信され、その返答内容がクライアント２で音声出力される。
【００８６】
一方、対話サーバ１は、その応答発言テキストデータに肯定語が含まれない場合（Ｓ１０８；ＮＯ）、否定語の発言が所定回数以上繰り返されたため、フィードバック情報がない旨の対話メッセージデータを生成する（Ｓ１１０）。対話サーバ１は、そのフィードバック情報がない旨の対話メッセージデータをクライアント２へ送信する（Ｓ１１１）。
【００８７】
本実施形態における対話メッセージ生成方法は、図６Ａ、図６Ｂ及び図６Ｃに示される工程の実行順序に制限されない。また、上述の図６Ｃでは、応答発言テキストデータに肯定語が含まれる場合（Ｓ１０８；ＹＥＳ）、抽出されたレコードの返答内容を含む対話メッセージデータが生成された（Ｓ１０９）。しかしながら、この場合（Ｓ１０８；ＹＥＳ）、対話サーバ１は、（Ｓ１０２）又は（Ｓ１０３）で抽出されるレコードのカテゴリを用いて、図６Ｂに示される処理を実行するようにしてもよい。
【００８８】
この場合、上述の例で、対話メッセージデータ「プロ野球選手のことですか」が出力された返答として、クライアント２から肯定語「はい」を含む応答発言テキストデータが送信された場合、更に、対話メッセージデータ「イチローのことですか」が生成される。これにより、曖昧質問データに対して、まず、カテゴリを確認する対話メッセージが出力され、次に、確認できたカテゴリについての具体的内容を確認する対話メッセージが出力されるようになる。
【００８９】
〔第１実施形態の作用及び効果〕
上述したように第１実施形態では、クライアント２から取得される発言テキストデータから対象ワードが抽出され、この対象ワードを検索キーワードとして用いて、複数の情報提供サイト５から情報データがそれぞれ取得される。そして、この情報データから、出現頻度と共に各候補ワードがそれぞれ抽出され、出現頻度が高い候補ワードから優先的にカテゴリ判別テーブル３６のカテゴリ判別ワードと比較される。結果として、カテゴリ判別テーブル３６のカテゴリ判別ワードに適合する最も高い出現頻度を持つ候補ワードに対応するカテゴリが、当該発言テキストデータの内容に対応するカテゴリに決定される。
【００９０】
このように、第１実施形態では、情報提供サイト５により提供される情報の中で、ユーザの発言内容に含まれる単語又は単語列と共に使用される頻度が高い単語又は単語列から、そのユーザの発言内容のカテゴリが決められる。従って、第１実施形態によれば、ユーザの発言テキストデータの内容を表す適切なカテゴリを決定することができる。更に、第１実施形態によれば、ユーザの発言内容にあまり使われない単語又は単語列が含まれている場合でも、情報提供サイト５に対する検索結果から取得される単語又は単語列を利用することで、適切なカテゴリを決めることができる。
【００９１】
また、第１実施形態では、カテゴリ判別テーブル３６に候補ワードに適合するレコードが存在しない場合には、情報提供サイト５からの情報データの中の、最も出現頻度が高い単語又は単語列が、その発言テキストデータの内容に対応するカテゴリに決定される。加えて、そのときの対象ワードをカテゴリ判別ワードとし、かつ、情報データの中の出現頻度が最も高い候補ワードをカテゴリとする対応関係がカテゴリ判別テーブル３６に追加される。
【００９２】
従って、第１実施形態によれば、カテゴリ判別テーブル３６に含めるべき情報が自律的に学習されるため、カテゴリ判別テーブル３６の作成労力及びメンテナンス労力を大幅に削減することができる。
【００９３】
また、第１実施形態では、その発言テキストデータの発言内容が、上述のように決められたカテゴリ、記録時間、送信元ＩＤ等と共に対話記録テーブル３９に記録され、このようなユーザ毎の発言履歴を用いて、ユーザが直接聞きたい対象を表す単語を忘れた場合に発する発言を示す曖昧質問データ及びカテゴリ質問データに対する対話メッセージデータが生成される。具体的には、キーワードとなるカテゴリさえ含まない形の曖昧質問データに対しては、その送信元のユーザの直近の発言内容に関し付与されているカテゴリについて確認する対話メッセージデータが生成される。また、キーワードとなるカテゴリを含む形のキーワード質問データに対しては、その送信元のユーザにおける、同じカテゴリが付与されている発言内容について確認する対話メッセージデータが生成される。
【００９４】
このように、第１実施形態によれば、過去のユーザとの対話内容を蓄積し、過去の情報をそのユーザとの対話の中で有効にフィードバックすることができる。更に、過去の情報をフィードバックするにあたり、過去のユーザの発言内容に付与されているカテゴリ情報を用いて、ユーザが期待する情報の内容を対話メッセージで確認することができる。これにより、ユーザにとって、自然な対話の形で、的外れな情報ではなく、期待する情報を確実に早く提供することができる。
【００９５】
［変形例］
上述の実施形態では、対話サーバ１が、通信網３を介して接続される情報提供サイト５から情報データを取得する例が示された。しかしながら、情報データは、対話サーバ１内に持つデータベースから取得されてもよい。この場合、データ取得部３３が、情報提供サイト５及び対話サーバ１内のデータベースの中から、検索要求先を決めればよい。
【００９６】
また、上述の実施形態では、ユーザの発する音声から、発言データ取得部３１により取得される発言テキストデータが生成される例が示された。しかしながら、発言テキストデータは、キーボードやタッチパネル等のようなクライアント２の入力装置を介したユーザ操作により、入力されたテキストデータであってもよい。また、対話メッセージデータの出力形態についても、音声出力のみに制限されず、クライアント２が備える表示装置への表示であってもよいし、クライアント２に接続される印刷装置への印刷であってもよい。更に、対話メッセージデータは、２種以上の出力形態で出力されるようにしてもよい。
【００９７】
また、上述の実施形態では、クライアント２が音声認識部２１及び音声合成部２２を持つ例が示されたが、対話サーバ１が音声認識部２１及び音声合成部２２を持つ形態もあり得る。この場合、対話サーバ１とクライアント２との間では、音声データのやり取りが行われる。
【００９８】
また、上述の実施形態では、図３に示されるように、対話サーバ１が上述の全ての処理部を持っていたが、上述の各処理部は、対話サーバ１を含む複数のコンピュータ上で実現されるようにしてもよい。例えば、上述の各処理部のうち、ユーザの発言テキストデータを記録する処理部と対話メッセージを生成する処理部とを異なるコンピュータに備えるようにしてもよい。この例では、対話サーバ１と通信可能な対話記録装置７０が更に設けられる。
【００９９】
図７は、変形例における対話サーバ１、クライアント２及び対話記録装置７０の処理構成例を概念的に示す図である。この変形例では、対話サーバ１の対話制御エンジン２５は、発言データ取得部３１、カテゴリ取得部４１、メッセージ生成部４２及びデータ出力部４３を有し、対話記録装置７０が、ワード抽出部３２、データ取得部３３、候補抽出部３４、カテゴリ決定部３５、カテゴリ判別テーブル３６、格納処理部３７、対話記録テーブル３９、及び、通信処理部７１を有する。通信処理部７１は、対話サーバ１から発言テキストデータを取得し、対話サーバ１からの要求に応じて対話記録テーブル３９から要求に適合するレコードを送る。
【０１００】
上述の実施形態とは異なり、カテゴリ判別テーブル３６は、対話記録テーブル３９に記録すべき発言内容をフィルタリングするために利用されてもよい。この場合、候補ワードと適合するカテゴリ判別ワードを含むレコードがカテゴリ判別テーブル３６に存在しない場合、カテゴリ判別テーブル３６へのレコード追加を行わず、かつ、その発言テキストデータを対話記録テーブル３９に記録しない。これにより、カテゴリ判別テーブル３６に設定されるカテゴリを意図的に決めておけば、記録させたいユーザの発言内容をカテゴリで選択することができる。
【０１０１】
また、上述の実施形態では、対話記録テーブル３９の中の記録時間の最も新しいレコードが利用されたが、各ユーザの発言の中のカテゴリの出現頻度が高いレコードが利用されるようにしてもよい。
【０１０２】
なお、上述の説明で用いた複数のフローチャートでは、複数の工程（処理）が順番に記載されているが、本実施形態で実行される工程の実行順序は、その記載の順番に制限されない。本実施形態では、図示される工程の順番を内容的に支障のない範囲で変更することができる。また、上述の実施形態及び変形例は、内容が相反しない範囲で組み合わせることができる。
【０１０３】
上記の実施形態及び変形例の一部又は全部は、以下の付記のようにも特定され得る。但し、実施形態及び変形例が以下の記載に限定されるものではない。
【０１０４】
（付記１）
ユーザの発言テキストデータを取得する発言データ取得部と、
前記発言データ取得部により取得される発言テキストデータの中から、対象ワードを抽出するワード抽出部と、
前記ワード抽出部により抽出される対象ワードを検索キーワードとして用いて、情報提供部から抽出された情報データを取得するデータ取得部と、
前記データ取得部により取得される情報データから、前記対象ワードに対応する、カテゴリ判別のための候補ワードを抽出する候補抽出部と、
カテゴリ判別ワードとカテゴリとの対応関係を格納するカテゴリ判別テーブルに格納されるカテゴリ判別ワードと、前記候補抽出部により抽出される候補ワードとを比較することにより、前記発言テキストデータの内容に対応するカテゴリを決定するカテゴリ決定部と、
を備えるカテゴリ決定装置。
【０１０５】
（付記２）
前記候補抽出部は、前記情報データから複数の候補ワードを抽出すると共に、前記情報データの中での各候補ワードの出現頻度をそれぞれ取得し、
前記カテゴリ決定部は、高い出現頻度を持つ候補ワードから順に、前記カテゴリ判別テーブルに格納されるカテゴリ判別ワードと比較することにより、該カテゴリ判別ワードに適合する最も高い出現頻度を持つ候補ワードに対応するカテゴリを特定し、該特定されたカテゴリを前記発言テキストデータの内容に対応するカテゴリに決定する、
付記１に記載のカテゴリ決定装置。
【０１０６】
（付記３）
前記カテゴリ決定部は、前記候補抽出部により抽出される候補ワードに適合するカテゴリ判別ワードが前記カテゴリ判別テーブルに格納されていない場合に、最も高い出現頻度を持つ候補ワードを前記発言テキストデータの内容に対応するカテゴリに決定する、
付記１又は２に記載のカテゴリ決定装置。
【０１０７】
（付記４）
前記発言データ取得部により取得される発言テキストデータの少なくとも１部、及び、前記カテゴリ決定部により決定されるカテゴリを発言格納部に格納する格納処理部、
を更に備える付記１から３のいずれか１つに記載のカテゴリ決定装置。
【０１０８】
（付記５）
前記発言データ取得部により取得される発言テキストデータの少なくとも１部、及び、前記カテゴリ決定部により決定されるカテゴリを発言格納部に格納し、前記候補抽出部により抽出される候補ワードに適合するカテゴリ判別ワードが前記カテゴリ判別テーブルに格納されていない場合に、前記対象ワードを前記カテゴリ判別ワードとし、かつ、前記情報データの中の出現頻度が最も高い候補ワードを前記カテゴリとする対応関係を前記カテゴリ判別テーブルに追加する格納処理部、
を更に備える付記３に記載のカテゴリ決定装置。
【０１０９】
（付記６）
前記発言データ取得部により取得される発言テキストデータの中から、カテゴリワードを取得するカテゴリ取得部と、
前記発言格納部から、前記カテゴリ取得部により取得されるカテゴリワードに対応する前記発言テキストデータの少なくとも１部を抽出し、該抽出される発言テキストデータの少なくとも１部を含む対話メッセージデータを生成するメッセージ生成部と、
前記メッセージ生成部により生成される対話メッセージデータを出力するデータ出力部と、
を更に備える付記４又は５に記載のカテゴリ決定装置。
【０１１０】
（付記７）
前記発言データ取得部により取得される発言テキストデータにカテゴリワードが含まれない場合に、前記発言格納部からカテゴリを抽出し、該抽出されるカテゴリを含む対話メッセージデータを生成するメッセージ生成部と、
前記メッセージ生成部により生成される対話メッセージデータを出力するデータ出力部と、
を更に備える付記４から６のいずれか１つに記載のカテゴリ決定装置。
【０１１１】
（付記８）
少なくとも１つのコンピュータにより実行されるカテゴリ決定方法において、
ユーザの発言テキストデータを取得し、
前記取得された発言テキストデータの中から、対象ワードを抽出し、
前記抽出された対象ワードを検索キーワードとして用いて、情報提供部から抽出された情報データを取得し、
前記取得された情報データから、前記対象ワードに対応する、カテゴリ判別のための候補ワードを抽出し、
カテゴリ判別ワードとカテゴリとの対応関係を格納するカテゴリ判別テーブルに格納されるカテゴリ判別ワードと、前記抽出された候補ワードとを比較することにより、前記発言テキストデータの内容に対応するカテゴリを決定する、
ことを含むカテゴリ決定方法。
【０１１２】
（付記９）
前記候補ワードの抽出は、前記情報データから複数の候補ワードを抽出すると共に、前記情報データの中での各候補ワードの出現頻度をそれぞれ取得し、
前記カテゴリの決定は、高い出現頻度を持つ候補ワードから順に、前記カテゴリ判別テーブルに格納されるカテゴリ判別ワードと比較することにより、該カテゴリ判別ワードに適合する最も高い出現頻度を持つ候補ワードに対応するカテゴリを特定し、該特定されたカテゴリを前記発言テキストデータの内容に対応するカテゴリに決定する、
付記８に記載のカテゴリ決定方法。
【０１１３】
（付記１０）
前記カテゴリの決定は、前記抽出される候補ワードに適合するカテゴリ判別ワードが前記カテゴリ判別テーブルに格納されていない場合に、最も高い出現頻度を持つ候補ワードを前記発言テキストデータの内容に対応するカテゴリに決定する、
付記８又は９に記載のカテゴリ決定方法。
【０１１４】
（付記１１）
前記発言テキストデータの少なくとも１部、及び、前記決定されるカテゴリを発言格納部に格納する、
ことを更に含む付記８から１０のいずれか１つに記載のカテゴリ決定方法。
【０１１５】
（付記１２）
前記発言テキストデータの少なくとも１部、及び、前記決定されるカテゴリを発言格納部に格納し、
前記抽出される候補ワードに適合するカテゴリ判別ワードが前記カテゴリ判別テーブルに格納されていない場合に、前記対象ワードを前記カテゴリ判別ワードとし、かつ、前記情報データの中の出現頻度が最も高い候補ワードを前記カテゴリとする対応関係を前記カテゴリ判別テーブルに追加する、
ことを更に含む付記１０に記載のカテゴリ決定方法。
【０１１６】
（付記１３）
前記発言テキストデータの中から、カテゴリワードを取得し、
前記発言格納部から、前記取得されるカテゴリワードに対応する前記発言テキストデータの少なくとも１部を抽出し、
前記抽出される発言テキストデータの少なくとも１部を含む対話メッセージデータを生成し、
前記生成される対話メッセージデータを出力する、
ことを更に含む付記１１又は１２に記載のカテゴリ決定方法。
【０１１７】
（付記１４）
前記発言テキストデータにカテゴリワードが含まれない場合に、前記発言格納部からカテゴリを抽出し、
前記抽出されるカテゴリを含む対話メッセージデータを生成し、
前記生成される対話メッセージデータを出力する、
ことを更に含む付記１１から１３のいずれか１つに記載のカテゴリ決定方法。
【０１１８】
（付記１５）
少なくとも１つのコンピュータにカテゴリ決定処理を実行させるプログラムにおいて、
前記カテゴリ決定処理は、
ユーザの発言テキストデータを取得し、
前記取得された発言テキストデータの中から、対象ワードを抽出し、
前記抽出された対象ワードを検索キーワードとして用いて、情報提供部から抽出された情報データを取得し、
前記取得された情報データから、前記対象ワードに対応する、カテゴリ判別のための候補ワードを抽出し、
カテゴリ判別ワードとカテゴリとの対応関係を格納するカテゴリ判別テーブルに格納されるカテゴリ判別ワードと、前記抽出された候補ワードとを比較することにより、前記発言テキストデータの内容に対応するカテゴリを決定する、
ことを含むプログラム。
【０１１９】
（付記１６）
前記候補ワードの抽出は、前記情報データから複数の候補ワードを抽出すると共に、前記情報データの中での各候補ワードの出現頻度をそれぞれ取得し、
前記カテゴリの決定は、高い出現頻度を持つ候補ワードから順に、前記カテゴリ判別テーブルに格納されるカテゴリ判別ワードと比較することにより、該カテゴリ判別ワードに適合する最も高い出現頻度を持つ候補ワードに対応するカテゴリを特定し、該特定されたカテゴリを前記発言テキストデータの内容に対応するカテゴリに決定する、
付記１５に記載のプログラム。
【０１２０】
（付記１７）
前記カテゴリの決定は、前記抽出される候補ワードに適合するカテゴリ判別ワードが前記カテゴリ判別テーブルに格納されていない場合に、最も高い出現頻度を持つ候補ワードを前記発言テキストデータの内容に対応するカテゴリに決定する、
付記１５又は１６に記載のプログラム。
【０１２１】
（付記１８）
前記カテゴリ決定処理は、
前記発言テキストデータの少なくとも１部、及び、前記決定されるカテゴリを発言格納部に格納する、
ことを更に含む付記１５から１７のいずれか１つに記載のプログラム。
【０１２２】
（付記１９）
前記カテゴリ決定処理は、
前記発言テキストデータの少なくとも１部、及び、前記決定されるカテゴリを発言格納部に格納し、
前記抽出される候補ワードに適合するカテゴリ判別ワードが前記カテゴリ判別テーブルに格納されていない場合に、前記対象ワードを前記カテゴリ判別ワードとし、かつ、前記情報データの中の出現頻度が最も高い候補ワードを前記カテゴリとする対応関係を前記カテゴリ判別テーブルに追加する、
ことを更に含む付記１７に記載のプログラム。
【０１２３】
（付記２０）
前記カテゴリ決定処理は、
前記発言テキストデータの中から、カテゴリワードを取得し、
前記発言格納部から、前記取得されるカテゴリワードに対応する前記発言テキストデータの少なくとも１部を抽出し、
前記抽出される発言テキストデータの少なくとも１部を含む対話メッセージデータを生成し、
前記生成される対話メッセージデータを出力する、
ことを更に含む付記１８又は１９に記載のプログラム。
【０１２４】
（付記２１）
前記カテゴリ決定処理は、
前記発言テキストデータにカテゴリワードが含まれない場合に、前記発言格納部からカテゴリを抽出し、
前記抽出されるカテゴリを含む対話メッセージデータを生成し、
前記生成される対話メッセージデータを出力する、
ことを更に含む付記１８から２０のいずれか１つに記載のプログラム。
【符号の説明】
【０１２５】
１  音声対話サーバ装置（対話サーバ）
２  クライアント装置（クライアント）
５  情報提供サイト
１０  ＣＰＵ
１１  メモリ
１７  音声入力部
１８  音声出力部
２１  音声認識部
２２  音声合成部
２５  対話制御エンジン
２６  ＷＥＢサーバ処理部
３１  発言データ取得部
３２  ワード抽出部
３３  データ取得部
３４  候補抽出部
３５  カテゴリ決定部
３６  カテゴリ判別テーブル
３７  格納処理部
３９  対話記録テーブル
４１  カテゴリ取得部
４２  メッセージ生成部
４３  データ出力部
７０  対話記録装置
７１  通信処理部
１００  カテゴリ決定装置
１０１  情報提供部
【図１】
2014110002.tif 000003
【図２】
2014110002.tif 000004
【図３】
2014110002.tif 000005
【図４】
2014110002.tif 000006
【図５】
2014110002.tif 000007
【図６Ａ】
2014110002.tif 000008
【図６Ｂ】
2014110002.tif 000009
【図６Ｃ】
2014110002.tif 000010
【図７】
2014110002.tif 000011