(57)【要約】【課題】大規模な言い換えのテキストデータを用意することなく対話することを可能とする。【解決手段】ユーザからの質問に対する回答を出力してユーザと対話する情報処理装置であって、質問を受け付ける入力部と、対話において、入力部が受け付けた質問に対する回答の候補を候補データの中から選択して質問の言い換えの適否をユーザに確認する確認処理を実行し、適否の結果に基づいて、候補を質問に対する言い換えとして登録する対話制御部と、を備える。【選択図】図３
2018197924.tif 000002
【特許請求の範囲】
【請求項１】
ユーザからの質問に対する回答を出力して前記ユーザと対話する情報処理装置であって、
前記質問を受け付ける入力部と、
前記対話において、前記入力部が受け付けた前記質問に対する回答の候補を候補データの中から選択して前記質問の言い換えの適否を前記ユーザに確認する確認処理を実行し、前記適否の結果に基づいて、前記候補を前記質問に対する言い換えとして登録する対話制御部と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記対話制御部は、前記質問の言い換えが適切と判定された回数と、前記質問の言い換えが不適切と判定された回数とが所定の関係を満たす場合、前記適否が適切であると判定し、前記候補を前記質問に対する言い換えとして登録する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記対話制御部は、前記質問の言い換えが適切と判定された回数と、前記質問の言い換えが不適切と判定された回数とが所定の関係を満たさない場合、前記適否が不適切であると判定し、前記言い換えとして登録された前記候補を削除する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記対話制御部は、前記対話における前記確認処理を所定の頻度で実行する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記対話制御部は、前記確認処理の頻度と前記ユーザの不快度とが前記対話ごとに記憶された確認ログデータに基づいて、前記ユーザの前記対話ごとの不快度の統計値を算出し、算出した前記不快度の統計値に対応する前記頻度で前記確認処理を実行する、
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記対話制御部は、複数の前記候補をクラスタリングして１または複数のクラスに分類し、登録済みの質問との類似度が所定の閾値を満たさないクラスとして分類された前記候補を前記質問に対する言い換えとして優先的に確認処理をする、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記質問と前記質問に対する回答と前記適否の結果とを含む言い換え確認結果データを表示部に出力し、
管理者から前記表示部を介して前記質問に対する言い換えとして登録する前記候補の選択を受け付けるメンテナンス部、
を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項８】
ユーザから質問を受け付け、
前記質問に対する回答を出力する前記ユーザと対話において、
前記質問に対する言い換えの候補を候補データの中から選択し、
前記質問の言い換えの適否を前記ユーザに確認する確認処理を実行し、
前記適否の結果に基づいて、前記候補を前記質問に対する言い換えとして登録する、
ことを特徴とする対話処理方法。
【請求項９】
コンピュータに、
ユーザから質問を受け付ける処理、
前記質問に対する回答を出力する前記ユーザと対話において、
前記質問に対する言い換えの候補を候補データの中から選択する処理、
前記質問の言い換えの適否を前記ユーザに確認する確認処理を実行する処理、
前記適否の結果に基づいて、前記候補を前記質問に対する言い換えとして登録する処理、
を実行させることを特徴とする対話処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、対話処理方法、及び対話処理プログラムに関するものである。
【背景技術】
【０００２】
近年、IT（Information Technology）を用いた高度なサービスの出現によるデジタルデバイドの拡大、グローバル化やライフスタイル多様化によるコミュニケーションの複雑化が進んでいる。そのため、様々な言語での対応を求められる空港や駅での施設案内や、複雑なサービスを複数取り扱う銀行や自治体での窓口業務などのさまざまな対人サービスの提供は、既存の職員だけでは難しくなってきている。このような高度化するサービス業務を支援するため、ロボットや音声アシスタントなどの対話システムの実用化が進められている。
【０００３】
対話システムは、ユーザの多様な発話に対応することが求められている。例えば、ある店舗の営業時間を知りたい場合、「営業時間を教えてください。」や「いつからいつまでやっていますか。」、「開いている時間を知りたい。」など色々な聞き方がある。このような様々な言い方に対応するためには、あらかじめ様々な言い換えを用意しておく必要がある。しかし、言い換えを人手で作成する作業コストは高い。また人によって言い方が異なるため、少人数で多様な言い換えを用意するのは難しく、多くの人に作成してもらう必要がある。
【０００４】
これまでに多様な言い換えを用意する技術は考えられている。その１つが特許文献１に記載のものがある。この文献では、対話を介して戦略的に未知語と登録済みの語の対応付けることで、言い換えの語彙を増やしていく方法が示されている。このような言い換え語彙や同義語辞書などを用いて、言い換え文を自動生成する方法も提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−２１３００５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来技術のように自動的に生成された言い換え文には、不適切な言い換えが含まれてしまう場合がある。例えば、「パートナー」と「配偶者」が同義語として定義されている場合、「顧客は大事なパートナーです。」という文が「顧客は大事な配偶者です。」という不適切な文に言い換えられてしまうことが考えられる。そのため、自動的に生成された言い換え文が適切か否かを判断する方法が求められており、その言い換え文が適切か否かを判断するためには、大規模な言い換えのテキストデータ（コーパス）を事前に用意する必要がある。そのため、大規模な言い換えコーパスが用意できない分野の場合には、他分野のコーパスを用いることもできるが、分野依存の言い換えに関しては対応できない。
【０００７】
本発明は、大規模な言い換えのテキストデータを用意することなく対話することが可能な情報処理装置、対話処理方法、及び対話処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明にかかる情報処理装置は、ユーザからの質問に対する回答を出力して前記ユーザと対話する情報処理装置であって、前記質問を受け付ける入力部と、前記対話において、前記入力部が受け付けた前記質問に対する回答の候補を候補データの中から選択して前記質問の言い換えの適否を前記ユーザに確認する確認処理を実行し、前記適否の結果に基づいて、前記候補を前記質問に対する言い換えとして登録する対話制御部と、を備えることを特徴とする情報処理装置として構成される。
【０００９】
また、本発明は、上記情報処理装置で行われる対話処理方法、及び対話処理プログラムとしても把握される。
【発明の効果】
【００１０】
本発明によれば、大規模な言い換えのテキストデータを用意することなく対話することができる。
【図面の簡単な説明】
【００１１】
【図１】対話システムのハードウェア構成ブロック図。
【図２】言い換え確認処理を含む対話システムの処理の流れを示すフロー図。
【図３】対話制御処理の流れを示すフロー図。
【図４】確認処理を示す概念図。
【図５】確認処理の流れを示すフロー図。
【図６】言い換え確認前後の対話データとユーザ発話言い換え候補データ。
【図７】更新前後の対話データとユーザ発話言い換え候補データ。
【図８】回答処理を示す概念図。
【図９】聞き返し処理を示す概念図。
【図１０】複数の候補データから確認するデータを選定する処理フロー図。
【図１１】言い換え確認結果データの例を示す図。
【図１２】確認頻度最適化モジュールが、ユーザの不快度合いを考慮して頻度を自動調整する場合の例を示す図。
【発明を実施するための形態】
【００１２】
実施の形態について、図面を用いて詳細に説明する。ただし、以下に示す実施の形態の記載内容に限定して解釈されるものではない。  
また、本明細書において単数形で表される構成要素は、特段文脈で明らかに示されない限り、複数形を含むものとする。
【００１３】
以下に示すように、本実施例では、自動生成された言い換えを適切なものか不適切なものかを明確化する確認質問を行う手法により、言い換えの適切さを判定する。実施例には、言い換えの確認質問の手法、および言い換えの確認質問をする対話システムが含まれる。以下で説明する実施例では、大規模な言い換えコーパスが事前に用意できない場合であっても、言い換えの確認質問を行う。
【実施例１】
【００１４】
＜１．実施例のシステム全体構成＞
図１は、本実施例における対話システムの構成を示すブロック図である。  
対話システム１００は、具体的な例としては、コンピュータ等の情報処理装置により構成される。通常の情報処理装置と同様に、対話システム１００は、中央処理装置（ＣＰＵ）１０１、キーボードや画像モニタなどの入出力装置１０３、磁気ディスク装置や半導体記憶素装置からなるメモリ１０７を備える。また、外部とデータをやり取りするためのインターフェースとして、データ通信部１０２を備えていてもよい。データ通信部１０２は、例えば外部のネットワーク１１０と接続される。なお、入出力装置という場合、入出力両機能を備える装置のみを意味するのではなく、入力機能のみを備える装置、出力機能のみを備える装置、さらには入出力の両方を備える装置のいずれも意味するものとする。
【００１５】
本実施例では計算や制御等の機能は、メモリ１０７に格納されたプログラムがＣＰＵ１０１によって実行されることで、定められた処理を他のハードウェアと協働して実現される。ＣＰＵ１０１が実行するプログラム、その機能、あるいはその機能を実現する手段を、「機能」、「手段」、「部」、「ユニット」、「モジュール」等と呼ぶ場合がある。
【００１６】
図１では、概念的にＣＰＵ１０１が、ソフトウェアに基づいて実行する機能を、意図解析部１０４、対話制御部１０５、メンテナンス部１０６、入力処理部１０８、出力処理部１０９として示している。これらの機能を実現するためのプログラムはメモリ１０７に格納される。また、メモリ１０７にはデータとして、対話データ１０７１、候補データ（ユーザ発話言い換え候補データ）１０７２、言い換え確認結果データ１０７３、対話ログデータ１０７４等が格納される。
【００１７】
なお、上記プログラムは、ＲＯＭ等に予め組み込まれて提供されたり、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ（Digital Versatile Disk）等のコンピュータで読み取り可能な記録媒体に記録して提供したり、配布してもよい。さらには、そのプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供したり、配布してもよい。
【００１８】
メモリ１０７に格納する、対話データ１０７１、対話ログデータ１０７４は、データ通信部１０２や入出力装置１０３を介して入力することができる。また、候補データ１０７２や言い換え確認結果データ１０７３は、データ通信部１０２や入出力装置１０３を介して出力することができる。なお、本例では、候補データ１０７２や言い換え確認結果データ１０７３を対話システム１００から出力する前提で説明しているが、例えば、対話システム１００の外部に設けられたディスプレイ、スクリーン、スピーカ等の出力装置からこれらのデータを出力し、その内容を確認したユーザが対話システム１００に対してさらに質問を入力するような場合も同様に適用することができる。
【００１９】
意図解析部１０４は、ユーザから入力された質問文の意図を解析する処理部である。対話制御部１０５は、ユーザから入力された質問文と対話システム１００からの回答文や確認文による対話を制御する処理部である。
【００２０】
メンテナンス部１０６は、システム管理者がメモリ１０７に格納されているデータを管理するために、対話データ１０７１、候補データ１０７２、言い換え確認結果データ１０７３、対話ログデータ１０７４の入出力を行う。
【００２１】
入力処理部１０８は、ユーザから入力された質問文をテキストに変換する等、本システムで必要な入力処理を行う処理部である。出力処理部１０９は、上記質問文に対する回答文や確認文を出力する等、本システムで必要な出力処理を行う処理部である。
【００２２】
以上の構成は、図１に示したように単体のコンピュータで構成してもよいし、あるいは、入力装置、出力装置、処理装置、記憶装置の任意の部分が、ネットワークで接続された他のコンピュータで構成されてもよい。また、本実施例中、ソフトウェアで構成した機能と同等の機能は、FPGA（Field Programmable Gate Array）、ASIC（Application Specific Integrated Circuit）などのハードウェアでも実現できる。
【００２３】
＜２．対話システムの処理の説明＞
対話システム１００の処理について説明する。
【００２４】
＜２−１．対話システムの処理の概要＞
対話制御部１０５は、対話データ１０７１、候補データ１０７２、言い換え確認結果データ１０７３、対話ログデータ１０７４を用いて、ユーザとの対話における質問文に対する回答文や確認文を生成する処理を行う。
【００２５】
図２は言い換え確認処理を含む対話システム１００の処理のフローを示している。  
処理Ｓ２０１は、入力処理部１０８にて、ユーザから入力された質問文をテキストに変換する入力処理を行う。例えば、ユーザからの質問文が音声で入力された場合は、その音声をテキストに変換し、正規化を行う。正規化では、大文字と小文字の統一や数値を漢数字と数字の統一など表記の統一を行ってもよい。また、ユーザからの質問文がテキストで入力された場合も表記の統一を行ってもよい。
【００２６】
処理Ｓ２０２は、意図解析部１０４にて、処理Ｓ２０１によって正規化されたユーザの入力の意図解析を行う。例えば、意図解析部１０４は、対話データ１０７１に登録されている質問文と回答文の対の中からユーザから入力された質問文に近い質問文を見つけだし、その質問文をユーザから入力された質問文の意図とする。また、ユーザから入力された質問文と登録されている質問文との間の類似度を、ユーザから入力された質問文の意図をあらわす確からしさを示す確信度として算出してもよい。例えば、意図解析部１０４は、ユーザから入力された質問文を構成する文字列と、対話データ１０７１に登録されている質問文を構成する文字列との一致度が８０％である場合には、上記確信度を８０％として算出する。
【００２７】
処理Ｓ２０３は、対話制御部１０５にて、処理Ｓ２０２によって得られた結果である質問文や対話ログデータ１０７４（ユーザ発話の言い換えの確認状況、聞き返しの連続回数、対話回数等）に基づいて、対話データ１０７１に登録されている回答文の中から出力すべき回答文を生成する。ユーザ発話の言い換えの確認状況とは、ユーザの「営業時間を教えて？」という質問に対し、「それは「開いている時間を教えて。」という意味ですか？」と、質問を言い換えてその意図を確認する確認文を出力しているか否かである。また、聞き返しとは、何らかの理由で音声認識精度が低い場合やユーザから入力された質問文に近い質問文が対話データ１０７１に登録されていない時に「もう一度言って下さい。」のような聞き返し文を出力して回答することである。さらに、聞き返しの連続回数は連続して何回聞き返したかである。
【００２８】
処理Ｓ２０４は、出力処理部１０９にて、処理Ｓ２０３によって生成された回答文を出力するために必要な処理を行う。例えば、出力処理部１０９は、回答文を音声で出力する場合は回答文のテキストを任意の音声合成技術により音声に変換する処理を行う。また、回答文をテキストで出力する場合であれば、処理Ｓ２０１で正規化したものを元の表記（ユーザが使用している表記）に戻すといった処理を行ってもよい。また、次の対話が続く場合は、上記の言い換えの確認状況、確認中の質問を識別するＩＤ、聞き返しの連続回数、対話回数を対話ログデータ１０７４に記憶し、引継ぎを行ってもよい。
【００２９】
＜２−２．対話制御処理＞
図３は対話制御処理Ｓ２０３の詳細を示すフロー図である。  
図３では、処理Ｓ２０２により得られた結果である質問文や対話ログ１０７４から得られる３つの情報（上記の類似度、確認状況、対話回数）に基づいて、対話制御部１０５が、３種類の処理（確認処理、回答処理、聞き返し処理）から１つを選択する例を示している。
【００３０】
処理Ｓ３０１では、対話制御部１０５は、確信度により分岐処理を行う。具体的には、対話制御部１０５は、処理Ｓ２０２において意図解析部１０４により判定された上記確信度が所定の閾値（例えば、８０％）以上であるか否かを判定し、確信度が当該閾値以上であると判定した場合（Ｓ３０１；Ｙｅｓ）、処理Ｓ３０２に進む。対話制御部１０５は、確信度が閾値未満であると判定した場合（Ｓ３０１；Ｎｏ）、処理Ｓ３０７に進む。上記閾値は任意の値をシステム管理者が設定してもよいし、任意の手法により自動的に設定するようにしてもよい。
【００３１】
処理Ｓ３０２では、対話制御部１０５は、確認状況により分岐処理を行う。具体的には、対話制御部１０５は、Ｓ３０５の確認処理を実行中、すなわち、上記確認文を出力している状態であるか否かを判定し、確認処理を実行中であると判定した場合（Ｓ３０２；Ｙｅｓ）、処理Ｓ３０５に進む。対話制御部１０５は、確認処理を実行していないと判定した場合（Ｓ３０２；Ｎｏ）、処理Ｓ３０３に進む。
【００３２】
処理Ｓ３０３では、対話制御部１０５は、確認が必要な候補データ１０７２の有無により分岐処理を行う。具体的には、対話制御部１０５は、対話データ１０７１の中から確信度が閾値以上であると判定された質問文の言い換えの候補が候補データ１０７２にあるか否かを判定する。上記質問文の候補の判定は、例えば、図４に示す対話データ１０７１に記憶されている対話ＩＤと同じ値の候補ＩＤの有無を判定し、上記同じ値の候補ＩＤがあると判定した場合、その候補ＩＤに対応する言い換えが候補データとして登録されていると判定する。
【００３３】
対話制御部１０５は、候補データがあると判定した場合（Ｓ３０３；Ｙｅｓ）、処理Ｓ３０４に進み、候補データがないと判定した場合（Ｓ３０３；Ｎｏ）、処理Ｓ３０６に進む。
【００３４】
処理Ｓ３０４では、対話制御部１０５は、対話回数により分岐処理を行う。具体的には、対話制御部１０５は、あるユーザとの間で対話の回数が、あらかじめ定められた閾値回数（例えば、Ｎ＝３）の対話であるか否かを判定する。対話制御部１０５は、対話回数が上記閾値回数であると判定した場合（Ｓ３０４；Ｙｅｓ）、処理Ｓ３０５に進み、それ以外の場合（Ｓ３０４；Ｎｏ）、処理Ｓ３０６に進む。上記閾値回数Ｎは任意の数であり、例えば任意の値をシステム管理者が設定してもよい。この例では３回の対話に対して１回の頻度で、次のＳ３０５の確認処理が実行されることとなる。このような閾値を設けることにより、頻繁に確認処理が実行されることによるユーザの不快感を抑えることができる。
【００３５】
処理Ｓ３０５では、対話制御部１０５は、確認が必要な候補データの中から１つを選択し、その候補データがユーザにより発話された質問文の言い換えの適否を確認する確認処理を行う。確認処理については後述する。
【００３６】
処理Ｓ３０６では、対話制御部１０５は、ユーザにより発話された質問文に回答する回答処理を行う。具体的には、対話制御部１０５は、Ｓ３０１で確信度が閾値以上と判定された質問文に対応する回答文を対話データ１０７１の中から読み出し、読み出した回答文を出力する。
【００３７】
処理Ｓ３０７では、対話制御部１０５は、「もう一度言ってください。」といったような聞き返し文を出力する聞き返し処理を行う。聞き返し文はあらかじめメモリ１０７に記憶しておけばよい。
【００３８】
＜２−３．対話制御処理における確認処理＞
図４は、対話制御処理Ｓ２０３における確認処理Ｓ３０５の例を示す。確認処理Ｓ３０５では、対話データ１０７１と候補データ１０７２を用いる。図４に示すように、対話データ１０７１は、ユーザとの対話を識別するために対話ＩＤと、その対話ＩＤで識別される対話における質問文（Ｑ）と、その質問文に対する回答を示す回答文（Ａ）とが対応付けて記憶されている。例えば、対話データ１０７１には、対話ＩＤが「１」で識別される「営業時間は？」という質問文に対し、「営業時間は１０：００から１８：００です。」という回答文が登録されていることを示している。また、同じ対話ＩＤで識別される「いつ開いているの？」という質問文に対しても同様の回答文が登録されていることを示している。対話ＩＤは質問文の意図毎（回答毎）に付与されるため、任意の質問文とその言い換えは同一の対話ＩＤとなる。
【００３９】
また、図４に示すように、候補データ１０７２は、質問文の候補を識別するための候補ＩＤと、その候補ＩＤで識別される言い換えの候補となる質問文（Ｑ）と、ユーザからの質問文がその質問文の意図であることが言い換えにより確認できた回数を示す適切フラグと、ユーザからの質問文がその質問文の意図であることが言い換えにより確認できなかった回数を示す不適切フラグと、その言い換えの候補が既に対話データの質問文として登録されているか否かを示す登録フラグとが対応付けて記憶されている。適切フラグとは、ユーザに確認した際に、言い換えが適切であると回答された回数である。同様に、不適切フラグとは、言い換えが不適切であると回答された回数である。この例では、候補ＩＤが１である「開いている時間を教えて。」という質問文が、その確認結果（適切と判断された回数、不適切と判断された回数）と登録状況と共に登録されている。また確認結果には、適切フラグの値と不適切フラグの値の他に、適否を判断できないと判断された回数を示す不明フラグの値を入れてもよい。
【００４０】
また、図４に示すように、ユーザから「営業時間は？」と質問文が入力された場合、処理Ｓ３０３では、まず、対話制御部１０５は、その質問文が対話データ１０７１の質問文（Ｑ）に登録されているか否かを確認する。対話制御部１０５は、その質問文が対話データ１０７１に登録されていると判定した場合、その質問文に対応する対話ＩＤを取得する。
【００４１】
次に、対話制御部１０５は、取得した対話ＩＤと同じ値の候補ＩＤの質問文が候補データ１０７２に存在するかを確認する。処理Ｓ３０５では、対話制御部１０５は、候補データから１つの質問（Ｑ）を選択し、ユーザ発話の言い換えの適切さを確認する質問を行う。候補データが複数ある場合の選び方については以降で述べる。この例では、「開いている時間を教えて。」という質問が選択され、「今のは「開いている時間を教えて。」という意味ですか？」という確認文を出力してユーザに尋ねている。それに対し、ユーザはその確認文による言い換えが適切であることを示す返事「はい。」と答え、対話システム１００は確認処理Ｓ３０５においてその返事を受け取っている。
【００４２】
また、図４に示すように、最初から最後までの一連の対話のシーケンスに含まれる対話の履歴が、対話ログデータ１０７４に記憶されている。対話ログデータ１０７４は、ユーザと本システムとの間で１回の対話が行われる都度、対話制御部１０５により記録される。図４では、対話ログデータ１０７４には、質問文や確認文または回答文を識別するためのログＩＤと、そのログＩＤにより識別される質問文または回答文の内容とが対応付けて記憶されていることがわかる。
【００４３】
図５は確認処理Ｓ３０５の詳細を示すフロー図である。  
図５では、ユーザ発話の言い換えの適切さを確認する確認処理に関する回答文を生成する例を示している。
【００４４】
処理Ｓ５０１では、対話制御部１０５は、言い換えの確認状況により分岐処理を行う。具体的には、対話制御部１０５は、ユーザ発話の言い換えを確認中であるか否か（例えば、図４に示したログＩＤ２の確認文により確認処理を実行中であるか否か）を判定し、確認中であると判定した場合（Ｓ５０１；Ｙｅｓ）、処理Ｓ５０２に進み、確認中でないと判定した場合（Ｓ５１０；Ｎｏ）、処理Ｓ５１２に進む。
【００４５】
処理Ｓ５０２では、対話制御部１０５は、言い換えの適切性により分岐処理を行う。具体的には、対話制御部１０５は、確認処理で本システムが出力した確認文に対するユーザの返事が「はい。」等の言い換えが正しい旨を示す内容であるか否かを判定することにより、言い換えが適切であったか否かを判定する。対話制御部１０５は、ユーザから上記正しい旨を示す返事を受け取り、言い換えが適切であったと判定した場合（Ｓ５０２；Ｙｅｓ）、処理Ｓ５０３に進み、不適切であったと判定した場合（Ｓ５０２；Ｎｏ）、処理Ｓ５０４に進む。
【００４６】
処理Ｓ５０３では、対話制御部１０５は、候補データ１０７２の適切フラグの値に１を追加する。  
処理Ｓ５０４では、対話制御部１０５は、候補データ１０７２の不適切フラグの値に１を追加する。
【００４７】
図６は、処理Ｓ５０３と処理Ｓ５０４の言い換え確認前後の対話データ１０７１と候補データ１０７２の例を示している。（１）には確認処理前の状態が示されており、（２）には確認処理後の状態が示されている。（２−１）のように、対話制御部１０５により確認結果が適切であると判定された場合は候補データ１０７２の適切フラグの値が１追加される。一方、（２−２）のように、対話制御部１０５により確認結果が不適切であると判定された場合は候補データ１０７２の不適切フラグの値が１追加される。図６では、「開いている時間はいつ？」との言い換えは適切であると判定される一方、「休憩時間はいつ？」との言い換えは不適切であると判定されたことがわかる。
【００４８】
処理Ｓ５０５〜Ｓ５１１は、候補データ１０７２が１つの候補ＩＤについて複数登録されている場合には、各データ（本例では、「開いている時間はいつ？」および「休憩時間はいつ？」）に対して繰り返し行い、その後処理Ｓ３０６に進む。
【００４９】
処理Ｓ５０６では、対話制御部１０５は、適切フラグの値と不適切フラグの値により分岐処理を行う。具体的には、対話制御部１０５は、適切フラグの値と不適切フラグの値との間の関係が所定の条件を満たすか否かを判定する。例えば、対話制御部１０５は、候補データ１０７２に記憶されている各データのうち、適切フラグの値よりも不適切フラグの値が閾値となる一定数以上大きい値であると判定した場合、そのデータは候補データ１０７２として不適切であると判断する一方、適切フラグの値よりも不適切フラグの値が閾値となる一定数以上大きい値でないと判定した場合、そのデータは候補データ１０７２として適切であると判断する。
【００５０】
対話制御部１０５は、候補データ１０７２の各データについて候補データ１０７２として適切であると判定した場合（Ｓ５０６；Ｙｅｓ）、処理Ｓ５０７に進む。また、対話制御部１０５は、候補データ１０７２の各データについて候補データ１０７２として不適切であると判定した場合（Ｓ５０６；Ｎｏ）、処理Ｓ５０８に進む。適切か否かの判定方法には、上記のほか任意の方法を用いることができる。
【００５１】
例えば、上記のような適切フラグの値と不適切フラグの値との間の相対的な関係ではなく、適切フラグの値がある閾値Ａ以上であり、不適切フラグの値が別の閾値Ｂ以下である場合には言い換えが適切と判断し、それ以外を不適切と判断するというように、適切フラグの値、不適切フラグの値それぞれあらかじめ定められた値を用いてもよい。また、適切の値／（適切の値＋不適切な値）がある閾値Ｃ以上の場合に適切、それ以外を不適切と判断してもよい。この場合、閾値Ａと閾値Ｂはシステム管理者が決定してよいし、言い換え確認のログに基づいて自動的に調整してもよい。
【００５２】
処理Ｓ５０７では、対話制御部１０５は、対話データ１０７１に、上記関係を判定した候補データ１０７２のデータが含まれているか否かにより分岐処理を行う。具体的には、対話制御部１０５は、上記候補データ１０７２のデータが対話データ１０７１に含まれているか否かを判定し、上記候補データ１０７２のデータが対話データ１０７１に含まれていると判定した場合（Ｓ５０７；Ｙｅｓ）、処理Ｓ５１１に進む。一方、対話制御部１０５は、上記候補データ１０７２のデータが対話データ１０７１に含まれていないと判定した場合（Ｓ５０７；Ｎｏ）、処理Ｓ５０９に進む。
【００５３】
処理Ｓ５０８では、Ｓ５０７と同様、対話データ１０７１に、上記関係を判定した候補データ１０７２のデータが含まれているか否かにより分岐処理を行う。対話制御部１０５は、対話データ１０７１に、上記関係を判定した候補データ１０７２のデータが含まれていると判定した場合（Ｓ５０８；Ｙｅｓ）、処理Ｓ５１０に進み、対話データ１０７１に、上記関係を判定した候補データ１０７２のデータが含まれていないと判定した場合（Ｓ５０８；Ｎｏ）、処理Ｓ５１１に進む。
【００５４】
処理Ｓ５０９では、対話制御部１０５は、対話データ１０７１に、上記関係を判定した候補データ１０７２のデータ（言い換えが適切と判定されたデータ）を追加する。
【００５５】
処理Ｓ５１０では、対話制御部１０５は、対話データ１０７１から、上記関係を判定した候補データ１０７２のデータ（言い換えが不適切と判定されたデータ）を削除する。
【００５６】
図７は、処理Ｓ５０５〜Ｓ５１１の更新前後の対話データ１０７１と候補データ１０７２の例を示している。（１）には更新前の状態が示されており、（２）には更新後の状態が示されている。（２−１）のように、対話制御部１０５により言い換えが適切であると判定された場合は候補データ１０７２の登録フラグの値が「済」となり、対話データ１０７１に追加される。一方、（２−２）のように、対話制御部１０５により言い換えが不適切であると判定された場合は候補データ１０７２の登録フラグの値が「未」となり、対話データ１０７１に追加されない。
【００５７】
図７（２−１）では、「開いている時間はいつ？」との言い換えは１０回のすべての対話で適切であると判定されたため登録フラグに「済」が設定され、「開いている時間はいつ？」との言い換えが対話データ１０７１に登録されることを示している。一方、「休憩時間はいつ？」との言い換えは１０回の対話のうち９回不適切であると判定されたため登録フラグに「未」が設定され、「開いている時間はいつ？」との言い換えが対話データ１０７１に登録されず、既に登録されている場合は対話データ１０７１に登録されていないことがわかる。
【００５８】
なお、メンテナンス部１０６は、システム管理者がメモリ１０７に格納されているデータを管理するために、図６や図７に示す対話データ１０７１、候補データ１０７２を含む画面データを言い換え確認結果データ１０７３として出力するインターフェースを備えていてもよい。例えば、対話システム１００を実現する情報処理装置の入出力装置１０３がその情報処理装置の裏面に備えられ、当該装置に、管理者により操作される上記言い換え確認結果データ１０７３を管理者画面として出力されてもよい。
【００５９】
図１１は、言い換え確認結果データ１０７３の例を示す図である。図１１に示すように、言い換え確認結果データ１０７３は、対話データ１０７１と同様の結果ＩＤと質問文（Ｑ）と回答文（Ａ）と、候補データ１０７２と同様の適切フラグと不適切フラグと登録フラグと、判定された確認文を手動で上記質問文に登録するか否かを示すマニュアル登録フラグとが対応付けて記憶されている。図１１では、例えば、ユーザに対する確認文「開いている時間はいつ？」と「どこから出れるの？」のシステム結果登録フラグが「済」となっているため、それらが各質問の言い換えとして適切であると判定され、候補データ１０７２から対話データ１０７１に登録されていることを示している。
【００６０】
一方、確認文「休憩時間は？」のシステム結果登録フラグは「未」となっているため、質問の言い換えとして不適切と判断され、対話データ１０７１に登録されていないことを示している。また、確認文「開いている時間はいつ？」はマニュアル登録フラグがチェックされている。これは管理者が対話データ１０７１に登録を指示していることを示している。一方、確認文「休憩時間は？」と「どこから出れるの？」はマニュアル登録フラグがチェックされていない。これは管理者が対話データ１０７１に登録を指示していないことを示している。これらの管理者からのマニュアル登録フラグの入力に基づき、メンテナンス部１０６は対話データ１０７１を更新する。
【００６１】
すなわち、対話システム１００では、上記のとおり、言い換えが適切であると判定された場合に自動的に候補データ１０７２から対話データ１０７１に登録することも可能であるが、上記言い換えの確認結果を言い換え確認結果データ１０７３として画面に出力し、管理者が目視でその結果を確認した上で所望の候補データ１０７２を選択して対話データ１０７１に登録する候補データ１０７２を選択してもよい。ユーザにとっては適切であると判断された言い換えであっても、ユーザごとに言い換えの許容度が異なるため、様々な言い換え表現が対話データ１０７１に登録される場合がある。したがって、上記のように管理者が言い換え確認結果データ１０７３を確認して登録すべきか否かを判断した上で、候補データ１０７２を対話データ１０７１に登録することにより、対話データ１０７１で保持するデータ量を抑えることができる。
【００６２】
処理Ｓ５１２では、対話制御部１０５は、ユーザ発話と対話データ１７０１と候補データ１７０２に基づいて分岐処理を行う。具体的には、対話制御部１０５は、ユーザ発話に対応する言い換えが候補データ１７０２の中に登録フラグが未登録、すなわち対話データ１０７１には未登録として記憶されているデータがあるか否かを判定する。対話制御部１０５は、上記候補が対話データ１７０１に未登録として記憶されていると判定した場合（Ｓ５１２；Ｙｅｓ）、処理Ｓ５１３に進み、上記候補が対話データ１７０１に未登録として記憶されていないと判定した場合（Ｓ５１２；Ｎｏ）、回答処理Ｓ３０６に進む。
【００６３】
処理Ｓ５１３では、対話制御部１０５は、上記言い換えの候補の数により分岐処理を行う。具体的には、対話制御部１０５は、対話データ１７０１に未登録として記憶されている上記候補が複数あるか否かを判定し、対話データ１７０１に未登録として記憶されている上記候補が複数あると判定した場合（Ｓ５１３；Ｙｅｓ）、処理Ｓ５１４に進み、対話データ１７０１に未登録として記憶されている上記候補が複数ないと判定した場合（Ｓ５１３；Ｎｏ）、処理Ｓ５１５に進む。
【００６４】
処理Ｓ５１４では、対話制御部１０５は、複数の上記候補からユーザに確認するデータを１つ選択する。例えば、ランダムに選択してもよいし、言い換えが候補データ１０７２のデータとして登録された順に選択してもよい。
【００６５】
処理Ｓ５１５では、対話制御部１０５は、候補データ１０７２のデータから確認文を生成し、ユーザへの回答文とする。
【００６６】
なお、上記の例では、ユーザから「営業時間は？」という質問文が入力された場合、処理Ｓ３０５では、まずその質問文に近い質問文を対話データ１０７１の中から探し、その結果を元に候補データを用いてユーザにその質問の意図を確認する処理を行い、回答文を出力している。しかし、質問文に対する回答文の適合率を重視する場合は、閾値を設定し、検索結果のスコアが閾値以上でないと回答しないようにしてもよい。
【００６７】
＜２−４．対話制御処理における回答処理＞
図８は、対話制御処理Ｓ２０３における回答処理Ｓ３０６の例を示す。対話制御部１０５は、回答処理Ｓ３０６において対話データ１０７１を用いる。この例では、対話データ１０７１には、図４に示したように、対話ＩＤと質問文と回答文とが対応付けて記憶されている。したがって、Ｓ３０６では、対話制御部１０５は、例えば、対話ＩＤが１である「営業時間は？」という質問文に対し、「営業時間は１０：００から１８：００です。」という回答文を出力する。回答処理Ｓ３０６には上記のように対話データ１０７１の他に対話ログデータ１０７４を用いて、これまでの対話に基づいた回答文を出力してもよい。
【００６８】
＜２−５．対話制御処理における聞き返し処理＞
図９は、対話制御処理Ｓ２０３における聞き返し処理Ｓ３０７の例を示す。対話制御部１０５は、例えば、「営業時間は？」というユーザからの質問文に対し、「よく聞き取れませんでした。もう一度言って下さい。」という回答文を出力している。この処理は、周りの雑音の影響で音声をテキストに変換する際の認識結果の確信度が低い場合や、意図解析処理が失敗した場合（意図解析結果の確信度が閾値以下の場合）に実行される。Ｓ３０７で出力する回答文については、あらかじめメモリ１０７に記憶しておけばよい。
【００６９】
このように、本システムによれば、大規模な言い換えコーパスが事前に用意できない場合であっても、ユーザとの間の一連の対話の中で、言い換えの適否を確認しつつ、対話を行うことができ、自動生成された言い換え文の精度を向上させることができる。
【実施例２】
【００７０】
実施例１では、処理Ｓ３０４において、確認処理の頻度Ｎ（Ｎ回に１回確認処理を行う）は、システム管理者が設定してもよいとした。一方で、本手法はユーザに言い換えの適切性の確認という余計な手間をかけてしまうことになるので、ユーザが不快に感じない頻度にすることが望ましい。そのため、ユーザの不快度合いを考慮して頻度Ｎを自動調整することもできる。
【００７１】
図１２は、対話制御部１０５に含まれる確認頻度最適化モジュール１２０１が、ユーザの不快度合いを考慮して頻度Ｎを自動調整する場合の例を示す図である。図１２では、例えば、対話システム１００のメモリ１０７に確認ログデータ１２０２が記憶され、確認頻度最適化モジュール１２０１が、当該確認ログデータ１２０２を読み出して当該ユーザとの対話における確認の頻度を決定して確認処理を実行する手順を示している。
【００７２】
確認ログデータ１２０２は、ユーザごとに、対話時に実行された確認処理の頻度とユーザの不快度との関係を表すデータである。図１２に示すように、確認ログデータ１２０２には、ユーザごとに、一連の対話を識別するためのセッションＩＤと、確認処理の実行頻度を示す確認頻度と、ユーザの不快度とが対応付けて記憶されている。図１２では、例えば、ユーザＡと本システムとの間の対話のうち、セッションＩＤが「１」で識別される一連の対話（例えば、図４に示した対話ログデータ１０７４のログＩＤが「１」〜「４」に示す、最初から最後までの一連の対話）では、５回の対話に対して１回の頻度で確認処理を実行し、そのときのユーザＡの不快度は「２：やや快適」であったことを示している。不快度は、対話が最後までスムーズに完了したかを示す対話成効率や、ユーザの声の抑揚、カメラ等の撮像装置により撮像されたユーザの顔、仕草、動作の画像からの感情分析結果によって算出すればよい。本例では、不快度の値を１から５の値（１：快適、２：やや快適、３:普通、４:やや不快、５:不快）としてあらわしている。
【００７３】
確認頻度最適化モジュール１２０１は、対話時の確認頻度と不快度のログを入力とし、所定のアルゴリズムで確認頻度の最適化を行う処理部である。例えば、少なくとも平均的な不快度が３以下となるように確認頻度とする場合を考えると、確認頻度が「５」の場合は不快度の平均が「１．５」となり、確認頻度が「４」の場合は不快度の平均が３となる。したがって、確認頻度最適化モジュール１２０１は、両者の値のうち、少なくとも平均的な不快度が３以下となるという条件を満たす確認頻度「４」を、対話システム１００の確認頻度として設定する。なお、上記では不快度の平均を統計値として算出する場合を例示したが、中央値、最頻値等の他の統計値として不快度を算出してもよい。このように、確認文の出力頻度をユーザの不快度に応じて設定することにより、様々なユーザが心地よく対話システム１００と対話することができる。
【実施例３】
【００７４】
実施例１では、処理Ｓ５１４にて複数の言い換えが存在する場合、候補データ１０７２の中から出力するデータをランダムで選択していた。一方で、複数の言い換えに対し、優先的に確認したい言い換えを選択することもできる。
【００７５】
例えば、図１０は、似た言い換えをまとめ、対話データ１０７１に登録されているデータとは異なる言い換えを優先的に確認したい場合の候補データの選択処理フローの一例である。
【００７６】
処理Ｓ１００１では、対話制御部１０５は、候補データ１０７２を任意の手法によりクラスタリングする。その一手法として、対話制御部１０５は、候補データ１０７２に記憶されている各データを文字解析する等して、語尾のみが異なるデータは同じグループとなるように、候補データ１０７２の各データをグルーピングし、そのグループごとに一意となるクラスを定める。例えば、候補データ１０７２のある候補ＩＤに対応付けて、「名前を教えて？」、「名前を教えてください。」、「名前を教えてほしい。」、「なんて呼ばれているの？」というデータが記憶されている場合、最初の３つのデータを１つのクラスに分類し、最後の１つのデータをそのクラスとは別のクラスに分類する。
【００７７】
処理Ｓ１００２では、対話制御部１０５は、処理Ｓ１００１の結果として得られたグループの中から、対話データ１０７１に登録されているデータと類似度が低いデータのクラスを選択する。例えば、対話制御部１０５は、グルーピングされたクラスに含まれる各データと登録済みデータとの類似度の平均値を算出し、その平均値を、上記クラスと登録済みデータとの類似度とする。類似度の計算は、例えば、レーベンシュタイン距離等、従来から知られている手法を用いればよい。
【００７８】
処理Ｓ１００３では、対話制御部１０５は、処理Ｓ１００２で選択されたクラスに含まれるデータの中から、対話データ１０７１に登録されているデータとの類似度が低く所定の閾値を満たさないデータを言い換えの候補として選択する。例えば、対話制御部１０５は、選択されたクラスに含まれるそれぞれのデータと対話データ１０７１に登録されているデータとの類似度を上記同様の手法で算出し、その中で最も類似度が低く所定の閾値を満たさないデータを選択する。
【００７９】
上記のようにクラスタリングすることで、似た言い換えをまとめることができ、似たような確認文を連続して出力することがなくなる。また、類似度の低いものから適切性を確認することで、異なる語彙や文法を用いた言い方を優先的に出力し、評価することができるようになるため、多様な言い換えに対応できる対話システムをより早期に構築可能となることが期待できる。
【符号の説明】
【００８０】
１００            対話システム
１０１            ＣＰＵ
１０２            データ通信部
１０３            入出力装置
１０４            意図解析部
１０５            対話制御部
１０６            メンテナンス部
１０７            メモリ
１０７１          対話データ
１０７２          候補データ
１０７３          言い換え確認結果データ
１０７４          対話ログデータ
１０８            入力処理部
１０９            出力処理部
１２０１          確認頻度最適化モジュール
１２０２          確認ログデータ。
【図１】
2018197924.tif 000003
【図２】
2018197924.tif 000004
【図３】
2018197924.tif 000005
【図４】
2018197924.tif 000006
【図５】
2018197924.tif 000007
【図６】
2018197924.tif 000008
【図７】
2018197924.tif 000009
【図８】
2018197924.tif 000010
【図９】
2018197924.tif 000011
【図１０】
2018197924.tif 000012
【図１１】
2018197924.tif 000013
【図１２】
2018197924.tif 000014