(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-16
(45)【発行日】2022-09-28
(54)【発明の名称】質問回答集生成システム、質問回答集生成方法及び質問回答集生成プログラム
(51)【国際特許分類】
G06F 16/90 20190101AFI20220920BHJP
G06F 16/906 20190101ALI20220920BHJP
【FI】
G06F16/90 100
G06F16/906
(21)【出願番号】P 2021020897
(22)【出願日】2021-02-12
【審査請求日】2021-02-12
(73)【特許権者】
【識別番号】592131906
【氏名又は名称】みずほリサーチ&テクノロジーズ株式会社
(74)【代理人】
【識別番号】100105957
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【氏名又は名称】恩田 博宣
(72)【発明者】
【氏名】鋤田 大日
(72)【発明者】
【氏名】相澤 祐一
(72)【発明者】
【氏名】笠間 俊夫
(72)【発明者】
【氏名】高野 哲平
【審査官】鹿野 博嗣
(56)【参考文献】
【文献】特開2020-077091(JP,A)
【文献】特開2016-126452(JP,A)
【文献】飯塚 新司、菊地 大介、宮内 秀彰、高橋 毅、黒澤 隆也,ヘルプデスクの問合せデータを用いたFAQ抽出技術の研究,日立ソリューションズ東日本 技報 第25号,日本,株式会社日立ソリューションズ東日本,2019年10月29日,p.31~34
【文献】飛田 義賢、清水 歩、鈴木 優,企業内の音声やテキスト情報を価値に変える接客サポート技術,東芝レビュー VOL.73 NO.5,日本,2018年09月21日,p.40~43
【文献】津田 祐輝、秋吉 政徳、鮫島 正樹、岡 宏憲,FAQ作成支援のための分類用閾値自動調節機構を組み入れた問い合わせメール分類方式,電気学会研究会資料 情報システム研究会 IS-11-029~032・035~038・041・044・046~058,日本,社団法人電気学会,2011年05月19日,p.91~96
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/90
G06F 16/906
(57)【特許請求の範囲】
【請求項1】
質問及び回答を組み合わせた応答ペアが記録された質問回答情報記憶部
と、
質問回答集を生成する制御部
と、を備えた質問回答集生成システムであって、
前記制御部が、
メッセージを
発信元に応じて、一つのセッションの中の発話をユーザ発話及びオペレータ発話に識別し、
前記セッションの中のオペレータ発話毎に、前記オペレータ発話を回答として、前記オペレータ発話より前のユーザ発話及びオペレータ発話を質問として構成した複数の応答ペアを作成し、
前記各応答ペアの特徴量を算出し、登録済の応答ペアの特徴量と比較して、類似度が閾値よりも高い場合は登録の対象外として除外し、
前記特徴量を用いて特定した
応答ペアを表示して、管理者によって確認された応答ペアを、前記質問回答集に記録することを特徴とする質問回答集生成システム。
【請求項2】
前記応答ペアには、チャット形式の問合せを含み、
前記制御部が、チャット形式において、質問メッセージと回答メッセージとを含む登録候補を生成することを特徴とする請求項1に記載の質問回答集生成システム。
【請求項3】
前記チャット形式の問合せには、コンピュータが回答したメッセージと、オペレータが回答したメッセージとを含み、
前記制御部が、前記オペレータが回答したメッセージを前記回答メッセージとして用いることを特徴とする請求項2に記載の質問回答集生成システム。
【請求項4】
前記制御部が、前記特徴量のクラスタリング処理により、特徴量が共通するグループを特定することを特徴とする請求項1~
3の何れか一項に記載の質問回答集生成システム。
【請求項5】
前記制御部が、前記クラスタリング処理において、グループの重心位置にある特徴量により
特定した応答ペアを表示して、前記管理者に確認させることを特徴とする請求項
4に記載の質問回答集生成システム。
【請求項6】
質問及び回答を組み合わせた応答ペアが記録された質問回答情報記憶部
と、
質問回答集を生成する制御部
と、を備えた質問回答集生成システム
が、質問回答集を生成する方法であって、
前記制御部が、
メッセージを
発信元に応じて、一つのセッションの中の発話をユーザ発話及びオペレータ発話に識別し、
前記セッションの中のオペレータ発話毎に、前記オペレータ発話を回答として、前記オペレータ発話より前のユーザ発話及びオペレータ発話を質問として構成した複数の応答ペアを作成し、
前記各応答ペアの特徴量を算出し、登録済の応答ペアの特徴量と比較して、類似度が閾値よりも高い場合は登録の対象外として除外し、
前記特徴量を用いて特定した
応答ペアを表示して、管理者によって確認された応答ペアを、前記質問回答集に記録することを特徴とする質問回答集生成方法。
【請求項7】
質問及び回答を組み合わせた応答ペアが記録された質問回答情報記憶部
と、
質問回答集を生成する制御部を備えた質問回答集生成システムを用いて、質問回答集を生成する質問回答集生成プログラムであって、
前記
質問回答集生成システムを、
メッセージを
発信元に応じて、一つのセッションの中の発話をユーザ発話及びオペレータ発話に識別し、
前記セッションの中のオペレータ発話毎に、前記オペレータ発話を回答として、前記オペレータ発話より前のユーザ発話及びオペレータ発話を質問として構成した複数の応答ペアを作成する手段、
前記各応答ペアの特徴量を算出し、登録済の応答ペアの特徴量と比較して、類似度が閾値よりも高い場合は登録の対象外として除外する手段、
前記特徴量を用いて特定した
応答ペアを表示して、管理者によって確認された応答ペアを、前記質問回答集に記録する手段として機能させるための質問回答集生成プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、質問とその回答とを集めた質問回答集の作成を支援する質問回答集生成システム、質問回答集生成方法及び質問回答集生成プログラムに関する。
【背景技術】
【0002】
ユーザの質問に対応するため、ネットワーク上にFAQ(Frequently Asked Question)を掲載したウェブページを設けることがある。このFAQにおいては、ユーザからの頻度が高い質問と、この質問に対する回答とが対になっている。ユーザは、FAQを確認し、自分の質問に対する回答を見ることができる。また、回答者であるオペレータがFAQを見て、ユーザの質問に答える場合もある。
【0003】
このようなFAQの作成を支援する技術も検討されている(例えば、特許文献1、2)。
特許文献1に記載されたFAQ作成支援システムは、問合せ代表文と回答代表文との対を、問合せ代表文に関連付く各文書が回答代表文それぞれに関連付いている各文書とマッチングする文書数で評価する。
【0004】
また、特許文献2に記載されたFAQ作成支援方法では、記憶部に蓄積された複数の質問回答情報の各々の一部を所定のマスキング条件に基づいてマスキングを行なう。そして、マスキングされた質問回答情報を用いてFAQを作成する。
【0005】
また、FAQの機能の代わりに、会話形式での質問が可能なチャットボット機能を利用する技術も検討されている(例えば、特許文献3)。特許文献3に記載された技術では、アプリケーションを構築するための定義情報を取得し、アプリケーションのユーザからアプリケーションに係る質問を受け付ける。そして、質問に対する回答を出力するチャットボット機能を利用する。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2013-50896号公報
【文献】特開2020-64418号公報
【文献】特開2020-119409号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、質問回答履歴を用いて、新規に質問回答集を作成する際に、全ての履歴を確認した上で、類似した質問回答をまとめる作業を人手で行なう場合には手間がかかる。また、新たな質問回答を追加する場合にも、既に登録されている質問回答と類似した内容の質問回答を登録したのでは、的確な質問回答集を作成することができない。
【課題を解決するための手段】
【0008】
上記課題を解決する質問回答集生成システムは、質問及び回答を組み合わせた応答ペアが記録された質問回答情報記憶部に接続され、質問回答集を生成する制御部を備える。そして、前記制御部が、前記質問回答情報記憶部に記録された応答ペアにおいて質問回答集の登録候補を生成し、評価済情報が記録されていない前記登録候補において、内容が共通するグループの特徴量を算出し、前記特徴量を用いて特定した登録候補により質問回答集を生成し、前記質問回答情報記憶部において、前記質問回答集の生成に用いた応答ペアに対して評価済情報を記録する。
【発明の効果】
【0009】
本発明によれば、効率的に質問回答集を作成することができる。
【図面の簡単な説明】
【0010】
【
図1】実施形態の質問回答集生成システムの説明図。
【
図7】実施形態の分散表現を用いたFAQの作成手順の説明図。
【発明を実施するための形態】
【0011】
図1~
図7に従って、質問回答集生成システム、質問回答集生成方法及び質問回答集生成プログラムを具体化した一実施形態を説明する。本実施形態では、質問(問合せ)に対する回答を用いて質問回答集としてのFAQを作成する場合を想定する。
【0012】
図1に示すように、本実施形態の質問回答集生成システムは、ネットワークを介して接続された管理端末10、オペレータ端末11、ユーザ端末12、支援サーバ20、チャット支援装置30を用いる。
【0013】
(ハードウェア構成例)
図2は、管理端末10、オペレータ端末11、ユーザ端末12、支援サーバ20、チャット支援装置30等として機能する情報処理装置H10のハードウェア構成例である。
【0014】
情報処理装置H10は、通信装置H11、入力装置H12、表示装置H13、記憶装置H14、プロセッサH15を有する。なお、このハードウェア構成は一例であり、他のハードウェアを有していてもよい。
【0015】
通信装置H11は、他の装置との間で通信経路を確立して、データの送受信を実行するインタフェースであり、例えばネットワークインタフェースカードや無線インタフェース等である。
【0016】
入力装置H12は、利用者等からの入力を受け付ける装置であり、例えばマウスやキーボード等である。表示装置H13は、各種情報を表示するディスプレイやタッチパネル等である。
【0017】
記憶装置H14は、管理端末10~ユーザ端末12、支援サーバ20、チャット支援装置30の各種機能を実行するためのデータや各種プログラムを格納する記憶装置である。記憶装置H14の一例としては、ROM、RAM、ハードディスク等がある。
【0018】
プロセッサH15は、記憶装置H14に記憶されるプログラムやデータを用いて、管理端末10~ユーザ端末12、支援サーバ20、チャット支援装置30における各処理(例えば、後述する制御部21における処理)を制御する。プロセッサH15の一例としては、例えばCPUやMPU等がある。このプロセッサH15は、ROM等に記憶されるプログラムをRAMに展開して、各種処理に対応する各種プロセスを実行する。例えば、プロセッサH15は、管理端末10~ユーザ端末12、支援サーバ20、チャット支援装置30のアプリケーションプログラムが起動された場合、後述する各処理を実行するプロセスを動作させる。
【0019】
プロセッサH15は、自身が実行するすべての処理についてソフトウェア処理を行なうものに限られない。例えば、プロセッサH15は、自身が実行する処理の少なくとも一部についてハードウェア処理を行なう専用のハードウェア回路(例えば、特定用途向け集積回路:ASIC)を備えてもよい。すなわち、プロセッサH15は、(1)コンピュータプログラム(ソフトウェア)に従って動作する1つ以上のプロセッサ、(2)各種処理のうち少なくとも一部の処理を実行する1つ以上の専用のハードウェア回路、或いは(3)それらの組み合わせ、を含む回路(circuitry)として構成し得る。プロセッサは、CPU並びに、RAM及びROM等のメモリを含み、メモリは、処理をCPUに実行させるように構成されたプログラムコード又は指令を格納している。メモリ、すなわちコンピュータ可読媒体は、汎用又は専用のコンピュータでアクセスできるあらゆる利用可能な媒体を含む。
【0020】
(各情報処理装置の機能)
図1を用いて、管理端末10、オペレータ端末11、ユーザ端末12、支援サーバ20、チャット支援装置30の機能を説明する。
【0021】
管理端末10は、FAQを管理する管理者が用いるコンピュータ端末である。
オペレータ端末11は、質問に対して回答を行なうオペレータが利用するコンピュータ端末である。オペレータは、チャット支援装置30が、ユーザ端末12からの質問に回答できない場合に、チャット支援装置30に代わって回答を行なう。
ユーザ端末12は、質問を行なうユーザ(質問者)が用いるコンピュータ端末である。
【0022】
支援サーバ20は、FAQの作成を支援するためのコンピュータシステムである。この支援サーバ20は、制御部21、質問回答情報記憶部としてのQAペア情報記憶部22、学習結果記憶部23を備えている。
【0023】
制御部21は、後述する処理(取得段階、QAペア作成段階、FAQ作成段階、表現分析段階、クラスタリング段階等を含む処理)を行なう。このための質問回答集生成プログラムを実行することにより、制御部21は、取得部211、QAペア作成部212、FAQ作成部213、表現分析部214、クラスタリング部215等の手段として機能する。
【0024】
取得部211は、管理端末10から、QA情報を取得する処理を実行する。
QAペア作成部212は、一つの質問(Q)に対して一つの回答(A)からなるQAペア(応答ペア)を作成する処理を実行する。このQAペア作成部212は、メッセージにおいて、重複や誤記、表記の揺れ、不要語等を検出した場合、削除や修正、正規化等のクレンジングを行なうための単語辞書を保持する。
【0025】
FAQ作成部213は、QAペアを用いて、FAQの作成を管理する処理を実行する。
表現分析部214は、QAペアの特徴量として、分散表現(単語埋め込み)を生成する処理を実行する。この分散表現では、文字・単語を多次元のベクトル空間に埋め込み、QAペアを、このベクトル空間の点として把握することができる。この分散表現では、質問回答に含まれる概念を表現する際に、他の概念との共通点や類似性と紐づけながら、ベクトル空間上に表現する。この結果、このベクトル空間において、QAペアの類似度を評価することができる。本実施形態では、分散表現を生成するために、例えば、「Word2Vec」、「LSTM(Long short-term memory)」、「Transformer」を用いることができる。
【0026】
クラスタリング部215は、分散表現間の類似度に基づいて、共通するグループ分けを行なうクラスタリング処理を実行する。クラスタリング処理としては、例えばk-means法やDBSCANを用いることができる。
【0027】
QAペア情報記憶部22には、ユーザからの質問に対する回答を含む対応履歴に基づいて生成されたQAペアに関するQAペア管理レコードが記録される。このQAペア管理レコードは、QAペア作成処理が行なわれた場合に記録される。QAペア管理レコードには、質問、回答、分散表現、ステータスに関するデータが記録される。
【0028】
質問データ領域には、QAペアを構成する質問(テキスト)に関するデータが記録される。
回答データ領域には、QAペアを構成する質問に対する回答(テキスト)に関するデータが記録される。
【0029】
分散表現データ領域には、このQAペアについて、表現分析部214により算出した分散表現に関するデータが記録される。
ステータスデータ領域には、このQAペアのステータスを特定するためのフラグに関するデータが記録される。このステータスデータ領域には、新規、FAQ登録済、FAQ対象外、除外を示すフラグを記録する。新規フラグは、新たに取得したQAペアを示す。FAQ登録済フラグ(評価済情報)は、FAQとして登録済のQAペアを示す。FAQ対象外フラグは、FAQの登録対象にならなかったQAペアを示す。除外フラグは、FAQ候補(登録候補)であったが、管理者によって除外されたQAペアを示す。
【0030】
学習結果記憶部23には、分散表現を生成するための学習モデル(分散表現モデル)が記録される。この分散表現モデルは、FAQ作成処理が行なわれた場合に記録される。この分散表現モデルに、QAペアを入力することにより、分散表現(ベクトル)を算出することができる。
【0031】
チャット支援装置30は、ユーザ端末12からの質問に対して、FAQを用いて、チャット形式で回答を行なうコンピュータシステムである。このチャット支援装置30は、チャットボット31、FAQ記憶部32、チャット記憶部33を備える。
【0032】
チャットボット31は、ユーザ端末12からの質問に対して、回答を提供する処理を実行する。具体的には、チャットボット31は、質問についての分散表現を生成する処理を実行する。このチャットボット31は、回答に用いるFAQを特定するために、分散表現の類似度の閾値に関するデータを保持する。そして、ユーザ端末12から、チャット上で取得した質問についての分散表現を生成し、FAQ記憶部32を用いて、類似度が閾値を超えた質問を含むFAQを特定する。ここで、チャットボット31は、この特定されたFAQが1つであった場合、その回答をユーザ端末12にチャット上で提供する。なお、チャットボット31は、FAQ記憶部32において、閾値を上回る類似度を持つFAQが存在しない場合、又は閾値を上回る類似度を持つFAQが複数個、特定された場合、チャットの回答権をオペレータ端末11に引き継ぐ(エスカレーション)。そして、オペレータがチャットの回答権をボットに切り替えるまで、チャットボット31は停止する。
エスカレーションにより、質問に対する回答をオペレータが行なった後、チャットの回答権をオペレータからボットに切り替えた場合、チャットボット31は、チャット上でユーザ端末12に対して回答のフィードバックを求める。このフィードバックには、「役に立ったか」に対して、「YES」又は「NO」の何れかのメッセージが記録される。なお、フィードバックは、オペレータ端末11から求めてもよい。
【0033】
FAQ記憶部32には、チャットボット31が用いるFAQに関するFAQ管理レコードが記録される。このFAQ管理レコードは、FAQ作成処理が行なわれた場合に記録される。FAQ管理レコードには、FAQで用いる質問に対する回答に関するデータが記録される。
質問データ領域には、FAQにおける質問(質問メッセージ)に関するデータが記録される。
回答データ領域には、FAQにおける回答(回答メッセージ)に関するデータが記録される。
【0034】
チャット記憶部33には、チャット上でのユーザからの質問に対する回答を含む対応履歴が記録されたチャット管理レコードが記録される。このチャット管理レコードは、ユーザ端末12から質問をチャット上で取得した場合に記録される。チャット管理レコードには、質問や回答といったチャット上でのすべての発話に関するデータが記録される。このチャット管理レコードには、セッションID、日時、順番ID、発信元、メッセージが含まれる。
【0035】
セッションIDデータ領域には、ユーザとオペレータとの間での一連(一つのセッション)の質問・応答を特定するための識別子に関するデータが記録される。
日時データ領域には、このセッションにおけるメッセージが発信された年月日及び時刻に関するデータが記録される。
【0036】
順番IDデータ領域には、このセッションにおけるメッセージの順番を特定するための識別子に関するデータが記録される。
発信元データ領域には、このメッセージの発信元(ユーザ、オペレータ、チャットボット)を特定するための識別子に関するデータが記録される。
【0037】
メッセージデータ領域には、このセッションに含まれるメッセージ(質問、回答等)に関するデータが記録される。ユーザがチャット画面を開き、何も発言せずにチャット画面を閉じることもあるため、一つのセッション内に発言が一つも記録されていない場合(無発言)も存在する。なお、オペレータ端末11への引継(エスカレーション)を行なった場合には、メッセージデータ領域には、発信元(チャットボット)で、メッセージデータ領域が空欄のチャット管理レコードが記録される。また、質問に対する回答について、ユーザから取得したフィードバックもメッセージとして記録される。
【0038】
次に、上記のように構成されたシステムにおいて、FAQを作成する処理手順を説明する。
(概要)
まず、
図3を用いて、処理手順の概要を説明する。本実施形態では、チャットボット導入時とメンテナンス作業時とでは処理が異なる。
【0039】
チャットボット導入時には、支援サーバ20の制御部21は、応答履歴の取得処理を実行する(ステップS1-1)。具体的には、制御部21の取得部211は、管理端末10からQA情報を取得する。このQA情報は、一問一答形式により、一つの質問に対して一つの回答が含まれる。そして、取得部211は、取得したQA情報により、QAペア管理レコードを生成し、QAペア情報記憶部22に記録する。この場合、QAペア管理レコードのステータスデータ領域には、新規フラグを記録する。
【0040】
次に、支援サーバ20の制御部21は、FAQ候補の抽出処理を実行する(ステップS1-2)。具体的には、制御部21のFAQ作成部213は、QAペア情報記憶部22に記録されたQAペアを用いて、FAQ候補を作成する。
【0041】
次に、支援サーバ20の制御部21は、FAQ候補の確認処理を実行する(ステップS1-3)。具体的には、制御部21のFAQ作成部213は、作成したFAQ候補を管理端末10に出力する。管理端末10において確認されたFAQ候補を、チャット支援装置30のFAQ記憶部32に、FAQとして登録する。
【0042】
メンテナンス作業時には、支援サーバ20の制御部21は、応答履歴の取得処理を実行する(ステップS2-1)。具体的には、制御部21の取得部211は、チャット支援装置30のチャット記憶部33から、ユーザ端末12との間で行なわれたチャット管理レコードを取得する。
【0043】
次に、支援サーバ20の制御部21は、QAペアの生成処理を実行する(ステップS2-2)。具体的には、制御部21のQAペア作成部212は、取得したチャット管理レコードを用いて、QAペアを作成する。そして、QAペア作成部212は、作成したQAペアを記録したQAペア管理レコードを生成し、QAペア情報記憶部22に記録する。この場合も、QAペア管理レコードのステータスデータ領域には、新規フラグを記録する。
【0044】
次に、支援サーバ20の制御部21は、ステップS1-2、S1-3と同様に、FAQ候補の抽出処理(ステップS2-3)、FAQ候補の確認処理(ステップS2-4)を実行する。
【0045】
(QAペア作成処理)
次に、
図4を用いて、QAペア作成処理を説明する。この処理は、メンテナンス作業時に行なわれる。なお、チャットボット導入時には、一問一答形式のQA情報を取得するため、既にQAペアが生成されており、QAペア作成処理を行なわない。
【0046】
まず、支援サーバ20の制御部21は、セッション毎のメッセージの特定処理を実行する(ステップS3-1)。具体的には、制御部21のQAペア作成部212は、チャット支援装置30から取得したチャット管理レコードにおいて、同じセッションIDに関連付けられたチャット管理レコードを特定する。
【0047】
次に、支援サーバ20の制御部21は、特定したセッション毎に以下の処理を繰り返す。
ここでは、まず、支援サーバ20の制御部21は、無発言の履歴の削除処理を実行する(ステップS3-2)。具体的には、制御部21のQAペア作成部212は、このセッションに含まれるチャット管理レコードにおいて、無発言のチャット管理レコードを削除する。
【0048】
次に、支援サーバ20の制御部21は、クレンジング処理を実行する(ステップS3-3)。具体的には、制御部21のQAペア作成部212は、メッセージにおいて、重複や誤記、表記の揺れ等を検出した場合、単語辞書を用いて、削除や修正、正規化を行なう。
【0049】
次に、支援サーバ20の制御部21は、区切り文でチャット文の分割処理を実行する(ステップS3-4)。具体的には、制御部21のQAペア作成部212は、一つのセッションに含まれるメッセージの中で、フィードバックメッセージを特定する。そして、QAペア作成部212は、このフィードバックメッセージを区切り文(区切りメッセージ)として特定する。次に、QAペア作成部212は、この区切り文の前までのメッセージを一区切りとして分割する。一つのセッションの中に、複数のフィードバックメッセージが含まれる場合には、区切り文の特定及び区切り文での分割を繰り返す。なお、フィードバックメッセージとして「NO」が記録されている場合(回答が役に立たなかった場合)、この一区切りまでのメッセージは、QAペア作成の対象外として削除する。
【0050】
次に、支援サーバ20の制御部21は、一連の会話の特定処理を実行する(ステップS3-5)。具体的には、制御部21のQAペア作成部212は、区切り文で分割されたメッセージ(発信元がユーザ又はオペレータ)を一連の会話(サブセッション)として特定する。
【0051】
次に、支援サーバ20の制御部21は、ボット回答の質問応答の削除処理を実行する(ステップS3-6)。具体的には、制御部21のQAペア作成部212は、各サブセッションのメッセージにおいて、発信元がチャットボットのメッセージを削除する。
【0052】
次に、支援サーバ20の制御部21は、最後の発言がユーザかどうかについての判定処理を実行する(ステップS3-7)。具体的には、制御部21のQAペア作成部212は、サブセッションにおいて、最後のメッセージの発信元データ領域にユーザが記録されている場合には、発言がユーザと判定する。
【0053】
最後の発言がユーザと判定した場合(ステップS3-7において「YES」の場合)、支援サーバ20の制御部21は、ユーザの最後の発言の削除処理を実行する(ステップS3-8)。具体的には、制御部21のQAペア作成部212は、このユーザのメッセージを削除する。
【0054】
一方、最後のメッセージの発言元がオペレータであって、最後の発言がユーザでないと判定した場合(ステップS3-7において「NO」の場合)、支援サーバ20の制御部21は、ユーザの最後の発言の削除処理(ステップS3-8)をスキップする。
【0055】
次に、支援サーバ20の制御部21は、発信元がオペレータであるオペレータ発話毎に、以下の処理を繰り返す。
ここでは、支援サーバ20の制御部21は、質問及び回答の設定処理を実行する(ステップS3-9)。具体的には、制御部21のQAペア作成部212は、発信元がオペレータの各メッセージを、それぞれ回答として特定する。そして、サブセッションの開始メッセージから最初の回答直前までのメッセージを第1の質問として特定する。また、サブセッションに複数の回答が含まれている場合、順次、各回答を特定する。そして、2番目の回答が含まれている場合には、サブセッションの開始メッセージから2番目の回答直前までのすべてのメッセージを第2の質問として特定する。この第2の質問の中には、ユーザのメッセージだけではなく、最初のオペレータのメッセージも含まれる。この質問の特定処理を、サブセッションに含まれるすべてのメッセージについて繰り返す。
【0056】
図5に示すように、一つのセッションに、メッセージM01~M11が含まれる場合を想定する。ここで、各メッセージを、発信元(ユーザ、チャットボット、オペレータ)に応じて、ユーザ発話、チャットボット発話、オペレータ発話と呼ぶ。
【0057】
メッセージM11は区切り文である。メッセージM02は、チャットボット発話のメッセージ(回答)であるため、メッセージM01ともに削除する(ステップS3-6)。また、メッセージM10は、ユーザ発話の最後のメッセージであるため削除する(ステップS3-8)。
【0058】
そして、まず、ユーザ発話のメッセージM03を質問、オペレータ発話のメッセージM04を回答とするQAペアP01を作成する。
次に、オペレータ発話のメッセージM06,M07を回答として特定し、この回答までのユーザ発話及びオペレータ発話のメッセージM03~M05を質問とするQAペアP02を作成する。
【0059】
次に、オペレータ発話のメッセージM09を回答として特定し、この回答までのユーザ発話及びオペレータ発話のメッセージM03~M08を質問とするQAペアP03を作成する。
以上の処理を、すべてのオペレータ発話について終了するまで繰り返す。そして、すべてのセッションについて終了するまで繰り返す。
【0060】
(FAQ作成処理)
次に、
図6を用いて、FAQ作成処理を説明する。この処理は、チャットボット導入時とメンテナンス作業時において行なわれる。
【0061】
ここでは、QAペア情報記憶部22に記録されたすべてのQAペア毎に、以下の処理を繰り返す。
まず、支援サーバ20の制御部21は、QAペアの分かち書き処理を実行する(ステップS4-1)。具体的には、制御部21のFAQ作成部213は、各サブセッションに含まれる質問及び回答のメッセージについて、形態素分析を行ない、品詞に分ける。次に、FAQ作成部213は、品詞間にスペースを入れることにより、分かち書きを行なう。そして、FAQ作成部213は、生成した分かち書き文を、メモリに仮記憶する。
【0062】
そして、支援サーバ20の制御部21は、以上の処理を、すべてのQAペアについて終了するまで繰り返す。
次に、支援サーバ20の制御部21は、分散表現モデルの生成処理を実行する(ステップS4-2)。具体的には、制御部21の表現分析部214は、分かち書きしたすべてのQAペアを用いた機械学習により、分散表現を生成するための分散表現モデルを生成する。そして、生成した分散表現モデルを、学習結果記憶部23に記録する。
【0063】
図7に示すように、QAペアP1~P5を用いる場合、各QAペアに対して分散表現D1~D5が生成される。
次に、支援サーバ20の制御部21は、QAペア情報記憶部22から、新規フラグの何れかが記録されたQAペアを、FAQ対象として、順次、特定する。
【0064】
そして、支援サーバ20の制御部21は、FAQ対象のQAペア毎に、分散表現の取得処理を実行する(ステップS4-3)。具体的には、制御部21の表現分析部214は、学習結果記憶部23に記録された分散表現モデルに、FAQ対象のQAペアを入力することにより、分散表現を取得する。
そして、支援サーバ20の制御部21は、FAQ対象のすべてのQAペアについて、以上の処理を繰り返す。
【0065】
次に、支援サーバ20の制御部21は、分散表現のクラスタリング処理を実行する(ステップS4-4)。具体的には、制御部21のクラスタリング部215は、生成した分散表現のクラスタリングを行なう。これにより、FAQ対象のQAペアについて、分散表現が類似する一又は複数のクラスタが生成される。
【0066】
図7に示すように、分散表現D1~D5を用いてクラスタリングを行なった場合、分散表現D1,D2,D4にからなるクラスタが生成された場合を想定する。ここで、クラスタを生成しなかった分散表現D3、D5に対応するQAペアP3、P5は、次回以降のメンテナンス作業時の対象となる。
【0067】
次に、支援サーバ20の制御部21は、FAQ登録済のクラスタの削除処理を実行する(ステップS4-5)。具体的には、制御部21のFAQ作成部213は、FAQ登録済のQAペアの分散表現を計算し、各クラスタに属するQAペアの分散表現の平均値との類似度を計算する。そして、FAQ作成部213は、FAQ登録済のQAペアの分散表現との類似度が閾値よりも高い場合はクラスタをFAQ登録の対象外とする。なお、チャットボット導入時には、FAQ登録済のQAペアはないため、この処理をスキップする。
【0068】
次に、支援サーバ20の制御部21は、重心に近いQAペアの特定処理を実行する(ステップS4-6)。具体的には、制御部21のFAQ作成部213は、分散表現を用いて、クラスタの重心位置を特定する。そして、FAQ作成部213は、特定した重心位置に近い分散表現のQAペアをFAQ候補として特定する。
図7では、分散表現D1,D2,D4にからなるクラスタの重心位置に近い分散表現D2に対応するQAペアP2をFAQ候補として特定する。
【0069】
次に、支援サーバ20の制御部21は、FAQ抽出結果の表示処理を実行する(ステップS4-7)。具体的には、制御部21のFAQ作成部213は、クラスタ毎に、FAQ候補を含めたFAQ抽出結果画面を生成し、管理端末10に出力する。FAQ抽出結果画面では、FAQ候補に対して、詳細一覧ボタンが設定されている。
【0070】
詳細一覧ボタンが選択された場合、支援サーバ20の制御部21は、FAQ詳細の表示処理を実行する(ステップS4-8)。具体的には、制御部21のFAQ作成部213は、選択されたQAペアについてのFAQ詳細画面を生成し、管理端末10に出力する。このFAQ詳細画面には、QAペアの質問及び回答が、それぞれ初期値として設定された質問修正欄及び回答修正欄が設けられている。更に、FAQ詳細画面には、このQAペアが属するクラスタに含まれる他のQAペアが表示される。他の各QAペアには、除外チェックボックスが設けられている。担当者は、必要に応じて、質問修正欄及び回答修正欄の質問、回答を修正する。また、クラスタと関係がない他のQAペアについては、除外チェックボックスにチェックを入れる。FAQ作成部213は、除外チェックボックスへのチェックの入力を検知した場合、このQAペアのQAペア管理レコードのステータスデータ領域に、除外フラグを記録する。FAQ詳細画面への入力の終了を検知した場合、FAQ作成部213は、管理端末10に、再度、FAQ抽出結果画面を出力する。この場合、FAQ抽出結果画面のQAペアとして、FAQ詳細画面の質問修正欄及び回答修正欄で確認された質問、回答を含める。
【0071】
そして、FAQ抽出結果画面において完了入力が行なわれた場合、支援サーバ20の制御部21は、登録処理を実行する(ステップS4-9)。具体的には、制御部21のFAQ作成部213は、クラスタに含まれるQAペアのQAペア管理レコードのステータスデータ領域に、FAQ登録済フラグを記録する。また、FAQ作成部213は、クラスタに含まれるFAQ候補以外のQAペア管理レコードのステータスデータ領域に、FAQ対象外フラグを記録する。そして、FAQ作成部213は、FAQ抽出結果画面に含まれるQAペアを含めたFAQ管理レコードを生成し、チャット支援装置30のFAQ記憶部32に記録する。
ここでは、
図7に示すように、FAQ候補のQAペアP2は確認された後で、FAQに登録される。この場合、QAペアP2には、FAQ登録済フラグを記録する。そして、このクラスタに属する他のQAペアP1,P4には、FAQ対象外フラグを記録する。
【0072】
本実施形態によれば、以下のような効果を得ることができる。
(1)本実施形態においては、支援サーバ20の制御部21は、クレンジング処理を実行する(ステップS3-3)。これにより、表現のぶれ等を抑制することができる。
【0073】
(2)本実施形態においては、支援サーバ20の制御部21は、区切り文でチャット文の分割処理(ステップS3-4)、一連の会話の特定処理(ステップS3-5)を実行する。これにより、一連のチャット上の会話を、一まとまりとして特定することができる。
【0074】
(3)本実施形態においては、支援サーバ20の制御部21は、ボット回答の質問応答の削除処理を実行する(ステップS3-6)。これにより、チャットボットで対応できている質問回答を、FAQ対象から排除できる。
【0075】
(4)本実施形態においては、支援サーバ20の制御部21は、最後の発言がユーザかどうかについての判定処理を実行する(ステップS3-7)。これにより、ユーザの最後の発言は質問でないため、処理対象から排除できる。
【0076】
(5)本実施形態においては、支援サーバ20の制御部21は、質問及び回答の設定処理を実行する(ステップS3-9)。これにより、直近の質問だけではなく、回答に至る経緯を含めた質問を設定することができる。
【0077】
(6)本実施形態においては、支援サーバ20の制御部21は、分散表現モデルの生成処理を実行する(ステップS4-2)。これにより、質問回答におけるメッセージに含まれる単語を用いて、単語を数値化できる学習モデルを生成することができる。
【0078】
(7)本実施形態においては、支援サーバ20の制御部21は、FAQ対象のQAペア毎に、分散表現の取得処理を実行する(ステップS4-3)。これにより、QAペアに含まれる単語を数値化したベクトル空間で、各QAペアの距離(類似性)を評価することができる。
【0079】
(8)本実施形態においては、支援サーバ20の制御部21は、分散表現のクラスタリング処理を実行する(ステップS4-4)。これにより、類似するQAペアをまとめることができる。
【0080】
(9)本実施形態においては、支援サーバ20の制御部21は、FAQ登録済のクラスタの削除処理を実行する(ステップS4-5)。これにより、既にFAQに登録されているQAペアが含まれるクラスタを、FAQ候補から除き、重複登録を抑制することができる。
【0081】
(10)本実施形態においては、支援サーバ20の制御部21は、重心に近いQAペアの特定処理を実行する(ステップS4-6)。これにより、クラスタに含まれる複数のQAペアにおいて、偏りがない表現をFAQ候補として特定することができる。
【0082】
(11)本実施形態においては、支援サーバ20の制御部21は、FAQ抽出結果の表示処理(ステップS4-7)、FAQ詳細の表示処理(ステップS4-8)を実行する。これにより、FAQ候補を確認して、的確なQAペアをFAQとして登録することができる。
【0083】
本実施形態は、以下のように変更して実施することができる。本実施形態及び以下の変更例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
・上記実施形態では、FAQを作成する場合を想定したが、本発明の適用対象は、質問に対する回答からなる質問回答集であれば、FAQに限定されるものではない。例えば、頻度が低い質問を含めて、多様な質問を網羅した質問回答集に適用してもよい。
【0084】
・上記実施形態では、支援サーバ20の制御部21は、FAQ対象のQAペア毎に、分散表現の取得処理を実行する(ステップS4-3)。この場合、支援サーバ20の制御部21は、QAペア情報記憶部22から、新規フラグの何れかが記録されたQAペアを、FAQ対象として、順次、特定する。ここで、除外フラグ(評価済情報)が記録されたQAペアを含めてもよい。そして、支援サーバ20の制御部21は、分散表現のクラスタリング処理(ステップS4-4)の後で、除外フラグが記録されたQAペアが含まれるクラスタを除外する。これにより、過去に除外されたQAペアに類似する新規のQAペアを除き、効率的に確認作業を行なうことができる。
【0085】
・上記実施形態では、支援サーバ20の制御部21は、FAQ抽出結果の表示処理を実行する(ステップS4-7)。ここで、クラスタにおける各QAペアの位置を出力するようにしてもよい。例えば、各QAペアについて、重心位置からの距離を表示したり、クラスタにおけるQAペアの分散表現の統計的ばらつき状況を表示したりする。また、支援サーバ20の制御部21は、クラスタにおける分散表現の統計的ばらつきの度合を算出し、この度合が基準値よりも大きい場合には、管理端末10にアラートを出力するようにしてもよい。
【0086】
・上記実施形態では、詳細一覧ボタンが選択された場合、支援サーバ20の制御部21は、FAQ詳細の表示処理を実行する(ステップS4-8)。このFAQ詳細画面には、このQAペアが属するクラスタに含まれる他のQAペアが表示される。この場合、重心位置に近い順番に、他のQAペアを並び替えて表示してもよい。また、重心位置から所定距離以上、離れているQAペアについては、除外チェックボックスに予めチェックを入れておいてもよい。
また、FAQ詳細画面には、クラスタと関係がない他のQAペアについては、除外チェックボックスにチェックを入れる。この場合、除外されたQAペアを除いて、支援サーバ20の制御部21は、重心位置に近いQAペアの特定処理(ステップS4-6)を実行するようにしてもよい。これにより、除外されずに残ったQAペアを用いて重心位置を再算出し、この重心位置に近いQAペアを見直すことができる。
【0087】
・上記実施形態では、支援サーバ20の制御部21は、質問及び回答の設定処理を実行する(ステップS3-9)。そして、支援サーバ20の制御部21は、分散表現モデルの生成処理(ステップS4-2)、FAQ対象のQAペア毎に、分散表現の取得処理(ステップS4-3)を実行する。この場合、先行する回答に比べて、後続の回答に対する質問(Q)は長くなる。この場合、回答(A)から近いメッセージに比べて、回答(A)から遠いメッセージは、回答(A)との関連性が低くなる可能性があり、質問と回答との関係が曖昧になる場合がある。
【0088】
そこで、QAペアに含まれる質問者のメッセージを、回答(A)からの距離に応じて、重み付けを行なうようにしてもよい。具体的には、支援サーバ20の制御部21は、各質問者のメッセージのトピック(特徴量)を算出する。次に、制御部21は、特徴量の変化(差分)が所定値よりも大きいメッセージ(トピックの切れ目)で質問(Q)を分割する。そして、制御部21は、回答(A)からの距離に応じて、各ブロックの分散表現に重み付けを行なう。また、制御部21は、特徴量の変化(差分)の大きさに応じて、重み付けを変更してもよい。
【0089】
また、複数の質問者のメッセージを含む質問(Q)については、文字列を要約して分散表現を算出してもよい。この場合には、制御部21は、公知の自動要約技術を用いて、質問(Q)の要約を作成する。
【0090】
また、分散表現の生成において、忘却ゲート、入力ゲート、出力ゲートを備えているLSTMを用いる場合には、忘却ゲートを調整して、直前のセルにおける不要な情報を忘却させるようにしてもよい。これにより、長い質問(Q)における先行のメッセージによる情報過多を抑制できる。
【0091】
・上記実施形態では、支援サーバ20の制御部21は、クレンジング処理を実行する(ステップS3-3)。ここでは、単語辞書を用いて、削除や修正、正規化を行なう。ここで、単語の重要度により、重要度が低い不要な単語を削除するようにしてもよい。この場合には、例えば、支援サーバ20の制御部21が、文書中に含まれる単語の重要度を評価する手法により、回答検索で使用する単語を抽出する単語辞書を生成する。重要度を評価する手法としては、例えば、単語の出現頻度や逆文書頻度を用いるTFIDF(Term Frequency,Inverse Document Frequency)やニューラルネットワークによる判定等を用いることができる。
【0092】
また、メッセージの作成時の操作状況に応じて、誤入力された単語を正しい単語に変換する校正辞書を作成してもよい。この場合には、例えば、チャット支援装置30が、ユーザ端末12またはオペレータ端末11における発話時に、入力の間違いによる単語の削除、新しい単語や文字の再入力の操作履歴を取得し、誤入力された単語を正しい単語に変換する校正辞書を作成する。そして、支援サーバ20の制御部21が、クレンジング処理(ステップS3-3)において、校正辞書を用いて、質問の誤記を修正する。
また、支援サーバ20の制御部21は、公知の自動校正ツールを用いて、修正を行なうようにしてもよい。
また、メッセージに外国語の単語の混入を検知した場合、支援サーバ20の制御部21が、翻訳機能によって、日本語等の一つの言語に揃えた後で、クラスタリングを行なうようにしてもよい。これにより、表記を統一化することができる。
【0093】
・上記実施形態では、支援サーバ20の制御部21は、QAペアの生成処理を実行する(ステップS2-2)。ここで、ユーザによる連続した複数の発話が含まれる場合、それらをまとめて1つの発話として扱ってもよい。
【0094】
・上記実施形態では、支援サーバ20の制御部21は、QAペアの生成処理を実行する(ステップS2-2)。ここで、1発話の中に複数の質問、複数の回答が含まれる場合、発話を分離するようにしてもよい。ここでは、制御部21のQAペア作成部212は、質問や回答のテキスト(発話)を文体で区切る。例えば、QAペア作成部212は、質問や回答の発話の係り受け構造を解析する。そして、QAペア作成部212は、係り受け構造の上位に存在する先行文を、共通の文言として特定する。次に、QAペア作成部212は、並列として存在している後続文を、下位の異なる質問や回答として判定する。また、質問に箇条書きが含まれる場合には、制御部21のQAペア作成部212は、後続文としての箇条書き毎に質問文を区切る。そして、QAペア作成部212は、各後続文に、それぞれ先行文を付加した複数の質問や複数の回答を作成する。
また、制御部21のQAペア作成部212が、複数の質問を含む一文章の分散表現と、複数の質問文の分散表現とを教師情報として用いた機械学習により、複数の質問を含む文章から複数の分散表現を予測するようにしてもよい。この場合には、1つの分散表現(文ベクトル)を複数の同次元の分散表現に分解する。そして、制御部21のQAペア作成部212は、分解された質問と、分解されたオペレータの回答を、それぞれの分散表現の類似度を用いて紐付けて、QAペアとして作成する。
【0095】
また、1回の発話で複数の質問が含まれることを検知するユーザインターフェースを設けてもよい。例えば、支援サーバ20の制御部21は、ユーザに対して、チャット時に、質問の終了を示す記号(例えば、疑問符)を付加するように推奨されるユーザインターフェースを提供する。これにより、複数の質問に対して、オペレータが個別に答えられるようにしておくことで、クラスタリング対象となるQA履歴の前処理に係る負荷を減らすことができる。
【0096】
・上記実施形態では、支援サーバ20の制御部21は、分散表現モデルの生成処理(ステップS4-2)、FAQ対象のQAペア毎に、分散表現の取得処理(ステップS4-3)を実行する。ここで、新たな分散表現の取得処理(ステップS4-3)時に、過去の分散表現モデルについても利用できるようにしてもよい。この場合には、学習結果記憶部23に、生成した分散表現モデルを履歴として保存しておく。そして、支援サーバ20の制御部21は、各分散表現モデルを、既存のFAQおよびそれに紐づくQAペアを評価データとして投入する。そして、制御部21は、類似度の分散状況によって、類似度を的確に計測できるかどうかを評価する。例えば、類似度の分散値が所定範囲に収まっている場合には、類似度を的確に計測できると判定する。そして、制御部21は、この評価結果に応じて、類似度を計測可能な分散表現モデルを選択する。
【0097】
・上記実施形態では、支援サーバ20の制御部21は、FAQ候補の抽出処理(ステップS2-3)、FAQ候補の確認処理(ステップS2-4)を実行する。ここで、質問時期に基づいて、QAペアのグループ分けを行なってもよい。この場合、QAペア作成部212は、作成したQAペアに対して、チャット記憶部33に記録されているチャット管理レコードの日時を関連付ける。そして、支援サーバ20の制御部21は、FAQ候補の抽出処理(ステップS2-3)時に、QAペアに関連付けられた日時の時期的範囲でグループ分けを行なったうえでクラスタリングを行なう。次に、支援サーバ20の制御部21は、新たに生成したFAQ候補について、先行の時期的範囲に関連付けられたFAQであって、類似する先行FAQを検索する。そして、支援サーバ20の制御部21は、FAQ候補と先行FAQとが同じ内容と判定した場合、FAQ候補に対し先行FAQの内容を適用する。一方、FAQ候補と先行FAQとに内容の違いがあると判定した場合には、支援サーバ20の制御部21は、別のFAQ候補として取り扱い、管理端末10に確認を促す。そして、支援サーバ20の制御部21は、新たなFAQに登録する場合には、時期的範囲を関連付けて記録する。この場合、チャット支援装置30は、ユーザ端末12からの質問に対して、質問を受け付けた時期が含まれる時期的範囲のFAQの中から回答を行なう。なお、時期的範囲は、周期的に繰り返される期間であれば、月、曜日、時間帯、決算期等を用いることが可能である。
【0098】
・上記実施形態では、支援サーバ20の制御部21は、FAQ候補の抽出処理(ステップS2-3)、FAQ候補の確認処理(ステップS2-4)を実行する。ここで、質問状況に応じてFAQ候補を作成してもよい。質問状況としては、例えば、質問者の感情を用いてもよい。この場合には、支援サーバ20の制御部21は、質問状況として、例えば、テキストマイニングによるセンチメント分析等を用いて、質問時の緊張度を抽出する。また、質問に含まれる単語を用いて質問の属性を特定してもよい。質問の属性を特定するために、例えば、支援サーバ20の制御部21が、急ぎの内容を示す用語「至急」等を、質問状況に応じてグループを分ける単語辞書に定義しておく。そして、支援サーバ20の制御部21は、緊張度に応じてQAペアのグループ分けを行ない、グループ毎にQAペアを用いてFAQ候補を作成する。そして、支援サーバ20の制御部21は、新たなFAQに登録する場合には、質問状況を関連付けて記録する。この場合、チャット支援装置30は、ユーザ端末12からの質問に対して、質問状況を特定し、この質問状況のFAQを用いて回答を行なう。
【0099】
また、質問状況を階層化して、FAQを作成してもよい。ここでは、質問状況に応じて、複数階層のQAペアを分類し、階層毎のQAペアを用いて、FAQ候補を作成する。例えば、質問状況は、質問に対する回答で求められる詳しさを用いる。この詳しさについては、例えば、ユーザの質問文において使用されている単語量、構文の長さ等の指標を用いて回答に求められる詳しさを推定する。次に、チャット支援装置30は、回答に求められる詳しさの推定値に応じて、下位階層や上位階層のFAQ候補を用いる。そして、支援サーバ20の制御部21は、新たなFAQに登録する場合には、詳しさの推定値と階層化されたFAQを関連付けて記録する。この場合、チャット支援装置30は、ユーザ端末12からの質問に対して、求められる回答の詳しさを推定し、この推定値に応じた階層のFAQを用いて回答を行なう。
【0100】
また、質問状況として、質問者のレベルを用いてもよい。この場合には、例えば、支援サーバ20の制御部21は、質問者のWeb検索履歴等を取得し、検索結果の閲覧状況に応じて質問者のレベルを予測する。ここでは、検索結果に含まれる内容に応じて、質問者を階層化した「入門」、「中級」、「上級」等のレベルを特定する。そして、支援サーバ20の制御部21は、質問者のレベルに応じてQAペアのグループ分けを行ない、グループ毎にFAQ候補を作成する。
【0101】
・上記実施形態では、チャット支援装置30は、ユーザ端末12からの質問に対して、FAQを用いて回答を行なう。ここで、ユーザの発話の入力途中で、共通する単語が質問に含まれるFAQを特定し、ユーザ端末12に入力候補を出力するようにしてもよい。そして、チャットボット31は、質問の構文解析を行ない、発話の入力が完了したと判定した場合に、FAQの検索を行なう。これにより、ユーザの入力を効率化することができる。
【0102】
・上記実施形態では、チャットボット31は、状況に応じて、チャットの回答権をオペレータ端末11に引き継ぐ(エスカレーション)。ここで、チャット支援装置30が、オペレータの回答を支援するようにしてもよい。この場合は、チャット支援装置30は、質問と類似度が高いQAペアを、QAペア情報記憶部22から取得する。そして、チャット支援装置30は、取得したQAペアをオペレータ端末11に表示する。これにより、FAQが作成されていないQAペアを用いて、回答を支援することができる。
【0103】
・上記実施形態では、支援サーバ20の制御部21は、FAQ詳細の表示処理を実行する(ステップS4-8)。ここで、QAペアにおいて、質問者による連続した質問が含まれる場合には、時間的に後続の質問に重み付けを行なうようにしてもよい。例えば、順番を並び替えて、重み付けが高い質問を優先的に先頭に表示するようにしてもよい。
【0104】
・上記実施形態では、FAQ抽出結果画面において完了入力が行なわれた場合、支援サーバ20の制御部21は、登録処理を実行する(ステップS4-9)。ここで、完了入力されたFAQと、既に登録されているFAQとを比較し、矛盾の有無を確認するようにしてもよい。具体的には、支援サーバ20の制御部21は、分散表現において類似度が高いFAQを検出した場合には、管理端末10にアラートを出力する。そして、FAQの管理者に、矛盾の有無を確認させる。
【0105】
・上記実施形態では、支援サーバ20の制御部21は、登録処理を実行する(ステップS4-9)。ここで、支援サーバ20の制御部21は、作成したFAQを、公開するウェブページ等に自動反映させてもよい。
【0106】
・上記実施形態では、FAQ記憶部32には、チャットボット31が用いるFAQに関するFAQ管理レコードが記録される。ここで、定期的に、FAQ管理レコードをメンテナンスするようにしてもよい。例えば、支援サーバ20の制御部21は、FAQ管理レコードに含まれる単語において、単語辞書を用いて、要注意単語を検出し、メンテナンス対象として特定する。要注意単語としては、例えば、旧製品の名称、制度の変更に関連する単語等を用いることができる。また、FAQ記憶部32に、各FAQの利用履歴を記録し、利用頻度が閾値よりも下がったFAQをメンテナンス対象として特定するようにしてもよい。
【0107】
また、チャット支援装置30において、ユーザの質問に対して回答したFAQの利用数をFAQ毎に記録し、この利用数の偏りを検知するようにしてもよい。この場合、支援サーバ20の制御部21は、FAQの利用数について、統計的な偏りを評価する。そして、利用数が偏っているFAQを検知した場合、支援サーバ20の制御部21は、このFAQに紐づくQAペアを参照し、サブクラスタを生成することにより、FAQを細分化する。
【符号の説明】
【0108】
10…管理端末、11…オペレータ端末、12…ユーザ端末、20…支援サーバ、21…制御部、211…取得部、212…QAペア作成部、213…FAQ作成部、214…表現分析部、215…クラスタリング部、22…QAペア情報記憶部、23…学習結果記憶部、30…チャット支援装置、31…チャットボット、32…FAQ記憶部、33…チャット記憶部。