(57)【要約】【課題】対話システムが答えられなかった質問に答えるための知識を容易に拡充する。【解決手段】プロセッサとメモリを有し、ユーザからの入力文と、当該入力文に対する回答を出力文として含む対話ログデータを分析する情報処理装置であって、前記対話ログデータを入力し、当該対話ログデータから対話の失敗個所を検出する失敗個所検出部と、前記失敗個所に対応する前記対話ログデータから失敗原因を分析する失敗原因分析部と、前記失敗原因に応じて前記対話ログデータから質問文を生成して出力する確認処理部と、前記質問文に対する回答を受け付けて、前記入力文から出力文を得るための対話データに新たな知識として追加する知識登録処理部と、を有する。【選択図】図１
2019061482.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサとメモリを有し、ユーザからの入力文と、当該入力文に対する回答を出力文として含む対話ログデータを分析する情報処理装置であって、
前記対話ログデータを入力し、当該対話ログデータから対話の失敗個所を検出する失敗個所検出部と、
前記失敗個所に対応する前記対話ログデータから失敗原因を分析する失敗原因分析部と、
前記失敗原因に応じて前記対話ログデータから質問文を生成して出力する確認処理部と、
前記質問文に対する回答を受け付けて、前記入力文から出力文を得るための対話データに新たな知識として追加する知識登録処理部と、
を有することを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記失敗原因分析部は、
前記失敗原因を、前記対話データに知識がない場合と、前記対話データに言い換えがない場合の２つに識別することを特徴とする情報処理装置。
【請求項３】
請求項１に記載の情報処理装置であって、
前記失敗原因分析部は、
前記失敗原因を、前記対話データに知識がない場合と、前記対話データに言い換えがない場合と、前記対話データに同義語がない場合の３つに識別することを特徴とする情報処理装置。
【請求項４】
請求項１に記載の情報処理装置であって、
前記失敗個所検出部は、
前記対話ログデータの前記入力文と前記出力文の特徴を算出し、当該特徴に基づいて対話の失敗個所を検出し、
前記失敗原因分析部は、
前記対話ログデータの前記入力文と前記出力文の特徴を算出し、当該特徴に基づいて前記失敗原因を生成することを特徴とする情報処理装置。
【請求項５】
請求項１に記載の情報処理装置であって、
前記確認処理部は、
前記質問文に対応する対話ログデータの出現頻度に応じて出力する順位を決定することを特徴とする情報処理装置。
【請求項６】
請求項１に記載の情報処理装置であって、
前記確認処理部は、
前記質問文を表形式で出力することを特徴とする情報処理装置。
【請求項７】
請求項１に記載の情報処理装置であって、
前記確認処理部は、
前記質問文に同義語を含んで出力し、
前記知識登録処理部は、
前記質問文に対する回答に含まれる同義語を受け付けて、前記同義語を対話データに新たな知識として追加することを特徴とする情報処理装置。
【請求項８】
プロセッサとメモリを有する情報処理装置が、ユーザからの入力文と、当該入力文に対する回答を出力文として含む対話ログデータを分析する対話処理方法であって、
情報処理装置が、前記対話ログデータを入力し、当該対話ログデータから対話の失敗個所を検出する第１のステップと、
情報処理装置が、前記失敗個所に対応する前記対話ログデータから失敗原因を分析する第２のステップと、
情報処理装置が、前記失敗原因に応じて前記対話ログデータから質問文を生成して出力する第３のステップと、
前記質問文に対する回答を受け付けて、前記入力文から出力文を得るための対話データに新たな知識として追加する第４のステップと、
を含むことを特徴とする対話処理方法。
【請求項９】
請求項８に記載の対話処理方法であって、
前記第２のステップは、
前記失敗原因を、前記対話データに知識がない場合と、前記対話データに言い換えがない場合の２つに識別することを特徴とする対話処理方法。
【請求項１０】
請求項８に記載の対話処理方法であって、
前記第２のステップは、
前記失敗原因を、前記対話データに知識がない場合と、前記対話データに言い換えがない場合と、前記対話データに同義語がない場合の３つに識別することを特徴とする対話処理方法。
【請求項１１】
請求項８に記載の対話処理方法であって、
前記第１のステップは、
前記対話ログデータの前記入力文と前記出力文の特徴を算出し、当該特徴に基づいて対話の失敗個所を検出し、
前記第２のステップは、
前記対話ログデータの前記入力文と前記出力文の特徴を算出し、当該特徴に基づいて前記失敗原因を生成することを特徴とする対話処理方法。
【請求項１２】
請求項８に記載の対話処理方法であって、
前記第３のステップは、
前記質問文に対応する対話ログデータの出現頻度に応じて出力する順位を決定することを特徴とする対話処理方法。
【請求項１３】
請求項８に記載の対話処理方法であって、
前記第３のステップは、
前記質問文を表形式で出力することを特徴とする対話処理方法。
【請求項１４】
請求項８に記載の対話処理方法であって、
前記第３のステップは、
前記質問文に同義語を含んで出力し、
前記第４のステップは、
前記質問文に対する回答に含まれる同義語を受け付けて、前記同義語を対話データに新たな知識として追加することを特徴とする対話処理方法。
【請求項１５】
プロセッサとメモリを有する情報処理装置と、
ネットワークを介して前記情報処理装置に接続されたロボットと、を有する対話システムであって、
前記ロボットは、
ユーザからの入力文を受け付けて、予め設定された対話データから当該入力文に対する回答を出力文として出力し、前記入力文と出力文を含む対話ログデータを生成し、前記情報処理装置に前記対話ログデータを送信し、
前記情報処理装置は、
前記対話ログデータを入力し、当該対話ログデータから対話の失敗個所を検出する失敗個所検出部と、
前記失敗個所に対応する前記対話ログデータから失敗原因を分析する失敗原因分析部と、
前記失敗原因に応じて前記対話ログデータから質問文を生成して出力する確認処理部と、
前記質問文に対する回答を受け付けて、前記入力文から出力文を得るための対話データに新たな知識として前記ロボットへ送信する知識登録処理部と、
を有することを特徴とする対話システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、対話処理方法及び対話システムに関する。
【背景技術】
【０００２】
近年、IT（Information Technology）を用いた高度なサービスの出現によるデジタルデバイドの拡大、グローバル化やライフスタイル多様化によるコミュニケーションの複雑化が進んでいる。そのため、様々な言語での対応を求められる空港や駅での施設案内や、複雑なサービスを複数取り扱う銀行や自治体での窓口業務などのさまざまな対人サービスの提供は、既存の職員だけでは難しくなってきている。このような高度化するサービス業務を支援するため、ロボットや音声アシスタントなどの対話システムの実用化が進められている。
【０００３】
対話システムは、答えられなかった質問に対して迅速に答えられるようになることが求められている。例えば、ある店舗の営業時間を知りたいという質問に答えるための回答が用意されていなかった場合、「営業時間は１０時から１９時までです。」といった回答を対話システムに登録しておく必要がある。
【０００４】
また、「授乳室はどこですか。」という質問に答えるための回答が対話システムに用意されてあったとしても、「ベビールームを利用したいのですが。」という質問については、共通語彙が少ないため、回答できない場合がある。この場合は、「ベビールームを利用したいのですが。」という質問を対話システムに登録しておく必要がある。
【０００５】
一度答えられなった質問に答えられるようにするためには、膨大な量の対話ログデータから対話の失敗箇所を見つけだし、失敗原因を分析し、分析結果に応じて、上記のような対応が必要となる。
【０００６】
これまでに対話システムにおける対話ログデータの分析するための技術や対話の失敗箇所に対応するための技術は考えられており、特許文献１と非特許文献１に開示される技術が知られている。特許文献１には、ログデータの分析結果を可視化する技術が開示されている。
【０００７】
具体的にはログデータに含まれる文字列を定量化して分析するために、ログデータの重複する文字列を１つにまとめ、異なる文字列の共通部分を節とする木構造図と類似度を表示する。また、類似度とログデータの時刻情報を対応付けて分布図も表示する。このようにログデータを可視化することで、ユーザ入力（対話データ）の傾向の把握や分析を効率化できる。
【０００８】
非特許文献１には、ユーザからの質問に対して、システムが用意できる回答が自信のない（確からしさのスコアが低い）時に、ユーザに対して聞き返しをすることで学習する方法が開示されている。例えば、「Which movvie did Tom Hanks sttar in?」とユーザが入力したとする。「movvie」は「movie」と誤って入力され、「sttar」は「star」と誤って入力されている。
【０００９】
この時、対話システムはユーザからの質問を確かめるために、「What do you mean?」と聞き返しを行う。それに対し、ユーザが前の言い方を換えて、「I mean which film did Tom Hanks appear in?」と誤りを含まない言い方で入力すると、対話システムは質問を解釈できるようになり、「Forest Gump」と答えることができる。非特許文献１では、回答の正しさをユーザが教えることで、どのような聞き返しをすべきか、また聞き返すべきではないかを対話システムが学習する。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０１７−７６１６１号公報
【非特許文献】
【００１１】
【非特許文献１】Jiwei Li、Alexander H. Miller、Sumit Chopra、Marc’Aurelio Ranzato、 Jason  Weston、Learning Through Dialogue Interactions、Proceedings of the 5th International Conference on Learning Representations (2017)
【発明の概要】
【発明が解決しようとする課題】
【００１２】
従来技術では、答えられなかった質問を答えるために必要な知識を習得するための確認を対話システムが自ら実施することは難しい、という問題があった。例えば、「授乳室」と「ベビールーム」が同義語であるかが不明な場合に、人に「「授乳室」と「ベビールーム」は同義語ですか。」という質問をし、確認することはできなかった。
【００１３】
さらに、対話の失敗箇所の検出、分析、分析結果に応じた回答の設定などを人手で行う作業のコストは高い。そのため、早く対応するためには多くの人あるいは多大な労力を要するという問題があった。また、対話の失敗箇所の発見と失敗原因分析には、対話システムの専門家が必要になり、新規の質問や回答の登録には業務の専門家が必要になる場合もあった。
【００１４】
そこで本発明は、上記問題点に鑑みてなされたもので、対話システムが答えられなかった質問に答えるための知識を容易に拡充することを目的とする。
【課題を解決するための手段】
【００１５】
本発明は、プロセッサとメモリを有し、ユーザからの入力文と、当該入力文に対する回答を出力文として含む対話ログデータを分析する情報処理装置であって、前記対話ログデータを入力し、当該対話ログデータから対話の失敗個所を検出する失敗個所検出部と、前記失敗個所に対応する前記対話ログデータから失敗原因を分析する失敗原因分析部と、前記失敗原因に応じて前記対話ログデータから質問文を生成して出力する確認処理部と、前記質問文に対する回答を受け付けて、前記入力文から出力文を得るための対話データに新たな知識として追加する知識登録処理部と、を有する。
【発明の効果】
【００１６】
本発明によれば、情報処理装置（対話システム）からの質問に答えるだけで、情報処理装置が答えられなかった質問に答えるための知識を拡充することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施例１を示し、対話システムを構成する情報処理装置の一例を示すブロック図である。
【図２Ａ】本発明の実施例１を示し、対話データの一例を示す図である。
【図２Ｂ】本発明の実施例１を示し、対話ログデータの一例を示す図である。
【図２Ｃ】本発明の実施例１を示し、対話ログ分析データの一例を示す図である。
【図２Ｄ】本発明の実施例１を示し、確認事項データの一例を示す図である。
【図３】本発明の実施例１を示し、情報処理装置で行われる処理の一例を示すフローチャートである。
【図４Ａ】本発明の実施例１を示し、学習時に行われる失敗箇所の抽出処理の一例を示すフローチャートである。
【図４Ｂ】本発明の実施例１を示し、識別時に行われる失敗箇所の抽出処理の一例を示すフローチャートである。
【図５】本発明の実施例１を示し、対話の成功または失敗の判定結果を付与した既存の対話ログデータの一例を示す図である。
【図６Ａ】本発明の実施例１を示し、学習時に行われる失敗原因分析処理の一例を示すフローチャートである。
【図６Ｂ】本発明の実施例１を示し、識別時に行われる失敗原因分析処理の一例を示すフローチャートである。
【図７】本発明の実施例１を示し、失敗原因の正解を付与した既存の対話ログデータの一例を示す図である。
【図８】本発明の実施例１を示し、確認処理と知識確認処理の一例を示すフローチャートである。
【図９Ａ】本発明の実施例１を示し、対話ログ分析データの一例を示す図である。
【図９Ｂ】本発明の実施例１を示し、確認事項データの一例を示す図である。
【図９Ｃ】本発明の実施例１を示し、確認結果を付与した確認事項データの一例を示す図である。
【図９Ｄ】本発明の実施例１を示し、確認結果を付与した対話ログ分析データの一例を示す図である。
【図１０】本発明の実施例１を示し、ロボットを用いた知識確認処理の一例を示す図である。
【図１１】本発明の実施例１を示し、チャットボットを用いた知識確認処理の一例を示す図である。
【図１２Ａ】本発明の実施例１を示し、表形式を用いた知識確認処理の一例を示す図である。
【図１２Ｂ】本発明の実施例１を示し、表形式の言い換え候補データを用いた知識確認処理の一例を示す図である。
【図１３】本発明の実施例１を示し、知識登録処理における対話データの一例を示す図である。
【図１４Ａ】本発明の実施例２を示し、同義語を考慮した対話ログデータの一例を示す図である。
【図１４Ｂ】本発明の実施例２を示し、確認事項データの一例を示す図である。
【図１４Ｃ】本発明の実施例２を示し、対話ログ分析データの一例を示す図である。
【図１４Ｄ】本発明の実施例２を示し、対話データの一例を示す図である。
【図１５】本発明の実施例３を示し、確認事項データの一例を示す図である。
【図１６】本発明の実施例２を示し、失敗原因分析処理の一例を示すフローチャートである。
【図１７】本発明の実施例３を示し、対話システムの一例を示すブロック図である。
【図１８】本発明の実施例４を示し、対話システムの一例を示すブロック図である。
【発明を実施するための形態】
【００１８】
実施の形態について、図面を用いて詳細に説明する。ただし、以下に示す実施の形態の記載内容に限定して解釈されるものではない。
【００１９】
また、本明細書において単数形で表される構成要素は、特段文脈で明らかに示されない限り、複数形を含むものとする。以下で示すように、本実施例では、対話ログから失敗箇所を検出し、失敗原因を分析し、分析結果に合わせて確認者向けの質問を出力し、回答結果を基に新たな知識を追加することで、対話の知識を拡充する。以下では実施例を説明する。
【実施例１】
【００２０】
＜１．対話システム全体構成＞
図１は、本実施例１における対話システムを構成する情報処理装置１の構成の一例を示すブロック図である。
【００２１】
対話システムは、具体的な例としては、コンピュータ等の情報処理装置１により構成される。情報処理装置１は、中央処理装置（ＣＰＵ）１１、キーボードや画像モニタなどの入出力装置１３、磁気ディスク装置や半導体記憶素装置で構成されたメモリ１４を含む。また、外部とデータをやり取りするためのインターフェースとして、データ通信部１２を含んでいてもよい。データ通信部１２は、例えば外部のネットワーク７０と接続される。なお、入出力装置という場合、入出力両機能を含む装置のみを意味するのではなく、入力機能のみを含む装置、出力機能のみを含む装置、さらには入出力の両方を含む装置のいずれも意味するものとする。
【００２２】
本実施例１では計算や制御等の機能は、メモリ１４に格納されたプログラムがＣＰＵ１１によって実行されることで、定められた処理を他のハードウェアと協働して実現される。ＣＰＵ１１が実行するプログラム、その機能、あるいはその機能を実現する手段を、「機能」、「手段」、「部」、「ユニット」、「モジュール」等と呼ぶ場合がある。
【００２３】
図１では、概念的にＣＰＵ１１が、ソフトウェアに基づいて実行する機能を、制御部６０、入力処理部１６、出力処理部１７として示している。これらの機能を実現するためのプログラムはメモリ１４に格納される。また、メモリ１４には各プログラムが利用するデータとして、対話データ２０、言い換え候補データ２１と、対話ログデータ３０、対話ログ分析データ４０、確認事項データ５０等が格納される。
【００２４】
なお、上記プログラムは、ＲＯＭ等に予め組み込まれて提供されたり、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ（Digital Versatile Disk）等のコンピュータで読み取り可能な記録媒体に記録して提供されたり、配布されてもよい。さらには、上記プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供したり、配布してもよい。
【００２５】
メモリ１４に格納する、対話データ２０や対話ログデータ３０、対話ログ分析データ４０、確認事項データ５０は入出力装置１３を介して入出力することができる。なお、本実施例１では、対話データ２０や対話ログデータ３０、対話ログ分析データ４０、確認事項データ５０を情報処理装置１から出力する例を示す。しかし、これに限定されるものではなく、例えば、対話システムの外部に設けられたディスプレイ、スクリーン、スピーカ等の出力装置からこれらのデータを出力し、当該出力を確認したユーザが情報処理装置１に対してさらに質問（あるいは応答）を入力することができる。
【００２６】
また、入出力装置１３は、キーボードやマウス、タッチパネルやマイクなどの入力装置と、ディスプレイやタッチパネルやスピーカなどの出力装置を含むことができる。
【００２７】
制御部６０は、対話ログデータ３０を参照して、対話ログデータ３０から失敗箇所を検出し、失敗原因を分析し、分析結果に応じて確認者向けの質問文を出力し、回答結果を受け付けて新たな知識を登録（追加）する処理を制御する。なお、本実施例１の確認者は、失敗を回避するための回答を提供する者であり、例えば、情報処理装置１の管理者やユーザを含む。
【００２８】
入力処理部１６は、確認者から入力された回答文をテキストに変換する等、本システムで必要な入力処理を行う処理部である。出力処理部１７は、上記質問文を出力する等、本システムで必要な出力処理を行う処理部である。
【００２９】
なお、本実施例１の対話システムは、情報処理装置１の制御部６０と入力処理部１６及び出力処理部１７で対話が実行される。
【００３０】
例えば、入力処理部１６は音声認識部（図示省略）を含んで、マイクなどの入力装置から受け付けた音声をテキストに変換する。制御部６０は、変換されたテキストを質問として受け付けて対話データ２０を参照し、回答（または応答）データを対話データ２０から検索して検索結果を出力する。なお、本実施例１では、Ｎ個の検索結果を選択して確信度からシステム出力文を決定する例を示す。
【００３１】
出力処理部１７は音声合成部（図示省略）を含んで、出力された検索結果から音声を生成し、スピーカ等の出力装置から出力する。制御部６０は、対話のログを対話ログデータ３０に蓄積する。
【００３２】
なお、音声やテキストによる対話処理の詳細については、公知または周知の技術を用いれば良いので、本実施例１では詳述しない。本実施例１では、対話ログデータ３０から対話の失敗を検出し、失敗原因の分析と、分析結果に応じた新たな知識の拡充について説明する。
【００３３】
以上の構成は、図１に示したように単体のコンピュータで構成してもよいし、あるいは、入力装置、出力装置、処理装置、記憶装置の各機能部が、ネットワークで接続された他のコンピュータで構成されてもよい。また、本実施例１中、ソフトウェアで構成した機能と同等の機能は、ＦＰＧＡ（Field Programmable Gate Array）や、ＡＳＩＣ（Application Specific Integrated Circuit）などのハードウェアでも実現できる。
【００３４】
図２Ａ〜図２Ｄに対話システムが使用する各データの例を示す。
【００３５】
図２Ａは、対話データ２０の一例を示す図である。対話データ２０は「対話ｉｄ」２０１と、「入力文」２０２と、「出力文」２０３の３つの項目をひとつのエントリに含む。
【００３６】
「対話ｉｄ」２０１は対話データを識別するための識別子である。例えば、対話ｉｄがｄ１の入力文は「エレベータの場所を教えて」であり、出力文は「各階とも北側のお手洗いの隣にあります。」である。この対話データ２０を用いることで、制御部６０は、ユーザから「エレベータの場所を教えて」と入力されると「各階とも北側のお手洗いの隣にあります。」と回答することができる。
【００３７】
また入力文２０２には複数の言い換え文が考えられ、言い換え文を登録したい場合は、元の入力文２０２の下に言い換え文を入力する。その場合、対話ｉｄと出力文は入力しない。対話ｉｄは出力文２０３毎に付与するものとする。
【００３８】
図２Ｂは、対話ログデータ３０の一例を示す図である。対話ログデータ３０は、制御部６０が出力する対話のログを格納する。対話ログデータ３０は、ログｉｄ３０１と、ユーザ入力３０２と、システム出力文３０３と検索結果３０４と、分析ｉｄ３０５の６つの大項目から構成される。
【００３９】
「ログｉｄ」３０１は対話ログデータを識別するための識別子である。対話ログデータ３０には、「ユーザ入力」３０２に対し、「システム出力文」３０３が出力されたことが記録される。ユーザ入力３０２は、ユーザの発話による質問や問い合わせをテキストに変換した値が格納される。ユーザの質問や問い合わせがテキストデータで入力された場合には、当該テキストデータをユーザ入力３０２へ格納することができる。
【００４０】
システム出力文３０３は、ユーザ入力３０２に対する回答（または応答）を対話データ２０から検索し、検索結果の中から最適な対話データ２０を選択した結果である。なお、ユーザ入力３０２から最適なシステム出力文３０３を選択または生成する技術については、公知または周知の技術を用いれば良いので、本実施例１では詳述しない。
【００４１】
また、システム出力文３０３を決定する「検索結果」３０４に関するデータも記録される。この例では、検索結果の上位１〜Ｎ（Ｎは自然数）件の確信度３４１と入力文３４２と出力文３４３の組を検索結果（３４０−１〜３４０−Ｎ）として格納する。
【００４２】
上位１位の検索結果３４０−１の確信度３４１が所定の閾値（０〜１の値）以上の場合は、Ｔｏｐ１の出力文３４３をシステム出力文３０３とし、上位１位の検索結果３４０−１の確信度３４１が所定の閾値未満であれば、「ごめんなさい。理解できません。」をシステム出力文３０３としている。「分析ｉｄ」３０５は、後述するように各ログに対応する対話ログ分析データ４０の分析ｉｄが設定される。
【００４３】
図２Ｃは、対話ログ分析データ４０の一例を示す図である。対話ログ分析データ４０には、制御部６０で行われる分析結果が格納される。
【００４４】
対話ログ分析データ４０は８項目を含む。「分析ｉｄ」４０１は対話ログ分析データ４０と対話ログデータ３０の対応関係が設定された識別子である。１行には「分析ｉｄ」４０１に対応する「ユーザ入力」４０２と、「頻度」４０３と、「成功／失敗」４０４と、「失敗原因」４０５と、「確認事項」（質問文）４０６と、「確認結果」４０７と、「確認ｉｄ」４０８が含まれる。
【００４５】
分析ｉｄ４０１は、対話ログ分析データ４０の生成又は更新時に、制御部６０が付与する識別子である。ひとつの分析ｉｄ４０１は、複数の対話ログデータ３０と関連付けることが可能である。
【００４６】
ユーザ入力４０２には、対話ログデータ３０のユーザ入力３０２の値が格納される。対話ログ分析データ４０は、重複するデータを含む対話ログデータ３０の重複を排除し、重複回数を頻度として算出した値を基に生成される。
【００４７】
頻度４０３には対話ログデータ３０におけるユーザ入力３０２の重複数が格納される。成功／失敗４０４には、対話の結果が成功または失敗のいずれであるかが格納される。失敗原因４０５には、対話が失敗した原因が格納される。確認事項４０６には失敗を解消するための問い合わせが格納される。確認結果４０７には、問い合わせに対応する回答が格納される。確認ｉｄ４０８には、対話ログ分析データ４０に対応する確認事項データ５０の確認ｉｄが入力される。
【００４８】
図２Ｄは、確認事項データ５０の一例を示す図である。確認事項データ５０は、５項目を含み、制御部６０の確認処理部（質問生成部）６３で生成された確認事項と、知識登録処理部６４が受け付けた回答（確認結果）が格納される。
【００４９】
「確認ｉｄ」５０１は確認事項データを識別する識別子である。確認事項データ５０の１行には「確認ｉｄ」５０１に対応する「確認順位」５０２と、「確認事項」５０３と、「確認結果」５０３と、「頻度」５０５が含まれる。上記は各データにおける項目の構成の一例であり、並び順が異なっていたり、他の項目が含まれていてもよい。
【００５０】
＜２．対話システムの処理の説明＞
対話システムで行われる処理の一例について説明する。
【００５１】
＜２−１．対話システムの処理の概要＞
制御部６０は、対話データ２０と、対話ログデータ３０と、対話ログ分析データ４０及び確認事項データ５０を用いて、対話ログデータ３０から失敗箇所を検出し、失敗箇所について失敗原因を分析し、分析結果に合わせて確認者向けの質問文を生成及び出力し、回答結果を基に新たな知識を登録する処理を行う。
【００５２】
図３は知識習得のために対話システムの情報処理装置１で行われる処理の一例を示すフローチャートである。
【００５３】
ステップＳ３０１は、制御部６０の失敗箇所抽出部（または失敗箇所検出部）６１が、対話ログデータ３０を用いて対話が失敗した箇所を抽出（または検出）する処理を行う。抽出結果は対話ログ分析データ４０の「成功／失敗」４０４の値として入力される。例えば、対話ログデータ３０に含まれる「授乳室を利用したいのですが」のようなユーザ入力３０２に対し、回答できるか否かを識別し、回答できないと識別された箇所を失敗箇所として抽出する。
【００５４】
失敗箇所抽出部６１は、対話ログデータ３０から対話ログ分析データ４０を生成し、失敗箇所を含むエントリには成功／失敗４０４に「失敗」を格納し、そうでない場合には「成功」を格納する。なお、対話の成功と失敗の判定は、後述するように、識別モデル７１を用いる。
【００５５】
ステップＳ３０２は、制御部６０の失敗原因分析部６２が、対話ログデータ３０を用いて、ステップＳ３０１によって抽出された失敗箇所の失敗原因を分析する処理を行う。分析結果は対話ログ分析データ４０の「失敗原因」４０５の値として入力される。
【００５６】
例えば、失敗原因４０５には大きく分けて２つの場合が考えられる。１つ目はユーザ入力に対して回答するための知識がシステムに登録されていない場合である。もう１つはユーザ入力３０２に対して回答するための知識が対話システムに登録されているが、ユーザ入力３０２と、登録されている知識の表現方法が違っている場合である。
【００５７】
具体的には、「喫煙室」に関する知識が登録されていない場合に、「喫煙所への行き方を教えてください」とユーザに入力された場合は、前者の知識が登録されていないことが原因である。この場合、対話ログ分析データ４０の「失敗原因」４０５には「知識がない」と入力される。
【００５８】
また、喫煙室に関する知識として「喫煙したいのですが」という質問に対して「１階の出入口を出たところにあります」と回答する知識が対話データ２０に登録されていて、「喫煙所への行き方を教えてください」とユーザに入力された場合は、後者のユーザ入力と登録されている知識の表現方法が違っていることが原因である。この場合、対話ログ分析データ４０の「失敗原因」４０５には「言い換えがない」と入力される。なお、失敗した対話の原因の分析は、後述するように、識別モデル７２を用いる。
【００５９】
ステップＳ３０３は、制御部６０の確認処理部６３が、対話ログ分析データ４０を用いて、ステップＳ３０２によって分析された失敗原因に応じて知識を確認するための質問文を生成し、確認者に問い合わせる処理を行う。なお、確認処理部６３の詳細については、図８にて詳述する。
【００６０】
確認（問い合わせ）結果は確認事項データ５０に追記される。例えば、上記の例の前者のように、「喫煙所への行き方を教えてください」というユーザ入力４０２に対して、知識が登録されていないことが原因と分析された場合は、「「喫煙所への行き方を教えてください」の回答を教えて？」と情報処理装置１が確認者に質問する。
【００６１】
また、上記の例の後者のように、喫煙室に関する知識として「喫煙したいのですが」という質問に対して「１階の出入口を出たところにあります」と回答する知識（対話データ２０）が登録されていて、「喫煙所への行き方を教えてください」とユーザに入力され、ユーザ入力４０２と登録されている知識（入力文２０２）の表現方法が違っていることが原因と分析される。この場合に、確認処理部６３は、ユーザ入力４０２と一番近い登録されている質問が「喫煙したいのですが」であれば、「「喫煙所への行き方を教えてください」と「喫煙したいのですが」は同じ意味ですか」と情報処理装置１が確認者に問い合わせる。
【００６２】
制御部６０の知識登録処理部６４は、このような質問に対する確認者からの回答を受け付け、確認事項データ５０の確認結果５０４に記録する。確認処理部６３からの質問を出力するために必要な処理は出力処理部１７で行う。質問文を音声で出力する場合は、質問文のテキストを所定の音声合成技術により音声に変換する処理を行う。
【００６３】
また、質問文をチャットボットなどのアプリケーションとしてテキストで出力する場合は、チャットボットの画面に対話として表示する処理を行う。また、表形式などを用いた確認用の画面として出力する場合は、その画面の形式に合わせて変換する処理を行う。確認者からの回答文の入力は、入力処理部１６にて入力するために必要な処理を行う。
【００６４】
回答文を音声で入力する場合は、確認者の音声を所定の音声認識技術によりテキストに変換し、そのテキストを確認事項データ５０に登録する形式に変換する処理を行う。また、チャットボットなどのアプリケーションとしてテキストで入力する場合は、チャットボットの画面にて入力されたテキストを確認事項データ５０に登録する形式に変換する処理を行う。また、表形式などを用いた確認用の画面にて入力する場合は、画面における入力を確認事項データ５０に登録する形式に変換する処理を行う。
【００６５】
ステップＳ３０４は、制御部６０の知識登録処理部６４が、対話ログデータ３０と対話ログ分析データ４０と確認事項データ５０を用いて、ステップＳ３０３で確認した結果を元に、対話データ２０を更新する処理を行う。なお、知識登録処理部６４の詳細については、図８にて詳述する。
【００６６】
例えば、ステップＳ３０３において、「「喫煙所への行き方を教えてください」の回答を教えて？」というシステムからの質問に確認者が「１階の出入口を出たところにあります」と回答すると、「喫煙所への行き方を教えてください」という質問に対する回答が「１階の出入口を出たところにあります」であることを新しい知識として対話データ２０に登録される。
【００６７】
また、知識登録処理部６４は、「「喫煙所への行き方を教えてください」と「喫煙したいのですが」は同じ意味ですか」というシステムからの質問に確認者が「はい」と回答すると、「喫煙所への行き方を教えてください」が「喫煙したいのですが」の言い換えであることを新しい知識として対話データ２０に登録する。また、質問内容に対し「いいえ」と回答すると、言い換えではないことが新しい知識として対話データ２０に登録される。
【００６８】
上記処理によって、制御部６０は、対話ログデータ３０を入力して対話に失敗したログデータを抽出し、対話に失敗したログデータを分析して失敗原因を「言い換えが必要」か「知識がないのか」を特定する。
【００６９】
そして、制御部６０は、特定した失敗原因に応じて質問を生成して入出力装置１３の出力装置で問い合わせる。制御部６０は、入出力装置１３の入力装置で回答を受け付けると、新たな知識として対話データ２０に追加する。
【００７０】
以上の処理によって、対話システムからの確認事項（質問）に答えるだけで、対話システムが過去に答えられなかった質問に答えるための知識を拡充することができる。
【００７１】
＜２−２．失敗箇所の抽出処理＞
図４Ａ、図４Ｂは失敗箇所の抽出処理の一例を示すフローチャートで、学習時と識別時の処理の一例をそれぞれ示す。
【００７２】
図４Ａは、学習時の失敗箇所の抽出処理の一例を示すフローチャートである。本実施例１では、図４Ａの学習処理で、制御部６０が、対話ログデータ３０から対話に失敗したログデータを抽出する識別器（識別モデル７１）を生成する。そして、制御部６０は、失敗箇所抽出処理の実行時（識別時）に識別モデル７１を用いて図４Ｂのフローチャートで、対話に失敗したログデータを抽出する。
【００７３】
学習時は、ステップＳ４０１にて、制御部６０の失敗箇所抽出部６１が、既存の対話ログデータ３０を参照して、対話の成功または失敗の判定結果（正解）を付与する。なお、この判定は、教師ありの機械学習などを用いて実施すれば良い。
【００７４】
図５は、図２Ｂに示した対話ログデータ３０に対話の成功／失敗の判定結果（正解）３０５を付与した例を示す図である。なお、本図では、図２Ｂの分析ｉｄ３０５を省略した。
【００７５】
ログｉｄ３０１と、ユーザ入力３０２と、システム出力文３０３と、検索結果３０４は図２Ｂの対話ログデータ３０と同様であり、「成功／失敗」３０５が新たに付与されたラベルである。対話ログデータ３０は内容が重複したレコードを含むことも考えられるが、重複を排除したものを使用することも可能である。
【００７６】
ステップＳ４０２では、失敗箇所抽出部６１が、ステップＳ４０１で得られたデータを用いて、既存の対話ログデータ３０のユーザ入力３０２とシステム出力文３０３の特徴（または特徴量）を抽出する。特徴には、例えば、ユーザ入力３０１と検索結果３０４の上位１〜Ｎ（３４０−１〜３４０−Ｎ：Ｎは自然数）件の入力文３４２と出力文３４３から得られる様々な確信度や類似度のスコアを用いる。失敗箇所抽出部６１は、例えば、スコアが最大の検索結果をシステム出力文として決定する。なお、例えば、スコアには検索エンジンや、ＢＬＥＵ（BiLingual Evaluation Understudy：自動評価）、ｔｆ−ｉｄｆ（Term Frequency、Inverse Document Frequency：単語の出現頻度と逆文書頻度の評価値）の値を用いることができる。
【００７７】
ステップＳ４０３では、失敗箇所抽出部６１が、ステップＳ４０２で抽出した図２Ｂの対話ログデータ３０の特徴を用いて、識別器（識別モデル７１）の学習を行う。なお、学習処理は、教師ありの機械学習などを用い、識別モデル７１を生成する。
【００７８】
図４Ｂは、図３のステップＳ３０１の詳細を示す図である。図２Ｂの対話ログデータ３０を実際に処理する識別時（Ｓ３０１）は、図４ＢのステップＳ４１１にて、制御部６０の失敗箇所抽出部６１が、新規の対話ログデータ３０について特徴を抽出する。特徴の抽出については、上記ステップＳ４０２と同一の手法を用いる。
【００７９】
ステップＳ４１２では、失敗箇所抽出部６１が、ステップＳ４１１によって得られた新規の対話ログデータ３０の特徴に対し、ステップＳ４０３で得られた識別器（識別モデル７１）を用いて、対話が成功か失敗かの判定（識別）を行う。判定結果は、例えば、図５の対話ログデータ３０の「成功／失敗」３０６の項目の値に示すように出力される。
【００８０】
＜２−３．失敗原因分析処理＞
図６Ａ、図６Ｂは失敗原因の分析処理の一例を示すフローチャートで、学習時と識別時の処理の一例をそれぞれ示す。
【００８１】
図６Ａは学習時の失敗原因の分析処理の一例を示すフローチャートである。本実施例１では、図６Ａの学習処理で、制御部６０が、対話ログデータ３０から対話に失敗した原因を分析する識別器（識別モデル７２）を生成する。そして、制御部６０は、失敗原因分析処理の実行時（識別時）に識別モデル７２を用いて図６Ｂのフローチャートで、対話に失敗した原因を分析する。
【００８２】
学習時は、ステップＳ６０１にて、失敗原因分析部６２が、既存の対話ログデータ３０へ失敗した原因の正解（分析結果）を付与する。図７は、既存の対話ログデータ３０に対話の失敗原因３０７を付与した例を示す。
【００８３】
ログｉｄ３０１と、ユーザ入力３０２と、システム出力文３０３と、検索結果３０４は図２Ｃの対話ログデータ３０と同様であり、「失敗原因」３０７が新たに付与されたラベルである。なお、本図では、図２Ｂの分析ｉｄ３０５と図５の成功／失敗３０６を省略した。対話ログデータ３０は内容が重複したレコードを含むことも考えられるが、重複を排除したものを使用することも可能である。
【００８４】
ステップＳ６０２では、失敗原因分析部６２が、上記ステップＳ６０１で得られたデータを用いて、既存の対話ログデータ３０のユーザ入力３０２とシステム出力文３０３の特徴（特徴量）を抽出する。特徴には、例えば、ユーザ入力３０２と検索結果の上位１〜Ｎ（３４０−１〜３４０−Ｎ：Ｎは自然数）件の入力文３４２と出力文３４３から得られる様々な確信度や類似度のスコアを用いる。失敗原因分析部６２は、例えば、スコアには検索エンジンや、ＢＬＥＵ、ｔｆ−ｉｄｆの値を用いる。また、ステップＳ４１２で得られた分析結果を用いることも可能である。
【００８５】
ステップＳ６０３では、失敗原因分析部６２が、ステップＳ６０２で抽出した既存の対話ログデータ３０の特徴を用いて、識別器（識別モデル７２）の学習を行う。なお、学習処理は、教師ありの機械学習などを用い、識別モデル７２を生成する。
【００８６】
図６Ｂは、図３のステップＳ３０２の詳細を示す図である。図２Ｂの対話ログデータ３０を実際に処理する識別時（Ｓ３０２）は、図６ＢのステップＳ６１１にて、失敗原因分析部６２が、新規の対話ログデータ３０を用いて、特徴を抽出する。特徴の抽出はステップＳ６０２と同一の手法を用いる。
【００８７】
ステップＳ６１２では、失敗原因分析部６２が、ステップＳ６１１によって得られた新規の対話ログデータ３０の特徴に対し、ステップＳ６０３で得られた識別器（識別モデル７２）を用いて、失敗の原因が「知識がない」または「言い換えがない」の識別を行う。その結果は、例えば、図７の対話ログデータ３０の「失敗原因」３０７の項目の値に示すように出力される。
【００８８】
なお、失敗原因分析部６２は、失敗原因３０７の算出が完了した後、内容が重複するレコードからユーザ入力３０２の出現頻度を算出し、失敗箇所抽出部６１が算出した成功／失敗３０６を加えて、図２Ｃに示した対話ログ分析データ４０を生成する。本実施例１では、失敗原因分析部６２が対話ログ分析データ４０を生成する例を示すが、後述する確認処理部６３が対話ログ分析データ４０を生成するようにしてもよい。
【００８９】
＜２−４．確認処理＞
図８は、図３に示したステップＳ３０３、Ｓ３０４の詳細を示すフローチャートである。図８のステップＳ８０１〜Ｓ８０３が確認処理（質問生成処理）を示し、ステップＳ８０４〜Ｓ８０７が知識登録処理を示す。図９Ａ〜図９Ｄにはデータの遷移を示す。
【００９０】
確認処理部６３は、対話ログデータ３０と対話ログ分析データ４０の分析ｉｄ３０５、４０１、ユーザ入力３０２、４０２、失敗原因３０７(図７)参照、４０５の値を用いて、対話ログ分析データ４０の確認事項４０６の値（質問文）を生成する。そして、確認処理部６３は、確認事項４０６を出力して確認者に問い合わせる。以降の処理は、後述の知識登録処理部６４で行われる。
【００９１】
確認処理部６３は、ステップＳ８０１で、対話ログ分析データ４０のうち成功／失敗４０４の値が「失敗」のレコードを選択する。そして、確認処理部６３は、分析ｉｄ４０１に対応する分析ｉｄ３０５の対話ログデータ３０を選択して、ユーザ入力４０２（３０２）を取得する。
【００９２】
確認処理部６３は、ステップＳ８０２で、対話ログ分析データ４０の失敗原因４０５を取得して、失敗原因に応じた確認事項（質問）４０６を生成する。失敗原因４０５には「知識がない」と「言い換えがない」の２種類がある。
【００９３】
失敗原因４０５が「知識がない」４０５の場合、確認処理部６３は、ユーザ入力４０２を用いて確認事項４０６を自動生成する。例えば、ユーザ入力４０２がＡである場合、「「Ａ」の回答は何ですか？」というテンプレートを適用して生成される文を確認事項４０６とする。
【００９４】
具体的には、図２Ｃに示す対話ログ分析データ４０の分析ｉｄ４０１がａ２の場合は、ユーザ入力４０２は「喫煙所の場所を教えて」であり、確認事項４０６は「「喫煙所の場所を教えて」の回答は何ですか？」となる。
【００９５】
一方、失敗原因４０５が「言い換えがない」の場合、確認処理部６３は、ユーザ入力４０２と１位の検索結果３４０−１の入力文３４２を用いて確認事項４０６を自動生成する。例えば、ユーザ入力４０２がＡ、１位の検索結果３４０−１の入力文３４２がＢである場合、「「Ａ」と「Ｂ」は同じ意味ですか？」というテンプレートを適用して生成される文を確認事項４０６とする。
【００９６】
具体的には、図２Ｃに示す対話ログ分析データ４０の分析ｉｄ４０１がａ３の場合は、ユーザ入力４０２が「エレベータを使いたいのですが」＝Ａであり、１位の検索結果３４０−１のユーザ入力４０２が「エレベータの場所を教えて」＝Ｂである。この場合の確認事項４０６は「「エレベータを使いたいのですが」と「エレベータの場所を教えて」は同じ意味ですか？」となる。
【００９７】
この処理を行う前の対話ログ分析データ４０は図９Ａのように確認事項４０６は空欄となっており、この処理を行った後は、確認事項４０６に上述のような質問文が設定される。
【００９８】
次に、ステップＳ８０３で、確認処理部６３は、対話ログ分析データ４０から確認事項データ５０を生成する。確認処理部６３は、対話ログ分析データ４０の頻度４０３の降順に確認順位（出力の順位）を付与することで確認事項データ５０を生成できる。その際、対応する確認ｉｄ４０８が設定され、対話ログ分析データ４０は図９Ｄに示すようになる。
【００９９】
確認処理部６３は、確認事項データ５０に新たなレコードを追加し、確認ｉｄ４０８を確認ｉｄ５０１に格納し、付与された確認順位を確認順位５０２に設定し、生成した質問文を確認事項５０３に設定し、頻度４０３を頻度５０５に格納する。これにより、確認事項データ５０は、図９Ｂのように設定される。
【０１００】
ステップＳ８０４では、生成した確認事項４０６（質問文）を出力して確認者（管理者）に問い合わせる。
【０１０１】
確認の際のインターフェースには複数の形態で提供することができる。図１０がロボット８０を用いた例を示し、図１１がチャットボット９０を用いた例を示す。
【０１０２】
図１２Ａ、図１２Ｂが表形式を用いた例である。ロボット８０を用いた例では、確認者は回答を音声で入力する。チャットボット９０を用いた例ではテキストで入力する。
【０１０３】
図１２Ｂは、言い換え候補データ２１の一例を示す図である。言い換え候補データ２１は、言い換えｉｄ２１１と、登録文２１２と、言い換え候補２１３と、登録２１４をひとつのレコードに含む。言い換え候補データ２１は、予め設定された情報である。
【０１０４】
言い換えｉｄ２１１には、登録文２１２の識別子が格納される。登録文２１２には、対話データ２０の入力文２０２の内容が登録される。言い換え候補２１３には、入力文２０２と同義語または文章が格納される。なお言い換え候補には、入力文２０２と同義の他の入力文２０２を関連付けても良い。登録２１４は、言い換え候補２１３を入力文２０２に関連付ける場合にチェックを受け付けるチェックボックスである。
【０１０５】
表形式を用いた例では、テキスト（入力文２０２）やチェックボックス（登録２１４）をチェックすることで、出力文２０３や言い換え候補２１３を回答として入力する。新たな知識の確認では入力文に対する出力文をテキストで入力する。言い換えの確認では、登録文と言い換え候補が同じ意味である場合に登録のチェックボックスをチェックする。チェックボックスの変わりに、テキストで確認結果を入力することも可能である。
【０１０６】
＜２−５．知識登録処理＞
図８のステップＳ８０５〜Ｓ８０７は、図３のステップＳ３０４で行われる知識登録処理の詳細を示すフローチャートである。知識登録処理部６４は、ステップＳ８０５で、確認処理部６３から出力された問い合わせに対する回答を待ち受ける。回答を受け付けるとステップＳ８０６へ進む。
【０１０７】
ステップＳ８０６では、知識登録処理部６４が、受け付けた回答（または応答）を確認事項データ５０の確認結果５０４と、対話ログ分析データ４０の確認結果４０７へ格納する。これにより、確認事項データ５０は、図９Ｃのように確認結果５０４に値が設定され、対話ログ分析データ４０も図９Ｄで示すように確認結果４０７に値が設定される。
【０１０８】
ステップＳ８０６では、知識登録処理部６４が、回答の内容に応じて、対話データ２０に新たな知識を追加する。知識登録処理部６４が、例えば、図１２Ｂに示すように既存の知識と言い換えの確認が行われた場合、図１２Ｂの登録２１４がチェックされた言い換え候補２１３が登録文２１２に関連付けられて登録され、対話データ２０の入力文２０２に反映される。
【０１０９】
知識登録処理部６４は、図９Ｄの対話ログ分析データ４０を基に、対話データ２０を図１３に示すように更新する。失敗原因分析で知識がないと判断されたものは、新規のデータとして登録される。
【０１１０】
図１３に示す対話データ２０の更新の例では、図９Ｄに示す対話ログ分析データ４０の分析ｉｄ４０１が「ａ２」の場合が、「失敗原因分析＝知識がない」の場合にあたる。知識登録処理部６４は、対話ログ分析データ４０のユーザ入力４０２を対話データ２０の入力文２０２に設定し、対話ログ分析データ４０の確認結果４０７を対話データ２０の出力文２０３に設定し、対話ｉｄ２０１がｄ３の新規データとして追加している。
【０１１１】
知識登録処理部６４は、失敗原因分析で言い換えがないと判断されたもので、登録文２１２と言い換え候補２１３が、同義と判断されたもの（図９Ｄの確認結果４０７が「はい」と入力されたもの）は、登録済みの文（登録文２１２）の言い換えとして追加される。
【０１１２】
図９Ｄに示す例では、対話ログ分析データ４０の分析ｉｄ４０１が「ａ３」と「ａ４」の場合が、「失敗原因分析で言い換えがない」場合にあたる。
【０１１３】
分析ｉｄ４０１が「ａ３」の場合は、対話ログデータ３０の分析ｉｄ３０５が「ａ３」である、検索結果の上位１位（Ｔｏｐ１）の入力文３４２と同一である対話データ２０の入力文２０２の言い換えとして対話データ２０に追加する。図１３に示す対話データ２０では「エレベータを使いたいのですが」が言い換えとして入力文２０２に追加される。
【０１１４】
分析ｉｄ４０１が「ａ４」の場合は、「ベビー休憩室を使いたいのですが」が言い換えとして入力文２０２に追加される。
【０１１５】
また、失敗原因分析で言い換えがないと判断されたもので、言い換え候補データ２１の登録文２１２と言い換え候補２１３が同一でないと判断されたもの（確認結果４０７が「いいえ」と入力されたもの）は、言い換えではないことを新しい知識として対話データ２０に登録し、次の対話で回答する際に使用し、出力の対象から外すことや、確認事項から外すことが可能となる。
【０１１６】
以上のように、情報処理装置１は、対話ログデータ３０から対話に失敗したログデータを抽出し、失敗原因を分析し、特定した失敗原因に応じて質問を生成して入出力装置１３の出力装置で問い合わせる。そして、情報処理装置１は、入出力装置１３の入力装置で回答を受け付けると、新たな知識として対話データ２０を更新することができる。
【０１１７】
以上の処理によって、対話システム（情報処理装置１）からの確認事項（質問）に答えるだけで、対話システムが過去に答えられなかった質問に答えるための知識を拡充することが可能となる。
【実施例２】
【０１１８】
前記実施例１では、図３のステップＳ３０２において、失敗原因を知識がない場合と言い換えがない場合の２つの場合を対象に分析をした例を示した。ている。一方で、言い換えがない場合には、同義語がない場合とそうでない場合が含まれており、その粒度まで分析までできると、質問内容を具体化することができる。
【０１１９】
そこで、本実施例２では、失敗原因で「言い換えがない」場合について、失敗原因分析部６２が、「同義語がない」場合と、「同義語以外の言い換えがない」場合の２つに識別する例を示す。なお、その他の構成については前記実施例１と同様である。
【０１２０】
図１６は、実施例２で行われる処理の一例を示すフローチャートである。図１４Ａ〜図１４Ｄは、失敗原因の分析結果を、「知識がない」場合と、「同義語がない」場合と、「同義語以外の言い換えがない」場合の３つの場合を対象に分析した際のデータの遷移を示している。
【０１２１】
図１６のステップＳ９０１では、失敗箇所抽出部６１が、対話データ２０と対話ログデータ３０を取得する。本実施例２では、対話データ２００が図２Ａで示したように登録され、図１４Ａで示すような対話ログデータ３０を用いる例を示す。
【０１２２】
次に、ステップＳ９０２では、失敗箇所抽出部６１が、前記実施例１と同様にして、失敗箇所抽出処理を実施し、図５で示したように、対話ログデータ３０に成功／失敗３０６の値を付与する。
【０１２３】
ステップＳ９０２では、失敗箇所抽出部６１が、失敗原因の分岐処理を実施して、失敗原因を、「知識がない」場合と、「同義語がない」場合と、「同義語以外の言い換えがない」場合の３つに分類する。
【０１２４】
前記実施例１における図６ＡのステップＳ６０１では、「知識がない」と「言い換えがない」の２種類の正解ラベルを付与したが、実施例２のステップＳ９０３では、「知識がない」と「同義語がない」と「同義語以外の言い換えがない」の３種類の正解ラベルを付与し、この３つを識別する識別モデル７２を前記実施例１と同様に学習時のステップＳ６０３で生成する。
【０１２５】
そして、ステップＳ９０３では、失敗原因分析部６２が「知識がない」と「同義語がない」と「同義語以外の言い換えがない」を識別する識別モデル７２を用いて、新規の対話ログデータ３０を分析する。
【０１２６】
ステップＳ９０４では、失敗原因分析部６２が、図１４Ａで示すよう対話ログ分析データ４０を生成する。上記以外にも、実施例１のステップＳ３０２（失敗原因分析処理）の分析結果に対し、「言い換えがない」と識別されたものを「同義語がない」と「同義語以外の言い換えがない」を識別することも考えられる。
【０１２７】
上記識別方法には、「同義語がない」と「同義語以外の言い換えがない」という正解ラベルを付与した教師データを用いて機械学習をする方法や、対話ログデータ３０のユーザ入力３０２と検索結果Ｔｏｐ１の入力文３４２の差分の文字列が同一の品詞である場合に、同義語がないと識別する方法がある。
【０１２８】
上記後者の方法では、例えば、ユーザ入力３０２が「赤ちゃん休憩室の場所を教えて」であり、検索結果Ｔｏｐ１の入力文３４２が「ベビー休憩室の場所を教えて」である場合、差分の文字列は「赤ちゃん」と「ベビー」である。失敗原因分析部６２は、これらの文字列の品詞が名詞で同一であるため、失敗原因は「同義語がない」と識別することができる。この時、差分の文字列である「赤ちゃん」は「ベビー」の同義語の候補となる。
【０１２９】
一方、ユーザ入力３０２が「エレベータを使いたいのですが」であり、検索結果Ｔｏｐ１の入力文３４２が「エレベータの場所を教えて」である場合は、差分の文字列は「〜を使いたいのですが」と「〜の場所を教えて」となる。
【０１３０】
この時、前者の品詞は「の（助詞）場所（名詞）を（助詞）教え（動詞）て（助詞）」であるのに対し、後者の品詞は「を（助詞）使い（動詞）たい（助動詞）の（名詞）です（助動詞）が（助詞）」である。この例では、品詞の配列が異なるため、失敗原因分析部６２は失敗原因が「同義語以外の言い換えがない」と識別する。
【０１３１】
実施例２における、失敗原因が「知識がない」と「同義語以外の言い換えがない」場合のステップＳ９０５の確認処理では、前記実施例１と同様の方法により確認事項５０３が生成される。
【０１３２】
「同義語がない」場合は、ステップＳ９０５の確認処理にて、確認処理部６３が、ユーザ入力３０２と検索結果Ｔｏｐ１の入力文３４２の差分の文字列であり、かつ同一の品詞である文字列を同義語候補とする。
【０１３３】
ユーザ入力３０２の差分の文字列をＡ、検索結果Ｔｏｐ１の入力文３４２の差分の文字列をＢとする時、確認事項５０３は「ＡとＢは同義語ですか？」とする。上記の「赤ちゃん」と「ベビー」の例の場合は、「「赤ちゃん」と「ベビー」は同義語ですか？」という確認事項５０３が生成される。
【０１３４】
ステップＳ９０６では、確認処理部６３が、対話ログ分析データ４０へ図１４Ｃに示す確認事項４０６を設定する。ステップＳ９０７では、確認処理部６３が、確認事項４０６に基づいて、確認事項データ５０を図１４Ｂで示すように生成し、対話ログ分析データ４０には確認ｉｄ４０８が付与する。また、確認処理部６３が確認事項４０６を出力して確認者に問い合わせる。
【０１３５】
ステップＳ９０８では、知識登録処理部６４が、確認者から回答（または応答）を受け付ける。ステップＳ９０９では、知識登録処理部６４が、確認事項データ５０に図１４Ｂで示すように確認結果５０４を格納し、対話ログ分析データ４０には図１４Ｃのように確認結果４０７を格納する。
【０１３６】
次に、ステップＳ９１０では、知識登録処理部６４が、対話データ２０と対話ログ分析データ４０を用いて、対話データ２０を図１４Ｄのように更新する。知識登録処理部６４は、入力文２０２に同義語のある文字列が現れる場合、同義語に置き換えた文を入力文２０２の言い換えとして新たに追加される。
【０１３７】
図１４Ｄの対話データ１４０９の場合、「ベビー休憩室の場所を教えて」と「ベビー休憩室を使いたいのですが」に対し、「ベビー」を「赤ちゃん」に置き換えた、「赤ちゃん休憩室の場所を教えて」と「赤ちゃん休憩室を使いたいのですが」が新規の言い換えとして追加される。
【０１３８】
このように同義語を考慮した失敗分析を行うことで、「「ベビー」と「赤ちゃん」は同義語ですか？」といったように言い換えに比べ、細かい粒度で失敗原因を確認することができる。また、同義語を置き換えた言い換え文を生成することができ、より効率的に言い換え文を用意できるようになる。
【実施例３】
【０１３９】
実施例１におけるステップＳ８０５〜Ｓ８０７の知識登録処理による確認事項データ５０は、重複はないものの、図３のステップＳ３０１にて「失敗」と識別されたユーザ入力４０２毎に確認事項４０６が用意されている。そのため、確認事項４０６の中には同じような質問が含まれている場合がある。
【０１４０】
図１５の対話ログ分析データ４０の分析ｉｄ４０１が「ａ３」と「ａ４」を例に挙げる。
【０１４１】
分析ｉｄ４０１が「ａ３」の確認事項：「エレベータを使いたいのですが」と「エレベータの場所を教えて」は同じ意味ですか？
分析ｉｄ４０１がａ４の確認事項：「ベビー休憩室を使いたいのですが」と「ベビー休憩室の場所を教えて」は同じ意味ですか？
上記の差分の文字列は、「エレベータ」と「ベビー休憩室」であり、どちらか一方の確認事項を確認者に問い合わせ、もう一方に適用すれば、もう一方は確認者による確認処理を省くことができる。
【０１４２】
そこで、本実施例３では、図１７で示すように、言い換えの候補データ５５と、候補データ５５を生成する意図解析部６５を情報処理装置１に加える例を示す。なお、その他の構成は前記実施例１と同様である。
【０１４３】
意図解析部６５は、対話ログデータ３０のユーザ入力３０２の意図を解析する。すなわち、対話ログデータ３０に登録されているユーザ入力３０２と、システム出力文３０３の中からユーザから入力されたユーザ入力３０２に近いユーザ入力３０２を検出する。そして、意図解析部６５は、検出したユーザ入力３０２を言い換えの候補データ５５として登録し、前記実施例１と同様に言い換えによる確認事項４０６（質問文）を生成することができる。なお、言い換えの候補データ５５は、図１２Ｂに示した言い換え候補データ２１と同様に構成すればよい。
【０１４４】
そして、確認処理部６３では、前記実施例１と同様に候補データ５５から確認事項５０３を生成して出力する。知識登録処理部６４は、確認事項５０３に対応する回答を受け付けると、言い換えを新たな知識として対話データ２０に登録することができる。
【０１４５】
本実施例３によれば、効率的に言い換え文を用意できるようになることが期待できる。
【実施例４】
【０１４６】
前記実施例１では、情報処理装置１が対話ログデータ３０から対話の失敗原因を特定して、新たな知識を生成する例を示したが、本実施例４では、１以上のロボットから対話ログデータを収集して、対話データ２０を更新する情報処理装置１を含む対話システムを示す。
【０１４７】
図１８は、実施例４を示し、対話システムの一例を示すブロック図である。対話システムは、１以上のロボット８０ａと、ロボット８０ａを管理する情報処理装置１と、ロボット８０ａと情報処理装置１を接続するネットワーク７０を含む。
【０１４８】
ロボット８０ａは、前記実施例１と同様の対話データ２０と入力処理部１６及び出力処理部１７を含む情報処理装置１００ａを含んで、ユーザ３と対話を実施する。なお図示はしないが、情報処理装置１００ａには、前記実施例１の情報処理装置１と同様にデータ通信部１２と入出力装置１３を含む。
【０１４９】
情報処理装置１００ａは、入力処理部１６がユーザ３からの発話を受け付けて、対話データ２０から適切なシステム出力文を出力する。出力処理部１７は、対話の結果を対話ログデータ３０として情報処理装置１へ送信する。
【０１５０】
情報処理装置１は、ロボット８０ａから受信した対話ログデータ３０を前記実施例１と同様に失敗箇所の抽出処理と失敗原因の分析処理を実施して、対話が失敗の場合には、管理者２の確認の上、新たな知識としての対話データ２０を生成し、ロボット８０ａへ送信する。
【０１５１】
ロボット８０ａは、情報処理装置１から受け付けた新たな対話データ２０を追加して、次回の対話に備える。
【０１５２】
以上のように、本実施例４では、情報処理装置１で１以上のロボット８０ａの対話ログデータ３０を収集し、確認事項（質問）に答えるだけで、ロボット８０ａが過去に答えられなかった質問に答えるための知識を拡充することが可能となる。
【０１５３】
また、本実施例４では、情報処理装置１で蓄積した対話ログデータ３０から全てのロボット８０ａの対話データ２０を追加することが可能となる。これにより、ロボット８０ａ毎との対話能力を均一に維持することが可能となる。また、ロボット８０ａの対話データ２０のメンテナンスを削減することが可能となって、運用コストを低減することができる。
【０１５４】
情報処理装置１による、失敗箇所の抽出処理と失敗原因の分析処理と新しい知識の生成は、リアルタイムで行っても良いし、予め設定したタイミングで行うことも可能である。
【０１５５】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。
【０１５６】
また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【０１５７】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【０１５８】
１  情報処理装置
１１  ＣＰＵ
１２  データ通信部
１３  入出力装置
１４  メモリ
２０  対話データ
３０  対話ログデータ
４０  対話ログ分析データ
５０  確認事項データ
１６  入力処理部
１７  出力処理部
６０  制御部
６１  失敗箇所抽出部
６２  失敗原因分析部
６３  確認処理部
６４  知識登録処理部
【図１】
2019061482.tif 000003
【図２Ａ】
2019061482.tif 000004
【図２Ｂ】
2019061482.tif 000005
【図２Ｃ】
2019061482.tif 000006
【図２Ｄ】
2019061482.tif 000007
【図３】
2019061482.tif 000008
【図４Ａ】
2019061482.tif 000009
【図４Ｂ】
2019061482.tif 000010
【図５】
2019061482.tif 000011
【図６Ａ】
2019061482.tif 000012
【図６Ｂ】
2019061482.tif 000013
【図７】
2019061482.tif 000014
【図８】
2019061482.tif 000015
【図９Ａ】
2019061482.tif 000016
【図９Ｂ】
2019061482.tif 000017
【図９Ｃ】
2019061482.tif 000018
【図９Ｄ】
2019061482.tif 000019
【図１０】
2019061482.tif 000020
【図１１】
2019061482.tif 000021
【図１２Ａ】
2019061482.tif 000022
【図１２Ｂ】
2019061482.tif 000023
【図１３】
2019061482.tif 000024
【図１４Ａ】
2019061482.tif 000025
【図１４Ｂ】
2019061482.tif 000026
【図１４Ｃ】
2019061482.tif 000027
【図１４Ｄ】
2019061482.tif 000028
【図１５】
2019061482.tif 000029
【図１６】
2019061482.tif 000030
【図１７】
2019061482.tif 000031
【図１８】
2019061482.tif 000032