以下に添付図面を参照して、検証システム、検証方法及びプログラムの実施形態を詳細に説明する。
(第1実施形態)
はじめに第1実施形態について説明する。
[機能構成の例]
図1は第1実施形態の検証システム100の機能構成の例を示す図である。第1実施形態の検証システム100は、受付部11、判定部12、記憶部13、構築部14及び対話システム200を備える。
受付部11は、作業者から、応答データ(第2応答データ)と、状況データ(第2状況データ)とを受け付ける。
応答データは、1以上の応答文の生成に使用される。応答データは、例えば商品のセール情報である。セール情報は、例えば期間、店名及び内容を含む。期間は、例えば「4/29−5/5」等である。店名は、例えば「家電量販店D」等である。内容は、例えば「人形30%OFF」等である。
応答データが商品のセール情報の場合、例えば「人形を扱っているお店として家電量販店Dが見つかりました」等の応答文が生成される。
状況データは、応答データが使用される状況を示す。状況データは、例えば期間を示す情報、場所を示す情報、年齢を示す情報、性別を示す情報、価格を示す情報、種類(タイプ)を示す情報、及び、嗜好を示す情報のうち、少なくとも1つを含む。状況データのデータ形式は任意でよい。状況データは、例えば応答データが使用される状況を示すパラメータである。
期間は、例えば「4/29〜5/5」等である。場所を示す情報は、例えば「3Fおもちゃエリア」等である。年齢を示す情報は、例えば「3歳〜12歳」等である。性別を示す情報は、例えば「女性」等である。価格を示す情報は、例えば「3000円以下」等である。種類(タイプ)を示す情報は、例えば洋服の種類を示す「フォーマル」及び「カジュアル」等である。嗜好を示す情報は、例えば飲食物の嗜好を示す「洋食」、「和食」及び「中華」等である。
なお応答データに含まれる情報と、状況データに含まれる情報とは、一部が重複していてもよい。例えば期間を示す情報、及び、価格を示す情報等は、応答データ及び状況データの両方に含まれていてもよい。
受付部11は、応答データと、状況データとを受け付けると、応答データを構築部14に入力し、状況データを判定部12に入力する。
判定部12は、受付部11から状況データを受け付けると、当該状況データと、記憶部13に記憶されたデータセット101−k(1≦k≦n,n及びkは1以上の整数)に含まれる状況データ103−kとの類似度を判定する。
記憶部13(記憶制御部)は、データセット101−1〜データセット101−nを記憶する。データセット101−1〜データセット101−nの説明は、同様なので、データセット101−1を例にして説明する。
データセット101−1は、応答データ102−1及び状況データ103−1を含む。応答データ102−1の説明は、受付部11により受け付けられた応答データの説明と同じなので省略する。同様に、状況データ103−1の説明は、受付部11により受け付けられた状況データの説明と同じなので省略する。
以下、データセット101−1〜データセット101−nを区別しない場合、単にデータセット101という。同様に、応答データ102−1〜応答データ102−nを区別しない場合、単に応答データ102という。同様に、状況データ103−1〜状況データ103−nを区別しない場合、単に状況データ103という。
<状況データの類似度の判定例>
受付部11により受け付けられた状況データ、及び、記憶部13に記憶されている状況データ103は、数値を有する場合と、ラベルを有する場合とがある。数値を有する場合は、期間を示す情報(5/1〜5/8等)、年齢を示す情報(6歳〜12歳等)、及び、価格を示す情報(10,000円以下等)である。ラベルを有する場合は、場所を示す情報(本館1F等)、性別を示す情報(男性等)、及び、種類(フォーマル等)である。
以下、説明のため、受付部11により受け付けられた状況データを、動作検証用状況データという。また、受付部11により受け付けられた応答データを、動作検証用応答データという。
判定部12は、動作検証用状況データが数値を有する場合、例えば動作検証用状況データが示す範囲と、記憶部13に記憶されている状況データ103が示す範囲と、が重複する範囲の大きさに基づいて、類似度を判定する。
判定部12は、動作検証用状況データがラベルを有する場合、例えばラベルが一致するか否かに基づいて、類似度を判定する。また例えば、判定部12は、動作検証用状況データがラベルを有する場合、類似度を定義する定義情報に基づいて、類似度を判定する。
なお判定部12は、例えばラベルを数値に変換する変換テーブル等の変換情報を使用することにより、ラベルと数値とを比較してもよい。
以下、具体例を参照して、類似度の判定例について説明する。
<期間を示す情報の場合>
図2は第1実施形態の類似度の判定例1を説明するための図である。動作検証用状況データは、動作検証用応答データが特定の期間だけ行うセール等を示す場合、例えばその開始日と終了日との組を含む。図2の例では、動作検証用応答データは、新しいセール情報である。また動作検証用状況データは、新しいセール情報の期間5/1〜5/8を示す。
判定部12は、例えば動作検証用状況データに含まれる開始日と終了日とにより示される期間が、記憶部13に記憶されている状況データ103により示される期間に含まれる場合、類似度を1とする。図2の例では、動作検証用状況データにより示される期間は、「セールB」を示す応答データ102に関連付けられた状況データ103により示される期間に含まれる。そのため判定部12は、動作検証用状況データと、「セールB」を示す応答データ102に関連付けられた状況データ103との類似度は1であると判定する。
また例えば、判定部12は、動作検証用状況データに含まれる開始日と終了日とにより示される期間が、記憶部13に記憶されている状況データ103により示される期間に含まれない場合、類似度を0とする。図2の例では、動作検証用状況データにより示される期間は、「セールA」を示す応答データ102に関連付けられた状況データ103により示される期間に含まれない。そのため判定部12は、動作検証用状況データと、「セールA」を示す応答データ102に関連付けられた状況データ103との類似度は0であると判定する。
また例えば、判定部12は、動作検証用状況データに含まれる開始日と終了日とにより示される期間が、記憶部13に記憶されている状況データ103により示される期間と重複する場合、重複する期間の長さに応じて類似度を判定する。判定部12は、例えば重複する期間の長さが、記憶部13に記憶されている状況データ103により示される期間の長さの20%である場合、例えば類似度を0.2とする。図2の例では、動作検証用状況データにより示される期間は、「セールC」を示す応答データ102に関連付けられた状況データ103により示される期間の一部と重複する。そのため判定部12は、動作検証用状況データと、「セールC」を示す応答データ102に関連付けられた状況データ103との類似度を、例えば0.6であると判定する。
<場所を示す情報の場合>
図3Aは第1実施形態の類似度の判定例2を説明するための図である。動作検証用状況データは、動作検証用応答データが店舗で行われるセール等を示す場合、例えば場所を示す情報を含む。場所を示す情報は、例えば対話システムが設置される場所、及び、ショップの場所等を示す。図3Aの例は、判定部12が、3階建の本館と2階建の東館とがあるショッピングセンター内の場所を示す動作検証用状況データの類似度を判定する場合を示す。
図3Bは類似度の判定例2で使用される定義情報の例を示す図である。定義情報は類似度を定義する。類似度は任意の方法により定義してよい。類似度は、例えばユーザーが移動するために必要な物理的な移動距離に反比例させて定義してもよい。また例えば、類似度は、移動手段も考慮された移動時間に反比例させて定義してもよい。移動手段は、例えば徒歩、エスカレーター及びエレベーター等である。
動作検証用状況データが示す場所と、ショップAの場所を示す状況データ103が示す場所とは、同じ建物の同一フロアにある。判定部12は、図3Bの定義情報を使用して、動作検証用状況データが示す場所と、ショップAの場所を示す状況データ103が示す場所との類似度が1であると判定する。
動作検証用状況データが示す場所と、ショップBの場所を示す状況データ103が示す場所とは、同じ建物にあるが、1階分離れた別フロアにある。判定部12は、図3Bの定義情報を使用して、動作検証用状況データが示す場所と、ショップBの場所を示す状況データ103が示す場所との類似度が0.8であると判定する。
動作検証用状況データが示す場所と、ショップCの場所を示す状況データ103が示す場所とは、同じ建物にあるが、2階分離れた別フロアにある。判定部12は、図3Bの定義情報を使用して、動作検証用状況データが示す場所と、ショップCの場所を示す状況データ103が示す場所との類似度が0.6であると判定する。
動作検証用状況データが示す場所と、ショップDの場所を示す状況データ103が示す場所とは、異なる建物にあるが、同一フロア(階)にある。判定部12は、図3Bの定義情報を使用して、動作検証用状況データが示す場所と、ショップDの場所を示す状況データ103が示す場所との類似度が0.5であると判定する。
動作検証用状況データが示す場所と、ショップEの場所を示す状況データ103が示す場所とは、異なる建物の1階分離れたフロア(階)にある。判定部12は、図3Bの定義情報を使用して、動作検証用状況データが示す場所と、ショップEの場所を示す状況データ103が示す場所との類似度が0.3であると判定する。
<対象を示す情報の場合>
図4Aは第1実施形態の類似度の判定例3を説明するための図である。動作検証用状況データは、動作検証用応答データが商品のセール等を示す場合、例えば対象(性別及び年齢の組み合わせ)を示す情報を含む。
性別については、男性、女性、及び、両方(男女兼用)の3つがある。類似度の定義は、例えば「男性−男性」、「女性−女性」、「両方−両方」、「両方−男性」及び「両方−女性」の比較の場合、1とし、「男性−女性」の比較の場合、0とする。
年齢については、例えば「全年齢」及び「シニア」のようなグループ分けを用いて、同一のグループであれば類似度を1、異なるグループであれば類似度を0とする。また判定部12は、変換テーブル等の変換情報により、「全年齢」及び「シニア」等のラベルから、年齢の類似度を判定してもよい。
図4Bは類似度の判定例3で使用される変換情報の例を示す図である。図4Bの変換情報の例は、例えば「全年齢」は0歳から100歳、「シニア」は60歳から70歳というように、ラベルから数値(年齢)の範囲に変換する場合を示す。判定部12は、変換情報を使用して、ラベルを数値の範囲に変換することにより、当該数値の範囲の包含関係を利用して、ラベルの類似度を判定することができる。
簡単のため、図4Aを使用して、性別を考慮せずに、対象の類似度を判定する場合について説明する。図4Aの例では、動作検証用状況データは、「シニア向け」を示す。
動作検証用状況データが示す「シニア向け」は、図4Bの変換情報により、60歳以上70歳以下の範囲に変換される。「商品A」を示す応答データ102に関連付けられた状況データ103が示す「大人向け」は、図4Bの変換情報により、20歳以上100歳以下の範囲に変換される。「商品B」を示す応答データ102に関連付けられた状況データ103が示す「全年齢向け」は、図4Bの変換情報により、0歳以上100歳以下の範囲に変換される。「商品C」を示す応答データ102に関連付けられた状況データ103が示す「青年向け」は、図4Bの変換情報により、15歳以上24歳以下の範囲に変換される。
年齢の範囲では、動作検証用状況データが示す「シニア向け」は、「商品A」を示す応答データ102に関連付けられた状況データ103が示す「大人向け」に含まれる。そのため判定部12は、動作検証用状況データが示す「シニア向け」と、「商品A」を示す応答データ102に関連付けられた状況データ103が示す「大人向け」と、の類似度が1であると判定する。
年齢の範囲では、動作検証用状況データが示す「シニア向け」は、「商品B」を示す応答データ102に関連付けられた状況データ103が示す「全年齢向け」に含まれる。そのため判定部12は、動作検証用状況データが示す「シニア向け」と、「商品B」を示す応答データ102に関連付けられた状況データ103が示す「全年齢向け」と、の類似度が1であると判定する。
年齢の範囲では、動作検証用状況データが示す「シニア向け」は、「商品C」を示す応答データ102に関連付けられた状況データ103が示す「青年向け」に含まれる。そのため判定部12は、動作検証用状況データが示す「シニア向け」と、「商品C」を示す応答データ102に関連付けられた状況データ103が示す「青年向け」と、の類似度が0であると判定する。
<価格を示す情報の場合>
動作検証用状況データは、動作検証用応答データが商品のセール等を示す場合、例えば価格帯を示すラベルを含む。価格を示す情報は、例えば低価格帯、高価格帯及び両方の3つがある。両方は、低価格帯の商品、及び、高価格帯の商品の両方がある場合を示す。類似度の定義は、例えば「高価格帯−高価格帯」、「低価格帯−低価格帯」、「両方−両方」、「高価格帯−両方」及び「低価格帯−両方」の比較の場合、1とし、「高価格帯−低価格帯」の比較の場合、0とする。また価格帯を示すラベルの類似度は、上述の年齢を示すラベルの場合と同様に、変換情報(図4B参照)を使用して、数値の範囲に変換してから判定してもよい。例えば変換情報は、「低価格帯」を「3,000円以下」に変換し、「高価格帯」を「3,000円より大きい」に変換する。
<種類を示す情報の場合>
動作検証用状況データは、動作検証用応答データが洋服のセール等を示す場合、例えば種類を示すラベルを含む。種類を示す情報は、例えばフォーマル、カジュアル及び両方の3つがある。両方は、フォーマルな洋服、及び、カジュアルな洋服の両方がある場合を示す。類似度の定義は、例えば「フォーマル−フォーマル」、「カジュアル−カジュアル」「両方‐両方」、「フォーマル‐両方」及び「カジュアル‐両方」の比較の場合、1とし、「フォーマル‐カジュアル」の比較の場合、0とする。
図1に戻り、判定部12は、類似度が閾値(第1閾値)以上である状況データ103に関連付けられた応答データ102を記憶部13から読出し、当該応答データ102を構築部14に入力する。閾値は任意に定めてよい。閾値は、例えば作業者により適宜、設定されてもよい。また例えば、判定部12が、記憶部13に記憶されたn個の状況データ103の全て又は一部と、動作検証用状況データとの類似度を算出し、当該類似度の平均値及び中央値等の統計値に基づいて閾値を設定してもよい。
構築部14は、受付部11から、動作検証用応答データを受け付け、判定部12から、類似度が閾値以上である状況データ103に関連付けられた応答データ102を受け付ける。構築部14は、動作検証用応答データと、類似度が閾値以上である状況データ103に関連付けられた応答データ102と、を含む応答コンテンツDB(database)202(応答コンテンツ情報)を構築する。そして構築部14は、応答コンテンツDB202を対話システム200の記憶部21に記憶する。
次に対話システム200について説明する。
対話システム200は、記憶部21、受付部22、応答制御部23、生成部24及び出力制御部25を備える。
記憶部21、応答制御部23及び生成部24は、対話エンジンに相当する。対話エンジンの処理は、ユーザーから受け付けられた発話データを理解するための発話理解、応答形式(応答方針)を決めるための対話制御、及び、応答形式に従い具体的な応答文を生成する応答生成を含む。これらの処理をカスタマイズすることにより、特定のタスクに特化した発話理解、新しい応答コンテンツDB202の情報を提示できる対話制御、及び、個性的な発話スタイルをもつ応答生成等を実現することができる。
対話システム200にカスタマイズを加えた際は、そのカスタマイズが影響を与える処理が正しく動作するかを事前に検証する必要がある。例えば、カスタマイズされた後の対話システム200が、ユーザーから受け付けられた発話データを正しく理解できるか否かを事前に検証する必要がある。また例えば、カスタマイズされた後の対話システム200による対話の流れが意図通りになっているか否かを事前に検証する必要がある。また例えば、カスタマイズされた後の対話システム200に記憶されている応答コンテンツDB202の情報が適切に提示されるか否かを事前に検証する必要がある。また例えば、カスタマイズされた後の対話システム200による生成される応答文が、文章として誤りがない状態で生成されるか否かを事前に検証する必要がある。
対話エンジンの動作検証では、当該対話エンジンが実際に利用される状況に合わせて動作検証を行うことが重要である。対話システム200が、例えばショッピングセンターの店舗案内に利用される場合、当該対話システム200が利用される場所及び時間、当該対話システムを使用するユーザーの性別及び年齢、並びに、ショップの取扱商品及びセール情報等に、対話エンジンの挙動を適応させることが重要である。
例えば、動作検証用応答データとして、一か月後のセール情報を応答コンテンツDB202に追加登録して、対話エンジンの動作検証をする場合は、当該応答コンテンツDB202に、同時期に他店舗が行うセール情報も含めると、当該対話エンジンが利用される状況に合わせることができる。
記憶部21は、発話理解モデル201、応答コンテンツDB202、応答形式DB203及び応答生成モデル204を記憶する。
発話理解モデル201(発話理解情報)は、対話システム200が発話を理解できるようにするための情報を含む。発話理解モデル201は、例えば発話の意図を示す発話意図情報の生成に使用される。発話理解モデル201は、例えば単語の特徴量と、発話意図情報と、を関連付けて記憶する。特徴量は、例えば単語の特徴を示すベクトルである。
具体的には、発話理解モデル201は、例えば「が欲しい」を示す特徴量と、ユーザーのアクション「店舗検索」と、を関連付けて記憶する。また例えば、発話理解モデル201は、「はどこ」を示す特徴量と、ユーザーのアクション「場所検索」と、を関連付けて記憶する。また例えば、発話理解モデル201は、「靴」を示す特徴量と、対象「靴」と、を関連付けて記憶する。また例えば、発話理解モデル201は、「トイレ」を示す特徴量と、対象「トイレ」と、を関連付けて記憶する。
応答制御部23は、発話理解モデル201を使用して、発話データに含まれる単語から発話意図情報を特定することにより、ユーザーの発話の意図を推定する。応答制御部23は、例えば発話に「が欲しい」が含まれている場合、ユーザーの発話の意図が「店舗検索」であることを推定することができる。
応答コンテンツDB202は、上述の構築部14により構築される。応答コンテンツDB202は、動作検証用応答データを含む。また応答コンテンツDB202は、記憶部13に記憶されていた応答データ102のうち、動作検証用状況データとの類似度が閾値以上である状況データ103に関連付けられた応答データ102を含む。
動作検証用応答データ及び応答データ102が、店舗情報を示す場合、応答コンテンツDB202に記憶されるデータは、例えば店名、取扱商品及び価格帯等を含む。
図5は第1実施形態の応答コンテンツDB202の例を示す図である。図5の例では、例えば店名が「靴屋A」である店舗の取扱商品は、「革靴」及び「スニーカー」であり、価格帯は「高級」である。
図1に戻り、応答形式DB203(応答形式情報)は、上述の発話意図情報に応じた応答文の形式を示す応答形式(応答シナリオ)を決定するための情報を記憶する。
応答形式DB203は、例えばアクション「未知」及び対象「未知」の組み合わせと、質問形式(request(X=アクション,Y=対象))とを関連付けて記憶する。また例えば、応答形式DB203は、アクション「店舗検索」及び対象「靴」の組み合わせと、提案形式(offer(X=対象,Y=店))とを関連付けて記憶する。また例えば、応答形式DB203は、アクション「場所検索」及び対象「未知」の組み合わせと、質問形式(request(X=対象))とを関連付けて記憶する。
応答生成モデル204(応答生成情報)は、応答文を生成するための情報を記憶する。応答生成モデル204は、例えば応答形式と、応答文とを関連付けて記憶する。具体的には、応答生成モデル204は、例えば質問形式(request(X=対象))と、応答文「Xについてご希望はありますが」とを関連付けて記憶する。また例えば、応答生成モデル204は、例えば確認形式(confirm(X=x))と、応答文「Xはxということでよろしいでしょうか」とを関連付けて記憶する。また例えば、応答生成モデル204は、例えば提案形式(offer(X=対象,Y=店))と、応答文「Xを扱っているお店としてYが見つかりました」とを関連付けて記憶する。
受付部22は、検証者(ユーザ)から、発話データを受け付ける。発話データは、検証者の発話を示す。発話データのデータ形式は任意でよい。発話データは、例えばテキストデータである。また例えば、発話データは音声データである。受付部22は、発話データが音声データである場合、当該音声データを音声認識にすることにより、発話を示すテキストデータ等の音声認識結果を取得する。
対話システム200は、検証者から受け付けられた発話データに応じた応答文を出力し、当該応答文に応じた発話データを受け付けることを繰り返すことにより、検証者と対話する。
なお、第1実施形態では、検証者と上述の作業者とが別の人物である場合を例に説明するが、検証者と作業者は同一の人物であってもよい。
応答制御部23は、受付部22から発話データを受け付けると、当該発話データに応じた応答制御処理を行うことにより、応答形式を決定する。応答制御処理の例は、図6を参照して後述する。応答制御部23は、応答形式を生成部24に入力する。
生成部24は、応答制御部23から、応答形式を受け付けると、応答生成モデル204を使用して、当該応答形式から応答文を生成する。応答文の生成処理の例は、図6を参照して後述する。生成部24は、応答文を出力制御部25に入力する。
出力制御部25は、生成部24から、応答文を受け付けると、当該応答文を出力する。応答文の出力形式は任意でよい。出力制御部25は、例えば応答文の読み上げ音声を出力する。また例えば、出力制御部25は、応答文を示すテキストを含む表示情報を出力する。また例えば、出力制御部25は、応答文の読み上げ音声の出力と、当該応答文を示すテキストを含む表示情報の出力との両方を行ってもよい。
次に対話システム200の動作例について説明する。
<対話システムの動作例>
図6は第1実施形態の対話システム200の動作例を示す図である。はじめに、応答制御部23が、受付部22から、検証者の発話を示す発話データ210を受け付けると、当該発話データ210を単語に分割することにより、分割データ211を生成する(ステップS1)。次に、応答制御部23は、分割データ211に含まれる単語の特徴量212を抽出する(ステップS2)。
次に、応答制御部23は、発話理解モデル201を使用して、発話を理解する(ステップS3)。具体的には、応答制御部23は、発話理解モデル201を使用して、特徴量212から、発話意図情報213を生成する。
次に、応答制御部23は、応答コンテンツDB202及び応答形式DB203を使用して、応答を制御する(ステップS4)。具体的には、応答制御部23は、応答コンテンツDB202及び応答形式DB203を使用して、特徴量212及び発話意図情報213から、応答形式214を決定する。
次に、応答制御部23は、応答生成モデル204を使用して、応答形式214から、応答文215を生成する(ステップS5)。ステップS5の処理により生成された応答文215は、出力制御部25により出力される。
次に第1実施形態の検証方法について説明する。
<検証方法>
図7は第1実施形態の検証方法の例を示すフローチャートである。はじめに、受付部11が、作業者から、動作検証用応答データを受け付ける(ステップS21)。次に、受付部11は、作業者から、動作検証用状況データを受け付ける(ステップS22)。
次に、判定部12が、ステップS22の処理により受け付けられた動作検証用状況データと、記憶部13に記憶されたデータセット101−k(1≦k≦n,n及びkは1以上の整数)に含まれる状況データ103−kとの類似度(第1類似度)を算出する(ステップS23)。
次に、判定部12は、ステップS23の処理により算出された類似度が閾値以上であるか否かを判定する(ステップS24)。類似度が閾値以上である場合(ステップS24、Yes)、判定部12は、類似度が閾値以上である状況データ103に関連付けられた応答データ102を記憶部13から読出す(ステップS25)。類似度が閾値以上でない場合(ステップS24、No)、処理はステップS26に進む。
次に、判定部12は、記憶部13に記憶された全てのデータセット101−kを判定したか否かを判定する(ステップS26)。全てのデータセット101−kを判定していない場合(ステップS26、No)、処理はステップS23に戻る。
全てのデータセット101−kを判定した場合(ステップS26、Yes)、構築部14は、ステップS21の処理により受け付けられた動作検証用応答データと、ステップS25の処理により読み出された応答データ102と、を含む応答コンテンツDB202を構築する(ステップS27)。
次に、受付部22が、検証者から、発話データを受け付ける(ステップS28)。次に、応答制御部23が、発話理解モデル201、応答コンテンツDB202及び応答形式DB203を使用して、上述の応答制御処理を行うことにより、応答形式を決定する(ステップS29)。
次に、生成部24が、応答生成モデル204を使用して、ステップS29の応答制御処理により決定された応答形式から、応答文を生成する(ステップS30)。次に、出力制御部25が、ステップS30の処理により生成された応答文を出力する(ステップS31)。
次に、応答制御部23が、発話データに応じた対話が終了したか否かを判定する(ステップS32)。対話の終了を判定する方法は任意でよい。応答制御部23は、例えばステップS21の処理により入力された動作検証用応答データを含む応答形式が生成された場合、対話が終了したと判定する。また例えば、応答制御部23は、ステップS25の処理により読み出された応答データ102を含む応答形式が生成された場合、対話が終了したと判定する。
対話が終了していない場合(ステップS32、No)、処理はステップS28に戻る。対話が終了した場合(ステップS32、Yes)、処理を終了する。
次に図8及び図9を使用して、第1実施形態の検証例について説明する。
<検証例>
図8及び図9の例では、対話システム200は、ショッピングセンターにある複数の店舗、及び、当該店舗で売られている複数の商品を検索するシステムである場合について説明する。
図8は第1実施形態の検証システム100の検証例1を説明するための図である。図8の例では、作業者及び検証者は、ショッピングセンター内にある靴屋Aのスタッフである。動作検証用応答データは、5月の靴屋Aセール情報を示す。動作検証用状況データは、5月セールの対象期間を示す。データセット101は、応答データ102として、24件の他店舗の5月セール情報を含み、状況データ103として、24件の他店舗の5月セールの対象期間を含む。
第1実施形態の対話システム200では、5月の靴屋Aセール情報だけでなく、24件の他店舗の5月セール情報も、応答コンテンツDB202に含まれる。第1実施形態の対話システム200は、この応答コンテンツDB202を使用することにより、複数の競合するセール情報の中から靴屋Aのセール情報に絞り込む対話を実現することができる。
これにより、対話システム200(対話エンジン)が実際に利用される状況に合わせて、当該対話システム200の動作を検証することを、図8の右側の対話の例のように、より容易に実現することができる。
一方、従来の対話システム300では、図8の左側の対話の例のように、「セール」という情報だけから即座に靴屋Aの情報が提示される。しかし、実際には、例えばゴールデンウィーク期間中は他店舗もセールを行うことが多い。従来の対話システム300は、複数のセール情報を検索することにより、絞り込みを行わなければ、靴屋Aの情報にたどり着かないはずである。
この様に、従来の対話システム300は、実際に使用されるときの状況と大きく異なる挙動をする。そのため、対話システム300(対話エンジン)が実際に利用される状況に合わせて、当該対話システム300の動作を検証することができない。
図9は第1実施形態の検証システム100の検証例2を説明するための図である。図9の例では、作業者及び検証者は、ショッピングセンターの婦人服エリアにあるショップCのスタッフである。動作検証用応答データは、ショップCの婦人服追加情報を示す。動作検証用状況データは、対話システム200が設置される婦人服エリアの場所を示す。データセット101は、応答データ102として、総合衣料新製品情報及び婦人服新製品情報を含み、状況データ103として、総合衣料エリアの場所、及び、婦人服エリアの場所を含む。
第1実施形態の対話システム200では、婦人服追加情報だけでなく、ショップCと同じ婦人服エリアにある店舗の婦人服新製品情報も、応答コンテンツDB202に含まれる。しかし、総合衣料新製品情報は、総合衣料エリアの店舗の情報なので、応答コンテンツDB202に含まれない。
第1実施形態の対話システム200は、この応答コンテンツDB202を使用することにより、婦人服エリアでは婦人服についての問い合わせが来やすいという事前情報が反映される様子も、検証時に確認することが可能になる。これにより、対話システム200(対話エンジン)が実際に利用される状況に合わせて、当該対話システム200の動作を検証することを、図9の右側の対話の例のように、より容易に実現することができる。
一方、従来の対話システム300では、場所に関する情報を考慮して動作を検証することができないので、図9の左側の対話の例のように、最も基本的な方針に従い対話を進める。従来の対話システム300では、婦人服エリアでは婦人服についての問い合わせが来やすいという事前情報が反映される様子を、検証時に確認することができない。そのため、対話システム300(対話エンジン)が実際に利用される状況に合わせて、当該対話システム300の動作を検証することができない。
以上説明したように、第1実施形態の検証システム100では、記憶制御部が、1以上の応答文の生成に使用可能な応答データ102(第1応答データ)と、応答データ102が使用される状況を示す状況データ103(第1状況データ)と、を関連付けて記憶部13に記憶する。受付部11(第1受付部)が、1以上の応答文の生成に使用される動作検証用応答データ(第2応答データ)を受け付ける。判定部12が、動作検証用応答データが使用される状況を示す動作検証用状況データ(第2状況データ)と、状況データ102との類似度(第1類似度)を判定する。構築部14が、動作検証用応答データと、類似度が閾値(第1閾値)以上である状況データ103に関連付けられた応答データ102と、を含む応答コンテンツDB202(応答コンテンツ情報)を構築する。受付部22(第2受付部)が、ユーザーによる発話を示す発話データを受け付ける。生成部24が、発話データに応じた応答文を、応答コンテンツDB202を使用して生成する。そして出力制御部25が、1以上の応答文を出力する。
これにより第1実施形態の検証システム100によれば、対話エンジン(対話システム200)が利用される状況に合わせて、対話エンジンの動作を検証することを、より容易に実現することができる。
(第1実施形態の変形例1)
次に第1実施形態の変形例1について説明する。第1実施形態の変形例1の説明では、第1実施形態と同様の説明については省略し、第1実施形態と異なる箇所について説明する。
第1実施形態の説明では、構築部14が、対話システム200が利用される状況に合わせて、応答コンテンツDB202を構築する場合について説明した。第1実施形態の変形例1では、構築部14が、対話システム200が利用される状況に合わせて、応答形式DB203を構築する。
記憶部13は、応答形式と、当該応答形式が使用される状況を示す状況データ(第3状況データ)と、を関連付けて記憶する。
判定部12は、動作検証用状況データ(第2状況データ)と、第3状況データとの類似度(第2類似度)を判定する。
構築部14は、第2類似度が第2閾値以上である第3状況データに関連付けられた応答形式を1以上含む応答形式DB203を構築する。構築部14は、応答形式DB203を記憶部21に記憶する。
応答制御部23は、応答形式DB203を使用して、上述の発話意図情報から応答形式を決定する。
生成部24は、応答制御部23により決定された応答形式を使用して、発話データに応じた応答文を生成する。
以上説明したように、第1実施形態の変形例1では、対話システム200が利用される状況に応じた応答形式DB203が構築される。これにより応答制御部23は、発話意図情報が同一であっても、対話システム200が利用される状況に応じた異なる応答形式を決定することができる。
第1実施形態の変形例1によれば、第1実施形態の場合と同様に、対話エンジン(対話システム200)が利用される状況に合わせて、対話エンジンの動作を検証することを、より容易に実現することができる。
(第1実施形態の変形例2)
次に第1実施形態の変形例2について説明する。第1実施形態の変形例2の説明では、第1実施形態と同様の説明については省略し、第1実施形態と異なる箇所について説明する。
第1実施形態の説明では、構築部14が、対話システム200が利用される状況に合わせて、応答コンテンツDB202を構築する場合について説明した。第1実施形態の変形例2では、応答制御部23が、対話システム200が利用される状況に合わせた発話理解モデル201を使用して、応答形式を決定する。
記憶部13は、発話理解モデル201と、当該発話理解モデル201が使用される状況を示す状況データ(第4状況データ)と、を関連付けて記憶する。
判定部12は、動作検証用状況データ(第2状況データ)と、第4状況データとの類似度(第3類似度)を判定する。判定部12は、第3類似度が閾値(第3閾値)以上である第4状況データに関連付けられた発話理解モデル201を、記憶部21に記憶する。
応答制御部23は、判定部12により記憶部21に記憶された発話理解モデル201から得られた発話意図情報に応じて、応答形式を決定する。
生成部24は、応答制御部23により決定された応答形式を使用して、発話データに応じた応答文を生成する。
以上説明したように、第1実施形態の変形例2では、対話システム200が利用される状況に応じた発話理解モデル201が使用される。これにより応答制御部23は、発話データが同一であっても、対話システム200が利用される状況に応じた異なる発話意図情報により、発話の意図を推定することができる。
第1実施形態の変形例2によれば、第1実施形態の場合と同様に、対話エンジン(対話システム200)が利用される状況に合わせて、対話エンジンの動作を検証することを、より容易に実現することができる。
(第1実施形態の変形例3)
次に第1実施形態の変形例3について説明する。第1実施形態の変形例3の説明では、第1実施形態と同様の説明については省略し、第1実施形態と異なる箇所について説明する。
第1実施形態の説明では、構築部14が、対話システム200が利用される状況に合わせて、応答コンテンツDB202を構築する場合について説明した。第1実施形態の変形例3では、生成部24が、対話システム200が利用される状況に合わせた応答生成モデル204を使用して、発話データに応じた応答文を生成する。
記憶部13は、1以上の応答文の生成に使用される応答生成モデル204と、応答生成モデル204が使用される状況を示す状況データ(第5状況データ)と、を関連付けて記憶する。
判定部12は、動作検証用状況データ(第2状況データ)と、第5状況データとの類似度(第4類似度)を判定する。判定部12は、第4類似度が閾値(第4閾値)以上である第4状況データに関連付けられた応答生成モデル204を、記憶部21に記憶する。
生成部24は、判定部12により記憶部21に記憶された応答生成モデル204を使用して、発話データに応じた応答文を生成する。
以上説明したように、第1実施形態の変形例3では、対話システム200が利用される状況に応じた応答生成モデル204が使用される。これにより生成部24は、応答制御部23から入力された応答形式が同一であっても、対話システム200が利用される状況に応じた異なる応答文を生成することができる。
第1実施形態の変形例3によれば、第1実施形態の場合と同様に、対話エンジン(対話システム200)が利用される状況に合わせて、対話エンジンの動作を検証することを、より容易に実現することができる。
上述の第1実施形態及び変形例1〜3は、組み合わせて実施してもよい。例えば、動作検証用状況データが、子供向けを示す情報(例えば年齢が10歳未満、及び、おもちゃ売り場の場所を示す情報等)を含む場合、子供向け単語(語彙)を含む発話理解モデル201、おもちゃの情報を含む応答コンテンツDB202、及び、親しみやすい応答文を生成する応答生成モデル204を使用してもよい。これにより対話エンジン(対話システム200)が利用される状況に合わせて、対話エンジンの動作を検証することを、より容易に実現することができる。
また例えば、動作検証用状況データが、フォーマルなイベントが開催される場所を示す情報を含む場合、1つ1つ丁寧に確認しながら応答することにより対話を進めるための応答形式を含む応答形式DB203と、丁寧な言葉使いを含む応答文を生成する応答生成モデル204と、を使用してもよい。
また例えば、動作検証用状況データが、富裕層を対象にすることを示す情報を含む場合、富裕層向けの単語を含む発話理解モデル201、ブランド品の情報を含む応答コンテンツDB202、及び、かしこまった応答文を生成する応答生成モデル204と、を使用してもよい。
(第2実施形態)
次に第2実施形態について説明する。第2実施形態の説明では、第1実施形態と同様の説明については省略し、第1実施形態と異なる箇所について説明する。
[機能構成の例]
図10は第2実施形態の検証システム100の機能構成の例を示す図である。第2実施形態の検証システム100は、受付部11、判定部12、記憶部13、構築部14、推定部15及び対話システム200を備える。第2実施形態の検証システム100では、第1実施形態の検証システム100の機能構成に、更に推定部15が追加されている。
推定部15は、動作検証用応答データ(第2応答データ)から、動作検証用状況データ(第2状況データ)を推定する。推定方法は任意でよい。推定部15は、例えば動作検証用応答データの一部を、動作検証用状況データとして抽出することにより推定してもよい。また例えば、推定部15は、規則及び統計モデル等を使用して、動作検証用応答データから、動作検証用状況データを推定してもよい。
図11は第2実施形態の推定部15による推定例を示す図である。図11の例は、動作検証用応答データが、ゴールデンウィークのセール情報である場合を示す。ゴールデンウィークのセール情報は、期間を示す情報(4/29−5/5)、店名を示す情報(家電量販店D)、及び、内容を示す情報(人形30%OFF)を含む。
期間を示す情報は、動作検証用応答データと、動作検証用状況データの両方に含まれる。推定部15は、例えば期間を示す情報を、動作検証用応答データから抽出することにより、動作検証用状況データの期間を示す情報(4/29−5/5)を推定する。
また例えば、推定部15は、家電量販店Dのおもちゃ売り場が3階の東エリアにあるという規則を使用して、店名を示す情報と内容を示す情報とから、動作検証用状況データの場所を示す情報(3Fおもちゃエリア)を推定する。
また例えば、推定部15は、人形の主なターゲットが女の子であるという規則を使用して、内容を示す情報から、動作検証用状況データの対象を示す情報(女性・子供)を推定する。
以上、説明したように、第2実施形態の検証システム100では、受付部11が、作業者から、動作検証用状況データを受け付けなくても、推定部15により、当該動作検証用状況データを推定することができる。これにより、第2実施形態の検証システム100によれば、第1実施形態の検証システム100と同様に、対話エンジン(対話システム200)が利用される状況に合わせて、対話エンジンの動作を検証することを、より容易に実現することができる。
(第3実施形態)
次に第3実施形態について説明する。第3実施形態の説明では、第1実施形態と同様の説明については省略し、第1実施形態と異なる箇所について説明する。
第3実施形態では、構築部14により構築された応答コンテンツDB202を修正する場合について説明する。
[機能構成の例]
図12は第3実施形態の検証システム100の機能構成の例を示す図である。第3実施形態の検証システム100は、受付部11、判定部12、記憶部13、構築部14、判定部16、修正部17、記憶部18及び対話システム200を備える。第3実施形態の検証システム100では、第1実施形態の検証システム100の機能構成に、更に判定部16、修正部17及び記憶部18が追加されている。
判定部16は、応答コンテンツDB202が適切であるか否かを判定する。判定部16は、例えば応答コンテンツDB202に含まれるデータの数が閾値(第5閾値)以上である場合、当該応答コンテンツDB202が適切であると判定する。
記憶部18(記憶制御部)は、疑似データセット104−1〜疑似データセット104−m(mは1以上の整数)を記憶する。
疑似データセット104−1は、疑似応答データ105−1及び疑似状況データ106−1を含む。疑似データセット104−1〜疑似データセット104−mの説明は、同様なので、疑似データセット104−1を例にして説明する。
疑似応答データ105−1は、疑似的な応答データを示す。疑似応答データ105−1は、例えば過去に使用された応答データ102の複製である。また例えば、疑似応答データ105−1は、架空の応答データである。
疑似状況データ106−1は、疑似応答データ105−1が使用される状況を示す。疑似状況データ106−1は、例えば期間を示す情報、場所を示す情報、年齢を示す情報、性別を示す情報、価格を示す情報、種類を示す情報、及び、嗜好を示す情報のうち、少なくとも1つを含む。疑似状況データ106−1のデータ形式は任意でよい。疑似状況データ106−1は、例えば疑似応答データ105−1が使用される状況を示すパラメータである。
以下、疑似データセット104−1〜疑似データセット104−mを区別しない場合、単に疑似データセット104という。同様に、疑似応答データ105−1〜疑似応答データ105−mを区別しない場合、単に疑似応答データ105という。同様に、疑似状況データ106−1〜疑似状況データ106−mを区別しない場合、単に疑似状況データ106という。
修正部17は、応答コンテンツDB202に含まれるデータの数が第5閾値以下の場合、動作検証用状況データ(第2状況データ)と、疑似状況データ106との類似度(第5類似度)を判定する。修正部17は、第5類似度が閾値(第5閾値)以上の疑似状況データ106に関連付けられた疑似応答データ105を、応答コンテンツDB202に追加することにより、応答コンテンツDB202を修正する。修正部17は、修正された応答コンテンツDB202を記憶部21に記憶する。
なお上述の記憶部13及び18は、1つの記憶部として実現されていてもよい。同様に、上述の判定部12及び16は、1つの判定部として実現されていてもよい。
次に第3実施形態の検証方法について説明する。
<検証方法>
図13は第3実施形態の検証方法の例を示すフローチャートである。ステップS41〜ステップS47の説明は、第1実施形態の検証方法のステップS21〜ステップS27(図7参照)の説明と同じなので省略する。
判定部16は、応答コンテンツDB202が適切であるか否かを判定する(ステップS47−2)。判定部16は、例えば応答コンテンツDB202に含まれるデータの数が閾値(第5閾値)以上であるか否かを判定する。
応答コンテンツDB202が適切でない場合(ステップS47−2、No)、修正部17は、応答コンテンツDB202を修正する(ステップS47−3)。具体的には、修正部17は、動作検証用状況データ(第2状況データ)と、疑似状況データ106との類似度(第5類似度)を判定する。そして修正部17は、第5類似度が閾値(第5閾値)以上の疑似状況データ106に関連付けられた疑似応答データ105を、応答コンテンツDB202に追加することにより、応答コンテンツDB202を修正する。
応答コンテンツDB202が適切である場合(ステップS47−2、Yes)、処理はステップS48に進む。
ステップS48〜ステップS52の説明は、第1実施形態の検証方法のステップS28〜ステップS32(図7参照)の説明と同じなので省略する。
第3実施形態の検証システム100によれば、記憶部13に記憶されているデータセット101の数が十分にない場合であっても、対話システム200(対話エンジン)が実際に利用される状況により合わせて、対話システム200の動作を検証することができる。
例えば上述の図8の検証例1で、5月セール情報が十分にない場合、図8の左側の対話の例のように、1度のやりとりで対話が終わってしまう。しかし、第3実施形態では、疑似データセット104を使用することで、実際に対話システム200が利用される時と同様に、複数の競合するセール情報の中から靴屋Aのセール情報に絞り込む対話を実現することができる。
最後に第1乃至第3実施形態の検証システム100のハードウェア構成の例について説明する。
[ハードウェア構成の例]
図14は第1乃至第3実施形態の検証システム100のハードウェア構成の例を示す図である。第1乃至第3実施形態の検証システム100は、制御装置301、主記憶装置302、補助記憶装置303、マイク304、表示装置305、入力装置306、通信装置307及びスピーカー308を備える。制御装置301、主記憶装置302、補助記憶装置303、マイク304、表示装置305、入力装置306、通信装置307及びスピーカー308は、バス310を介して接続されている。
制御装置301は補助記憶装置303から主記憶装置302に読み出されたプログラムを実行する。制御装置301は、例えばCPU等の1以上のプロセッサである。主記憶装置302はROM(Read Only Memory)、及び、RAM(Random Access Memory)等のメモリである。補助記憶装置303はメモリカード、及び、HDD(Hard Disk Drive)等である。
マイク304は音声の入力を受け付ける。マイク304は、例えば発話データを示す音声の入力を受け付ける。
表示装置305は情報を表示する。表示装置305は、例えば液晶ディスプレイである。入力装置306は情報の入力を受け付ける。入力装置306は、例えばキーボード及びマウス等である。なお表示装置305及び入力装置306は、表示機能と入力機能とを兼ねる液晶タッチパネル等でもよい。
通信装置307は他の装置と通信する。スピーカー308は音声を出力する。スピーカー308は、例えば応答文を示す音声を出力する。
第1乃至第3実施形態の検証システム100で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、メモリカード、CD−R、及び、DVD(Digital Versatile Disc)等のコンピュータで読み取り可能な記憶媒体に記憶されてコンピュータ・プログラム・プロダクトとして提供される。
また第1乃至第3実施形態の検証システム100で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また第1乃至第3実施形態の検証システム100が実行するプログラムを、ダウンロードさせずにインターネット等のネットワーク経由で提供するように構成してもよい。
また第1乃至第3実施形態の検証システム100で実行されるプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
第1乃至第3実施形態の検証システム100で実行されるプログラムは、第1乃至第3実施形態の検証システム100の機能構成のうち、プログラムにより実現可能な機能を含むモジュール構成となっている。
プログラムにより実現される機能は、制御装置301が補助記憶装置303等の記憶媒体からプログラムを読み出して実行することにより、主記憶装置302にロードされる。すなわちプログラムにより実現される機能は、主記憶装置302上に生成される。
なお第1乃至第3実施形態の検証システム100の機能の一部を、IC(Integrated Circuit)等のハードウェアにより実現してもよい。ICは、例えば専用の処理を実行するプロセッサである。
また複数のプロセッサを用いて各機能を実現する場合、各プロセッサは、各機能のうち1つを実現してもよいし、各機能のうち2つ以上を実現してもよい。
また第1乃至第3実施形態の検証システム100の動作形態は任意でよい。第1乃至第3実施形態の検証システム100を、例えばネットワーク上のクラウドシステムとして動作させてもよい。
また上述の第1乃至第3実施形態の検証システム100は、1台のコンピュータにより実現されていてもよいし、複数のコンピュータにより、実現されていてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
例えば、第1実施形態の検証システム100では、構築部14が、動作検証用状況データと状況データ103との類似度に基づいて読み出された応答データ102を使用して、応答コンテンツDB202を構築する場合について説明した。しかしながら構築部14は、記憶部13に記憶された全ての応答データ102を使用して、応答コンテンツDB202を構築してもよい。そして応答制御部23が、当該応答コンテンツDB202から選択されるデータを、動作検証用状況データを参照して決定してもよい。