JP7182923B2 - 情報検索システム - Google Patents

情報検索システム Download PDF

Info

Publication number
JP7182923B2
JP7182923B2 JP2018129542A JP2018129542A JP7182923B2 JP 7182923 B2 JP7182923 B2 JP 7182923B2 JP 2018129542 A JP2018129542 A JP 2018129542A JP 2018129542 A JP2018129542 A JP 2018129542A JP 7182923 B2 JP7182923 B2 JP 7182923B2
Authority
JP
Japan
Prior art keywords
query
model
information
search
knowledge
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018129542A
Other languages
English (en)
Other versions
JP2020009140A (ja
Inventor
建太郎 降幡
剛 永井
歩 清水
アルマン シモン アリマミ ジリエ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Digital Solutions Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp, Toshiba Digital Solutions Corp filed Critical Toshiba Corp
Priority to JP2018129542A priority Critical patent/JP7182923B2/ja
Priority to PCT/JP2019/025848 priority patent/WO2020009027A1/ja
Publication of JP2020009140A publication Critical patent/JP2020009140A/ja
Application granted granted Critical
Publication of JP7182923B2 publication Critical patent/JP7182923B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9038Presentation of query results

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明の実施形態は、任意のテキストデータに対するナレッジ情報を提供する技術に関する。
従来からFAQを利用した対話支援技術がある。また、FAQが質問文に対する回答として適切であるかなどを評価して、質問文とFAQの組を学習データとして作成し、お客様の質問に対して回答精度を向上させている。
特開2006-119697号公報 特開2003-006207号公報
発話者などの問合せを行う者が意図する問合せ内容の選別精度を向上させつつ、意図する問合せに対するナレッジ候補の抽出精度を向上させることができる情報検索システムを提供する。
実施形態の情報検索システムは、任意の所定単位の一連のテキストデータが入力され、所定の記憶領域から前記テキストデータに応じたナレッジ情報を検索する情報検索装置である。本装置は、テキストデータに対し、前記ナレッジ情報を検索するためのクエリらしさを評価する第1モデルと、前記第1モデルを用いて、前記ナレッジ情報を検索するためのクエリ候補を生成するクエリ生成部と、前記ナレッジ情報の前記クエリ候補に対する検索結果としてのもっともらしさを評価する第2モデルと、前記第2モデルを用いて、前記クエリ候補に関連する第1ナレッジ情報を抽出する第1検索部と、前記クエリ候補と、前記第1ナレッジ情報とを所定の表示領域に出力する第1出力部と、前記第1ナレッジ情報が表示された前記表示領域における前記クエリ候補に対するクエリ選択履歴を取得し、このクエリ選択履歴に基づき選択クエリ候補に関連する第2ナレッジ情報を、前記第2モデルを用いて抽出する第2検索部と、前記第2ナレッジ情報を前記表示領域に出力する第2出力部と、前記第1ナレッジ情報に対する、前記クエリ候補と前記第1ナレッジ情報との対応付け情報、または/および前記第2ナレッジ情報に対する、前記選択クエリ候補と前記第2ナレッジ情報との対応付け情報を含むナレッジ評価履歴を取得して前記第2モデルを更新する第2モデル更新部とを備えたことを特徴とする。
第1実施形態の情報検索システムのネットワーク構成図及び各装置の機能ブロック図である。 第1実施形態のオペレータ装置に表示される対話支援画面の一例を示す図である。 第1実施形態の対話支援画面における表示領域S1の画面例である。 第1実施形態の対話支援画面における表示領域S1の画面例と表示領域S2との関係を示す図である。 第1実施形態のクエリモデルを使用して抽出された問合せ内容の一例を示す図である。 第1実施形態の対話支援機能の処理フローを示す図である。 第1実施形態の各種テーブル及び情報の一例を示す図である。 第1実施形態の各種テーブル及び情報の一例を示す図である。 第1実施形態の分類段階の処理フローを示す図である。 第1実施形態の更新段階の処理フローを示す図である。 第1実施形態のクエリ候補の生成処理フローを示す図である。 第1実施形態のクエリ候補の検索処理フローを示す図である。 第1実施形態のクエリモデル更新処理フロー(a)、検索モデル更新処理フロー(b)を示す図である。 第1実施形態の各種テーブル及び情報の一例を示す図である。 第1実施形態の各種テーブル及び情報の一例を示す図である。 第2実施形態の対話支援情報検索システムのネットワーク構成図及び各装置の機能ブロック図である。 第2実施形態のオペレータ装置に表示される対話支援画面の一例を示す図である。 第2実施形態の対話支援機能の処理フローを示す図である。 第2実施形態のFAQデータベースの一例を示す図である。 第2実施形態の各種テーブル及び情報の一例を示す図である。 第2実施形態のキーワード抽出処理のフローチャートを示す図である。 第2実施形態の各種テーブル及び情報の一例を示す図である。 第2実施形態のクエリ候補の検索処理フローを示す図である。 第2実施形態の分類段階の処理フローを示す図である。 第3実施形態の対話支援情報検索システムのネットワーク構成図及び各装置の機能ブロック図である。 第3実施形態の対話支援機能の処理フローを示す図である。 第3実施形態の各種テーブル及び情報の一例を示す図である。 第3実施形態のFAQの新規登録処理を示すフローチャートである。 第3実施形態のFAQの削除処理を示すフローチャートである。 第3実施形態のFAQの修正/更新処理を示すフローチャートである。 第3実施形態のFAQ検索ミスヒット画面の一例である。 第3実施形態のFAQ作成画面の一例を示す図である。 第3実施形態のFAQ削除リスト表示画面の一例を示す図である。 第3実施形態の検索モデル更新処理を示すフローチャートである。 第3実施形態のFAQ改善リスト画面の一例を示す図である。 第3実施形態のFAQ修正画面の一例を示す図である。 第1~第3実施形態における管理者用モニタリング画面の一例を示す図である。
以下、実施形態につき、図面を参照して説明する。
(第1実施形態)
図1から図13は、第1実施形態の情報検索システムを示す図である。図1は、本実施形態の情報検索システムの構成図である。オペレータ装置300は、情報検索装置100と接続され、情報検索装置100は、オペレータとお客様(カスタマー)との間の対話支援機能を提供する。なお、本実施形態では、コンタクトセンターを構成する複数のオペレータの対話支援を一例に説明しているが、これに限らない。例えば、直接カスタマーと対面して対話するケースであっても適用可能である。
なお、本実施形態では、カスタマーとオペレータとの対話を一例に本システムについて説明するが、オペレータを介さずにカスタマーが直接情報検索装置100に対してテキストデータを入力し、情報検索装置100が自動的にナレッジ情報を提供するように構成することもできる。この場合、オペレータが介在しないため、例えば、Webサイトの問合せ機能として本システムを構築することができる。また、カスタマーが、過去の問合せ履歴を参照してその中から選択したテキストデータ(例えば、アフターコールレポートや問い合わせ履歴)を後述する対話テキストデータとして入力し、情報検索装置100が自動的にナレッジ情報を提供するように構成することもできる。
また、ナレッジ情報の一例として、本実施形態では、FAQを一例に説明するが、例えば、マニュアルや説明書などの製品やサービスに関する資料もナレッジ情報として、適用することができる。ナレッジ情報はテキスト情報に限らず、画像、音声、あるいはメタデータ等の人によって参照される形式で蓄えられる電子データ群である。また、FAQは質問と回答の組とに構造化されたナレッジを指し、テキスト情報に限られない。
オペレータ装置300は、対話装置310、制御装置320、表示装置330及び入力装置340を備えている。オペレータとお客様との間の対話は、音声通話による対話、チャットによる対話、電子メールによる対話などが含まれる。対話装置310は、これらの対話機能を提供すると共に、生成部310Aを備えており、お客様の問合せ内容をテキストデータで抽出して対話テキストデータを生成し、情報検索装置100に出力する。
音声通話による対話の場合、対話装置310は、コンタクトセンター内のPBX(PrivateBranch eXchange)と接続され、ACD(自動着信呼分配装置)によって分配された着信呼に応答する電話装置である。お客様の電話機とコンタクトセンターとは、公衆交換電話網(PSTN)やIP網を通じて接続される。また、生成部310Aは、通話音声データから対話テキストデータを生成する。例えば、生成部310Aが音声認識機能を備え、通話音声データを音声認識処理して対話テキストデータを生成してもよい。また、生成部310Aは、個別の音声認識処理装置(コンタクトセンター内又は外部のサーバ)に通話音声データを出力して音声認識結果を取得し、対話テキストデータを生成するようにしてもよい。
チャットによる対話は、IP(Internet Protocol)網を通じたデータ通信による対話であり、テキストチャット、ボイスチャット、ビデオチャットなどが含まれる。例えば、WebRTC(Web Real-Time Communication)方式で、ブラウザを用いたチャット機能がある。この場合、対話装置310は、コンタクトセンター内の内部ネットワークを通じて外部のIP網に接続可能なコンピュータ装置である。なお、ボイスチャットやビデオチャットの場合、生成部310Aは、上述した音声認識処理を通じた対話テキストデータを生成する。テキストチャットの場合、生成部310Aは、所定のテキストチャット画面に表示された対話テキストデータをそのまま取得することができる。なお、電子メールによる対話のケースでも、対話装置310は、コンピュータ装置が適用され、生成部310Aも、電子メールの内容を抽出することで対話テキストデータを取得することができる。
制御装置320は、表示装置330に対する表示制御及び入力装置340に対する操作入力制御を行う。制御装置320は、オペレータ装置300の全体の制御を司り、対話装置310に対して連携した制御を行うことが可能である。
なお、本実施形態では、オペレータ装置300と対話装置310とが一体に構成された態様を例示しているが、例えば、オペレータ装置300に対して対話装置310を個別の装置として構成してもよい。つまり、本実施形態のオペレータ装置300は、情報検索装置100に対するオペレータ側情報検索端末として構成されていればよい。オペレータ装置300とは個別の対話装置310(生成部310A)から出力された対話テキストデータが、情報検索装置100に入力され、オペレータ装置300は、情報検索装置100から提供される対話支援機能を享受する、制御装置320、表示装置330及び入力装置340を備えるコンピュータ装置として構成することができる。
情報検索装置100は、通信制御装置110、制御装置120及び記憶装置130を含んで構成されている。通信制御装置110は、オペレータ装置300や対話装置310に対する通信インタフェース部である。
制御装置120は、クエリ生成部121、検索部122、クエリモデル更新部(第1更新部)123及び検索モデル更新部(第2更新部)124を備える。記憶装置130は、クエリモデル(第1モデル)131、検索モデル(第2モデル)132、FAQデータベース(FAQDB)133が格納されている。
クエリモデルとはテキストのクエリらしさを表す内部表現のことであり、本実地形態においては確立モデルで説明しているが、規則集合であるか、確率的モデルであるか、等は問わない。すなわち、クエリモデルは、クエリ1、クエリ2、・・・、クエリNのように複数のクエリについてそれぞれのクエリらしさを表す内部表現の集合であってもよい。
検索モデルとは、検索対象であるそれぞれのナレッジ情報を表す内部表現である。一般にテキスト検索では、重要な単語(索引語と呼ばれる)の集合が内部表現として用いられることが多いが、これに限定されない。
以下の説明では、オペレータとカスタマーとが対話して生成された時系列の対話テキストデータ群を一例に、本実施形態の対話支援機能を説明する。
図2は、対話支援画面の一例を示す図であり、オペレータ装置300の表示装置330に対話支援画面が表示される。対話支援画面は、対話内容を表示する表示領域S1、推奨FAQを表示する表示領域S2及び検索FAQを表示する表示領域S3を含んでいる。これら各表示領域S1~S3に表示される各情報は、情報検索装置100から提供される情報である。
表示領域S1は、一連の発話テキストデータU群の各発話テキストデータの中からクエリモデル131を使用して抽出(選抜)された発話テキストデータが表示される。なお、図2の例では、オペレータの発話内容は、点線で示している。表示領域S1は、デフォルトでオペレータ装置300の表示装置330に表示されるように制御される。
表示領域S2は、クエリモデル131に基づいて抽出された発話テキストデータをクエリとして、検索モデル132を使用して検索されたFAQ検索結果が表示される。表示領域S2に表示されるFAQは、表示領域S1に表示される発話テキストデータのうちでクエリモデル131に基づくクエリ尤度が一番高い発話テキストデータを用いて、FAQデータベース133から自動検索して得られた推奨FAQ(rFA1~rFAn)である。表示領域S2は、デフォルトでオペレータ装置300の表示装置330に表示されるように制御される。クエリ尤度とは、ナレッジ情報を検索するためのクエリらしさを表す尤度を示す。
表示領域S3は、表示領域S1に表示された発話テキストデータのうち、オペレータによる選択操作によって選択された発話テキストデータに対するFAQ検索結果を表示する領域である。つまり、オペレータの発意による検索要求に基づいて情報検索装置100から提供される検索FAQが表示され、検索モデル132を使用した検索処理は推奨FAQと同様であるが、オペレータによる発話テキストデータの選択過程を経て提供される検索FAQが、表示領域S3に表示される。表示領域S3は、デフォルトでオペレータ装置300の表示装置330に表示されるように制御したり、表示領域S1に対するオペレータの選択操作を契機に表示装置330に表示されるように制御してもよい。
表示領域S2,S3は、FAQ表示領域を含む。FAQ表示領域は、「Q(Question)」に対応する質問領域f1と、「A(Answer)」に対応する回答領域f2と、を含んでいる。FAQ表示領域において、各FAQそれぞれは、質問領域f1だけが表示され、対応する回答領域が閉じた状態で表示されている。質問領域f1には、ボタンf11が設けられており、オペレータがボタンf11を選択すると、閉じていた回答領域f2が表示されるように制御される。逆に、回答領域f2が表示された状態において、ボタンf11を選択すると、回答領域f2を閉じることができる。
回答領域f2には、f21,f22、f23の各種ボタンが設けられている。ボタンf21は、「Suitable(いいね)」であり、提供されたFAQが参考になったなどのFAQの有用度をオペレータが上方(プラス)に評価するために使用される。ボタンf21は、「NotSuitable(よくないかも)」であり、ボタンf22とは逆に、提供されたFAQがあまり参考にならなかったなどのFAQの有用度をオペレータが下方(マイナス)に評価するために使用される。なお、ボタンf22は、任意であり、ボタンf21が設けられている場合はボタンf22が設けられていない構成であってもよい。ボタンf21,f22は、FAQ評価受付部として機能する。
ボタンf23、「RequestForImprovement(改善要求)」であり、提供されたFAQを改善する必要があると判断した場合に使用される。オペレータによるFAQの改善要求は、履歴として蓄積され、後述する第3実施形態で説明するように、FAQデータベース133に格納されるFAQ情報自体の作成、編集、更新等に利用される。
図3は、クエリモデル131を使用して抽出された表示領域S1に表示される問合せ内容の一例を示す図である。対話装置310は、オペレータとカスタマーとの間でやり取りされた全ての発話を、対話テキストデータとして時系列に、情報検索装置100に出力する。情報検索装置100では、時系列順のこれら複数の対話文(対話テキストデータ群U)の中から、問合せに関連する対話テキストデータを抽出してオペレータ装置300に送信し、表示領域S1に表示させる。
このとき、問合せに関連する対話テキストデータであるか否かを判別するために、本実施形態では、クエリモデル131を使用する。クエリ生成部121は、クエリモデル131を使用して、入力された一連の発話テキストデータU={U1,・・,U4}の各発話テキストデータのクエリ尤度(クエリらしさを表す数値)を算出し、FAQ候補を抽出するための有益な問合せ発話であるかを評価する。クエリ生成部121は、クエリ尤度に基づいて一連の発話テキストデータU={U1,・・,U4}の中からクエリ候補Qcを抽出する。図3の例では、発話テキストデータU2,U3がそれぞれクエリ候補Q1,Q2として抽出され、制御装置120は、表示領域S1にクエリ候補Q1,Q2を含むクエリ候補リストを表示装置330に表示させる。このクエリ候補リストが、オペレータ装置300に表示されるカスタマーとの間の対話テキストデータとなる。クエリ候補の生成処理の詳細については、後述する。
なお、情報検索装置100に入力された時系列順のこれら複数の対話文(対話テキストデータ群U)をそのまま、時系列順に発話者が区別されるように表示される不図示の表示領域(発話テキストデータをそのまま出す領域)が、表示領域S1と分離して設けられるように構成してもよい。また、不図示のボタン選択操作に基づいて、発話テキストデータをそのまま出す領域と表示領域S1とが表示切替できるように構成することもできる。なお、入力される対話テキストデータ群U内の各テキストデータは、時系列順でなくてもよい。つまり、発話された順序は関係なく、所定の会話内容を一まとまりとした複数の対話テキストデータ群Uが情報検索装置100に入力されればよい。
図4は、本実施形態の対話支援機能の処理フローを示す図である。上述のように、情報検索装置100は、オペレータ装置300に付随する対話装置310から一連の発話テキストデータU={U1,・・,U4}を受信する(S101,図5のテーブル141)。クエリ生成部121は、クエリモデル131を使用してクエリ候補Qcを生成(抽出)する(S102,図5のテーブル142)。
制御装置120は、クエリ生成部121よって出力されたクエリ候補Qcのうち第1位のクエリ候補(例えば、テーブル142においてクエリ尤度が一番高いクエリ候補Q1)を検索部122に入力して、推奨FAQの検索処理(第1検索処理)を行わせるとともに(S103)、生成されたクエリ候補Qcをオペレータ装置300に送信し、表示領域S1(問合せ内容を表示する領域)にクエリ候補リストを表示させるように制御する(S105)。
ステップS103の推奨FAQ(第1ナレッジ情報)の検索処理は、検索部122によって遂行される。検索部122は、入力された第1位のクエリ候補Q1と検索モデル132とを用いて、FAQ候補のFAQID別に、検索の尤もらしさを表すスコアである検索尤度を算出し、FAQIDと検索尤度とを関連付けた組み合わせテーブルを作成する(図5のテーブル143)。検索尤度とは、ナレッジ情報のクエリ候補に対する検索結果としての尤もらしさを表す尤度であり、以降で説明する数式に限定されない。
そして、検索部122は、FAQデータベース133を参照し、作成した組み合わせテーブルのFAQIDに該当する「Q」と「A」を抽出し、{順位,FAQID,検索尤度,Q,A,対応クエリID}の組からなる推奨FAQ候補リスト(テーブル143)を生成する(S103)。順位は、検索尤度の高い順の順位であり、対応クエリIDは、検索元となったクエリ候補Q1を識別するためのIDである。検索処理の詳細については、後述する。なお、FAQ候補リストは、後続の検索モデル更新処理の学習データの元となるため、FAQ候補と検索元クエリとの紐づけ情報を保持している。テーブル143では、対応クエリ列が紐づけ情報となっている。
制御装置120(出力部)は、生成された推奨FAQ候補リストを、オペレータ装置300に送信し、オペレータ装置300の表示領域S2(推奨FAQを表示する領域)に、推奨FAQ候補リストを表示させるように制御する(S104)。オペレータ装置300は、受信した推奨FAQ候補リストを表示領域S2に表示する。オペレータは、表示領域S1において対話テキストデータ(クエリ候補)を確認しながら、表示領域S2内の各推奨FAQを参照することができる。これにより、オペレータは、表示された推奨FAQ候補リスト内の各FAQを参考にカスタマーへの回答を行うことができ、オペレータとカスタマーとの間の円滑な対話を支援することができる。
なお、情報検索装置100は、推奨FAQ候補リストに含まれるFAQの数を適宜設定することができる。例えば、上述の第1検索処理において抽出された全てのFAQ候補を含むように推奨FAQ候補リストを生成して、オペレータ装置300に表示させるように制御してもよいし、各FAQ候補の検索尤度に対して閾値を設けて、閾値を超えるFAQ候補や、検索尤度の順位において上位数件のFAQ候補などを抽出するように、一部を取捨選択した推奨FAQ候補リストを生成するように構成してもよい。
本実施形態では、オペレータ装置300に付随する対話装置310から一連の発話テキストデータU={U1,・・,U4}を受信すると、クエリ生成部121によるクエリ候補Qcの生成処理及び推奨FAQの検索処理(推奨FAQ候補リストの生成処理)が自動的に実行され、オペレータ装置300の表示領域S1,S2それぞれに、クエリ候補Qcと推奨FAQが表示される。
次に、FAQ表示領域が備えるFAQ評価受付部は、オペレータからのFAQ候補リスト中のそれぞれのFAQについての評価を受け付ける(S109)。受け付ける評価は、「Suitable」ボタンf21だけを用意して1値の評価としたり、「Suitable」ボタンf21および「NotSuitable(よくないかも)」ボタンf22を用意して2値の評価としたり、あるいは数値での入力を受け付けても良い。後述する検索モデル132の更新処理において、FAQ評価値(ナレッジ評価履歴)による学習データへの重み付けの設定に基づいて決定すればよい。この例では、「Suitable」ボタンf21を用意し、ボタンf21が押された場合に、評価値を「10」としている。
対話テキストデータ群Uの元となる音声を対話装置310を介して聞いたのち、オペレータが、自動抽出されたFAQ候補リスト(テーブル143)におけるFAQID5が最も適切な検索結果であると判断し、オペレータ装置300において、FAQID5に対応付けられたFAQ表示領域の「Suitable」ボタンf21を押したとする。オペレータ装置300は、ボタンf21の選択操作に基づいて、FAQ評価結果{FAQID5,評価値「10」}を、情報検索装置100に送信する。
情報検索装置100において制御装置120は、受信したFAQ評価結果を用いて、テーブル144のように{QID,FAQID,学習重み}の組から成る検索モデル学習データを作成する(S110)。ここで学習重みには、評価値「10」をそのまま用いることにする。
検索モデル更新部124は、生成された検索モデル学習データを用いて検索モデル132を更新する(S111)。検索モデル132の更新後、同一(もしくは類似する)発話がカスタマーによってなされ、同一(もしくは類似する)テキスト情報がクエリ生成部121に入力された場合、更新前と同様にクエリQ1が検索部122に入力されるが、検索結果はFAQID5のスコア(検索尤度)がより大きくなり、FAQID5が第1位のFAQ候補となる(テーブル145)。すなわち、オペレータによって正の評価をされたFAQが、次回以降、より上位に検索されやすくなるように検索モデル132が更新されている。なお、検索モデル132の更新処理の詳細については、後述する。
一方で、ステップS102から分岐した後の処理について詳細に説明する。表示領域S1に表示された複数の発話テキストデータの中から、オペレータによって選択された発話テキストデータをクエリ候補として検索部122に入力して、検索FAQ(第2ナレッジ情報)の検索処理(第2検索処理)を実行可能に制御する。オペレータ装置300は、表示領域S1内のクエリ候補が選択された場合、選択されたクエリ候補又は/及び選択されたクエリ候補を識別するIDを、情報検索装置100に送信する。
図4のステップS106において、情報検索装置100は、オペレータ装置300から表示領域S1内のクエリ候補に対する選択情報を受信すると(S106のYES)、選択されたクエリ候補(Qselect)に基づく検索FAQの検索処理(第2検索処理)を遂行し、検索FAQ候補リストを生成する(S107)。本実施形態の第2検索処理は、上述した第1検索処理と同じであり、検索部122に入力されるクエリ候補が異なるだけである。制御装置120(第2送信部)は、生成された検索FAQ候補リストを、オペレータ装置300に送信し、オペレータ装置300の表示領域S3(検索FAQを表示する領域)に、検索FAQ候補リストを表示させるように制御する(S108)。オペレータ装置300は、受信した検索FAQ候補リストを表示領域S3に表示する。
なお、表示領域S1内において、例えば、推奨FAQを抽出するために使用されたクエリ候補は選択できないように制御することができる。つまり、推奨FAQを抽出するために使用されたクエリ尤度が第1位のクエリ候補は、選択できないように非アクティブに表示するように制御することができる。また、他の例としては、推奨FAQを抽出するために使用されたクエリ候補も選択可能に制御しつつ、検索FAQの検索処理では、推奨FAQに対する同じクエリ候補か否かを判別し、同じクエリ候補である場合、検索FAQの検索結果として「該当なし」を出力して、表示領域S3に表示させるように制御することもできる。
また、オペレータは、表示領域S1内において、2つ以上の複数の対話テキストデータをクエリ候補として選択できるようにしてもよいし、一つのクエリ候補のみ選択できるようにしてもよい。
例えば、オペレータが、テーブル142のクエリ候補リストの中からクエリ候補Q2を選択したシナリオを考える。オペレータ装置300は、クエリ候補Q2の選択結果を情報検索装置100に送信し、情報検索装置100の制御装置120は、選択結果に基づき、上述した第2検索処理及び検索FAQ候補リストの提供処理を行うとともに、クエリモデル学習データ作成処理及びクエリモデル更新処理を実行する。
クエリモデル学習データ作成とそれに続く処理について説明する。情報検索装置100において、制御装置120は、オペレータ装置300からオペレータの選択結果「Q2」を受信すると、テーブル142からクエリIDが一致する行を参照し、{テキスト,クエリカテゴリ,学習重み}の組であるクエリモデル131の学習データ(図6のテーブル146)を作成する(S112)。
ここで、クエリカテゴリは、クエリであるか否かを表す2値{Q,¬Q}データとする。オペレータが選択した発話テキストをクエリとして正の追加学習を行うために、「Q」を値として入れる。続いて、制御装置120、クエリモデル学習データ(図6のテーブル146)をクエリモデル更新部123に入力し、クエリモデル131を更新する(S113)。
クエリモデル131の更新後、新たに発話テキストデータ群Uがクエリ生成部121に入力された場合に出力されるクエリ候補リストは、図6のテーブル147のようになる。クエリモデル更新前のクエリ候補リストは、図5に示すように生成元テキストU2に対応するクエリのスコア(クエリ尤度)が、生成元テキストU3のスコアよりも高かったが、クエリモデル更新後は逆となり、生成元テキストU3に対応するクエリのスコアが高くなり、生成元テキスト(発話テキストデータ)U3が第1位のクエリ候補となる。クエリモデル更新処理の詳細は後述する。
次に、第2検索処理によって提供される検索FAQ候補リストの各FAQに対しても、オペレータは、FAQ評価を行うことができる。ステップS107において、制御装置120は、図5のテーブル142のクエリIDが選択結果のクエリ「Q2」と一致する行を参照し、該当のクエリテキストデータのクエリID「Q2」を検索部122に入力する。検索部122は、クエリ候補Q2に対する検索結果であるFAQ候補リスト(図6のテーブル148)を生成する。制御装置120は、生成されたFAQ候補リストをオペレータ装置300に送信し、オペレータ装置300は、受信したFAQ候補リストを表示装置330の検索FAQ表示領域S3に表示する(S108)。
続いて、表示領域S3内の各FAQにおいてもFAQ表示領域内にFAQ評価受付部を備えているので、オペレータによる検索FAQ候補リスト中のそれぞれのFAQについての評価を受け付け、取得することができる(S109)。
オペレータが、対話装置310を介して聞いた発話テキストデータ群Uの元となる音声内容に基づいて、例えば、テーブル148におけるFAQID2のFAQが最も適切な検索結果であると判断した場合、オペレータ装置300において、FAQID2のFAQ表示領域において「Suitable」ボタンf21を押したとする。すると、FAQ評価結果{FAQID2,評価値「10」}が、オペレータ装置300から情報検索装置100に送信される。情報検索装置100において制御装置120は、受信したFAQ評価結果とテーブル148の対応クエリIDを用いて、クエリテキストを紐づけ、図6のテーブル149のように{QID,FAQID,学習重み}の組から成る検索モデル学習データを作成する(S110)。ここで、学習重みは評価値「10」を用いることとする。検索モデル更新部124は、作成された検索モデル学習データを用いて検索モデル132を更新する(S111)。
検索モデル132の更新前と同じクエリ候補Q2が検索部122に入力された場合、FAQID2のスコアがより大きくなり、FAQID2が第1位候補となるFAQ候補リストが生成される(図6のテーブル150)。すなわち、オペレータによって正の評価をされたFAQが、次回以降、より上位に検索されやすくなるように検索モデル132が更新されている。
このように本実施形態では、対話装置310から入力されるオペレータとカスタマーとの間の一連の発話テキストデータU群の中からクエリモデル131を使用してクエリ候補Qcを生成する処理を行うと共に、検索モデル132を使用して、生成されたクエリ候補から自動的に推奨FAQを提供する第1検索処理と、同様に検索モデル132を使用して、生成された発話テキストデータの中からオペレータによって選択されたクエリ候補に基づいて検索FAQを提供する第2検索処理と、を実行する。
そして、本実施形態では、表示領域S2,S3に表示されるFAQの表示領域には、FAQ評価を行うための評価入力ボタンが設けられ、オペレータがレコメンドされたFAQ又は/及び検索されたFAQの各FAQを、評価することができる。このFAQ評価結果と前記選択されたクエリ候補との紐づけ情報を利用して、該FAQ評価結果と前記選択されたクエリ候補との組が、検索モデル132の学習データとして活用され、検索モデル132を更新する。
また、オペレータによって選択されたクエリ候補の選択履歴は、クエリモデル131の学習データとして活用され、クエリモデル131を更新する。
検索モデル132の更新後、クエリモデル学習データ作成及びクエリモデル131の更新処理が実行されない場合、同一(もしくは類似する)発話がカスタマーによってなされても、一連の発話テキストデータに対する第1位のクエリ候補は、クエリモデル更新前と変わらないため、推奨FAQの抽出結果には反映されない。すなわち、クエルモデル学習データの収集と、検索モデル学習データの収集とを両方同時に行う必要がある。
したがって、単に、クエリ生成部121と検索部122とを組み合わせても、検索モデル132とクエリモデル131とが別個に更新されてしまうと、発話テキストデータのクエリとしての精度が向上しない課題がある。
従来、オペレータが情報検索装置100を利用中に、クエリモデル131と検索モデル132の各モデルの出力結果を別々に評価させることにより、各学習データを収集する仕組みは存在した。しかしながら、オペレータがお客様との応対中に、両方の評価を強いることは作業負担を大きく、オペレータ業務に支障が生じかねない。情報検索装置100の実運用中に、オペレータにデータの評価を十分な回数実施させて、十分な量の学習データを収集すること自体が難しかった。
本実施形態では、オペレータの選択操作によって受け付けた選択クエリに基づくクエリモデル131の学習データ作成処理を行うだけでなく、検索モデル132の学習データにおけるFAQとの対応付けにも用いている。これにより、ユーザーの学習データ作成作業が、従来よりも一層簡便になっている。
さらに、本実施形態の情報検索システムは、オペレータによるクエリ候補の選択を可能にして、オペレータによるクエリ候補の選択を受け付けた後、第2検索処理(S107)に続く検索モデル学習データ作成処理(S110)及び検索モデル132の更新処理(S111)と、クエリモデル学習データの作成処理(S112)及びクエリモデル131の更新処理(S113)とが平行して連動させる仕組みを実現している。
一連の対話テキストデータ(一連のカスタマーの発話の認識結果テキスト)から生成したクエリ候補について、オペレータがクエリ候補を選択した結果に基づいてクエリモデル131を更新し、検索結果のFAQ候補を評価した結果と、紐付けられたクエリ候補の組に基づいて検索モデル132を更新することにより、次に同一あるいは類似する発話をカスタマーが発話した場合に、オペレータがクエリ候補を選択することなく、正の(負の)評価結果を得たFAQが検索結果のより上位に(下位に)検索されるようになる。
言い換えれば、カスタマーが意図する問合せに対するFAQ候補の抽出精度が検索モデルの更新によって向上するとともに、オペレータによるクエリ候補の選択履歴に対するクエリモデル131の更新によって、クエリ候補としての順位がFAQ候補の検索と連動して更新されるため、推奨FAQの抽出精度が向上する。
さらに、本実施形態におけるナイーブベイズ分類器のように、追加学習の計算コストが低い分類手法を用いることで、リアルタイムに検索モデル132の更新と、クエリモデル131を更新とを並行して行うように構成してもよい。これにより、オペレータとお客様との対話の最中に、オペレータのクエリ候補の選択結果及びFAQの評価結果が両モデルに反映され、すぐに同じ(あるいは類似の)発話テキストデータの入力に対する推奨FAQの抽出精度が向上する。
本実施形態では、対話支援画面に次の仕組みも備えている。これによりオペレータによるカスタマーからの問い合わせ内容の確認や、カスタマーからの問い合わせに対する過去の推奨FAQを同一画面で簡単に確認することができ、オペレータの作業効率を図ることができる。
図2B、表示領域S1の画面例であり、図2Cは、図2Bに示す画面例と表示領域S2との関係を示す図である。図2Aの表示領域S1に表示されている問い合わせ内容は、オペレータとカスタマーとの一連の会話から、クエリモデル131を使用して抽出された発話テキストデータを表示している。そのため、オペレータとカスタマーの会話が続いている間は逐次表示領域S1に表示される発話テキストデータは増えていくため、最新の発話テキストが表示領域S1の最下段に表示される。図2Bに示すように、この状況において、オペレータが表示領域S1に表示されている最新の発話テキストではなく、過去の発話テキストを参照するために不図示の画面内のスクロールバーを操作した場合や、表示領域S1に表示されている特定の発話テキストを指示した場合は、その後にオペレータとカスタマーの会話が継続した場合でも、スクロールバーの操作により表示した状態の表示またはオペレータが発話テキストを特定した時点の表示状態を保つ、過去履歴参照モードに自動的に切り替わるように制御装置320により制御される。
すなわち、過去履歴参照モードに切り替わった後のオペレータとカスタマーとの最新の会話は表示領域S1には表示されず、オペレータがスクロール操作により表示した画面またはオペレータが発話テキストを特定した時点の画面がそのまま表示されている状態となる。
なお、過去履歴参照モードにおいても、スクロール操作は受け付けており、手動でのスクロールアップおよびスクロールダウンは可能である。
また、過去履歴参照モードの起動により表示領域S1の表示は固定されている状態であるが、その間のオペレータとカスタマーとの会話が継続している場合には、過去履歴参照モード状態で表示されている画面(表示領域S1)には最新の発話テキストは表示されていないため、当該最新の発話テキストが参照できるように表示領域S1にスクロールダウンするためのボタンを表示する。オペレータが当該スクロールダウンするためのボタン操作をした場合、あるいはスクロール操作により、スクロールバーが最下段にスクロールダウンされた場合には、過去履歴参照モードは解除され通常の表示モード、すなわち最新の発話テキストが最下段に表示される状態となる。
尚、過去履歴参照モードの状態で、オペレータが特定の発話テキストを指示操作すると、表示領域S1とは別の表示領域(第5表示領域)に、指示された発話テキストに対して提示された推奨FAQが表示される(図2C)。
<分類器ならびにモデルの説明>
本実施形態のクエリ候補生成処理および検索処理は、入力テキストを文書と見做し、文書を適切なカテゴリに振り分ける文書分類として捉える。クエリ候補生成処理は、入力テキストをクエリかクエリでないか2つのカテゴリに振り分る問題であり、検索処理は、入力テキストを各FAQに振り分ける問題である。文書分類には様々な手法があるが、ここでは、機械学習による分類手法のひとつであるナイーブベイズ分類器を一例に説明する。なお、分類手法は、ナイーブベイズ分類器に限定されるものではなく、他の公知の手法を適用することもできる。
文書分類の問題は、文書dが与えられたときのカテゴリcの事後確率を最大化するようなカテゴリcを見つける問題として、以下の式(1)のように定式化される。
Figure 0007182923000001
ナイーブベイズ分類器では、これをベイズの定理を用いて以下の式(2)のように置き換える。
Figure 0007182923000002
ここで、同一文書dのもとでのカテゴリの比較であるため、P(d)は無視できる。したがって、以下の式(3)となる。
Figure 0007182923000003
ここで、P(d|c)のモデル化には多項モデルを用いる。
多項モデルは、文書中の各位置についてどのような単語が起こるかをモデル化するモデルであり、語彙Vの中から一つの単語を選ぶ操作を|d|回繰り返すことで文書を生成する。ここで、|d|は文書d内の単語数を表す。(参考文献;自然言語処理のための機械学習入門,P.111 高村大也, コロナ社, 2010)
そうすると、P(d|c)は、カテゴリが与えられたときの単語の事後確率P(wi|c)の積で表される。
Figure 0007182923000004
ただし、
Figure 0007182923000005
とする。これを対数化すると、以下の式(5)となる。
Figure 0007182923000006
したがって、以下の式に整理することができる。
Figure 0007182923000007
ここで、カテゴリ尤度Lcは、以下の式で表される。
Figure 0007182923000008
Figure 0007182923000009
Figure 0007182923000010
wiは文書dの出現単語、Mは文書dの出現単語数、dcはカテゴリcの文書数、freq(wi,c)はカテゴリcにおける単語wiの出現頻度である。
また、Vは全文書の単語の異なり数(語彙数)、αは補正パラメータである。これらは、学習データにおいてfreq(wi,c)=0の場合に、確率値が0にならないように補正するためのパラメータである。この補正手法は、加算スムージングと呼ばれる。
上述の検索モデル132やクエリモデル131におけるモデルとは、学習データから算出されたlnP(wi|c)およびlnP(c)の表のことを指す。
さらに、分類先のカテゴリ数が2つであり、一方のカテゴリに文書を振り分ける場合は、以下の式(7)によって分類先を決定できる
Figure 0007182923000011
Figure 0007182923000012
式(7)を対数化すると、
Figure 0007182923000013
Figure 0007182923000014
Figure 0007182923000015
Figure 0007182923000016
そして、クエリ候補生成処理におけるクエリの分類先は、クエリである「Q」か、クエリでない「¬Q」かのいずれか一方への振り分けであるから、これを用いてクエリ尤度Lqを以下の式(9)のように定める。
Figure 0007182923000017
Figure 0007182923000018
Figure 0007182923000019
Figure 0007182923000020
ナイーブベイズ分類器の処理は、カテゴリへの分類のためのモデルの学習段階、文書をカテゴリへ分類する分類段階、追加の学習データを用いてモデルを更新する更新段階の3つの段階に分けられる。特に、本実施形態の各処理を理解するために重要な分類段階と更新段階について、以下に詳しく説明する。
(学習段階)
文書と分類先カテゴリの組からなる正解データを学習データとして、モデルを学習する。最初にすべての文書について単語列に分割し、カテゴリ別の出現頻度を数え、カテゴリ別単語頻度表を作成する。また、分類先カテゴリ別の文書の頻度も数えてカテゴリ別文書頻度表を作成する。そして、それぞれの表の値を式(6.2)ならびに式(6.3)に代入し、lnP(wi|c)およびlnP(c)を算出し、単語の対数事後確率表並びにカテゴリの対数周辺確率表に算出した値をセットする。
(分類段階)
図7は、分類段階の処理フローを示す図である。図7のフローチャートに沿って、分類段階の処理を説明する。前提として、分類先カテゴリはカテゴリセットCの要素であり、カテゴリ対数周辺確率表TCpとカテゴリのもとでの単語対数事後確率表TWpとが、学習段階において得られているものとする。
分類結果を格納するSを初期化する(S301)。続いて、入力テキストUを意味的なまとまりである単語単位に分割し、単語列w1,・・・wMを得る(S302)。
単語分割処理は、公知の形態素解析器を用いたり、文字N-gram単位を用いたり、さまざまな公知の手法によって実現できる。本処理において、必ずしもテキスト中の全単語を全て切り出す必要はなく、後続するクエリ生成処理において参照される単語情報のみ切り出せばよい。その後、後続処理に合わせて適切な正規化処理を施す。たとえば、「あえーと、」のような話し言葉に特有の表現を除去したり、動詞等の活用形を持つ品詞について原形や語幹のみ取り出したりする。
全てのカテゴリc1,・・・cKについて、順にcに代入し、ステップS304からS307までの処理を繰り返す(S303)。
まず、Lcの式(6.1)の右辺の第一項lnP(c)を、カテゴリ対数周辺確率表TCpを参照して抽出し、これをLcに初期値として代入する(S304)。次に、単語w1,・・・wMについて順にwiに代入し、S306からS307までの処理を繰り返す(S305)。lnP(wi|c)を、単語の対数事後確率表から読み込み、Lcに加算する(S306)。{カテゴリc、求めたカテゴリ尤度Lc}の組を順次Sに追加する(S307)。これをすべての単語について繰り返し(S305)、Lcを算出する。これを全てのカテゴリについて繰り返し(S303)、最後に、求めたSを出力とする。
(更新段階)
図8は、更新段階の処理フローを示す図である。図7のフローチャートに沿って、更新段階の処理を説明する。前提として、カテゴリ対数周辺確率表TCpおよびカテゴリのもとでの単語対数事後確率表TWpと、それらの算出元データであるカテゴリ別文書頻度表TCfおよびカテゴリ別単語頻度表TWfとが学習段階において得られているものとする。
学習データは、{文書ID(QID),カテゴリc,重みG}の組である。重みGは、同じ文書をG個追加することを表す。
更新処理では、追加学習データの文書の単語列w1,・・・wMおよび分類先カテゴリcに基づいて、lnP(wi|c)およびlnP(c)の値を再計算し、カテゴリ対数周辺確率表TCpおよびカテゴリのもとでの単語対数事後確率表TWpの値を更新する。
先にlnP(c)の値を求める。まず、カテゴリcに文書がG個追加されるため、TCf[c]の値をカテゴリ文書数dcに読み込み、G個加算したのち、TCf[c]に値を書き込む(S401)。更新したTCfを用いて各カテゴリの文書数dciを加算し、全文書数Dを求める(S402、S403、S404)。次に、式(6.3)にしたがって、全文書数DとステップS401で求めたdcとを用いてlnP(c)を算出し、TCp[c]に書き込む(S405)。
次に、lnP(wi|c)の値を求める。まず、TWfを更新する。分類段階で説明したような単語分割処理によって学習データの文書を単語列w1,・・・wMに分割する(S406)。カテゴリcにおけるwiの出現頻度をTWfから読み込み、freq(wi,c)にセットする。学習データに当該単語がG回出現したとみなし、Gを加算した結果でfreq(wi,c)を更新し、これをTWf[c,wi]に書き込む(S408)。ステップS408の処理を単語列中のすべての単語について繰り返す(S407)ことにより、TWfを更新する。
次に、更新したTWfを用いて更新したTWpを更新する。式(6.2)の分母の第一項であるΣ(j=1~V)freq(wi,c)を求める。これはカテゴリcにおける単語の総出現数であり、freq(c)と置き、0で初期化する(S409)。カテゴリcでの出現頻度TWf[c,wi]を読み込み、freq(wi,c)にセットし、freq(c)を加算する。加算結果を用いてfreq(c)を更新する(S411)。これを全語彙w1,・・・wvについて繰り返す(S410)。
次に、単語wiについて、カテゴリcにおける出現頻度をTWf[c,wi]から読み込み、freq(wi,c)にセットする。freq(wi,c)と、ステップS411で求めたfreq(c)とを式(6.2)に代入し、lnP(wi|c)を算出し、TWf[c,wi]に値を書き込む(S413)。これを全語彙w1,・・・wvについて繰り返し行う(S412)。以上により、すべての語彙に関して、カテゴリcについてTWpの値が更新される。
すでに説明した図4のフローチャートにおけるクエリ候補生成処理(S102)および検索処理(S103およびS107)では、上述した分類段階の処理が実行される。
一方、クエリモデル更新処理(S113)および検索モデル更新処理(S111)では、上述した更新段階の処理が実行される。それぞれの処理について、順に詳しく説明する。
<クエリ候補生成処理の詳細>
図9は、クエリ生成部121が、一連のテキスト情報からクエリ候補Qcを生成する処理の詳細を表すフローチャートである。クエリ候補の生成処理では、一連のテキストを、分類器によってそれぞれクエリか否かの2つのカテゴリに振り分け、クエリに振り分けられたテキストのセットをクエリ候補とする処理を行う。
最初に、呼び出し元ルーチンである図4のS102において、クエリ生成部121が上述の一連の発話テキストデータU={U1,・・,U4}(図5のテーブル141)を受け付けたとする。図9のサブルーチンに進み、初期化する(S201)。変数UkにU1から順番に代入し、ステップS203からS206までの処理を繰り返す(S202)。ステップS203は、図7に示したサブルーチンであり、ここで改めて説明する。
サブルーチンに与えるデータは、カテゴリセットC={Q, ¬Q}、TCp(図12のテーブル202)、TWp(図12のテーブル203)である。UはU1とする。まず、Sを初期化した(S301)のち、テキストU1を意味的なまとまりである単語単位に分割する(S302)。ここでは、最初に図12のテーブル201のように、テキストU1を左から走査し、語彙辞書を用いてマッチする単語を切り出したのち、不要語辞書に基づいて不要語をフィルタして取り除く。U1からは{“、”“。”,“あえーと”,“の”,“ん”,“で”,“って”}を取り除き、図12のテーブル201AのW1={w1=“自動車保険”,w2=“CM”,w3=“見た”,w4=“ですけれども”,w5=“カスタマイズ”,w6=“できる”}を得る。
続いて、カテゴリの対数周辺確率表(テーブル202)ならびにカテゴリのもとでの単語の対数事後確率表(テーブル203)を用いて、LQ及びL¬Qをそれぞれ求める(S303からS307)。
まず、c=Qのとき(S303)、LQの初期値としてテーブル202のlnP(Q)を代入する(S304)。次に、単語列w1,・・・w6のそれぞれの単語wiについて、テーブル203のセル[Q,wi]の値をLQに加算する(S306)。その結果が図12のテーブル204のLQ行U1列の値である。{Q,LQ}の組をSに追加する(S307)。同様にc=¬Qの時も処理し、Sに追加する(S305からS307)。L¬Qはテーブル204のL¬Q行U1列の値である。最後に、得られたSが呼び出し元ルーチンに渡される。
呼び出し元ルーチンでは、得られたLQおよびL¬Qを式(9)に代入し、計算結果をLq1に入力する(S204)。式(9)の条件に従い、Lq1>0であれば、クエリ“Q“と判定し(S205)、(U1, Lq1)の組をクエリ候補Qc´に追加する。U2 、U3、U4についても同様の処理を行い、全ての入力テキストについてクエリ候補Qc´を得る(S206)。最後に、Qc´をクエリ尤度Lqkが大きい順にソートした結果Qcを返す(S207,図5のテーブル142)。
<検索処理の詳細>
図10は、検索部122が、一連のテキストUからFAQの検索結果であるFAQ候補Scを抽出する処理を表すフローチャートである。各FAQIDをカテゴリとし、カテゴリセットC={faq1,・・・,faqk}とする。そして、一連のテキストを、上述のクエリ生成処理と同様にナイーブベイズ分類器の式(6)を用いて、いずれかのカテゴリ(FAQID)に振り分ける処理を行う。
前述のように求められたクエリ候補Qcの中で、クエリ尤度が最大であるQ1={(U2,Lq2)}におけるU2が、図4のS104において検索部122に入力された場合のシナリオを例にとり、各ステップについて順に説明する。最初に、図10のサブルーチンより、図7のサブルーチンを呼び出す(S221)。サブルーチンに与えるカテゴリセットC={faq1,・・・,faq5}(FAQデータベース133の各FAQID)、TCpは図12のテーブル302、TWpは図12のテーブル303、UはU2である。
まず、Sを初期化した(S301)のち、テキストU2を意味的なまとまりである単語単位に分割する(S302)。単語分割には、クエリ生成処理で行ったときと同様に、テーブル201のU2行のとおり単語を切り出した後、不要語フィルタにかける。ここで、不要語フィルタにはクエリ生成処理で用いたものとは異なる検索処理に適したフィルタを用いる。U2から{“を“,”が“,”のか“,”を“,”いただきたい“,”と“,”思って“,”ですね“}を取り除き、図12のテーブル301のWF2={w1=“どのように”,w2=“契約内容”,w3=“カスタマイズ”,w4=“できる”,w5=“教えて”}を得る。続いて、カテゴリの対数周辺確率表(テーブル302)ならびにカテゴリのもとでの単語の対数事後確率表(テーブル303)を用いて、Lfaq1からLfaq5をそれぞれ求める(S303からS307)。
まず、c=faq1のとき(S303)、Lfaq1の初期値としてテーブル302のセル[faq1,lnP(c)]の値をlnP(faq1)に読み込む(S304)。次に、単語列w1,・・・w5のそれぞれの単語wiについて、テーブル303のセル[faq1,wi]を値をlnP(wi| faq1)に読み込み、Lfaq1に加算する。その結果が図12のテーブル304のfaq1行Q1列の値である。{faq1,Lfaq1}の組をSに追加する。c=faq2 ,・・・,faq5についても同様に処理し、Sに追加する(S305からS307)。Lfaq2,・・・, Lfaq5はテーブル304のfaq2行からfaq5行のQ1列の値である。最後に、得られたSが呼び出し元ルーチンに渡される。
図10の呼び出し元ルーチンでは、得られたSをLfaqkが大きい順にソートし、上位N件を抽出する(S222)。ここではN=3とし、検索尤度の上位3件(faq3, faq5,faq1)を候補として選ぶ。そして、図12のテーブル305のFAQ候補リストScが得られる。
次に、クエリモデル更新処理(S113)および検索モデル更新処理(S111)について説明する。上述したとおり、モデルの更新段階では、追加学習データの文書の単語列w1,・・・wMおよびカテゴリcに基づいて、lnP(wi|c)およびカテゴリ対数周辺確率lnP(c)の値を再計算し、カテゴリ対数周辺確率表TCpおよびカテゴリのもとでの単語対数事後確率表TWpの値を更新する。
ここで、クエリモデル131および検索モデル132の分類段階で用いたカテゴリの対数周辺確率表TCp(図12のテーブル202およびテーブル302)と、単語の対数事後確率表TWp(図12のテーブル203およびテーブル303)の各値は、あらかじめ、学習段階においてそれぞれカテゴリ別文書頻度表(図13のテーブル401およびテーブル501)と、カテゴリ別単語頻度表(図13のテーブル402およびテーブル502)から、式(6.2)および式(6.3)の計算式に基づいて算出されている。
そのため、カテゴリ別文書頻度表(テーブル401およびテーブル501)と、カテゴリ別単語頻度表(テーブル402およびテーブル502)の該当するセルの値を、追加する学習データのカウント分だけ加算し、更新した各頻度表からカテゴリのもとでの単語対数事後確率lnP(wi|c)およびカテゴリ対数周辺確率lnP(c)の値を再計算しすればよい。
<クエリモデル131の更新処理の詳細>
図4のステップS112で作成されたクエリモデル学習データ{QID=Q2,c=Q,G=10}(図6のテーブル146)がクエリモデル更新部123に入力された場合を例に、クエリモデル更新処理の詳細について説明する。学習の重みGは、該当の学習データをG個追加することを意味する。
クエリモデル更新処理では、図11(a)のサブルーチンより、モデル更新のサブルーチン(図8)を呼び出す(S501)。サブルーチンには学習データに加えて以下のデータを与える。カテゴリセット{Q, ¬Q}をCにセットし、テーブル401(図13)のTQCf、テーブル202(図12)のTQCp、テーブル402(図13)のTQWf、およびテーブル203(図12)のTQWpをそれぞれTCf、TCp、TWf、およびTWpにセットする。全語彙がテーブル402の見出し単語であるとし、単語の異なり数V=22とする。また、補正パラメータα=0.01とする。
先にlnP(Q)の値を求め、カテゴリ周辺確率表TCpを更新する。そのために、カテゴリ別文書頻度表TCf(テーブル401)のセル[Q,dc]の値をdQに読み込み、G=10を加算し、同セルにセットする(ステップS401)。更新後のTCfをテーブル403に示す。テーブル403から、式(6.3)に基づいて新たなカテゴリ周辺確率を求める(ステップS402から405)。まず、全文書数Dを求める(S402からS404)。Dを0で初期化し(S402)、テーブル403から、カテゴリ「Q」および「¬Q」の文書頻度TCf[Q]およびTCf[¬Q]を順にdQおよびd¬Qに読み込み、順にDに加算する(S403、S404)。
次に、式(6.3)にしたがって、得られたDとステップS401で求めたdQとを用いてlnP(Q)を算出し、TCp[Q]に書き込む(S405、テーブル404)。
次に全語彙について、カテゴリQのもとでの単語対数事後確率lnP(wi|Q)の値を求め、TWpを更新する。そのために、先にTWfを更新する。まず、図5のテーブル142を参照し、QID=Q2に対応するテキストU3を見つけ出し、単語列に分割する(S406)。このとき、分類段階で分割された結果(図7のS302、図12のテーブル201A)を参照すればよく、同じ分割処理を再実行する必要はない。したがって、図12のテーブル201Aを参照し、求める単語列W3={w1=“"年間”",w2="“走行距離”",w3="“保険料”",w4=“"違い”",w5=“出て”,w6=“ですか”}が得られる。
次に、単語列W3の各単語wiについて、追加でG=10回ずつ出現したとみなして、カテゴリ「Q」における出現頻度TWf[Q,wi]を更新する(S407、S408)。更新後のTWfをテーブル405に示す。
次に、更新された単語頻度表(テーブル405)から、式(6.2)に基づいて単語の対数事後確率表を再計算する(S409からS413)。最初に、式(6.2)の分母の第一項であるΣ(j=1~V=22)freq(wj,Q)を求める。カテゴリQにおける単語の総出現数freq(Q)と置き、0で初期化する(S409)。カテゴリQのもとでの単語出現頻度をテーブル405のセル[Q,wi]を読み込み、freq(wi,Q)にセットし、freq(Q)を加算する。加算結果でfreq(Q)を更新する(S411)。これを全語彙w1,・・・,wV=22について繰り返し行うことにより(S410)、freq(Q)を求める。
続いて、全語彙w1=”教えて”,・・・,wV=22=”できる”についてlnP(wi|Q)の値を算出する。例えば、単語w1=”教えて”について、カテゴリQにおける出現頻度をテーブル405のセル[Q,”教えて”]から読み込み、freq(w1,Q)にセットする。freq(wi,Q)、ステップS410、S411で求めたfreq(Q)、V=22、およびα=0.01を式(6.2)に代入し、lnP(w1|Q)を算出し、TWp[Q,w1]に値を書き込む(S413、テーブル406のセル[Q,”教えて”])。これを残りの語彙w2,・・・,wVについても繰り返し行う(S412)。以上により、すべての語彙に関して、カテゴリc=QについてTWp[Q,wi]の値が更新される(テーブル406)。
このように本実施形態では、選択されたクエリ候補に対応する対話テキストデータのクエリ尤度が、選択されなかったクエリ候補のクエリ尤度よりも高く設定されるように(選択されなかったクエリ候補については、クエリ尤度が下がるように)、クエリモデル131が更新される。
<検索モデル132の更新処理の詳細>
上述した本実施形態の対話支援機能の処理フローにおいて、検索モデル132の更新処理について、{QID=Q1,c=faq5,G=10}(テーブル144)と、{QID=Q2,c=faq2,G=10}(テーブル149)をそれぞれ追加学習データを入力としたときの2通りのシナリオについて説明した。ここでは後者(テーブル149)のシナリオを例にとり、検索モデル132の更新処理の詳細を説明する。なお、更新処理自体は、前者についても同じである。
検索モデル132の更新処理(図11(b))では、モデル更新のサブルーチン(図8)を呼び出す(S502)。サブルーチンには、学習データに加えて以下のデータを与える。カテゴリセット{faqk;1≦k≦K}をCにセットし、テーブル501(図13)のTFcf、テーブル302(図12)のTFcp、テーブル502(図13)のTFwf、およびテーブル303(図12)のTFwpをそれぞれ、TCf、TCp、TWfおよびTWpにセットする。全語彙がテーブル502の見出し単語であるとし、単語の異なり数V=18とする。また、補正パラメータα=0.01とする。
先に、lnP(faq2)の値を求め、カテゴリ周辺確率表TCpを更新する。カテゴリ別文書頻度表TCf(テーブル501)のセル[faq2,dc]の値をdfaq2に読み込み、G=10を加算し、同セルにセットする(ステップ401)。更新後のTCfをテーブル503に示す。テーブル503から、式(6.3)に基づいて新たなカテゴリ対数周辺確率を求める(ステップ402から405)。まず、全文書数Dを求める(S402からS404)。Dを0で初期化し(S402)、テーブル503から、すべてのカテゴリfaqk(k=1,..,5)の文書頻度TCf[faqk]をDに加算する(S403、S404)。
次に式(6.3)にしたがって、得られたDとステップS401で求めたdfaq2とを用いてlnP(faq2)を算出し、TCp[faq2]に書き込む(S405、テーブル504)。
次に、全語彙についてカテゴリfaq2のもとでの単語対数事後確率lnP(wi|faq2)の値を求め、単語の対数事後確率表TWpを更新する。そのために、先にTWfを更新する。
まず、図5のテーブル142を参照し、学習データのQID=Q2に対応するテキストU3を見つけ出し、単語列に分割する(S406)。このとき、分類段階で分割された結果(図12のテーブル301)を参照すればよく、同じ分割処理を再実行する必要はない。したがって、図12のテーブル301を参照し、求める単語列WF3={w1=“年間”,w2=“走行距離”,w3=“保険料”,w4=“違い”,w5=“出て”}が得られる。
次に、単語列WF3の各単語wiについて、追加でG=10回ずつ出現したとみなして、カテゴリ“faq2”における出現頻度TWf[faq2, wi]を更新する(S407、S408)。更新後のTWfをテーブル505に示す。
次に、更新された単語頻度表(テーブル505)から、式(6.2)に基づいて単語の対数事後確率表を再計算する(S409からS413)。最初に、式(6.2)の分母の第一項であるΣ(j=1~V=18)freq(wj,faq2)を求める。そのために、カテゴリQにおける単語の総出現数freq(faq2)と置き、0で初期化する(S409)。カテゴリfaq2のもとでの単語出現頻度をテーブル505のセル[faq2, wi]を読み込み、freq(wi,faq2)にセットし、freq(faq2)を加算する。加算結果でfreq(faq2)を更新する(S411)。これを全語彙w1..,wV=18について繰り返す(S410)ことにより、freq(faq2)を求める。
続いて、全語彙w1="契約内容”,..,wV=18=“買い物”について、 lnP(wi│faq2)の値を算出する。たとえば、単語w1="契約内容”について、カテゴリfaq2における出現頻度をテーブル505のセル[faq2,"契約内容"]から読み込み、freq(w1,faq2)にセットする。freq(wi,faq2)、ステップS410、ステップS411で求めたfreq(faq2)、V=18,およびα=0.01を式(6.2)に代入し、lnP(w1│faq2)を算出し、TWp[faq2, w1]に値を書き込む(S413、テーブル506のセル[faq2,“教えて”])。これを残りの語彙w2..,wVについても繰り返す(S412)。以上により、すべての語彙に関して、カテゴリc=faq2についてTWp[faq2,wi]の値が更新される(テーブル506)。
(第2実施形態)
図14から図22は、第2実施形態の情報検索システムを示す図である。上述の第1実施形態では、FAQ候補リスト内の各FAQに対して、オペレータがFAQ評価を行うことができように構成されているが、オペレータは、第2表示領域及び第3表示領域の各FAQ候補リストに含まれなかったFAQを表示させたい場合もある。
つまり、第1実施形態では、第3表示領域において選択されたクエリ候補を自動的に検索クエリとして用いて検索モデル132を用いた第2検索処理を行っていたが、本実施形態では、オペレータ装置300の第1表示領域において、オペレータが選択したクエリ候補に含まれるキーワードを、オペレータが編集できるように制御する。そして、オペレータによるキーワード編集結果のキーワードリストを新たな検索クエリとして、検索モデル132を用いた検索処理(第3検索処理)を、オペレータが自由に手動で行えるようにする。
図14は、本実施形態の情報検索システムのネットワーク構成図及び各装置の機能ブロック図であり、上述の第1実施形態に対して、情報検索装置100のクエリ生成部121は、キーワード抽出部121Aをさらに備えている。キーワード抽出部121Aは、オペレータ装置300において選択されたクエリ候補のテキストデータの中からクエリキーワードを抽出し、抽出結果をオペレータ装置300に提供する。
図15は、本実施形態の対話支援画面の一例を示す図である。対話支援画面は、上記第1実施形態同様に、表示領域S1からS3を含んでいる。そして、表示領域S3は、オペレータから受け付けた選択クエリ候補から抽出したクエリキーワードを表示するキーワード表示入力欄Sa1、キーワード表示入力欄Sa1を追加するための追加ボタンSa2、キーワード表示入力欄Sa1を削除するための削除ボタンSa4、検索ボタンSa3を含むクエリキーワード表示/検索領域を含むように構成されている。
本実施形態の表示領域S3は、上記第1実施形態における選択クエリ候補に基づく検索FAQ候補リストを表示する領域であると共に、クエリキーワードによる任意検索FAQ候補リスト(任意検索FAQ(aFA1~aFAn),第3ナレッジ情報)が表示される領域である。そして、表示領域S3は、表示されたクエリキーワードをオペレータが任意に編集(提示されたクエリキーワードの削除・修正、変更、新たなキーワードの入力など)して、検索クエリを作成するクエリキーワード編集部として機能する。
なお、クエリキーワード表示/検索領域は、オペレータから選択クエリ候補を受け付けた場合のみ表示されるように構成することもできる。
また、クエリキーワード表示/検索領域のキーワード表示入力欄Sa1、追加ボタンSa2および削除ボタンSa4を、オペレータから選択クエリ候補を受け付けた場合のみ操作可能となるようにSa1からSa4の操作可能状態を切り替えるように構成することもできる。
これにより、オペレータによる任意検索が行われる際に、任意FAQ候補リストとクエリ候補との紐づけ情報が必ず得られるように構成することにより、クエリ候補と任意FAQ候補との組である学習データの収集が促進される効果が得られる。
なお、クエリキーワード表示/検索領域を含み、任意検索FAQ候補リストが表示される表示領域(第6表示領域S6)が、表示領域S3と分離して設けられるように構成してもよい。また、不図示のボタン選択操作に基づいて、第6表示領域S6と表示領域S3とが表示切替できるように構成することもできる。
図16は、本実施形態の情報検索装置100の処理フローを示す図である。図16では、上記第1実施形態の処理フロー(図4)に対し、クエリ候補Qselectが選択された後(S106のYES)、クエリキーワード抽出処理以降の処理(S601~S605)が並行して実行される処理が追加されている。クエリキーワード抽出処理の詳細については後述する。
キーワード抽出部121Aは、クエリ候補QselectからクエリキーワードKWselectを抽出し(S601)、制御装置120は、抽出されたキーワードKWselectをオペレータ装置300に送信して、対話支援画面の表示領域S3に表示させる(S602)。制御装置120は、オペレータ装置300からの検索クエリキーワードKWeditの受信を待ち(S603)、検索クエリキーワードKWeditを受信すると(S603のYES)、検索部122に出力する。
検索部122は、検索クエリキーワードKWeditに基づいて、検索モデル132を用いて検索処理(第3検索処理)を行い、検索結果としてFAQ候補リスト(任意検索FAQ候補リスト)を生成する(S604)。制御装置120は、生成された任意検索FAQ候補リストをオペレータ装置300に送信して、対話支援画面の表示領域S3に表示させる(S605)。その後は、図16に示すように、ステップS109に進む。なお、図4と同様の処理については同符号を付して説明を省略する。
ここで、ステップS601のキーワード抽出処理について説明する。上記第1実施形態の説明と同様に、一連の対話テキストデータ(図5のテーブル141)が入力された場合を例にとって説明する。なお、説明の便宜上、FAQデータベースとして図17に示すFAQデータベース133Aを用いている。図17の例では、図5の例に対してFAQID=6が1件追加されている。
この場合、検索モデル132のカテゴリセットCは、faq1,..,faq6であるから、検索モデル132のカテゴリ別文書頻度表TFcfおよびカテゴリ別単語頻度表TFwfは、faq6の行が追加され、図18のテーブル601および602の値がセットされているとする。また、これらの表からカテゴリ対数周辺確率表TFcp(図18のテーブル603)およびカテゴリのもとでの単語対数事後確率表TFwp(図18のテーブル604)が算出済みであるとする。なお、クエリモデル131は、上記第1実施形態と変わらない。
図16のステップ102において、クエリ候補QC={Q1,Q2}が生成される(図5のテーブル142)。まず、クエリ候補Q1に対する第1検索処理(S103)において算出される検索尤度は図18のテーブル605のQ1列のとおりである。したがって、検索結果である推奨FAQ候補Sc={S1=(faq3,-13.2),S2=(faq5,-14.3),S3=(faq1,-16.9)}となり、faq6は、FAQ候補(検索結果)には含まれない。
一方、クエリ候補Q2がオペレータによって選択された場合の第2検索処理(S107)において算出される検索尤度はテーブル605のQ2列のとおりである。検索結果である検索FAQ候補Sc={S1=(faq1,-18.8),S2=(faq4,-19.4),S3=(faq2,-21.9)}となり、クエリ候補Q1に対する検索処理の場合と同様、faq6はFAQ候補には含まれない。
すなわち、オペレータがクエリ候補を選択しなくても選択しても、faq6はFAQ候補として表示されない。したがって、図16において、faq6をオペレータが検索するための手段として、S601からS605の処理が追加されている。
まず、ステップS601のクエリキーワード抽出処理について説明する。ここでは、テキストから単語分割された各単語について、キーワードらしさを表す尺度であるキーワード尤度の大きい順に上位N件をクエリキーワードとして抽出する。
ここで、キーワード尤度とは、カテゴリcのもとでの単語対数事後確率lnP(wi|c)をカテゴリcについて周辺化した対数確率lnP(wi)と定義する(第3モデル)。ただし、式(6.2)と同様に全文書の単語の異なり数Vおよび補正パラメータαによって補正する。これを下記の式(10)に示す。
Figure 0007182923000021
図19は、キーワード抽出処理のフローチャートを示す図である。上述のように図16のステップS106においてクエリ候補Q2がオペレータによって選択されたとき(Qselect=Q2を例に説明する。
最初に、カテゴリ別単語頻度表TFwfから式(10)にしたがって、単語ごとのキーワード尤度を表す単語対数周辺確率表Twmp(テーブル604)を算出する(S611)。なお、式(10)の計算のパラメータは、第1実施形態の説明における検索処理と同じく、α=0.01,V=18である。
続いて、選択クエリ候補Q2のテキストを単語分割処理する(S611)。ここで、単語分割処理は、選択されたクエリ候補に基づく検索FAQの検索処理(S107)と、クエリモデル更新処理(S113)の中と共通であるため、その結果であるWF3={w1="年間”,w2=“走行距離”,w3=“保険料”,w4="違い”,w5=“出て”}(テーブル301のWF3行)を用いればよい。
次に、抽出キーワードリストKWi=2を初期化する(S613)。wj(j=1,…,5)について、Twmp[wj]の値をlnP(wj)に読み込み、(wj,lnP(wj))の組をKWiに追加する(S615)。すべてのwj(j=1,…,5)についてこれを繰り返す(S614)。最後に、KW2をlnP(wj)の値が大きい順にソートし、上位3件KW2={(“保険料”,-1.88),(“走行距離”,-2.38),(“年間”,-3.07)}(テーブル607のKW2)を出力する(S616、N=3)。
図16のメインルーチンに戻り、KWselect=KW2を表示領域S3に表示させる(S602)。例えば、図15の対話支援画面における一番左のキーワード表示入力欄Sa1(検索窓)から順に表示することができる。なお、オペレータは、表示領域S3のクエリキーワード表示/検索領域において、キーワード表示入力欄Sa1の横に設けられる「×」削除ボタンSa4を押すと、キーワードを削除することができる。また、キーワード表示入力欄Sa1は、テキストボックスであり、カーソルを置くと、自由に編集することができる(例えば、KW2を編集したり、KW2以外の任意のキーワードを入力したりすることができる)。また、「+」で表記された追加ボタンSa2を選択すると、キーワード表示入力欄Sa1を追加することができる。
オペレータは、クエリキーワードの編集を終えると、検索ボタンSa3をクリックすることにより、オペレータ装置300から情報検索装置100に、検索ボタンSa3のクリック時における編集状態の検索クエリキーワードKWEditが送信される。
ここでは、2つのシナリオを考察してみる。1つ目は、オペレータが編集操作を行わず、表示された3つのキーワードがそのまま検索クエリキーワードKWEditとして情報検索装置100に送信された場合である。KWEdit1={“保険料”,“走行距離”,“年間”}である。2つ目は、オペレータが“年間”を”週末”に変更し、KWEdit2={“保険料”,“走行距離”,”週末”}が情報検索装置100に送信された場合である(テーブル616)。
制御装置120は、通信制御装置110を介して検索クエリキーワードKWEditを受信する(S603)。制御装置120は、受信した検索クエリキーワードKWEditを検索部122に入力し、検索部122は、第3検索処理を実行する(S604)。
ここで、まず、上述の1つ目のシナリオでは、検索尤度表は、図18のテーブル606Aのように算出される。したがって、検索結果である任意検索FAQ候補Sc={S1=(faq1,-7.60),S2=(faq4,-8.96),S3=(faq2,-12.4)}となり、上述したキーワード抽出処理を経ないで行われる検索処理(第1検索処理及び第2検索処理)の検索結果と同様に、faq6は、任意検索FAQ候補には含まれない。
一方、2つ目のシナリオでは、検索尤度表は図18のテーブル606Bのように算出される。したがって、任意検索FAQ候補Sc={S1=(faq6,-8.57),S2=(faq4,-8.68),S3=(faq1,-12.9)}となり、表示領域S3には、任意検索FAQ候補リストの第1位にfaq6が表示される(S605)。
仮に、FAQ(Q:“通勤で使う場合と、週末買い物で使う場合とで、何か違いがありますか。”、A:“使用目的および走行距離で区分が設定されています...”)をオペレータが正の評価をした場合(S109)、検索モデル学習データ(テーブル608)が作成され(S110)、検索モデル更新処理(S111)が実行される。ここで、検索モデル学習データ作成処理S110は、選択クエリIDと評価されたFAQとの組である学習データに加えて、検索クエリキーワードKWEditから選択クエリキーワードKWselectに含まれるキーワードを除いた差集合(KWEdit-KWselect)のキーワードリストを学習データとしている。
すなわち、KWEdit2- KWselect={“週末”}と評価されたFAQの組である(テーブル608)。
なお、検索モデル更新処理(図24のS111および図11(b)のS502)について、キーワードリストを受け取れるように、あらかじめ入力の拡張を施す。図11(b)における検索モデル更新処理の追加学習データのQIDをQIDもしくはキーワードリストKW={kwi;1≦i≦|KW|}とする。サブルーチンである図8のモデル更新処理の入力データも同様に変更し、S302の分割処理の前において、入力タイプがQIDもしくはキーワードリストKWのいずれであるかの判定処理をS405とS406の間に新たに設ける。キーワードリストKWである場合は、M=|KW|とし、kw1,…kw|kw|をそのまま単語列w1,….wMに置き換え、単語分割処理はスキップして次の処理S406に進む。
なお、それ以外の処理は上記第1実施形態の検索モデル更新処理と同一であるため、説明は省略する。
さらに、学習データが複数の場合、学習データの数だけモデル更新(S502)を実行するように拡張を施す。
なお、検索モデル学習データ作成処理S110において、上記の2つの学習データを作成したが、いずれか一方の学習データのみを作成することにしてもよい。上記のキーワードリストの学習データについて、検索クエリキーワードKWEditそのものを追加学習データとするように構成することもできる。さらに、編集によって削除された選択クエリキーワード、すなわちKWselectからKWEdit2の要素を除いた差集合(ここでは{“年間”})について、負の学習重みを設定した学習データを作成してもよい。このように選択クエリ候補、KWselect、およびKWEdit2に基づいて様々な学習データの作成方法をとるように構成できる。
上記第1実施形態で述べた処理に従い、カテゴリ別文書頻度表TFcfおよびカテゴリ別単語頻度表TFwfが更新され(図20のテーブル609、610)、更新された表から検索モデル132であるカテゴリ対数周辺確率表TFcp(図20のテーブル611)およびカテゴリのもとでの単語対数事後確率表TFwp(図20のテーブル612)が算出される。
この2つ目のシナリオでは、検索モデル更新処理と並行して、Qselect=Q2に基づいて、第1実施形態の場合と同様に、図6のテーブル146のクエリ学習データが作成され(S112)、クエリモデル更新処理によってクエリモデル131であるカテゴリ対数周辺確率表TQcp(図6のテーブル404)およびカテゴリのもとでの単語対数事後確率表TQwp(図6のテーブル406)が算出される(S113)。
ここまでの処理によって、第1実施形態の処理では検索結果に含まれなかったfaq6が、新たに設けられた本実施形態の処理によって検索され、検索モデル132とクエリモデル131の両方が更新される。
次に、同じテキストU(図5のテーブル141)が入力された場合の処理について確認する。ステップS102で生成される第1位のクエリ候補Q1は、U3(“たとえば年間の走行距離によって保険料に違いが出てきたりするんですか。”)に変更されている(図5のテーブル147)。これを入力とし第1検索処理が実行される(S103)と、検索尤度(図20のテーブル613)が算出される。そして、推奨FAQ候補Sc={S1=(faq,-12.1),S2=(faq,-18.8),S3=(faq4,-19.4)}(テーブル614)が生成され、オペレータ装置300に送信され、表示領域S1に表示される。
このように、検索モデル132とクエリモデル131とが更新されることにより、前回の対話テキストデータとして入力されたときに表示されなかったfaq6が、今回は、オペレータがクエリ候補を選択したり、抽出キーワードを編集して検索せずとも、自動で表示されるように改善される。
また、テーブル615のとおり、更新されたTFwfから算出されるTwmpは、クエリ候補に含まれるキーワード(“年間”、“走行距離”、“保険料”、“違い”)および、編集によって追加されたキーワード(“週末”)のキーワード尤度が高くなるように更新され、次回以降により選択クエリキーワードとして抽出されやすくなる。
なお、検索処理(図10および図7)について、キーワードリストを受け取れるように、あらかじめ入力の拡張を施すことができる。図21は、本実施形態のクエリ候補の検索処理フローを示す図であり、図10に対応している。また、図22は、本実施形態の分類段階の処理フローを示す図であり、図7に対応している。図21において、図10における検索処理の入力データを、テキストUもしくはキーワードリストKW={kwi;1≦i≦|KW|}とする。図22において、サブルーチンである図7の分類処理の入力データも同様に変更し、S302の分割処理の前において、入力タイプがテキストUもしくはキーワードリストKWのいずれであるかの判定処理を新たに設ける(S621)。図22において、キーワードリストKWである場合は、M=|KW|とし、kw1,…kw|kw|をそのまま単語列w1,….wMに置き換え、単語分割処理はスキップして次の処理S303に進む(S622)。
(第3実施形態)
図23から図34は、第3実施形態の情報検索システムを示す図である。本実施形態は、上述の第1実施形態及び第2実施形態に対し、FAQデータベース133,133Aに登録されたFAQ情報の変更・更新機能を備えたものである。
上述した第1実施形態及び第2実施形態において、オペレータによるクエリ選択機能、FAQ評価機能および抽出キーワードによる検索機能の各履歴を利用することで、別のシステムでFAQを管理するよりも、簡便かつ効果的にFAQを追加、更新あるいは削除することができる。
図23は、本実施形態のネットワーク構成及び各装置の機能ブロックを示す図であり、本実施形態では、上記第2実施形態の情報検索システムに、FAQデータを追加、更新あるいは削除するためのFAQ管理を行うためのFAQ管理端末400が設けられている。
FAQ管理端末400は、制御装置410、表示装置420及び入力装置430を備えている。FAQ管理端末400は、例えば、コンタクトセンターを構成する管理端末として設けられているが、これに限らず、情報検索装置100で管理されるFAQ情報にアクセス可能な管理端末であればよい。
一方、情報検索装置100は、FAQ管理部125が設けられている。FAQ管理部125は、所定のFAQ管理画面を通じたFAQ情報の変更・更新を制御する。記憶装置130には、履歴DB134が格納されており、一連の対話テキストデータの入力履歴、クエリ候補生成履歴、キーワード検索履歴(キーワード検索ミスヒット履歴を含む)、FAQ評価履歴、FAQ改善要求履歴などの各種履歴情報を含む。
図24は、本実施形態の対話支援機能の処理フローを示す図である。図24は、図16に示した処理フローに対して、各種履歴を履歴DB134に記録する処理が追加されている。以下、新たに追加された処理を中心に説明する。なお、各種履歴の記録処理は、対応する各機能部がそれぞれ行ってもよく、また制御装置120が統括して行ってもよい。
図24において、まず、一連の対話テキストデータ群Uが入力された後(S101)、クエリ生成部121は、一連の対話テキストデータ群Uを一意に識別可能なID(INPUT ID;以下、IIDと表する)を付与し、これを変数iidに記録する(S701)。IIDは、履歴の個々のデータの識別に用いる。
次に、{IID,UID,テキスト}の組からなる入力履歴HINPUTに一連の対話テキストデータUをiidとともに記録する(S702)。たとえば、図5のテーブル141のU1,..,U4は、図25のテーブル701の{IID=I1,UID=U1},..,{IID=I4,UID=U4}の行のとおりに記録される。このように{IID, UID}の連結キーによって一連の対話テキストデータU群内の各対話テキストデータを一意に識別できる。
クエリ候補Qcを生成後(S102)、クエリ候補Qcをiidとともにクエリ候補生成履歴HQに登録する(S703)。たとえば、図5のテーブル142のクエリ候補Q1,Q2は、それぞれ図25のテーブル702の{IID=I1,QID=Q1},{IID=I1,QID=Q2}の行のとおりに記録される。
検索結果としてFAQ候補Scがない場合(S704のNO)、かつ検索テキストタイプが検索クエリキーワードの場合(S705の“検索クエリキーワード”)、キーワード検索ミスヒット履歴HMissに、{KWedit,IID,QID}の組が記録される(S706、図25のテーブル703)。{IID,QID}により、キーワード検索ミスヒットの検索とクエリ候補生成履歴HQ中のクエリとが紐づけられる。この紐づけ情報は、後述する検索ミスヒット履歴に基づくFAQ新規作成機能において、新規FAQとミスヒット検索のクエリとの組を学習データとして、検索モデル132を更新するために用いられる。
なお、S704の判定において、検索結果としてFAQ候補ScのすべてのFAQ候補の検索尤度が所定値を下回る場合に、FAQ候補Scがない場合(No)と判定することとしてもよい。
ここで、ステップS704の分岐に戻り、FAQ候補Scが存在する場合(S704のYES)、FAQ候補Scは、ステップS104においてオペレータ装置300の表示領域S1に表示され、オペレータからFAQ評価を待ち受ける(S109)。つまり、ステップS104,S108及びS605において、前段の各検索処理においてFAQ候補Scがヒットしなかった場合は、FAQ候補Scは、オペレータ装置300には送信されず、表示領域S1にFAQ候補Scは、表示されない。なお、本実施形態でのFAQ評価のタイプは、「有用度」(f21,f22)のFAQ評価に加えて、「改善要求」(f23)を含む。
オペレータからのFAQ評価を受け付けると(S109のYES)、FAQ評価タイプが「有用度」、「改善要求」のいずれであるかを判定し(S707)、「改善要求」であると判定された場合は、対象のFAQIDをFAQ改善要求履歴HImproveに記録する(S708、図25のテーブル704)。HImproveにデータが記録される度に、改善要求が出された回数がカウントされる(テーブル704のCOUNT列)。後述するFAQ修正機能において、FAQ管理者はカウント情報を参考にして修正対象のFAQを選択することができる。
ステップS707の分岐に戻り、FAQ評価タイプが「有用度」の場合は、{FAQID, IID, QID, FAQ評価値EVAL}の組をFAQ評価履歴HEvalに登録する(S709、図25のテーブル705)。
次に、FAQ管理について説明する。FAQの管理とは、FAQデータベース133に登録されたFAQ情報を、必要に応じて追加、削除、更新を行うことであり、FAQ管理者が行う。
本実施形態では、FAQ管理者がFAQ管理端末400を通じてFAQを管理することができる。図26から図28は、FAQ管理処理を示すフローチャートであり、それぞれ、FAQの新規登録処理、FAQの削除処理、FAQの修正/更新処理を表している。
<FAQ新規登録処理>
図26は、FAQの新規登録処理を示すフローチャートである。制御装置120(FAQ管理部125)は、ミスヒット履歴HMissのキーワードリストをカウントし、カウント数が大きい順にソートする。たとえば、HMissが図25のテーブル703の場合、キーワードリストは“免許証,色”はカウント数2、“車両保険,入院,期間”はカウント数1である。そしてソート結果である{キーワードリスト,カウント数}のリストを、制御情報とともにFAQ管理端末400に送信し、図29に示すFAQ検索ミスヒット表示領域に表示する(S720)。図29は、オペレータ装置300の表示装置330に表示されるFAQ検索ミスヒット画面の一例である。
続いて、制御装置120は、FAQ管理者がFAQ検索ミスヒット画面において、キーワードリストを選択するのを待ち受ける(S721)。キーワードリストKWSelectがFAQ管理者によって選択されると、FAQ管理端末400からKWSelectが情報検索装置100に送信され、制御装置120がこれを受信する(S721)。制御装置120は、FAQ管理端末400に図30に示すFAQ作成画面を表示させる(S722)。
FAQ作成画面には、新規FAQのテキストにミスヒットキーワードリストのすべてのキーワードが必ず含まれるようにするため、FAQ作成画面には入力チェック機能が備わっている。登録ボタンがクリックされた際に、入力チェック機能が実行され、もし新規FAQにミスヒットキーワードリストのキーワードのいずれか一つでも含まれていない場合は、エラーメッセージを表示して登録させないように制御する。
制御装置120は、FAQ管理者からの新規登録要求を待ち受ける(S723)。FAQ管理者がFAQ作成画面にて、「Q」,「A」を入力・編集し、登録ボタンをクリックすると、新規登録要求を受け付け、入力されたFAQ情報({Qテキスト,Aテキスト})を含む新規登録要求がFAQ管理端末400から情報検索装置100に送信される。情報検索装置100は、通信制御装置110を介して制御装置120が受け取る(S723)。続いて、制御装置120、受信した新規FAQ情報をFAQデータベース133に登録する。このとき、新規FAQ情報に対してFAQIDを付与し、FAQデータベース133に格納される。付与されたFAQIDを変数faqnewにセットする(S724)。
次に、新規FAQに関連するクエリを入力として当該FAQが検索されるようにするために、検索モデルを更新する。KWSelectと紐づくすべてのクエリIDと新規FAQとの組を学習データとして用いる。
まず、更新の準備として、検索モデル132の分類先カテゴリに新規FAQを追加するためにカテゴリセットCにfaqnewを追加し(S725)、検索モデル132のテーブルTFcf, TFwf,TFcp,TFwpにfaqnewの行を追加する(S726)。次に、ミスヒット履歴HMissからKWSelectの履歴を全て抽出し、変数H={hi ∈HMiss;1≦i≦M}に格納する(S727)。すべてのhiについて、S729からS731までの処理を繰り返す(S728)。まず、クエリID{IID,QID}を変数{iid,qid}に格納する。{クエリID{iid,qid},カテゴリfaqnew,重みG∈Z}を追加学習データとして、検索モデル132を更新する(S730)。更新後、履歴hiが次回以降の更新処理において重複して用いられないようにするために、HMissからhiを削除しておく(S731)。
FAQデータベース133に登録されたFAQに基づいて、検索モデル132を更新することで、新規FAQが検索される(検索モデル132を更新しない限り、新規FAQは検索されない)。そこで、引き続き、検索モデルの更新処理を行う。ここで、検索モデル132の学習データは、テキストとFAQIDの組であるが、どのテキストを対応付ければよいか、が課題となる。FAQ作成支援と学習データ収集とを別々に行う従来技術では、本課題を解決できなかった。すなわち、更新したFAQに対する学習データの紐付けができなかった。
しかしながら、本実施形態では、作成された新規FAQは、ユーザーの質問であるクエリテキストから抽出されたキーワードリストに基づいて作成されており、クエリテキストとFAQとの間には、質問-回答の関係性がある可能性が高いと考えられる。この関係性を学習データの対応付けに用いることができるように、上述のとおり、FAQ利用時の処理において、ミスヒット履歴HMissにクエリID{IID,QID}と、クエリ候補生成履歴HQにクエリIDに対応するクエリテキストを記録する処理を設けている。
なお、検索モデル学習データ作成処理S110において、上記第2実施形態で説明したように、クエリIDとFAQとの組以外にも選択クエリ候補、選択クエリキーワード、および検索クエリキーワードに基づいて様々な学習データの作成するように構成できる。たとえば、検索クエリキーワードから選択クエリキーワードに含まれるキーワードを除いた差集合のキーワードリストについて、FAQとの組を学習データに加えても良い。
<FAQ削除処理>
図27はFAQの削除処理を示すフローチャートである。制御装置120(FAQ管理部125)は、FAQ評価履歴HEvalからFAQID毎にFAQ評価値EVALを集計し、集計スコアの低い順にFAQをソートする(S740)。ソート処理の結果のFAQIDに対応する「Q」と「A」とをFAQデータベース133から参照し、{FAQID,Qテキスト,Aテキスト,集計スコア}のリストを作成する。情報検索装置100は、作成されたリストをFAQ管理端末400に送信し、図31に示すFAQ削除リスト表示画面を表示させる(S741)。
続いて、制御装置120は、FAQ管理者からのFAQ削除要求を待ち受ける(S742)。FAQ管理者がFAQ削除リスト表示画面に表示されたFAQの中から、削除したいFAQを選択すると、削除要求を受け付ける。選択されたFAQのFAQIDがFAQ管理端末400から情報検索装置100に送信される。制御装置120は、選択されたFAQIDを受け取り、これを変数faqdeleteに格納する(S742)。そして、制御装置120は、FAQデータベース133からfaqdeleteに該当するFAQ情報を削除する(S743)。
なお、FAQデータベース133から該当のFAQを削除しても、検索モデル132の分類カテゴリに削除したFAQのFAQIDが含まれている場合、FAQ検索結果とFAQデータベース133との間で不一致が生じる。このため、検索モデル132から削除すいたFAQに該当するFAQIDを削除する処理を続いて行う。
まず、検索モデル更新処理の前処理として、検索モデル132のカテゴリセットCからfaqdeleteを削除し(S744)、検索モデル132のテーブルTFcf,TFwf,TFcp,TFwpからカテゴリfaqdeleteの行を削除する(S745)。次に、検索モデル132を更新する(S746)。ここでの更新処理は、カテゴリ削除によって、全カテゴリにおける総文書数および総単語数が変化するため、TFcp,TFwpを再計算しなおすことが目的である。追加学習データがないため、TFcf,TFwfが変化しない点が、上記第2実施形態の検索処理(図16のS111,図8)と異なる。すなわち、図8のモデル更新のTFcf更新処理(S401)、TFwf更新処理(S406からS408)を除いた処理となる。なお、検索モデル更新処理を示すフローチャートを図32に示すが、各ステップの詳細な説明について上述の通りである。
<FAQ更新処理>
図28は、FAQの更新処理を示すフローチャートである。まず、制御装置120は、FAQ改善要求履歴HImproveのFAQIDをカウント数の大きい順にソートする。ソート結果のFAQIDに対応する「Q」と「A」とをFAQデータベース133から参照し、{FAQID,Qテキスト,Aテキスト,カウント数}のリストを作成し、FAQ管理端末400に送信し、図33に示すFAQ改善リスト画面に表示する(S760)。
続いて、制御装置120は、FAQ管理者による修正対象FAQの選択を待ち受ける(S761)。FAQ管理者がFAQ改善リスト画面に表示されたFAQの中から、修正を希望するFAQを選択すると、選択情報が情報検索装置100に送信される。制御装置120は、選択情報を受け取り、FAQ管理端末400に図34に示すFAQ修正画面を表示させるように制御する(S762)。FAQ修正画面には、選択されたFAQの「Q」テキストと「A」テキストがセットされており、FAQ管理者はこれを適宜編集できるようになっている。
制御装置120は、FAQ管理者によるFAQの更新要求を待ち受ける(S763)。FAQ管理者がFAQ修正画面にFAQを入力した後、更新ボタンをクリックすると、更新要求を受け付け、更新FAQ{FAQID,Qテキスト,Aテキスト}が更新要求情報ととともに情報検索装置100に送信される。制御装置120は、更新要求情報を受け取り(S763のYes)、FAQデータベース133の該当のFAQIDのFAQ情報を更新FAQ情報を用いて更新する(S764)。
FAQの内容が修正されると、オペレータによるFAQ検索結果に対する評価が良くなる可能性がある。しかしながら、FAQ修正前に、FAQがオペレータから負の評価を受けていた場合、検索モデル132は、より検索候補の下位になるように更新されてしまう。そうすると、修正されたFAQが検索結果としてオペレータに表示されないという問題が生じる。これを解決するために、FAQ評価履歴HEvalを用いて、検索モデル132を更新前の状態に復元する処理を次に行う。更新前の状態の復元には、学習重みをモデル更新時と正負反転させて、追加学習データとし、同じ更新処理を行えばよい。
HEval中のすべての履歴データhi(i=1,..,|HEval|)についてS766からS771の処理を繰り返す(S765)。まず、hiの{FAQID, IID,QID,EVAL}を読み込み、それぞれ変数faqid,iid,qidおよびevalに格納する(S766)。次いで、修正されるFAQIDのfaqreviseとfaqidが一致すれば(S767のYes)次の更新処理に進み、一致しなければhi+1の処理ループに進む(S767のNo)。次の更新処理では、まず、FAQ評価値EVALの正負を反転させ、学習重み変数Gに値を格納する(S768)。追加学習データは{クエリID{iid,qid},カテゴリfaqrevise,重みG∈Z}である。これを検索モデル更新部124に入力し、検索モデル132を更新する(S770)。更新後、履歴hiが次回以降の更新処理において重複して用いられないようにするために、HEvalからhiを削除しておく(S771)。
なお、本実施形態における検索モデル更新処理(検索モデル更新処理S730およびS770)は、上記第2実施形態の検索モデル更新処理に対して、クエリID{IID,QID}を受け取り、クエリ候補生成履歴HQからクエリテキストを探し出せるよう拡張を施している。具体的には、入力データのQIDが{IID,QID}に変わり、S406においてQIDに対応するテキストUをクエリ候補Qcを格納したテーブルから見つける処理を、クエリID{IID,QID}からクエリ候補生成履歴HQから見つける処理に置き換えられる。なお、それ以外の処理は上記第2実施形態の検索モデル更新処理と同一であるため、説明は省略する。
このように本実施形態は、クエリ候補及び検索クエリキーワードに基づくFAQ検索履歴(ミスヒット履歴)、FAQ評価履歴、及びFAQ改善要求履歴を記憶し、新規FAQ情報の登録処理、FAQデータベース133に格納されるFAQ情報の更新処理及び削除処理、を制御するFAQ管理部125を備えている。
そして、FAQ管理部125は、以下の機能を提供する。
(1)FAQ検索履歴に基づいて、検索結果に含まれるFAQ情報の数が所定値よりも少ない(0でもよい)クエリ候補又はクエリ候補に含まれる1つ又は複数のキーワード(第2実施形態の検索クエリキーワード)を含む第1リストを生成してFAQ管理端末400に送信し、FAQ管理端末400において第1リストに含まれるクエリ候補又はクエリ候補に含まれる1つ又は複数のキーワードを含む質問と回答の組からなる新規FAQ情報を作成可能に制御し、FAQ管理端末400から新規FAQ情報を受信して登録する登録処理を行う。
このとき、検索モデル更新部124は、第1リストに含まれるクエリ候補と新規FAQ情報との組み合わせを追加学習データとして、FAQの数が所定値よりも少ないクエリ候補と同一又は類似のクエリ候補に対して、検索尤度がより高くなるように、検索モデル132を更新する。
(2)FAQ評価履歴に基づいてFAQ評価値が所定値よりも低いFAQ情報を含む第2リストを生成してFAQ管理端末400に送信し、FAQ管理端末400での第2リストに対する選択情報に基づいて該当するFAQ情報をFAQデータベースから削除する削除処理を行う。
このとき、検索モデル更新部124は、削除対象のFAQ情報を除外した検索モデル132の更新処理を行う。
(3)FAQ改善要求履歴に基づいて、FAQ改善要求が所定値よりも多いFAQ情報を含む第3リストを生成してFAQ管理端末400に送信し、FAQ管理端末400での第3リストに含まれるFAQ情報の質問又は回答に対する編集結果を受信して該当のFAQ情報を更新する更新処理を行う。
このとき、検索モデル更新部124は、更新対象のFAQ情報とクエリ候補との間の類似性に基づく検索尤度が、更新前のFAQ情報よりも高くなるように(更新前の検索尤度を引き継がないようにリセットするように)、検索モデル132を更新する。
以上、実施形態について説明したが、本発明は、スーパーバイザーなどの管理者と連動した機能を提供することもできる。例えば、コンタクトセンターは、複数のオペレータ装置300以外に、管理者装置を含むように構成することができる。このとき、情報検索装置100の制御装置120は、各オペレータ装置300に表示される対話支援画面を管理者装置から閲覧できるように制御することができる。具体的には、制御装置120は、管理者装置に対して各オペレータ装置300の対話支援画面をリモート接続可能に制御し、指定したオペレータ装置300(オペレータID)別に稼働中のオペレータ装置300の表示装置330に表示された内容をモニタリングすることができる。制御装置120は、チャット機能などで、管理者とオペレータとが対話するテキスト対話機能を提供するように構成してもよい。
また、管理者装置自体にも、本実施形態の対話支援機能を適用することができる。つまり、管理者も第2検索機能及びFAQ評価機能を実行して、クエリモデル131及び検索モデル132の各更新を促すことができる。なお、管理者は、上述の第3実施形態で説明したFAQ管理機能を使用して、FAQデータベース133に格納されているFAQの更新(編集・修正)、新規作成、削除などを、適宜行うことができる。
管理者が管理者装置において、表示部に表示されたオペレータの一覧からオペレータを選択すると、制御部120は、履歴DB134に蓄えられたオペレータ別の履歴情報を参照して、各履歴を管理者装置に表示することにより、管理者は対話内容、検索キーワード、検索結果のFAQ、および評価をモニタリングすることができる(例えば、図35参照)。
また、管理者装置自体にも、本実施形態の対話支援機能を適用することができる。オペレータとカスタマーとの対話内容を確認しながら、管理者がオペレータの検索結果のFAQを評価しなおすことができる。また、管理者も第2検索機能及びFAQ評価機能を実行して、クエリモデル131及び検索モデル132の各更新を促すことができる。
実施形態の例では、一つのテキスト情報を一つのクエリ候補として生成していた。1つ以上のテキスト情報の組み合わせを一つのクエリ候補としてもよい。一つのテキスト情報の中の部分テキストを単位として、1つ以上の部分テキストの組み合わせを一つのクエリ候補としてもよい。
発話テキストを順次受付けるようにし、時刻情報、テキストの意味内容、以前に入力された発話テキストの文脈情報などを用いて、同一の話題に関する発話テキストを一連の発話テキスト情報としてまとめ上げる処理を、前段に追加するように構成しても良い。
クエリモデルは、かならずしも質問であるか否かの2カテゴリに分類するモデルでなくともよい。たとえば、テキストの意図タイプ(質問、依頼、要求、など)に分類するモデルであってもよい。FAQがグループ(新規契約、解約、支払、契約内容変更、など)に分かれている場合、テキストをグループ別に分類するモデルであってもよい。
さらに、クエリモデルと検索モデルは1つのモデルであってもよい。たとえば、({¬Q,faq_1,..,faq_M}に分類するモデルであってもよい。
さらに、実施形態ではクエリ分類とのFAQ分類の2つの分類処理とを続けて行うものあったが、3つ以上の分類処理の階層型に拡張することもできる。たとえば、3階層のツリー型で分類処理を構成してもよい。第1のモデルがテキストを質問か否かに分類するモデルで、第2段のモデルが質問テキストをFAQのグループに分類するモデルで、第3段のモデルはFAQのグループ分あり、それぞれのモデルはグループのテキストを各FAQに分類する。処理はそれぞれの階層のモデルと対応する3段階からなる。第1段の処理において、入力テキストを第1のモデルによって分類する。第2段の処理では、第1段の処理で入力テキストが質問と分類された場合、該入力テキストを第2のモデルによってFAQのグループに分類する。最後に第3段の処理では、入力テキストをFAQグループに対応する第3段のモデルに振り分け、該第3段のモデルによって入力テキストを各FAQに分類する。追加の学習データを収集するために、第1段および第2段には、それぞれクエリ候補およびFAQグループ候補の中から、最良の候補をユーザーが選択する選択手段を設ける。第3段には、FAQ候補の中から、最良の候補を選択する選択手段もしくはそれぞれの候補を評価する評価手段を設ける。
第1段の処理において選択されたクエリと第2段の処理において選択されたFAQグループとの組を学習データとして、第2のモデルを更新する。第3段の処理では該選択クエリと選択(評価)されたFAQとの組を学習データとして、第3のモデルを更新する。
このように構成することによって、ユーザーによるそれぞれのモデルの学習データ作成が簡便に行うことができる。同様にして、4階層以上のツリー型にも拡張可能である。
また、上記各実施形態の各種画面は、情報検索装置100から画面情報をその都度提供してオペレータ装置300に表示させたり、オペレータ装置300に予め画面情報を記憶しておき、情報検索装置100から受信する制御情報に基づいて表示装置330に表示させるように制御してもよい。
また、本発明の各機能は、プログラムによって実現可能であり、各機能を実現するために予め用意されたコンピュータプログラムが補助記憶装置に格納され、CPU等の制御部が補助記憶装置に格納されたプログラムを主記憶装置に読み出し、主記憶装置に読み出された該プログラムを制御部が実行して、コンピュータに本発明の各部の機能を動作させることができる。他方、本発明の各機能は、各々個別の装置で構成することもでき、複数の装置を直接に又はネットワークを介して接続して本装置(システム)を構成することもできる。
また、上記プログラムは、コンピュータ読取可能な記録媒体に記録された状態で、コンピュータに提供することも可能である。コンピュータ読取可能な記録媒体としては、CD-ROM等の光ディスク、DVD-ROM等の相変化型光ディスク、MO(Magnet Optical)やMD(Mini Disk)などの光磁気ディスク、フロッピー(登録商標)ディスクやリムーバブルハードディスクなどの磁気ディスク、コンパクトフラッシュ(登録商標)、スマートメディア、SDメモリカード、メモリスティック等のメモリカードが挙げられる。また、本発明の目的のために特別に設計されて構成された集積回路(ICチップ等)等のハードウェア装置も記録媒体として含まれる。
なお、本発明の実施形態を説明したが、当該実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
100 情報検索装置
110 通信制御装置
120 制御装置
121 クエリ生成部
121A キーワード抽出部
122 検索部
123 クエリモデル更新部
124 検索モデル更新部
125 FAQ管理部
130 記憶装置
131 クエリモデル
132 検索モデル
133 FAQデータベース(FAQナレッジデータベース)
134 履歴DB
300 オペレータ装置
310 対話装置
310A 生成部
320 制御装置
330 表示装置
340 入力装置
400 FAQ管理端末
410 制御装置
420 表示装置
430 入力装置

Claims (16)

  1. 任意の所定単位の一連のテキストデータが入力され、所定の記憶領域から前記テキストデータに応じたナレッジ情報を検索する情報検索装置であって、
    テキストデータに対し、前記ナレッジ情報を検索するためのクエリらしさを評価する第1モデルと、
    前記第1モデルを用いて、前記ナレッジ情報を検索するためのクエリ候補を生成するクエリ生成部と、
    前記ナレッジ情報の前記クエリ候補に対する検索結果としてのもっともらしさを評価する第2モデルと、
    前記第2モデルを用いて、前記クエリ候補に関連する第1ナレッジ情報を抽出する第1検索部と、
    前記クエリ候補と、前記第1ナレッジ情報とを所定の表示領域に出力する第1出力部と、
    前記第1ナレッジ情報が表示された前記表示領域における前記クエリ候補に対するクエリ選択履歴を取得し、このクエリ選択履歴に基づき選択クエリ候補に関連する第2ナレッジ情報を、前記第2モデルを用いて抽出する第2検索部と、
    前記第2ナレッジ情報を前記表示領域に出力する第2出力部と、
    前記第1ナレッジ情報に対する、前記クエリ候補と前記第1ナレッジ情報との対応付け情報、または/および前記第2ナレッジ情報に対する、前記選択クエリ候補と前記第2ナレッジ情報との対応付け情報を含むナレッジ評価履歴を取得して前記第2モデルを更新する第2モデル更新部と、
    を備えたことを特徴とする情報検索装置。
  2. 任意の所定単位の一連のテキストデータが入力され、所定の記憶領域から前記テキストデータに応じたナレッジ情報を検索する情報検索装置であって、
    前記テキストデータに対し、前記ナレッジ情報を検索するためのクエリらしさを表すクエリ尤度を評価する第1モデルと、
    前記第1モデルを用いて、前記テキストデータのクエリ尤度値を算出し、前記クエリ尤度値に基づいて、前記ナレッジ情報を検索するためのクエリ候補を生成するクエリ生成部と、
    前記ナレッジ情報の前記クエリ候補に対する検索結果としてのもっともらしさを評価する第2モデルと、
    前記第2モデルを用いて、前記クエリ候補に対する検索尤度を算出し、前記検索尤度に基づいて、前記クエリ候補に関連する第1ナレッジ情報を抽出する第1検索部と、
    前記クエリ候補と、前記第1ナレッジ情報とを所定の表示領域に出力する第1出力部と、
    前記第1ナレッジ情報が表示された前記表示領域における前記クエリ候補に対するクエリ選択履歴を取得し、前記第1モデルを更新する第1モデル更新部と、
    前記第2モデルを用いて、前記クエリ選択履歴に基づく選択クエリ候補に対する検索尤度を算出し、前記検索尤度に基づいて、前記選択クエリ候補に関連する第2ナレッジ情報を抽出する第2検索部と、
    前記第2ナレッジ情報を前記表示領域に出力する第2出力部と、
    前記第1ナレッジ情報または/および前記第2ナレッジ情報に対するナレッジ評価履歴を取得して前記第2モデルを更新する第2モデル更新部と、を有し、
    前記ナレッジ評価履歴は、前記クエリ候補と前記第1ナレッジ情報との対応付け情報、または/および前記選択クエリ候補と前記第2ナレッジ情報との対応付け情報を含み、
    前記クエリ選択履歴を用いた前記第1モデル更新部による第1更新処理と、第1更新処理で使用される前記クエリ選択履歴と前記ナレッジ評価履歴とに基づく前記第2モデル更新部による第2更新処理とが、並行して実行されることを特徴とする情報検索装置。
  3. 前記第1モデル更新部は、選択された前記クエリ候補に対応する前記テキストデータのクエリ尤度を、選択されなかった前記クエリ候補のクエリ尤度よりも高く設定することを特徴とする請求項2に記載の情報検索装置。
  4. 前記第1モデル更新部は、前記選択クエリ候補と同一または類似するテキストを含む前記テキストデータが入力されたときに、同一または類似のテキスト部分のクエリ尤度がより高くなるように前記第1モデルを更新することを特徴とする請求項2又は3に記載の情報検索システム装置。
  5. 前記クエリ生成部は、前記任意の所定単位の一連のテキストデータに含まれる前記各テキストデータそれぞれのクエリ尤度を算出し、算出されたクエリ尤度が最も高いテキストデータ、又は算出されたクエリ尤度が所定値以上のテキストデータを前記クエリ候補として生成することを特徴とする請求項1から4のいずれか1つに記載の情報検索システム装置。
  6. 前記第2モデル更新部は、前記ナレッジ評価履歴に該当するナレッジ情報と前記対応付け情報により対応付けられた前記クエリ候補と同一または類似したテキストデータが入力されたときに、前記検索尤度がより高くなるように前記第2モデルを更新することを特徴とする請求項2から4のいずれか1つに記載の情報検索システム装置。
  7. 前記第2モデル更新部は、前記第1検索部によって抽出された前記第1ナレッジ情報に対する第1ナレッジ評価履歴及び前記第2検索部によって抽出された前記第2ナレッジ情報に対する第2ナレッジ評価履歴を取得し、各ナレッジ評価履歴に基づいて前記第2モデルを更新することを特徴とする請求項1から6のいずれか1つに記載の情報検索装置。
  8. 前記所定単位の一連のテキストデータは、少なくとも単語、文章、テキストデータの入力時刻、テキストデータの入力者、テキストデータの意味の何れかに基づく所定の単位に分割されたテキストデータであることを特徴とする請求項1から7のいずれか1つに記載の情報検索システム装置。
  9. テキストデータの検索クエリとしての重要度を評価する第3モデルと、
    前記クエリ生成部は、前記第3モデルを用いて前記テキストデータから検索クエリとして重要な1つ以上の部分文字列を抽出するキーワード抽出部と、を有し、
    前記抽出された1つ以上の部分文字列をクエリ候補として出力することを特徴とする請求項1から8のいずれか1つに記載の情報検索装置。
  10. 前記クエリ生成部より出力された前記1つ以上の部分文字列を出力し、前記部分文字列に対して編集された部分文字列を入力として受け付ける入出力部と、
    前記第2モデルを用いて、前記部分文字列に対する検索尤度を算出し、前記検索尤度に基づいて、前記部分文字列に関連する第3ナレッジ情報を抽出する第3検索部と、
    前記第3ナレッジ情報を出力する第3出力部と、を更に有し、
    前記第2モデル更新部は、前記第3ナレッジ情報に対するナレッジ評価履歴を取得して前記第2モデルを更新することを特徴とする請求項9に記載の情報検索装置。
  11. 前記第3モデルを、少なくとも前記選択クエリ候補、前記部分文字列、前記検索クエリの何れかに基づき、前記選択クエリ候補、前記部分文字列、前記検索クエリの何れかに含まれる、少なくとも一つの部分文字列について、第3モデルの語彙に含まれない場合は該部分文字列を追加し、第3モデルの語彙に含まれる場合は重要度がより高くなるように前記第3モデルを更新することを特徴とする請求項10に記載の情報検索装置。
  12. 前記ナレッジ情報の登録処理を制御するナレッジ管理部と、
    前記クエリ候補に基づくナレッジ情報検索履歴を記憶する記憶部と、をさらに含み、
    前記ナレッジ管理部は、
    前記ナレッジ情報検索履歴に基づいて、検索結果に含まれる前記ナレッジ情報が無い場合、または検索結果に含まれる全てのナレッジ情報の検索尤度が所定値を下回る場合に、前記クエリ候補又は前記クエリ候補に含まれる1つ又は複数の、検索要求として重要な1つ以上の部分文字列を含む第1リストを生成して所定の管理者端末に送信し、前記第1リストに含まれる前記クエリ候補又は前記クエリ候補に含まれる1つ又は複数の前記部分文字列を含む新規ナレッジ情報を前記管理者端末から受信して登録する前記登録処理を行い、
    前記第2モデル更新部は、前記第1リストに含まれる前記クエリ候補と新規ナレッジ情報との組を追加学習データとして、前記追加学習データの前記クエリ候補と同一又は類似のクエリ候補に対して、検索尤度がより高くなるように、前記第2モデルを更新することを特徴とする請求項1から11のいずれか1つに記載の情報検索装置。
  13. 前記ナレッジ情報の削除処理を制御するナレッジ管理部と、
    前記クエリ候補に基づくナレッジ評価履歴を記憶する記憶部と、をさらに含み、
    前記ナレッジ管理部は、
    前記ナレッジ評価履歴に基づいてナレッジ評価値が所定値よりも低い前記ナレッジ情報を含む第2リストを生成して所定の管理者端末に送信し、前記第2リストに対する選択情報に基づいて該当する前記ナレッジ情報を削除する前記削除処理を行い、
    前記第2モデル更新部は、削除対象の前記ナレッジ情報を除外した前記第2モデルの更新処理を行うことを特徴とする請求項1から11のいずれか1つに記載の情報検索装置。
  14. 前記ナレッジ情報の更新処理を制御するナレッジ管理部と、
    前記検索された前記ナレッジ情報に対するナレッジ情報改善要求履歴を記憶する記憶部と、をさらに含み、
    前記ナレッジ管理部は、
    前記ナレッジ情報改善要求履歴に基づいて、ナレッジ情報改善要求が所定値よりも多い前記ナレッジ情報を含む第3リストを生成して所定の管理者端末に送信し、前記第3リストに含まれる前記ナレッジ情報に対する編集情報を前記管理者端末から受信して該当の前記ナレッジ情報を更新する前記更新処理を行い、
    前記第2モデル更新部は、更新対象のナレッジ情報の前記クエリ候補に対する検索結果としてもっともらしさを表す検索尤度が、更新履歴に基づき更新前のナレッジ情報についてのモデル更新を取り消し、当該ナレッジ情報以外のナレッジ情報については更新を保持するように前記第2モデルを更新することを特徴とする請求項1から11のいずれか1つに記載の情報検索装置。
  15. 任意の所定単位の一連のテキストデータが入力され、所定の記憶領域から前記テキストデータに応じたナレッジ情報を検索する情報検索装置によって遂行される方法であって、
    前記ナレッジ情報を検索するためのクエリらしさを評価する第1モデルを用いて、前記ナレッジ情報を検索するためのクエリ候補を生成する第1ステップと、
    前記ナレッジ情報の前記クエリ候補に対する検索結果としてのもっともらしさを評価する第2モデルを用いて、前記クエリ候補に関連する第1ナレッジ情報を抽出する第2ステップと、
    前記クエリ候補と、前記第1ナレッジ情報とを所定の表示領域に出力する第3ステップと、
    前記第1ナレッジ情報が表示された前記表示領域における前記クエリ候補に対するクエリ選択履歴を取得し、この取得した選択履歴に基づき選択クエリ候補に関連する第2ナレッジ情報を抽出する第4ステップ、
    前記第2ナレッジ情報を前記表示領域に出力する第5ステップと、
    前記第1ナレッジ情報に対する、前記クエリ候補と前記第1ナレッジ情報との対応付け情報、または/および前記第2ナレッジ情報に対する、前記選択クエリ候補と前記第2ナレッジ情報との対応付け情報を含むナレッジ評価履歴を取得して前記第2モデルを更新する6ステップと、を備えたことを特徴とする情報検索方法。
  16. 任意の所定単位の一連のテキストデータが入力され、所定の記憶領域から前記テキストデータに応じたナレッジ情報を検索する処理をコンピュータに実行させるためのプログラムであって、前記コンピュータに、
    前記ナレッジ情報を検索するためのクエリらしさを評価する第1モデルを用いて、前記ナレッジ情報を検索するためのクエリ候補を生成する第1機能と、
    前記ナレッジ情報の前記クエリ候補に対する検索結果としてのもっともらしさを評価する第2モデルを用いて、前記クエリ候補に関連する第1ナレッジ情報を抽出する第2機能と、
    前記クエリ候補と、前記第1ナレッジ情報とを所定の表示領域に出力する第3機能と、
    前記第1ナレッジ情報が表示された前記表示領域における前記クエリ候補に対するクエリ選択履歴を取得し、この取得した選択履歴に基づき選択クエリ候補に関連する第2ナレッジ情報を抽出する第4機能と、
    前記第2ナレッジ情報を前記表示領域に出力する第5機能と、
    前記第1ナレッジ情報に対する、前記クエリ候補と前記第1ナレッジ情報との対応付け情報、または/および前記第2ナレッジ情報に対する、前記選択クエリ候補と前記第2ナレッジ情報との対応付け情報を含むナレッジ評価履歴を取得して前記第2モデルを更新する第6機能と、
    を前記コンピュータに実現させることを特徴とするプログラム。
JP2018129542A 2018-07-06 2018-07-06 情報検索システム Active JP7182923B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018129542A JP7182923B2 (ja) 2018-07-06 2018-07-06 情報検索システム
PCT/JP2019/025848 WO2020009027A1 (ja) 2018-07-06 2019-06-28 情報検索システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018129542A JP7182923B2 (ja) 2018-07-06 2018-07-06 情報検索システム

Publications (2)

Publication Number Publication Date
JP2020009140A JP2020009140A (ja) 2020-01-16
JP7182923B2 true JP7182923B2 (ja) 2022-12-05

Family

ID=69059725

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018129542A Active JP7182923B2 (ja) 2018-07-06 2018-07-06 情報検索システム

Country Status (2)

Country Link
JP (1) JP7182923B2 (ja)
WO (1) WO2020009027A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7452090B2 (ja) 2020-02-26 2024-03-19 沖電気工業株式会社 処理システム、処理方法、管理者装置、及びプログラム
JP7475922B2 (ja) 2020-03-27 2024-04-30 株式会社東芝 知識情報作成支援装置
CN111522953B (zh) * 2020-04-24 2023-04-07 广州大学 一种针对朴素贝叶斯分类器的边际攻击方法、装置及存储介质
CN111753198B (zh) * 2020-06-22 2024-01-12 北京百度网讯科技有限公司 信息推荐方法和装置、以及电子设备和可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011024282A1 (ja) 2009-08-27 2011-03-03 株式会社 東芝 情報検索装置
WO2014033855A1 (ja) 2012-08-29 2014-03-06 株式会社日立製作所 音声検索装置、計算機読み取り可能な記憶媒体、及び音声検索方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11250086A (ja) * 1998-03-03 1999-09-17 Hitachi Ltd 検索支援システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011024282A1 (ja) 2009-08-27 2011-03-03 株式会社 東芝 情報検索装置
WO2014033855A1 (ja) 2012-08-29 2014-03-06 株式会社日立製作所 音声検索装置、計算機読み取り可能な記憶媒体、及び音声検索方法

Also Published As

Publication number Publication date
JP2020009140A (ja) 2020-01-16
WO2020009027A1 (ja) 2020-01-09

Similar Documents

Publication Publication Date Title
JP7182923B2 (ja) 情報検索システム
US20210019341A1 (en) Implementing a software action based on machine interpretation of a language input
CN109829104B (zh) 基于语义相似度的伪相关反馈模型信息检索方法及系统
CN103339623B (zh) 涉及因特网搜索的方法和设备
CN110069607B (zh) 用于客户服务的方法、装置、电子设备、计算机可读存储介质
CN100565670C (zh) 用于用户模型化以增强对命名实体识别的系统和方法
US20020055916A1 (en) Machine interface
US20080221846A1 (en) Context-Aware, Adaptive Approach to Information Selection for Interactive Information Analysis
CN109947902B (zh) 一种数据查询方法、装置和可读介质
JP2002024212A (ja) 音声対話システム
WO2006085661A1 (ja) 質問応答データ編集装置、質問応答データ編集方法、質問応答データ編集プログラム
CN111552799A (zh) 信息处理方法、装置、电子设备及存储介质
CN111090771B (zh) 歌曲搜索方法、装置及计算机存储介质
CN105975531A (zh) 基于对话知识库的机器人对话控制方法和系统
CN106951503A (zh) 信息提供方法、装置、设备以及存储介质
KR101891498B1 (ko) 대화형 ai 에이전트 시스템에서 멀티 도메인 인텐트의 혼재성을 해소하는 멀티 도메인 서비스를 제공하는 방법, 컴퓨터 장치 및 컴퓨터 판독가능 기록 매체
CN111930948B (zh) 一种信息收集和分级方法、装置、计算机设备及存储介质
CN108920543A (zh) 查询和交互的方法及装置、计算机装置、存储介质
JPH11161670A (ja) 情報フィルタリング方法、装置及びシステム
WO2020095776A1 (ja) 知識情報作成支援装置
JP2829745B2 (ja) 文書検索装置
CN115062135B (zh) 一种专利筛选方法与电子设备
JP6882975B2 (ja) 対話ログ群からコンテキストを決定可能な対話シナリオ生成装置、プログラム及び方法
CN116361416A (zh) 基于语义分析及高维建模的语音检索方法、系统及介质
WO2021193214A1 (ja) 知識情報作成支援装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210326

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220517

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220711

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221025

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221122

R150 Certificate of patent or registration of utility model

Ref document number: 7182923

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150