以下に図面を参照して、本発明にかかる回答出力プログラム、回答出力方法および情報処理装置の実施の形態を詳細に説明する。
(実施の形態)
図1は、実施の形態にかかる回答出力方法の一実施例を示す説明図である。図1において、情報処理装置101は、質問に対応する回答候補を出力するコンピュータである。質問は、何らかの問題の解決方法を問いただすためのものである。質問は、例えば、商品やサービスについての質問である。質問は、単語または複数の単語の組み合わせによって表現されてもよいし、1または複数の文章によって表現されてもよい。
また、回答候補は、問題を解決するための情報である。すなわち、質問に対応する回答候補は、質問された問題の解決方法を示す回答の候補である。回答候補は、例えば、FAQである。FAQは、「頻繁に尋ねられる質問」の略であり、あらかじめ予想される質問に対して、質問と回答をまとめたものである。
ここで、コールセンタやサポートセンタでは、オペレータのスキル平準化や回答リードタイムの短縮化のため、FAQシステムが導入されていることが多い。FAQシステムを適切に運用すると、一次回答率や顧客満足度の向上につながるため、コールセンタ等においてFAQシステムは重要な位置付けにある。
また、企業の中には、インターネット上に自社のFAQを公開しているところもある。社外にFAQサイトを公開することで、顧客自身がFAQを閲覧できるようになるため、顧客の利便性の向上やコールセンタ等への問い合わせの削減が期待できる。
一方で、FAQの内容は陳腐化しやすいため、定期的な見直しを行うことが望ましいが、FAQの見直しにかかる運用負荷は大きい。例えば、FAQマスタに登録されるFAQの数は、数千~数万個程度となることもあり、それらFAQの内容を短期間に人手で見直すのは非常に負荷がかかる。
このため、FAQの見直し作業が、商品やサービスの名称変更や新規投入等に追随できず、質問に対して1件もFAQを提示できない、いわゆる、0件ヒットを招くおそれがある。また、チャット形式で質問を受け付ける場合、タイプミスや変換ミスが生じていても確認や修正をせずに検索を始めてしまうケースがある。このような場合は、0件ヒットとなることが多い。
0件ヒットが発生すると、利用者は質問を入力し直して再検索することになる。しかし、利用者によっては、質問を入力し直すことが面倒なため、問題解決をあきらめてしまうこともある。したがって、利用者から入力された質問に対して、何らかの検索結果を提示することは重要である。一方で、質問に何ら関係のないFAQを出力しても問題の解決にはならず、ひいては、コールセンタ等の信頼性の低下につながるおそれがある。
そこで、本実施の形態では、入力された質問に対応する回答候補がなくても、他の質問を推定して回答候補を出力する回答出力方法について説明する。以下、情報処理装置101の処理例について説明する。
(1)情報処理装置101は、第1の質問の入力を受け付ける。入力される質問は、単語または複数の単語の組み合わせであってもよいし、1または複数の文章であってもよい。質問を入力するユーザは、例えば、コールセンタ等のオペレータや、FAQサイトを利用する利用者である。図1の例では、第1の質問「X%#」の入力を受け付けた場合を想定する。
(2)情報処理装置101は、受け付けた第1の質問に対応する回答候補の有無を判定する。回答候補は、例えば、FAQである。質問に対応する回答候補は、例えば、FAQシステムやFAQサイトにおいて採用されている既存の検索アルゴリズムを用いて検索される、質問に対する検索結果(FAQ)である。
具体的には、例えば、情報処理装置101は、受け付けた第1の質問を形態素解析して形態素に分解する。つぎに、情報処理装置101は、FAQマスタ(例えば、後述の図2に示すFAQマスタ220)から、所定の検索条件にしたがって、分解した形態素に対応するFAQを検索する。ここで、FAQが検索されなかった場合、情報処理装置101は、第1の質問に対応する回答候補がないと判定する。
図1の例では、受け付けた第1の質問「X%#」に対応する回答候補がないと判定された場合を想定する。なお、情報処理装置101は、受け付けた第1の質問に対応する回答候補を、他のコンピュータにアクセスして検索することにしてもよい。
(3)情報処理装置101は、回答候補がないと判定した場合、記憶部110を参照して、受け付けた第1の質問に後続して入力される第2の質問を特定する。具体的には、例えば、情報処理装置101は、記憶部110の記憶内容に基づく機械学習を行って、第1の質問に後続して入力される第2の質問を特定する。
ここで、機械学習とは、コンピュータが、データから学習して、パターンや傾向を導き出し、将来予測や意思決定を可能にすることである。記憶部110は、質問と対応付けて、当該質問に対応する回答候補がないときに後続して入力を受け付けた他の質問を記憶する。ここで、他の質問は、他の質問に対して表示されたいずれかの回答候補が選択された質問である。すなわち、記憶部110は、機械学習に用いる教師データを記憶する。
より詳細に説明すると、記憶部110は、質問に対応する回答候補がないときに後続して入力を受け付けた他の質問を、当該質問に対応付けた教師データ(まいご)を記憶する。また、他の質問は、例えば、他の質問に対して上位に表示された所定数Nの回答候補のいずれかが選択された質問であってもよい。
所定数Nは、任意に設定可能である。所定数Nは、例えば、質問に対する回答候補を表示する画面の1ページ目に表示される回答候補の上限数に設定される。FAQシステムやFAQサイトでは、所定数Nは、30程度の値に設定される。チャットボットでは、所定数Nは、5程度の値に設定される。
すなわち、他の質問は、他の質問に対して検索結果の1ページ目に表示されたいずれかの回答候補が利用者によって照会(選択)された質問であり、問題解決のための回答が得られた可能性がある質問である。このような他の質問を、先行して入力された質問に対応付けた教師データを用いて機械学習することで、第1の質問に後続して入力される質問であって、当該質問に対して1ページ目に表示されたいずれかの回答候補が選択される可能性が高い質問の特徴を導き出す。
図1の例では、第1の質問「X%#」に後続して入力される第2の質問「XXX」が特定された場合を想定する。
(4)情報処理装置101は、特定した第2の質問に対応する回答候補を出力する。図1の例では、情報処理装置101は、例えば、FAQマスタから、特定した第2の質問「XXX」に対応する回答候補を検索する。ここでは、第2の質問「XXX」に対応する回答候補1~5が検索された場合を想定する。この場合、情報処理装置101は、検索した回答候補1~5を出力する。
このように、情報処理装置101によれば、入力された第1の質問に対応する回答候補がなくても、過去のユーザの操作履歴をもとに、第1の質問に置き換わる第2の質問を推定して回答候補を出力することができる。第2の質問は、例えば、第1の質問に後続して入力される質問であって、当該質問に対して表示されたいずれかの回答候補が選択される可能性が高い質問である。このため、0件ヒットとなる質問が入力されても、問題解決につながるような適切な回答候補を出力することができる。
なお、情報処理装置101は、上記(3)において特定した第2の質問を、第1の質問と対応付けて記憶部110に記憶することにしてもよい。この場合、情報処理装置101は、再び第1の質問の入力を受け付けた場合に、記憶部110を参照して、第1の質問に対応する第2の質問を特定することにしてもよい。これにより、0件ヒットとなる質問が再度入力された際に、機械学習を実施することなく、他の質問を推定して回答候補を出力することが可能となる。
また、情報処理装置101は、上記(3)において特定した第2の質問に対応する回答候補を、第1の質問と対応付けて記憶部110に記憶することにしてもよい。この場合、情報処理装置101は、再び第1の質問の入力を受け付けた場合に、記憶部110を参照して、第1の質問に対応する回答候補を出力することにしてもよい。これにより、0件ヒットとなる質問が再度入力された際に、機械学習を実施することなく、当該質問に対応する回答候補を出力することが可能となる。
ただし、時間の経過とともに新たな教師データ(まいご)が記憶部110に蓄積され、ある質問に後続して入力される他の質問の傾向は変化する。したがって、第2の質問は、例えば、第1の質問に対応する回答候補がないと判定した際に、その都度特定することが望ましい。また、第1の質問と対応付けて記憶部110に記憶する第2の質問は、例えば、定期的に見直すことが望ましい。
(回答出力システム200のシステム構成例)
つぎに、図1に示した情報処理装置101を含む回答出力システム200のシステム構成例について説明する。回答出力システム200は、例えば、コールセンタ等のFAQシステムに適用されてもよく、また、インターネット上に公開されるFAQサイトに適用されてもよい。
図2は、回答出力システム200のシステム構成例を示す説明図である。図2において、回答出力システム200は、情報処理装置101と、複数の端末201(図2の例では、3台)と、を含む。回答出力システム200において、情報処理装置101および複数の端末201は、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
ここで、情報処理装置101は、質問に対応する回答候補を出力する。以下の説明では、回答候補として「FAQ」を例に挙げて説明する場合がある。また、情報処理装置101は、FAQマスタ220、アクセスログDB(Database)230、教師データ(よゐこ)DB240、教師データ(わるいこ)DB250および教師データ(まいご)DB260を有する。情報処理装置101は、例えば、サーバである。
なお、各種DB220,230,240,250,260等の記憶内容については、図4~図8を用いて後述する。
端末201は、回答出力システム200のユーザが使用するコンピュータである。回答出力システム200のユーザは、例えば、コールセンタのオペレータや、FAQサイトの利用者である。端末201は、例えば、PC(Personal Computer)、スマートフォン、タブレット型PCなどである。
(情報処理装置101のハードウェア構成例)
図3は、情報処理装置101のハードウェア構成例を示すブロック図である。図3において、情報処理装置101は、CPU(Central Processing Unit)301と、メモリ302と、I/F(Interface)303と、ディスクドライブ304と、ディスク305と、を有する。また、各構成部は、バス300によってそれぞれ接続される。
ここで、CPU301は、情報処理装置101の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMがOS(Operating System)のプログラムを記憶し、ROMがアプリケーションプログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
I/F303は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して外部のコンピュータ(例えば、図2に示した端末201)に接続される。そして、I/F303は、ネットワーク210と装置内部とのインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。I/F303には、例えば、モデムやLANアダプタなどを採用することができる。
ディスクドライブ304は、CPU301の制御に従ってディスク305に対するデータのリード/ライトを制御する。ディスク305は、ディスクドライブ304の制御で書き込まれたデータを記憶する。ディスク305としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
なお、情報処理装置101は、上述した構成部のほかに、例えば、SSD(Solid State Drive)、入力装置、ディスプレイ等を有することにしてもよい。また、図2に示した端末201についても、情報処理装置101と同様のハードウェア構成により実現することができる。ただし、端末201は、上述した構成部のほかに、入力装置、ディスプレイ等を有する。
(各種DB220,230,240,250,260等の記憶内容)
つぎに、図4~図8を用いて、情報処理装置101が有する各種DB220,230,240,250,260等の記憶内容について説明する。
図4は、FAQマスタ220の記憶内容の一例を示す説明図である。図4において、FAQマスタ220は、FAQ番号、質問および回答のフィールドを有し、各フィールドに情報を設定することで、FAQ(例えば、FAQ400-1,400-2)をレコードとして記憶する。
ここで、FAQ番号は、FAQを一意に識別する識別子である。FAQ400-#の「#」は、FAQ番号に対応する。質問は、あらかじめ予想される質問である。回答は、あらかじめ予想される質問に対する回答である。例えば、FAQ400-1は、質問「PCを初期状態に戻す方法を教えてください。」と、回答「トラブルが発生し正常に動作しなくなった場合などに、リカバリする方法は、次のとおりです。・・・」と、をまとめたものである。
図5は、アクセスログDB230の記憶内容の一例を示す説明図である。図5において、アクセスログDB230は、セッション番号、日時、タイプ、検索ワード、照会FAQ、順位および検索リストのフィールドを有する。各フィールドに情報を設定することで、アクセスログ、例えば、アクセスログ500-1~500-3がレコードとして記憶される。
ここで、セッション番号は、情報処理装置101と端末201とのセッションを一意に識別する識別子である。セッションは、2点間(装置間)の通信において、情報をやり取りするために設定する論理的な接続関係である。日時は、端末201において操作が行われた日時である。
タイプは、端末201において行われた操作のタイプである。タイプとしては、例えば、検索、照会などが挙げられる。タイプ「検索」は、検索ワードに対応するFAQを検索する操作を表す。タイプ「照会」は、検索ワードに対するFAQを選択する操作、すなわち、FAQの内容を照会する操作を表す。
検索ワードは、端末201において入力される質問に相当する。検索ワードは、単語または複数の単語の組み合わせであってもよいし、1または複数の文章であってもよい。照会FAQは、検索ワードに対する選択操作を受け付けたFAQ、すなわち、照会されたFAQのFAQ番号である。
順位は、検索ワードに対してFAQが表示された際に、当該FAQが上から何番目に表示されるかを示す順位である。検索リストは、検索ワードに基づきFAQマスタ220(例えば、図4参照)から検索されたFAQのFAQ番号をリスト化したものである。
図6は、教師データ(よゐこ)DB240の記憶内容の一例を示す説明図である。図6において、教師データ(よゐこ)DB240は、日時、照会FAQおよび形態素解析後検索ワードのフィールドを有する。各フィールドに情報を設定することで、教師データ(よゐこ)、例えば、教師データ(よゐこ)600-1,600-2がレコードとして記憶される。
ここで、日時は、照会FAQが照会された日時である。照会FAQは、検索ワードに対して1ページ目に表示された際に選択操作を受け付けたFAQ、すなわち、照会されたFAQのFAQ番号である。1ページ目に表示されるFAQは、検索ワードに対するFAQのうち上位N件のFAQである。形態素解析後検索ワードは、照会FAQが照会されたときの検索ワードを形態素解析して検出された1または複数の形態素である。
図7は、教師データ(わるいこ)DB250の記憶内容の一例を示す説明図である。図7において、教師データ(わるいこ)DB250は、日時、非照会FAQおよび形態素解析後検索ワードのフィールドを有する。各フィールドに情報を設定することで、教師データ(わるいこ)、例えば、教師データ(わるいこ)700-1~700-3がレコードとして記憶される。
ここで、日時は、非照会FAQが照会されなかった日時、例えば、非照会FAQが照会されずに情報処理装置101と端末201とのセッションが切断された日時である。非照会FAQは、検索ワードに対して1ページ目に表示された際に選択操作を受け付けなかったFAQ、すなわち、照会されなかったFAQのFAQ番号である。形態素解析後検索ワードは、非照会FAQが照会されなかったときの検索ワードを形態素解析して検出された1または複数の形態素である。
図8は、教師データ(まいご)DB260の記憶内容の一例を示す説明図である。図8において、教師データ(まいご)DB260は、日時、代替ワードおよび検索ワードのフィールドを有する。各フィールドに情報を設定することで、教師データ(まいご)、例えば、教師データ(まいご)800-1がレコードとして記憶される。
ここで、日時は、検索ワードに対してFAQマスタ220から1件もFAQが検索されなかった日時、例えば、当該検索ワードに対応するFAQを検索する操作が行われた日時である。代替ワードは、1件もFAQが表示されなかった検索ワードに後続して入力を受け付けた他の検索ワードであって、当該他の検索ワードに対して1ページ目に表示されたいずれかのFAQが選択された検索ワードである。検索ワードは、FAQマスタ220から1件もFAQが検索されなかった質問である。検索ワードは、例えば、検索ワードを形態素解析して検出された1または複数の形態素によって表現されてもよい。
(FAQ画面900の画面例)
つぎに、端末201に表示されるFAQ画面900の画面例について説明する。以下の説明では、端末201に表示される操作画面のボックス、ボタン等をユーザが選択する操作として、不図示の入力装置を用いたクリック操作を行う場合を例に挙げて説明する。
図9は、FAQ画面900の画面例を示す説明図である。図9において、FAQ画面900は、FAQを検索したり、FAQを照会したりする操作画面の一例である。FAQ画面900において、ボックス901をクリックすると、検索ワードを入力することができる。図9の例では、検索ワード「FJ10 初期化」が入力されている。
また、FAQ画面900において、ボタン902をクリックすると、ボックス901に入力された検索ワードに対応するFAQを検索することができる。具体的には、ボタン902をクリックすると、ボックス901に入力された検索ワードが、端末201から情報処理装置101に送信される。
この結果、情報処理装置101から端末201に検索ワードに対する検索結果が送信され、検索されたFAQが表示エリア910にリスト化されて表示される。この際、上位N件のFAQは、1ページ目に表示される。それ以外のFAQは、2ページ以降に表示される。Nは、任意に設定可能であり、5~30程度の値に設定される。ここでは、Nは「N=5」である。
図9の例では、検索ワード「FJ10 初期化」に対応するFAQが検索された結果、上位5件のFAQ911~915が、1ページ目の検索結果として表示エリア910に表示されている。なお、FAQ画面900において、ボタン903をクリックすると、2ページ目の検索結果を表示することができる。
また、FAQ画面900において、表示エリア910に表示されたいずれかのFAQをクリックすると、当該FAQの内容を照会することができる。例えば、FAQ911をクリックすると、FAQ911の内容(質問と回答)を照会することができる。また、表示エリア910に表示されたいずれかのFAQがクリックされると、当該FAQが選択されたことを示す選択結果が、端末201から情報処理装置101に送信される。
(情報処理装置101の機能的構成例)
図10は、情報処理装置101の機能的構成例を示すブロック図である。図10において、情報処理装置101は、受付部1001と、検索部1002と、決定部1003と、出力制御部1004と、生成部1005と、判定部1006と、特定部1007と、記憶部1010と、を含む。受付部1001~特定部1007は制御部となる機能であり、具体的には、例えば、図3に示したメモリ302、ディスク305などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、I/F303により、その機能を実現する。各機能部の処理結果は、例えば、メモリ302、ディスク305などの記憶装置に記憶される。
また、記憶部1010は、メモリ302、ディスク305などの記憶装置により実現される。例えば、記憶部1010は、各種DB220,230,240,250,260,1900(後述の図19参照)等を記憶する。なお、記憶部1010は、情報処理装置101とは異なる他のコンピュータが有することにしてもよい。この場合、情報処理装置101は、他のコンピュータにアクセスして、記憶部1010の記憶内容を参照することができる。
受付部1001は、質問の入力を受け付ける。質問は、何らかの問題の解決方法を問いただすための検索ワードであり、単語または複数の単語の組み合わせであってもよいし、1または複数の文章であってもよい。質問の入力は、例えば、図9に示したFAQ画面900において行われる。具体的には、例えば、受付部1001は、端末201から、FAQ画面900に入力された検索ワードを受信することにより、検索ワードの入力を受け付ける。以下の説明では、質問を「検索ワード」と表記する場合がある。
検索部1002は、検索ワードに対応するFAQを検索する。具体的には、例えば、検索部1002は、検索ワードを形態素解析して形態素に分解する。つぎに、検索部1002は、図4に示したFAQマスタ220から、所定の検索条件にしたがって、分解した形態素に対応するFAQを検索する。
より詳細に説明すると、例えば、検索部1002は、検索ワードを形態素解析して検出された形態素についてのAND条件またはOR条件を設定して、FAQマスタ220からFAQを検索してもよい。この際、検索部1002は、例えば、各FAQの過去のアクセス数(照会数)や検索ワードとの類似度を考慮して、アクセス数が多いFAQや類似度が高いFAQを検索することにしてもよい。
これにより、検索ワードに対応するFAQを特定することができる。検索結果は、例えば、タイプ「検索」のアクセスログとして、図5に示したアクセスログDB230に記憶される。具体的には、アクセスログのセッション番号には、検索ワードを受け付けた端末201と情報処理装置101とのセッションのセッション番号が設定される。アクセスログの日時には、検索ワードを受け付けた日時が設定される。アクセスログの検索ワードには、受け付けた検索ワードが設定される。アクセスログの照会FAQおよび順位は「空白」である。アクセスログの検索リストには、検索されたFAQのFAQ番号が設定される。ただし、検索ワードに対応するFAQが1件も検索されなかった場合、アクセスログの検索リストには「-(null)」が設定される。
決定部1003は、教師データ(よゐこ)と教師データ(わるいこ)とを記憶する記憶部1010の記憶内容に基づく機械学習を行って、検索された複数のFAQの中から、検索ワードに対する1または複数のFAQを決定する。ここで、教師データ(よゐこ)は、質問に対する選択操作を受け付けたFAQを当該質問に対応付けた情報である。教師データ(わるいこ)は、質問に対する選択操作を受け付けなかったFAQを当該質問に対応付けた情報である。
具体的には、例えば、決定部1003は、図6に示した教師データ(よゐこ)DB240を参照して、ナイーブベイズ分類器による機械学習を行って、検索された複数のFAQそれぞれについて、第1の確率を算出する。第1の確率は、入力を受け付けた検索ワードに対してFAQが表示された際に、当該FAQが選択される確率である。
これにより、検索された複数のFAQそれぞれが、1ページ目に表示された際に照会される可能性の高さを判断する指標値、換言すれば、検索ワードとの関連性の強さを表す指標値を得ることができる。
また、決定部1003は、図7に示した教師データ(わるいこ)DB250を参照して、ナイーブベイズ分類器による機械学習を行って、検索された複数のFAQそれぞれについて、第2の確率を算出する。第2の確率は、入力を受け付けた検索ワードに対してFAQが表示された際に、当該FAQが選択されない確率である。
これにより、検索された複数のFAQそれぞれが、1ページ目に表示された際に照会されない可能性の高さを判断する指標値、換言すれば、検索ワードとの関連性の弱さを表す指標値を得ることができる。
そして、決定部1003は、検索された複数のFAQそれぞれについて算出した第1の確率と第2の確率とに基づいて、検索された複数のFAQの中から、検索ワードに対する1または複数のFAQを決定する。これにより、第1の確率および第2の確率の両方を考慮して、検索ワードに対して表示するFAQを絞り込むことができる。
より詳細に説明すると、例えば、決定部1003は、検索された複数のFAQのうち第2の確率が閾値α以上のFAQを除外したFAQを、第1の確率が高い順にソートした1または複数のFAQを、検索ワードに対する1または複数のFAQに決定する。閾値αは、任意に設定可能である。閾値αは、例えば、単位を[%]とすると、80程度の値に設定される。
また、例えば、決定部1003は、第1の確率が高い上位N件のFAQを選択し、選択したFAQのうち第2の確率が閾値α以上のFAQを、検索ワードに対する1または複数のFAQに決定することにしてもよい。すなわち、決定部1003は、第1の確率が高い上位N件のFAQを絞り込んだ上で、第2の確率が閾値α以上のFAQを除外する。
なお、第1および第2の確率を算出する具体的な処理内容については、図15を用いて後述する。また、検索ワードに対するFAQの決定例については、図16を用いて後述する。
出力制御部1004は、検索ワードに対する1または複数のFAQを出力する。具体的には、例えば、出力制御部1004は、検索ワードに対して、決定された1または複数のFAQを出力する。各FAQには、各FAQの順位(表示順序)を特定可能な情報が付与される。より詳細に説明すると、例えば、出力制御部1004は、端末201に対して、決定された1または複数のFAQを送信することにより、FAQ画面900の表示エリア910に、受け付けた検索ワードに対する1または複数のFAQを表示する制御を行う。
また、受付部1001は、検索ワードに対するFAQの選択操作を受け付ける。FAQの選択操作は、FAQの内容を照会するための操作であり、例えば、図9に示したFAQ画面900において行われる。具体的には、例えば、受付部1001は、端末201から、FAQ画面900において選択(クリック)されたFAQを示す選択結果を受信することにより、当該FAQの選択操作を受け付ける。
FAQの選択操作を受け付けた場合、タイプ「照会」のアクセスログがアクセスログDB230に記憶される。具体的には、アクセスログのセッション番号には、検索ワードを受け付けた端末201と情報処理装置101とのセッションのセッション番号が設定される。アクセスログの日時には、FAQの選択操作を受け付けた日時が設定される。アクセスログの検索ワードには、受け付けた検索ワードが設定される。アクセスログの照会FAQには、選択操作を受け付けたFAQのFAQ番号が設定される。アクセスログの順位には、選択操作を受け付けたFAQの順位が設定される。アクセスログの検索リストは「空白」である。これにより、検索ワードに対して表示された際に選択操作を受け付けたFAQを示すアクセスログを蓄積することができる。
生成部1005は、教師データ(よゐこ)を生成する。また、生成部1005は、教師データ(わるいこ)を生成する。また、生成部1005は、教師データ(まいご)を生成する。ここで、教師データ(まいご)は、検索ワードに対応するFAQがないときに後続して入力を受け付けた他の検索ワードを、当該検索ワードに対応付けた情報である。ただし、他の検索ワードは、例えば、他の検索ワードに対して1ページ目に表示されたいずれかのFAQが選択された検索ワードである。
具体的には、例えば、生成部1005は、アクセスログDB230から、セッション番号が同一のアクセスログを取得する。つぎに、生成部1005は、取得したアクセスログの日時に基づいて、取得したアクセスログを時系列にソートする。そして、生成部1005は、取得したアクセスログの中に、タイプ「照会」のアクセスログがあるか否かを判断する。
ここで、タイプ「照会」のアクセスログがある場合、生成部1005は、当該アクセスログから特定される照会FAQの順位に基づいて、照会FAQが、1ページ目に表示されたFAQ、すなわち、上位N件のFAQであるか否かを判断する。ここで、1ページ目に表示されたFAQである場合、タイプ「照会」のアクセスログから特定される照会FAQと形態素解析後検索ワードとを対応付けて表す教師データ(よゐこ)を生成する。形態素解析後検索ワードは、タイプ「照会」のアクセスログから特定される検索ワードを形態素解析して検出される1または複数の形態素である。
また、生成部1005は、タイプ「検索」のアクセスログの検索リストを参照して、検索ワードに対して表示された際に照会されなかったFAQ、すなわち、検索ワードに対する選択操作を受け付けなかったFAQがあるか否かを判断する。ここで、照会されなかったFAQがある場合、生成部1005は、照会されなかったFAQを非照会FAQとする教師データ(わるいこ)を生成する。教師データ(わるいこ)の形態素解析後検索ワードは、例えば、タイプ「照会」のアクセスログから特定される検索ワードから得られる。
また、生成部1005は、タイプ「検索」のアクセスログの検索リストを参照して、FAQが1件も検索されなかった検索ワードがあるか否かを判断する。ここで、FAQが1件も検索されなかった検索ワードがある場合、生成部1005は、取得したアクセスログの日時に基づいて、当該検索ワードに後続して入力を受け付けた他の検索ワードがあるか否かを判断する。ただし、他の検索ワードは、当該他の検索ワードに対して1ページ目に表示されたいずれかのFAQが照会(選択)された検索ワードである。ここで、他の検索ワードがある場合、生成部1005は、他の検索ワードを代替ワードとする教師データ(まいご)を生成する。教師データ(まいご)の形態素解析後検索ワードは、例えば、他の検索ワードを形態素解析して検出される1または複数の形態素である。
生成された教師データ(よゐこ)は、例えば、図6に示した教師データ(よゐこ)DB240に記憶される。生成された教師データ(わるいこ)は、例えば、図7に示した教師データ(わるいこ)DB250に記憶される。生成された教師データ(まいご)は、例えば、図8に示した教師データ(まいご)DB260に記憶される。
教師データ(よゐこ)、教師データ(わるいこ)および教師データ(まいご)の生成例については、図11~図14を用いて後述する。
なお、教師データ(よゐこ)と教師データ(わるいこ)とが蓄積されていない場合、情報処理装置101は、上述した第1および第2の確率を用いたFAQの絞り込みを行うことができない。このため、運用開始からある程度の期間は、情報処理装置101は、検索ワードに対して、検索されたFAQを出力することにしてもよい。この際、情報処理装置101は、例えば、検索された複数のFAQを、過去のアクセス数(照会数)が多い順にソートして出力することにしてもよい。より詳細に説明すると、例えば、出力制御部1004は、端末201に対して、検索されたFAQを送信することにより、FAQ画面900の表示エリア910に、受け付けた検索ワードに対するFAQを表示する制御を行う。これにより、教師データ(よゐこ)と教師データ(わるいこ)とを蓄積することができる。
また、決定部1003は、検索ワードに対する選択操作を受け付けたFAQを示すアクセスログに基づいて、閾値αを調整することにしてもよい。具体的には、例えば、決定部1003は、アクセスログDB230内のタイプ「照会」のアクセスログに基づいて、検索ワードに対する上位N件のFAQ、すなわち、1ページ目に表示されるFAQのいずれかが選択される確率を算出する。
以下の説明では、1ページ目に表示されるFAQのいずれかが選択される確率を「1ページ目ヒット率」と表記することがある。
1ページ目ヒット率の算出は、例えば、所定期間ごとに行う。所定期間は、任意に設定可能であり、例えば、数週間~数ヶ月程度の期間に設定される。この際、決定部1003は、例えば、直近所定期間分のアクセスログに基づいて、1ページ目ヒット率を算出する。これにより、直近のアクセス傾向が反映された1ページ目ヒット率を算出することができる。
そして、決定部1003は、算出した1ページ目ヒット率の時系列変化に基づいて、閾値αを調整する。より詳細に説明すると、例えば、決定部1003は、1ページ目ヒット率が下降傾向にある場合に、閾値αを下げる。閾値αの下げ分は、任意に設定可能であり、例えば、単位を[%]とすると、1程度の値に設定される。
閾値αの調整例については、図17および図18を用いて後述する。
判定部1006は、検索ワードに対応するFAQの有無を判定する。具体的には、例えば、判定部1006は、FAQマスタ220から検索ワードに対応するFAQが1件も検索されなかった場合、いわゆる、0件ヒットの場合に、検索ワードに対応するFAQがないと判定する。
また、判定部1006は、決定部1003によって検索ワードに対するFAQが1件も決定されなかった場合に、検索ワードに対応するFAQがないと判定することにしてもよい。より詳細に説明すると、例えば、判定部1006は、上述した第1および第2の確率を用いたFAQの絞り込みを行った結果、FAQが1件も残らなかった場合に、検索ワードに対応するFAQがないと判定することにしてもよい。
特定部1007は、検索ワードに対応するFAQがないと判定された場合、教師データ(まいご)を記憶する記憶部1010の記憶内容に基づく機械学習を行って、当該検索ワードに後続して入力される他の検索ワードを特定する。以下の説明では、判定部1006によってFAQがないと判定された検索ワードを「0件ヒット検索ワード」と表記する場合がある。
具体的には、例えば、特定部1007は、教師データ(まいご)DB260を参照して、ナイーブベイズ分類器による機械学習を行って、他の検索ワード(代替ワード)それぞれについて、0件ヒット検索ワードに後続して入力される第3の確率を算出する。そして、特定部1007は、他の検索ワードそれぞれについて算出した第3の確率に基づいて、0件ヒット検索ワードに後続して入力される代替ワードを特定する。
より詳細に説明すると、例えば、特定部1007は、第3の確率が最大の他の検索ワードを、代替ワードとして特定することにしてもよい。また、特定部1007は、第3の確率が閾値β以上の他の検索ワードを、代替ワードとして特定することにしてもよい。閾値βは、任意に設定可能である。また、特定部1007は、第3の確率が閾値β以上で、かつ、最大の他の検索ワードを、代替ワードとして特定することにしてもよい。
第3の確率を算出する具体的な処理内容については、図15を用いて後述する。
出力制御部1004は、特定された代替ワードに対応するFAQを出力する。具体的には、例えば、まず、検索部1002は、代替ワードに対応するFAQを検索する。なお、複数の代替ワードが特定された場合、検索部1002は、複数の代替ワードそれぞれについて、FAQを検索することにしてもよい。
つぎに、決定部1003は、記憶部1010の記憶内容に基づく機械学習を行って、検索された複数のFAQの中から、代替ワードに対する1または複数のFAQを決定する。そして、出力制御部1004は、代替ワードに対して、決定された1または複数のFAQを出力する。なお、出力制御部1004は、検索された代替ワードに対応するFAQを出力することにしてもよい。
これにより、入力された検索ワードに対応するFAQがなくても、過去のユーザの操作履歴(アクセスログ)をもとに、その検索ワード、すなわち、0件ヒット検索ワードに置き換わる代替ワードを推定してFAQを出力することができる。
(教師データの生成例)
つぎに、図11~図14を用いて、教師データ(わるいこ)および教師データ(まいご)の生成例について説明する。ここでは、上位5件のFAQが1ページ目に表示されるFAQである場合を想定する(N=5)。
図11は、アクセスログの具体例を示す説明図(その1)である。図12は、教師データの具体例を示す説明図(その1)である。図11において、アクセスログ1101~1103は、時系列にソートされたセッション番号が同一のアクセスログの集合である。
この場合、生成部1005は、アクセスログ1101~1103の中に、タイプ「照会」のアクセスログがあるか否かを判断する。ここで、アクセスログ1102,1103はタイプ「照会」のアクセスログである。このため、生成部1005は、タイプ「照会」のアクセスログがあると判断する。
つぎに、生成部1005は、タイプ「照会」のアクセスログ1102の順位に基づいて、照会FAQが、1ページ目に表示されたFAQであるか否かを判断する。ここで、アクセスログ1102の順位は、「1」であり、5以下である。このため、生成部1005は、アクセスログ1102の照会FAQが、1ページ目に表示されたFAQであると判断する。
この場合、生成部1005は、図12に示すように、アクセスログ1102から特定される照会FAQ「011」と形態素解析後検索ワード「拡大、印刷」とを対応付けて表す教師データ(よゐこ)1201を生成する。
同様に、生成部1005は、タイプ「照会」のアクセスログ1103の順位に基づいて、照会FAQが、1ページ目に表示されたFAQであるか否かを判断する。ここで、アクセスログ1103の順位は、「2」であり、5以下である。このため、生成部1005は、アクセスログ1103の照会FAQが、1ページ目に表示されたFAQであると判断する。
この場合、生成部1005は、図12に示すように、アクセスログ1103から特定される照会FAQ「012」と形態素解析後検索ワード「拡大、印刷」とを対応付けて表す教師データ(よゐこ)1202を生成する。
また、生成部1005は、タイプ「検索」のアクセスログ1101の検索リストを参照して、検索ワードに対して表示された際に照会されなかったFAQ、すなわち、検索ワードに対する選択操作を受け付けなかったFAQがあるか否かを判断する。ここで、FAQ番号「013」のFAQは照会されていない。
このため、生成部1005は、照会されなかったFAQがあると判断する。この場合、生成部1005は、図12に示すように、照会されなかったFAQ番号「013」のFAQを非照会FAQとする教師データ(わるいこ)1203を生成する。
また、生成部1005は、タイプ「検索」のアクセスログの検索リストを参照して、FAQが1件も検索されなかった検索ワードがあるか否かを判断する。ここでは、FAQが1件も検索されなかった検索ワードは存在しない。この場合、生成部1005は、教師データ(まいご)を生成しない。
図13は、アクセスログの具体例を示す説明図(その2)である。図14は、教師データの具体例を示す説明図(その2)である。図13において、アクセスログ1301~1304は、時系列にソートされたセッション番号が同一のアクセスログの集合である。
この場合、生成部1005は、アクセスログ1301~1304の中に、タイプ「照会」のアクセスログがあるか否かを判断する。ここで、アクセスログ1303,1304はタイプ「照会」のアクセスログである。このため、生成部1005は、タイプ「照会」のアクセスログがあると判断する。
つぎに、生成部1005は、タイプ「照会」のアクセスログ1303の順位に基づいて、照会FAQが、1ページ目に表示されたFAQであるか否かを判断する。ここで、アクセスログ1303の順位は、「1」であり、5以下である。このため、生成部1005は、アクセスログ1303の照会FAQが、1ページ目に表示されたFAQであると判断する。
この場合、生成部1005は、図14に示すように、アクセスログ1303から特定される照会FAQ「011」と形態素解析後検索ワード「拡大、印刷」とを対応付けて表す教師データ(よゐこ)1401を生成する。
同様に、生成部1005は、タイプ「照会」のアクセスログ1304の順位に基づいて、照会FAQが、1ページ目に表示されたFAQであるか否かを判断する。ここで、アクセスログ1304の順位は、「2」であり、5以下である。このため、生成部1005は、アクセスログ1304の照会FAQが、1ページ目に表示されたFAQであると判断する。
この場合、生成部1005は、図14に示すように、アクセスログ1304から特定される照会FAQ「012」と形態素解析後検索ワード「拡大、印刷」とを対応付けて表す教師データ(よゐこ)1402を生成する。
また、生成部1005は、タイプ「検索」のアクセスログ1301,1302の検索リストを参照して、検索ワードに対して表示された際に照会されなかったFAQ、すなわち、検索ワードに対する選択操作を受け付けなかったFAQがあるか否かを判断する。ここで、FAQ番号「013」のFAQは照会されていない。
このため、生成部1005は、照会されなかったFAQがあると判断する。この場合、生成部1005は、図14に示すように、照会されなかったFAQ番号「013」のFAQを非照会FAQとする教師データ(わるいこ)1403を生成する。
また、生成部1005は、タイプ「検索」のアクセスログ1301,1302の検索リストを参照して、FAQが1件も検索されなかった検索ワードがあるか否かを判断する。ここでは、アクセスログ1301の検索リストは「-」であり、検索ワード「大きく印刷」はFAQが1件も検索されなかった検索ワードである。
この場合、生成部1005は、検索ワード「大きく印刷」に後続して入力を受け付けた他の検索ワードがあるか否かを判断する。ただし、他の検索ワードは、当該他の検索ワードに対して1ページ目に表示されたいずれかのFAQが照会(選択)された検索ワードである。
ここで、検索ワード「拡大、印刷」は、検索ワード「大きく印刷」に後続して入力を受け付けた他の検索ワードである。また、検索ワード「拡大、印刷」は、当該他の検索ワードに対して1ページ目に表示されたFAQ番号「001,002」のFAQが照会(選択)された検索ワードである。このため、生成部1005は、他の検索ワードがあると判断する。
この場合、生成部1005は、図14に示すように、他の検索ワード「拡大、印刷」を代替ワードとして、代替ワード「拡大、印刷」と検索ワード「大きく印刷」とを対応付けた教師データ(まいご)1404を生成する。
(第1、第2および第3の確率を算出する具体的な処理内容)
つぎに、図15を用いて、ナイーブベイズ分類器による機械学習を行って、第1、第2および第3の確率を算出する具体的な処理内容について説明する。
図15は、分析DB1500の記憶内容の一例を示す説明図である。ここでは、第1の確率を例に挙げて、計算例について説明する。まず、決定部1003は、教師データ(よゐこ)DB240を参照して、分析DB1500を作成する。
分析DB1500は、縦軸に「FAQ番号」、横軸に「キーワード」を設定し、キーワードごとに各FAQの照会回数を集計したものである。ただし、FAQ番号は、検索部1002によって検索された複数のFAQそれぞれのFAQ番号である。キーワードは、教師データ(よゐこ)DB240内の教師データ(よゐこ)の形態素解析後検索ワードに含まれる形態素である。
ここでは、検索ワードを「キーワード1,キーワード2」とする。また、検索部1002によって検索された検索ワード「キーワード1,キーワード2」に対応する複数のFAQそれぞれのFAQ番号を「1,2,3,4,5」とする。また、教師データ(よゐこ)DB240内の教師データ(よゐこ)の形態素解析後検索ワードに含まれる形態素を「キーワード1,キーワード2,キーワード3,キーワード4,キーワード5,キーワード6」とする。
具体的には、例えば、決定部1003は、教師データ(よゐこ)DB240から未選択の教師データ(よゐこ)を選択する。ここで、選択された教師データ(よゐこ)の照会FAQを「1」とし、形態素解析後検索ワードにキーワード1、キーワード2が含まれるとする。この場合、決定部1003は、FAQ番号「1」のキーワード1の照会回数をインクリメントする。また、決定部1003は、FAQ番号「1」のキーワード2の照会回数をインクリメントする。決定部1003は、教師データ(よゐこ)DB240から選択されていない未選択の教師データ(よゐこ)がなくなるまで、上述した一連の処理を繰り返す。
つぎに、決定部1003は、分析DB1500を参照して、検索された複数のFAQそれぞれについて、第1の確率を算出する。具体的には、例えば、決定部1003は、例えば、下記式(1)を用いて、検索された複数のFAQそれぞれについて、第1の確率を算出することができる。
P(FAQ|検索ワード)=P(FAQ)P(検索ワード|FAQ)・・・(1)
事後確率P(FAQ|検索ワード)は、検索ワードを指定してFAQを検索した場合、該当FAQが選択(照会)される確率を示す。すなわち、事後確率P(FAQ|検索ワード)は、第1の確率に相当する。例えば、P(FAQ1|事故)は、検索ワード「事故」を指定してFAQを検索した場合、FAQ1が選択(照会)される確率を示す。
なお、検索ワードが複数のキーワードで構成される場合は、事後確率をそれぞれの確率の積で示す。例えば、P(FAQ1|事故、車)は、検索ワード「事故」、「車」を指定してFAQを検索した場合、FAQ1が選択される確率が、P(FAQ1)P(事故|FAQ1)×P(FAQ1)P(車|FAQ1)であることを示す。
事前確率P(FAQ)は、該当FAQが選ばれる確率(割合)を示す。例えば、FAQ総数が5000で、検索ワード「事故」で検索する場合、P(FAQ1)は「1/5000」である。なお、事前確率P(FAQ)は、推定における精度を向上させるため、検索ワードに含まれるFAQの総数に置き換える。FAQ総数が5000で、検索ワード「事故」でヒットしたことのあるFAQの総数が100とすると、検索ワード「事故」で検索する場合、P(FAQ1)は「1/100」である。
尤度P(検索ワード|FAQ)は、FAQが決まったとき、検索ワードが作成される確率を示す。例えば、P(事故|FAQ1)は、FAQ1から検索ワード「事故」が作成される確率を示す。FAQ1をアクセスしたキーワードのアクセス数が1000で、検索ワード「事故」が10の場合は、P(事故|FAQ1)は「10/1000」となる。
図15に示した分析DB1500をもとに算出される各FAQ1~5の第1の確率(P(FAQ|キーワード1,2))は、以下の通りである。なお、「0」となる部分は「1」に置き換える(ラプラススムージング)。
P(FAQ1|キーワード1,2)
=P(キーワード1|FAQ1)×P(FAQ1)×P(キーワード2|FAQ1)×P(FAQ1)=(1/21)(1/23)×(12/21)(12/96)
=0.00015
P(FAQ2|キーワード1,2)
=P(キーワード1|FAQ2)×P(FAQ2)×P(キーワード2|FAQ2)×P(FAQ2)=(10/85)(10/23)×(1/85)(1/96)
=0.00001
P(FAQ3|キーワード1,2)
=P(キーワード1|FAQ3)×P(FAQ3)×P(キーワード2|FAQ3)×P(FAQ3)=(2/7)(2/23)×(1/7)(1/96)
=0.00018
P(FAQ4|キーワード1,2)
=P(キーワード1|FAQ4)×P(FAQ4)×P(キーワード2|FAQ4)×P(FAQ4)=(6/124)(6/23)×(77/124)(77/96)
=0.00629
P(FAQ5|キーワード1,2)
=P(キーワード1|FAQ5)×P(FAQ5)×P(キーワード2|FAQ5)×P(FAQ5)=(4/44)(4/23)×(6/44)(6/96)
=0.00013
ただし、コンピュータ上では、桁数が小さくなりすぎると計算できなくなる可能性がある(オーバーフロー)。このため、決定部1003は、算出した各値を対数に変換して、第1の確率をそれぞれ算出する。対数に変換した第1の確率は、以下の通りである。0に近いほど、確率が高いことを示す。
P(FAQ1|キーワード1,2)
=Log(1/21)(1/23)+Log(12/21)(12/96)
=-3.83
P(FAQ2|キーワード1,2)
=Log(10/85)(10/23)+Log(1/85)(1/96)
=-5.20
P(FAQ3|キーワード1,2)
=Log(2/7)(2/23)+Log(1/7)(1/96)
=-4.43
P(FAQ4|キーワード1,2)
=Log(6/124)(6/23)+Log(77/124)(77/96)
=-2.2
P(FAQ5|キーワード1,2)
=Log(4/44)(4/23)+Log(6/44)(6/96)
=-3.87
つぎに、決定部1003は、ソフトマックス関数を利用して、対数表記した各FAQ1~5の第1の確率を、0~100[%]の表記に変換する。具体的には、例えば、決定部1003は、対数表記した各FAQ1~5の第1の確率のうち、絶対値の最大値C「-5.20」を取得する。そして、決定部1003は、以下のように、各FAQ1~5について、(最大値C-第1の確率)の値の指数を計算する。
P(FAQ1)=exp(-3.83-(-5.20))=3.93
P(FAQ2)=exp(-5.20-(-5.20))=1.0
P(FAQ3)=exp(-4.43-(-5.20))=2.16
P(FAQ4)=exp(-2.20-(-5.20))=20.09
P(FAQ5)=exp(-3.87-(-5.20))=3.42
つぎに、決定部1003は、各FAQ1~5の(最大値C-第1の確率)の値の指数の合計値Sを計算する。ここでは、指数の合計値Sは、「30.06」となる。
つぎに、決定部1003は、以下のように、各FAQ1~5について、(最大値C-第1の確率)の値の指数を、指数の合計値Sで割った値を算出する。
P(FAQ1)=3.93/30.06=0.13
P(FAQ2)=1.0/30.06=0.03
P(FAQ3)=2.16/30.06=0.07
P(FAQ4)=20.09/30.06=0.67
P(FAQ5)=3.42/30.06=0.11
つぎに、決定部1003は、以下のように、各FAQ1~5について、算出した値に100を掛けることにより、第1の確率を0~100[%]の表記に変換する。
P(FAQ1)=13[%]
P(FAQ2)=3[%]
P(FAQ3)=7[%]
P(FAQ4)=67[%]
P(FAQ5)=11[%]
このようにして、各FAQ1~5について、検索ワード「キーワード1,キーワード2」に対して各FAQ1~5が表示された際に、各FAQ1~5が選択(照会)される第1の確率を算出することができる。なお、1回も選択(照会)されたことがないFAQについては、第1の確率は「0[%]」とする。
また、ここでは、第1の確率を例に挙げて説明したが、第2および第3の確率についても、同様にして求めることができる。
例えば、第2の確率の場合、決定部1003は、教師データ(わるいこ)DB250を参照して、分析DB1500を作成する。この場合、分析DB1500は、縦軸に「FAQ番号」、横軸に「キーワード」を設定し、キーワードごとに各FAQが照会されなかった非照会回数を集計したものである。ただし、FAQ番号は、検索部1002によって検索された複数のFAQそれぞれのFAQ番号である。キーワードは、教師データ(わるいこ)DB250内の教師データ(わるいこ)の形態素解析後検索ワードに含まれる形態素である。
具体的には、例えば、決定部1003は、教師データ(わるいこ)DB250から未選択の教師データ(わるいこ)を選択する。ここで、選択された教師データ(わるいこ)の非照会FAQを「1」とし、形態素解析後検索ワードにキーワード1、キーワード2が含まれるとする。この場合、決定部1003は、FAQ番号「1」のキーワード1の非照会回数をインクリメントする。また、決定部1003は、FAQ番号「1」のキーワード2の非照会回数をインクリメントする。決定部1003は、教師データ(よゐこ)DB240から選択されていない未選択の教師データ(よゐこ)がなくなるまで、上述した一連の処理を繰り返す。
これにより、キーワードごとに各FAQの非照会回数が記憶された分析DB1500を作成することができる。そして、決定部1003は、例えば、分析DB1500を参照して、上記式(1)を用いて、検索された複数のFAQそれぞれについて、第2の確率を算出する。ただし、事後確率P(FAQ|検索ワード)は、検索ワードを指定してFAQを検索した場合、該当FAQが選択(照会)されない確率を示す。事前確率P(FAQ)は、該当FAQが選ばれない確率(割合)を示す。尤度P(検索ワード|FAQ)は、FAQが決まったとき、検索ワードが作成される確率を示す。なお、以降の第2の確率の具体的な計算手順は、第1の確率と同様のため、詳細な説明は省略する。
また、第3の確率の場合、特定部1007は、教師データ(まいご)DB260を参照して、分析DB1500を作成する。この場合、分析DB1500は、縦軸に「代替ワード」、横軸に「形態素」を設定し、形態素ごとに各代替ワードが入力された入力回数を集計したものである。ただし、代替ワードは、教師データ(まいご)DB260内の教師データ(まいご)の代替ワードである。すなわち、代替ワードは、0件ヒット検索ワードに後続して入力された他の検索ワードに相当する。形態素は、0件ヒット検索ワードを形態素解析して検出される形態素である。0件ヒット検索ワードから形態素が検出されなかった場合には、例えば、0件ヒット検索ワードそのものを、横軸の形態素としてもよい。
具体的には、例えば、特定部1007は、教師データ(まいご)DB260から未選択の教師データ(まいご)を選択する。そして、特定部1007は、選択した教師データ(まいご)の検索ワードに、分析DB1500内のいずれかの形態素が含まれる場合、その形態素について、選択した教師データ(まいご)の代替ワードの入力回数をインクリメントする。特定部1007は、教師データ(まいご)DB260から選択されていない未選択の教師データ(まいご)がなくなるまで、上述した一連の処理を繰り返す。
これにより、形態素ごとに各代替ワードが入力された入力回数が記憶された分析DB1500を作成することができる。そして、特定部1007は、例えば、分析DB1500を参照して、上記式(1)を用いて、分析DB1500内の代替ワードそれぞれについて、第3の確率を算出する。
ただし、事後確率は、P(代替ワード|検索ワード)となる。事前確率は、P(代替ワード)となる。尤度は、P(代替ワード)となる。事後確率P(代替ワード|検索ワード)は、検索ワードに後続して代替ワードが入力される確率を示す。事前確率P(代替ワード)は、該当代替ワードがある確率(割合)を示す。尤度P(検索ワード|代替ワード)は、代替ワードが決まったとき、検索ワードが作成される確率を示す。なお、以降の第3の確率の具体的な計算手順は、第1の確率と同様のため、詳細な説明は省略する。
(FAQの決定例)
つぎに、図16を用いて、検索ワードに対するFAQの決定例について説明する。
図16は、FAQの決定例を示す説明図である。図16において、第1のテーブル1601は、検索部1002によって検索された複数のFAQそれぞれについて算出された第1の確率を記憶する。第2のテーブル1602は、検索部1002によって検索された複数のFAQそれぞれについて算出された第2の確率を記憶する。
ここでは、検索ワードに対応するFAQとして、FAQ番号が「001~010」の10件のFAQが検索された場合を想定する。また、閾値αを「α=80」とする。また、FAQ番号が若いほど、既存の検索アルゴリズムで検索された際の優先度が高いものとする。例えば、既存の検索アルゴリズムでは、過去のアクセス数(照会数)が多いFAQほど高い優先度が設定される。
この場合、決定部1003は、例えば、第2のテーブル1602を参照して、第2の確率が閾値α以上のFAQを特定する。ここでは、FAQ番号「003,005,006,008」のFAQが特定される。つぎに、決定部1003は、第1のテーブル1601から、特定したFAQ番号「003,005,006,008」のFAQのレコードを削除する。
そして、決定部1003は、第1のテーブル1601を参照して、第1の確率が高い順にソートした残余のFAQ、すなわち、FAQ番号「001,002,007,004,009,010」のFAQを、検索ワードに対する1または複数のFAQに決定する。
この場合、出力制御部1004は、端末201に対して、決定されたFAQ番号「001,002,007,004,009,010」のFAQを送信する。ここで、FAQ画面900において、上位5件のみ1ページ目に表示される場合(N=5)、FAQ番号「001,002,007,004,009」のFAQは、この順番で1ページ目に表示され、FAQ番号「010」のFAQは2ページ目に表示される。
例えば、過去のアクセス数(照会数)が多い順にFAQを表示する場合に比べると、第1および第2の確率を用いてFAQが絞り込まれた結果、FAQ番号「003,005,006,008」のFAQが除外され、FAQ番号「007,009,010」のFAQが繰り上がって1ページ目に表示される。
(閾値αの調整例)
つぎに、図17および図18を用いて、閾値αの調整例について説明する。ここでは、上位5件のFAQが1ページ目に表示されるFAQである場合を想定する(N=5)。
図17は、アクセスログの具体例を示す説明図(その3)である。図17において、アクセスログ1701~1705は、時系列にソートされたセッション番号が同一のアクセスログの集合である。以下、アクセスログ1701~1705から、1ページ目ヒット率を算出する場合について説明する。
具体的には、例えば、決定部1003は、下記式(2)を用いて、アクセスログ1701~1705から1ページ目ヒット率を算出する。ただし、Xは、照会されたFAQが検索結果の1ページ目に存在する回数である。Yは、FAQの照会回数である。また、1ページ目ヒット率の単位は[%]である。
1ページ目ヒット率=X/Y×100 ・・・(2)
より詳細に説明すると、決定部1003は、タイプ「照会」のアクセスログ1702~1705を参照して、照会されたFAQが検索結果の1ページ目に存在する回数Xを算出する。ここで、アクセスログ1702,1703の順位は、「1,2」であり、5以下である。一方、アクセスログ1704,1705の順位は、「40,45」であり、5より大きい。したがって、回数Xは「X=2」となる。
また、決定部1003は、タイプ「照会」のアクセスログ1702~1705を参照して、FAQの照会回数Yを算出する。ここでは、照会回数Yは、タイプ「照会」のアクセスログ1702~1705の数であり、「Y=4」である。このため、1ページ目ヒット率は、「50[%](=2/4×100)」となる。
決定部1003は、1ページ目ヒット率の算出を、所定期間ごと、例えば、数週間~数ヶ月程度の期間ごとに行う。つぎに、決定部1003は、所定期間ごとに算出した1ページ目ヒット率の推移を回帰分析して、1ページ目ヒット率の時系列変化を表す直線の傾きを算出する。そして、決定部1003は、算出した傾きに応じて、閾値αを調整する。
図18は、1ページ目ヒット率の時系列変化の一例を示す説明図である。図18において、直線1801,1802は、1ページ目ヒット率の時系列変化を表す直線である。直線1801は、傾きが0より大きく、1ページ目ヒット率が上昇傾向にあることを示している。一方、直線1802は、傾きが0より小さく、1ページ目ヒット率が下降傾向にあることを示している。
例えば、決定部1003は、1ページ目ヒット率の時系列変化を表す直線の傾きが0より大きい場合、1ページ目ヒット率が上昇傾向にあるため、閾値αを調整しない。また、決定部1003は、1ページ目ヒット率の時系列変化を表す直線の傾きが0の場合、1ページ目ヒット率に変化がないため、閾値αを調整しない。
一方、決定部1003は、1ページ目ヒット率の時系列変化を表す直線の傾きが0より小さい場合、1ページ目ヒット率が下降傾向にあるため、閾値αを調整する。具体的には、例えば、決定部1003は、1ページ目ヒット率の時系列変化を表す直線の傾きが0より小さい場合、閾値αを1[%]下げる。
例えば、調整前の閾値αが「80[%]」の場合、決定部1003は、閾値αを「79[%]」に変更する。1ページ目ヒット率が下降傾向にある場合、1ページ目のFAQが照会されにくくなって、教師データ(わるいこ)の学習が進むと想定される。このため、教師データ(わるいこ)の反応をよくするため、閾値αを下げて、FAQをより多く削る方向に調整する。
なお、決定部1003は、1ページ目ヒット率の時系列変化を表す直線の傾きの大きさに応じて、閾値αの下げ分を変更することにしてもよい。例えば、1ページ目ヒット率が大幅に下降していると判断できる程度に、直線の傾きが小さい場合、決定部1003は、閾値αの下げ分を5[%]程度に変更することにしてもよい。
(形態素の推定)
つぎに、図19を用いて、形態素を推定する処理について説明する。
図19は、形態素を推定する方法の一実施例を示す説明図である。特定部1007は、判定部1006によって検索ワードに対応するFAQがないと判定された場合、教師データ(まいご)DB260の記憶内容に基づく機械学習を行って、0件ヒット検索ワードに後続して入力される代替ワードを特定する。しかし、教師データ(まいご)が蓄積されるまでの間は、代替ワードを特定することができない。
例えば、パンチミス等によりデタラメな検索ワードが入力された場合、検索ワードから形態素が検出されず、0件ヒットとなることがある。また、この場合、当該検索ワードに対応する教師データ(まいご)は蓄積されていない可能性が高い。すなわち、パンチミス等によりデタラメな検索ワードが入力された場合、代替ワードを特定できず、0件ヒットとなることがある。
そこで、情報処理装置101は、代替ワードが特定されなかった場合に、当該検索ワードに対応する形態素を推定して、推定した形態素に対応するFAQを検索することにしてもよい。
具体的には、例えば、まず、生成部1005は、教師データ(形態素)を生成する。より詳細に説明すると、例えば、生成部1005は、教師データ(よゐこ)DB240内の教師データ(よゐこ)の形態素解析後検索ワードから形態素を抽出する。そして、生成部1005は、抽出した形態素と、当該形態素に含まれるそれぞれの文字とを対応付けた教師データ(形態素)を生成する。
一例として、形態素を「FILE」とすると、形態素「FILE」と、形態素「FILE」に含まれるそれぞれの要素(文字)「“F”,“I”,“L”,“E”」とを対応付けた教師データ(形態素)1901が生成される。生成された教師データ(形態素)は、教師データ(形態素)DB1900に記憶される。
また、生成部1005は、例えば、教師データ(わるいこ)DB250内の教師データ(わるいこ)の形態素解析後検索ワードから形態素を抽出し、抽出した形態素と、当該形態素に含まれるそれぞれの文字とを対応付けた教師データ(形態素)を生成してもよい。また、生成部1005は、例えば、教師データ(まいご)DB260内の教師データ(まいご)の代替ワードや検索ワードから形態素を抽出し、抽出した形態素と、当該形態素に含まれるそれぞれの文字とを対応付けた教師データ(形態素)を生成してもよい。
つぎに、特定部1007は、検索ワードから形態素が検出されなかった場合、教師データ(形態素)DB1900の記憶内容に基づく機械学習を行って、検索ワードに対応する形態素を特定する。ただし、検索ワードから形態素が検出されなかった場合であっても、FAQマスタ220からFAQが検索されることもある。
すなわち、検索ワードから形態素が検出されなかった場合であっても、端末201に対して検索ワードに対応するFAQを出力できる場合がある。このため、特定部1007は、例えば、検索ワードから形態素が検出されず、かつ、検索ワードに対応するFAQがないと判定された場合に、検索ワードに対応する形態素を特定することにしてもよい。
より具体的には、例えば、特定部1007は、教師データ(形態素)DB1900を参照して、ナイーブベイズ分類器による機械学習を行って、複数の形態素それぞれについて、第4の確率を算出する。第4の確率は、形態素が検出されなかった検索ワードに類似する度合いの高さを示す。
なお、第4の確率についても、第1の確率と同様にして求めることができる。まず、特定部1007は、教師データ(形態素)DB1900を参照して、分析DB1500を作成する。この場合、分析DB1500は、縦軸に「形態素」、横軸に「文字」を設定し、文字ごとの出現回数を集計したものである。ただし、形態素は、教師データ(形態素)DB1900内の教師データ(形態素)の形態素である。文字は、教師データ(形態素)DB1900内の教師データ(形態素)の形態素に含まれる文字である。
具体的には、例えば、特定部1007は、教師データ(形態素)DB1900から未選択の教師データ(形態素)を選択する。ここで、選択された教師データ(形態素)の形態素を「FILE」とし、要素を「“F”,“I”,“L”,“E”」とする。この場合、特定部1007は、分析DB1500内の形態素「FILE」の各要素「“F”,“I”,“L”,“E”」の出現回数をそれぞれインクリメントする。特定部1007は、例えば、教師データ(形態素)DB1900から選択されていない未選択の教師データ(形態素)がなくなるまで、上述した一連の処理を繰り返す。
これにより、形態素ごとに各要素の出現回数が記憶された分析DB1500を作成することができる。そして、決定部1003は、例えば、分析DB1500を参照して、上記式(1)を用いて、複数の形態素それぞれについて、第4の確率を算出する。ただし、事後確率は、P(形態素|文字)となる。事前確率は、P(形態素)となる。尤度は、P(形態素)となる。事後確率P(形態素|文字)は、該当文字を含む形態素が入力される確率を示す。事前確率P(形態素)は、形態素(縦軸)に含まれる全要素中に該当文字が占める割合を示す。尤度P(形態素)は、形態素が決まったとき、該当文字が含まれる確率を示す。なお、以降の第4の確率の具体的な計算手順は、第1の確率と同様のため、詳細な説明は省略する。
そして、特定部1007は、分析DB1500内の複数の形態素それぞれについて算出した第4の確率に基づいて、検索ワードに対応する形態素を特定する。具体的には、例えば、特定部1007は、第4の確率が最大の形態素を、形態ワードに対応する形態素として特定する。これにより、形態素解析により形態素が検出されなかった検索ワードに対応する形態素を推定することができる。
この場合、特定部1007は、例えば、教師データ(まいご)を記憶する記憶部1010の記憶内容に基づく機械学習を行って、特定した形態素に後続して入力される代替ワードを特定する。そして、検索部1002は、特定された代替ワードに対応するFAQを検索する。
これにより、パンチミス等によりデタラメな検索ワードが入力された場合であっても、0件ヒットとなることを防ぐことができる。また、上述した説明では、特定部1007が、特定した形態素に後続して入力される代替ワードを特定し、検索部1002が、特定された代替ワードに対応するFAQを検索することにしたが、これに限らない。例えば、検索部1002は、特定された形態素に対応するFAQを検索することにしてもよい。
なお、教師データ(よゐこ)、教師データ(わるいこ)のデータ構造は、FAQ番号と形態素解析後検索ワードのため、検索ワードから形態素が検出されなかった場合は、学習できず、第1および第2の確率を算出できない。つまり、第1および第2の確率を用いたFAQの絞り込みを行うことができない。したがって、このような場合も、第1および第2の確率を用いたFAQの絞り込みを行えるように、情報処理装置101は、検索ワードに対応する形態素を推定して、FAQを再検索することにしてもよい。
(情報処理装置101の教師データ生成処理手順)
つぎに、図20および図21を用いて、情報処理装置101の教師データ生成処理手順について説明する。情報処理装置101の教師データ生成処理は、例えば、24時間程度の期間ごとに定期的に実行されてもよく、また、回答出力システム200の管理者等が指定する所定のタイミングで実行されてもよい。
図20および図21は、情報処理装置101の教師データ生成処理手順の一例を示すフローチャートである。図20のフローチャートにおいて、まず、情報処理装置101は、アクセスログDB230から選択されていない未選択のセッション番号を選択する(ステップS2001)。
つぎに、情報処理装置101は、アクセスログDB230から、選択したセッション番号のアクセスログを取得する(ステップS2002)。そして、情報処理装置101は、取得したアクセスログの日時に基づいて、取得したアクセスログを時系列にソートする(ステップS2003)。
つぎに、情報処理装置101は、取得したアクセスログの中に、タイプ「照会」のアクセスログがあるか否かを判断する(ステップS2004)。ここで、タイプ「照会」のアクセスログがない場合(ステップS2004:No)、情報処理装置101は、図21に示すステップS2101に移行する。
一方、タイプ「照会」のアクセスログがある場合(ステップS2004:Yes)、情報処理装置101は、当該アクセスログから特定される照会FAQが、1ページ目に表示されたFAQであるか否かを判断する(ステップS2005)。ここで、1ページ目に表示されたFAQではない場合(ステップS2005:No)、情報処理装置101は、図21に示すステップS2101に移行する。
一方、1ページ目に表示されたFAQの場合(ステップS2005:Yes)、情報処理装置101は、タイプ「照会」のアクセスログから特定される照会FAQと形態素解析後検索ワードとを対応付けて表す教師データ(よゐこ)を生成する(ステップS2006)。そして、情報処理装置101は、生成した教師データ(よゐこ)を、教師データ(よゐこ)DB240に登録して(ステップS2007)、図21に示すステップS2101に移行する。
図21のフローチャートにおいて、まず、情報処理装置101は、タイプ「検索」のアクセスログの検索リストを参照して、0件ヒットの検索ワードがあるか否かを判断する(ステップS2101)。ここで、0件ヒットの検索ワードがない場合(ステップS2101:No)、情報処理装置101は、ステップS2105に移行する。
一方、0件ヒットの検索ワードがある場合(ステップS2101:Yes)、情報処理装置101は、取得したアクセスログの日時に基づいて、0件ヒットの検索ワードに後続して入力を受け付けた他の検索ワードがあるか否かを判断する(ステップS2102)。ただし、他の検索ワードは、当該他の検索ワードに対して1ページ目に表示されたいずれかのFAQが照会(選択)された検索ワードである。
ここで、他の検索ワードがない場合(ステップS2102:No)、情報処理装置101は、ステップS2105に移行する。一方、他の検索ワードがある場合(ステップS2102:Yes)、情報処理装置101は、他の検索ワードを代替ワードとする教師データ(まいご)を生成する(ステップS2103)。
そして、情報処理装置101は、生成した教師データ(まいご)を、教師データ(まいご)DB260に登録する(ステップS2104)。つぎに、情報処理装置101は、タイプ「検索」のアクセスログの検索リストを参照して、検索ワードに対して表示された際に照会されなかったFAQがあるか否かを判断する(ステップS2105)。
ここで、照会されなかったFAQがない場合(ステップS2105:No)、情報処理装置101は、ステップS2108に移行する。一方、照会されなかったFAQがある場合(ステップS2105:Yes)、情報処理装置101は、照会されなかったFAQを非照会FAQとする教師データ(わるいこ)を生成する(ステップS2106)。
そして、情報処理装置101は、生成した教師データ(わるいこ)を、教師データ(わるいこ)DB250に登録する(ステップS2107)。つぎに、情報処理装置101は、アクセスログDB230から選択されていない未選択のセッション番号があるか否かを判断する(ステップS2108)。
ここで、未選択のセッション番号がある場合(ステップS2108:Yes)、情報処理装置101は、図20に示したステップS2001に戻る。一方、未選択のセッション番号がない場合(ステップS2108:No)、情報処理装置101は、本フローチャートによる一連の処理を終了する。
これにより、過去のユーザの操作履歴(アクセスログ)から教師データ(よゐこ)、教師データ(わるいこ)および教師データ(まいご)を生成することができる。なお、アクセスログDB230の記憶内容は、例えば、情報処理装置101の教師データ生成処理の実行が完了すると、その都度リセットされる。
(情報処理装置101の回答出力処理手順)
つぎに、図22および図23を用いて、情報処理装置101の回答出力処理手順について説明する。
図22および図23は、情報処理装置101の回答出力処理手順の一例を示すフローチャートである。図22のフローチャートにおいて、まず、情報処理装置101は、検索ワードの入力を受け付けたか否かを判断する(ステップS2201)。ここで、情報処理装置101は、検索ワードの入力を受け付けるのを待つ(ステップS2201:No)。
そして、情報処理装置101は、検索ワードの入力を受け付けた場合(ステップS2201:Yes)、検索ワードを形態素解析する(ステップS2202)。つぎに、情報処理装置101は、検索ワードを形態素解析した結果に基づいて、FAQマスタ220からFAQを検索する(ステップS2203)。
つぎに、情報処理装置101は、教師データ(よゐこ)DB240を参照して、ナイーブベイズ分類器による機械学習を行って、検索された複数のFAQそれぞれについて、第1の確率を算出する(ステップS2204)。つぎに、情報処理装置101は、教師データ(わるいこ)DB250を参照して、ナイーブベイズ分類器による機械学習を行って、検索された複数のFAQそれぞれについて、第2の確率を算出する(ステップS2205)。
そして、情報処理装置101は、検索された複数のFAQそれぞれについて算出した第1の確率と第2の確率とに基づいて、検索された複数のFAQの中から、検索ワードに対する1または複数のFAQを決定する(ステップS2206)。
つぎに、情報処理装置101は、検索ワードに対応するFAQがあるか否かを判断する(ステップS2207)。具体的には、例えば、情報処理装置101は、ステップS2203においてFAQが1件も検索されなかった場合、または、ステップS2206においてFAQが1件も決定されなかった場合に、検索ワードに対応するFAQがないと判定する。
ここで、検索ワードに対応するFAQがある場合(ステップS2207:Yes)、情報処理装置101は、決定した検索ワードに対する1または複数のFAQを出力して(ステップS2208)、本フローチャートによる一連の処理を終了する。一方、検索ワードに対応するFAQがない場合(ステップS2207:No)、情報処理装置101は、図23に示すステップS2301に移行する。
図23のフローチャートにおいて、まず、情報処理装置101は、教師データ(まいご)DB260を参照して、ナイーブベイズ分類器による機械学習を行って、複数の代替ワードそれぞれについて、検索ワードに後続して入力される第3の確率を算出する(ステップS2301)。
そして、情報処理装置101は、複数の代替ワードそれぞれについて算出した第3の確率に基づいて、検索ワードに後続して入力される代替ワードを特定する(ステップS2302)。つぎに、情報処理装置101は、代替ワードが特定されたか否かを判断する(ステップS2303)。例えば、図22に示したステップS2202において、検索ワードから形態素が検出されなかった場合に、代替ワードは特定されないことがある。
ここで、代替ワードが特定された場合(ステップS2303:Yes)、情報処理装置101は、図22に示したステップS2202に戻る。この場合、情報処理装置101は、特定した代替ワードの形態素解析を実施する。
一方、代替ワードが特定されなかった場合(ステップS2303:No)、情報処理装置101は、教師データ(形態素)DB1900を参照して、ナイーブベイズ分類器による機械学習を行って、複数の形態素それぞれについて、第4の確率を算出する(ステップS2304)。第4の確率は、検索ワードに類似する度合いの高さを示す。
そして、情報処理装置101は、複数の形態素それぞれについて算出した第4の確率に基づいて、検索ワードに対応する形態素を特定して(ステップS2305)、図22に示したステップS2203に戻る。この場合、情報処理装置101は、特定した形態素に基づいて、FAQマスタ220からFAQを検索する。
なお、ステップS2203において、FAQが1件も検索されなかった場合、情報処理装置101は、ステップS2304に移行することにしてもよい。また、ステップS2305からステップS2203への移行は、2回以上行わないこととする。このため、移行後のステップS2207において、検索ワードに対応するFAQがない場合には(ステップS2207:No)、情報処理装置101は、例えば、検索結果が0件である旨の情報を出力する。
これにより、過去のユーザの操作履歴(アクセスログ)をもとに、検索ワードに対して表示するFAQを最適化することができる。また、検索ワードに対応するFAQがなくても、過去のユーザの操作履歴をもとに、その検索ワード、すなわち、0件ヒット検索ワードに置き換わる代替ワードを推定してFAQを出力することができる。
以上説明したように、実施の形態にかかる情報処理装置101によれば、受け付けた検索ワードに対応するFAQがない場合、教師データ(まいご)を記憶する記憶部1010の記憶内容に基づく機械学習を行って、当該検索ワードに後続して入力される代替ワードを特定し、特定した代替ワードに対応するFAQを出力することができる。教師データ(まいご)は、検索ワードに対応するFAQがないときに後続して入力を受け付けた他の検索ワードを、当該検索ワードに対応付けた情報である。他の検索ワードは、例えば、他の検索ワードに対して1ページ目(上位所定数N)に表示されたいずれかのFAQが選択された検索ワードである。
これにより、入力された検索ワードに対応するFAQがなくても、過去のユーザの操作履歴(アクセスログ)をもとに、その検索ワード、すなわち、0件ヒット検索ワードに置き換わる代替ワードを推定してFAQを出力することができる。このため、商品やサービスの名称変更等にFAQの見直し作業が追随できないような状況下や、検索時にタイプミスや変換ミスが生じた場合でも、問題解決につながるような適切なFAQを表示することができる。
また、情報処理装置101によれば、記憶部1010を参照して、ナイーブベイズ分類器による機械学習を行って、教師データ(まいご)から特定される他の検索ワード(代替ワード)それぞれについて、第3の確率を算出することができる。第3の確率は、検索ワード(0件ヒット検索ワード)に後続して入力される確率である。そして、情報処理装置101によれば、他の検索ワードそれぞれについて算出した第3の確率に基づいて、検索ワード(0件ヒット検索ワード)に後続して入力される代替ワードを特定することができる。
これにより、問題解決につながるようなFAQを得られるような代替ワードを精度よく推定することができる。また、ナイーブベイズ分類器による機械学習を利用することで、教師データ(まいご)の質と量により代替ワードの推定精度をコントロールすることができる。
また、情報処理装置101によれば、代替ワードが特定されなかった場合、教師データ(形態素)DB1900の記憶内容に基づく機械学習を行って、検索ワードに対応する形態素を特定し、特定した形態素に対応するFAQを出力することができる。
これにより、教師データ(まいご)が蓄積されるまでの間に、0件ヒット検索ワードが入力されても、当該0件ヒット検索ワードに関連する形態素を推定して、当該形態素に対応するFAQを、検索ワードに対応するFAQとして表示することができる。このため、教師データ(まいご)が蓄積されるまでの間に、パンチミス等によりデタラメな検索ワードが入力された場合であっても、検索ワードに関連するFAQを表示することができる。
これらのことから、情報処理装置101によれば、FAQシステムやFAQサイトにおける一次回答率や顧客満足度の向上を図ることができる。また、FAQを見直すことなく適切な検索結果を得ることができるため、FAQシステムやFAQサイトの運用コストを削減することができる。
なお、本実施の形態で説明した回答出力方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本回答出力プログラムは、ハードディスク、フレキシブルディスク、CD(Compact Disc)-ROM、MO(Magneto-Optical disk)、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本回答出力プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)第1の質問の入力を受け付け、
受け付けた前記第1の質問に対応する回答候補がない場合、質問に対応する回答候補がないときに後続して入力を受け付けた他の質問であって、前記他の質問に対して表示されたいずれかの回答候補が選択された前記他の質問を、前記質問と対応付けて記憶する記憶部の記憶内容に基づく機械学習を行って、前記第1の質問に後続して入力される第2の質問を特定し、
特定した前記第2の質問に対応する回答候補を出力する、
処理をコンピュータに実行させることを特徴とする回答出力プログラム。
(付記2)前記特定する処理は、
前記記憶部を参照して、ナイーブベイズ分類器による機械学習を行って、前記他の質問それぞれについて、前記第1の質問に後続して入力される確率を算出し、
前記他の質問それぞれについて算出した前記確率に基づいて、前記第1の質問に後続して入力される第2の質問を特定する、ことを特徴とする付記1に記載の回答出力プログラム。
(付記3)前記他の質問は、質問に対応する回答候補がないときに後続して入力を受け付けた他の質問であって、前記他の質問に対する上位所定数の回答候補のいずれかが選択された質問である、ことを特徴とする付記1または2に記載の回答出力プログラム。
(付記4)前記第2の質問が特定されなかった場合、質問を形態素解析して検出された形態素と、前記形態素に含まれるそれぞれの要素とを対応付けて記憶する第2の記憶部の記憶内容に基づく機械学習を行って、前記第1の質問に対応する形態素を特定し、
特定した前記形態素に対応する回答候補を出力する、
処理を前記コンピュータに実行させることを特徴とする付記1~3のいずれか一つに記載の回答出力プログラム。
(付記5)前記回答候補は、FAQ(Frequently Asked Question)である、ことを特徴とする付記1~4のいずれか一つに記載の回答出力プログラム。
(付記6)前記特定する処理は、
前記他の質問のうち前記確率が最大の質問を、前記第1の質問に後続して入力される第2の質問として特定する、ことを特徴とする付記1~5のいずれか一つに記載の回答出力プログラム。
(付記7)第1の質問の入力を受け付け、
受け付けた前記第1の質問に対応する回答候補がない場合、質問に対応する回答候補がないときに後続して入力を受け付けた他の質問であって、前記他の質問に対して表示されたいずれかの回答候補が選択された前記他の質問を、前記質問と対応付けて記憶する記憶部の記憶内容に基づく機械学習を行って、前記第1の質問に後続して入力される第2の質問を特定し、
特定した前記第2の質問に対応する回答候補を出力する、
処理をコンピュータが実行することを特徴とする回答出力方法。
(付記8)第1の質問の入力を受け付け、
受け付けた前記第1の質問に対応する回答候補がない場合、質問に対応する回答候補がないときに後続して入力を受け付けた他の質問であって、前記他の質問に対して表示されたいずれかの回答候補が選択された前記他の質問を、前記質問と対応付けて記憶する記憶部の記憶内容に基づく機械学習を行って、前記第1の質問に後続して入力される第2の質問を特定し、
特定した前記第2の質問に対応する回答候補を出力する、
制御部を有することを特徴とする情報処理装置。