以下に図面を参照して、本発明にかかる表示制御プログラム、表示制御方法および情報処理装置の実施の形態を詳細に説明する。
(実施の形態)
図1は、実施の形態にかかる表示制御方法の一実施例を示す説明図である。図1において、情報処理装置101は、入力された単語または文章に対応する回答を検索した結果、当該単語または文章に対応する回答がなかった単語または文章を一覧表示するコンピュータである。
ここで、入力された単語または文章は、例えば、情報処理端末に入力される単語または文章である。情報処理端末は、例えば、FAQシステムを利用するユーザのコンピュータである。文章は、1または複数の文であってもよいし、句(フレーズ)であってもよい。入力される単語または文章は、例えば、問い合わせ(クエリ)である。問い合わせは、何らかの問題の答えを問いただす質問に相当する。
回答は、例えば、FAQとして登録される回答である。FAQは、「頻繁に尋ねられる質問」であり、予め予想される質問に対して、質問と回答をまとめたものである。対応する回答がなかった単語または文章は、例えば、入力された単語または文章に関連する回答を特定できなかった、すなわち、1件も回答が検索されなかったものである(ゼロ件ヒット)。
また、対応する回答がなかった単語または文章は、検索した回答について否定的な評価がなされたものであってもよい。否定的な評価がなされたものとは、例えば、入力された単語または文章に対して関連する回答を提示したにもかかわらず、いずれの回答も選択されず、「この中にはない」といった項目の選択がなされたものである(適合回答無し)。
FAQシステムにおいて、ゼロ件ヒットや適合回答無しの件数が増えると、ユーザの満足度の低下を招くおそれがある。このため、ゼロ件ヒットや適合回答無しの対策として、FAQのメンテナンスが行われる。例えば、FAQシステムの管理者は、頻繁にゼロ件ヒットが発生している問い合わせがあれば、その問い合わせに対応する回答を新たに用意してFAQに登録するといった作業を行う。
このようなメンテナンス作業を支援する機能として、例えば、ゼロ件ヒットの入力ワードを一覧表示するものがある。入力ワードは、例えば、FAQシステムのユーザの情報処理端末に入力された単語または文章である。また、ゼロ件ヒットの入力ワードを一覧表示する際に、ゼロ件ヒットの件数が多い順に順位付けして表示するものがある。
しかし、ゼロ件ヒットとなった入力ワードには、質問(問い合わせ)だけでなく、フリートーク(雑談)も含まれることがある。フリートークは、例えば、「おはようございます」や「こんにちは」などのチャットボットでの会話である。フリートークは、問い合わせに比べて、回答を用意する必要性が低いものである。
このため、ゼロ件ヒットの入力ワードを一覧表示する際に、回答を用意する必要性が高いものと低いものとが混在する場合がある。この場合、管理者は、例えば、一覧表示された入力ワードの内容を一つ一つ確認して、問い合わせなのかフリートークなのかを判断することになり、FAQのメンテナンス作業にかかる手間や時間が増大するおそれがある。
そこで、本実施の形態では、入力された単語または文章のうち対応する回答がない単語または文章を一覧表示する際に、当該単語または文章が、質問なのかフリートークなのかを識別可能に表示して、FAQのメンテナンス作業を支援する表示制御方法について説明する。以下、情報処理装置101の処理例について説明する。
(1)情報処理装置101は、入力された単語または文章に対応する回答を検索した結果、当該入力された単語または文章のうち対応する回答がない単語または文章について、当該単語または文章の特徴量に基づいて、問い合わせであるか、または、問い合わせ以外であるかを判定する。
ここで、対応する回答がない単語または文章は、入力された単語または文章に関連する回答を特定できなかった、すなわち、ゼロ件ヒットとなった単語または文章である。また、対応する回答がない単語または文章は、検索した回答について否定的な評価がなされたもの、すなわち、適合回答無しとなった単語または文章であってもよい。
単語または文章の特徴量とは、単語または文章の特徴をあらわす情報である。例えば、単語または文章の特徴量は、単語または文章をベクトル化して得られる特徴量ベクトルである。なお、特徴量として、単語または文章のどのような特徴を抽出するかは任意に設定可能である。
具体的には、例えば、情報処理装置101は、学習モデルMを用いて、単語または文章の特徴量に基づいて、当該単語または文章が、問い合わせであるか、または、問い合わせ以外であるかを判定する。学習モデルMは、入力データの特徴量から、問い合わせ、または、問い合わせ以外のいずれであるかを分類する分類器である。
学習モデルMは、例えば、問い合わせを示すラベルが付与された質問データを教師データとして機械学習を行って生成されることにしてもよい。また、学習モデルMは、問い合わせを示すラベルが付与された質問データと、問い合わせ以外を示すラベルが付与された会話データとを教師データとして機械学習を行って生成されることにしてもよい。
問い合わせを示すラベルが付与された質問データとしては、例えば、既存のFAQ(質問データと回答データとの組)を用いることができる。また、問い合わせ以外を示すラベルが付与された会話データとしては、例えば、チャットで行われた日常会話などを集めた会話テキスト集を用いることができる。
図1の例では、入力ワード110(降水確率を教えて)の特徴量を学習モデルMに与えた結果、問い合わせを示す分類結果111が出力されている。また、入力ワード120(いい天気ですね)の特徴量を学習モデルMに与えた結果、問い合わせ以外を示す分類結果121が得られている。入力ワード110,120は、入力された単語または文章のうち対応する回答がない単語または文章の一例である。
(2)情報処理装置101は、入力された単語または文章のうち対応する回答がない単語または文章を一覧表示する際に、問い合わせと判定した単語または文章を、問い合わせ以外と判定した単語または文章とは異なる態様で表示する。
具体的には、例えば、情報処理装置101は、問い合わせと判定した単語または文章を、問い合わせ以外と判定した単語または文章と背景色が異なるように表示することにしてもよい。また、情報処理装置101は、問い合わせと判定した単語または文章を表示し、問い合わせ以外と判定した単語または文章を非表示とすることにしてもよい。
図1の例では、ゼロ件ヒットや適合回答無しの入力ワードを一覧表示する際に、問い合わせを示す分類結果111が得られた入力ワード110が、問い合わせ以外を示す分類結果121が得られた入力ワード120と異なる態様で表示される。
このように、情報処理装置101によれば、入力された単語または文章のうち対応する回答がない単語または文章を一覧表示する際に、質問(問い合わせ)であるか、フリートーク(問い合わせ以外)であるかを識別可能に表示することができる。このため、例えば、FAQシステムの管理者は、FAQのメンテナンスを行う際に、ゼロ件ヒットや適合回答無しとなった単語または文章のうち、優先して回答を用意すべき単語または文章(問い合わせ)を容易に判断することが可能となる。
図1の例では、例えば、FAQシステムの管理者は、ゼロ件ヒットまたは適合回答無しとなった入力ワード110,120のうち、入力ワード110が、優先して回答を用意すべきものであることを容易に判断することができる。
(情報処理システム200のシステム構成例)
つぎに、図1に示した情報処理装置101を含む情報処理システム200のシステム構成例について説明する。情報処理システム200は、例えば、チャットボットを利用したFAQシステムに適用される。
図2は、情報処理システム200のシステム構成例を示す説明図である。図2において、情報処理システム200は、情報処理装置101と、作業者端末201と、複数の情報処理端末202と、を含む。情報処理システム200において、情報処理装置101、作業者端末201および情報処理端末202は、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
情報処理装置101は、FAQマスタ220、会話テキストマスタ230および解決不良テーブル240を有する。FAQマスタ220、会話テキストマスタ230および解決不良テーブル240の記憶内容については、図5~図7を用いて後述する。情報処理装置101は、例えば、サーバである。
作業者端末201は、作業者が使用するコンピュータである。作業者は、FAQのメンテナンスを行う者であり、例えば、情報処理システム200の管理者である。作業者端末201は、例えば、PC(Personal Computer)、タブレット型PCなどである。
情報処理端末202は、ユーザが使用するコンピュータである。ユーザは、例えば、FAQシステムの利用者である。情報処理端末202は、例えば、スマートフォン、PC、タブレット型PCなどである。
なお、情報処理システム200において、情報処理装置101は、応答処理機能を有していてもよい。応答処理機能は、例えば、FAQシステムに入力された入力ワード(単語または文章)に対応する回答データを検索して出力する機能である。入力ワードに対応する回答データは、例えば、FAQシステムにおいて採用されている既存の検索アルゴリズムを用いて検索される。
具体的には、例えば、情報処理装置101は、FAQマスタ220を参照して、入力された入力ワード(単語または文章)に一致する質問を検索する。そして、情報処理装置101は、入力ワードに一致する質問が検索された場合に、検索された質問に対応する回答を、入力ワードに対応する回答として出力する。
検索された質問に対応する回答は、例えば、検索された質問と同一のタイトルの質問に関連する回答、すなわち、検索された質問とFAQ-IDが同一の質問に関連する回答である(例えば、後述の図5参照)。一方、入力ワードに対応する回答が検索されなかった場合は、情報処理装置101は、入力ワードに対応する回答がないことを示す検索結果(ゼロ件ヒット)を出力する。
また、入力ワードに対応する回答を検索するにあたり、情報処理装置101は、入力ワードを形態素解析して形態素に分解することにしてもよい。そして、情報処理装置101は、FAQマスタ220を参照して、所定の検索条件にしたがって、分解した形態素に対応するFAQを検索することにしてもよい。
ただし、応答処理機能は、情報処理装置101とは異なる他のコンピュータにより実行されることにしてもよい。また、FAQマスタ220や会話テキストマスタ230は、例えば、情報処理装置101がアクセス可能な他のコンピュータ(例えば、データベースサーバ)が有することにしてもよい。
(情報処理装置101のハードウェア構成例)
図3は、情報処理装置101のハードウェア構成例を示すブロック図である。図3において、情報処理装置101は、CPU(Central Processing Unit)301と、メモリ302と、ディスクドライブ303と、ディスク304と、通信I/F(Interface)305と、可搬型記録媒体I/F306と、可搬型記録媒体307と、を有する。また、各構成部は、バス300によってそれぞれ接続される。
ここで、CPU301は、情報処理装置101の全体の制御を司る。CPU301は、複数のコアを有していてもよい。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMがOS(Operating System)のプログラムを記憶し、ROMがアプリケーションプログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
ディスクドライブ303は、CPU301の制御に従ってディスク304に対するデータのリード/ライトを制御する。ディスク304は、ディスクドライブ303の制御で書き込まれたデータを記憶する。ディスク304としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
通信I/F305は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して外部のコンピュータ(例えば、図2に示した作業者端末201、情報処理端末202)に接続される。そして、通信I/F305は、ネットワーク210と装置内部とのインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。通信I/F305には、例えば、モデムやLANアダプタなどを採用することができる。
可搬型記録媒体I/F306は、CPU301の制御に従って可搬型記録媒体307に対するデータのリード/ライトを制御する。可搬型記録媒体307は、可搬型記録媒体I/F306の制御で書き込まれたデータを記憶する。可搬型記録媒体307としては、例えば、CD(Compact Disc)-ROM、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリなどが挙げられる。
なお、情報処理装置101は、上述した構成部のほかに、例えば、SSD(Solid State Drive)、入力装置、ディスプレイ等を有することにしてもよい。また、情報処理装置101は、上述した構成部のうち、例えば、ディスクドライブ303、ディスク304、可搬型記録媒体I/F306、可搬型記録媒体307を有していなくてもよい。
(作業者端末201のハードウェア構成例)
図4は、作業者端末201のハードウェア構成例を示すブロック図である。図4において、作業者端末201は、CPU401と、メモリ402と、通信I/F403と、ディスプレイ404と、入力装置405と、可搬型記録媒体I/F406と、可搬型記録媒体407と、を有する。また、各構成部はバス400によってそれぞれ接続される。
ここで、CPU401は、作業者端末201の全体の制御を司る。CPU401は、複数のコアを有していてもよい。メモリ402は、例えば、ROM、RAMおよびフラッシュROMなどを有する記憶部である。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU401のワークエリアとして使用される。メモリ402に記憶されるプログラムは、CPU401にロードされることで、コーディングされている処理をCPU401に実行させる。
通信I/F403は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して外部のコンピュータ(例えば、情報処理装置101)に接続される。そして、通信I/F403は、ネットワーク210と自装置内部とのインターフェースを司り、外部装置からのデータの入出力を制御する。
ディスプレイ404は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する表示装置である。ディスプレイ404としては、例えば、液晶ディスプレイや有機EL(Electroluminescence)ディスプレイなどを採用することができる。
入力装置405は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う。入力装置405は、キーボードやマウスなどであってもよく、また、タッチパネル式の入力パッドやテンキーなどであってもよい。
可搬型記録媒体I/F406は、CPU401の制御に従って可搬型記録媒体407に対するデータのリード/ライトを制御する。可搬型記録媒体407は、可搬型記録媒体I/F406の制御で書き込まれたデータを記憶する。
なお、作業者端末201は、上述した構成部のほかに、例えば、HDD(Hard Disk Drive)、SSD、スキャナ、プリンタ等を有することにしてもよい。また、作業者端末201は、上述した構成部のうち、例えば、可搬型記録媒体I/F406、可搬型記録媒体407を有していなくてもよい。また、図2に示した情報処理端末202についても、作業者端末201と同様のハードウェア構成により実現することができる。
(FAQマスタ220の記憶内容)
つぎに、図5を用いて、情報処理装置101が有するFAQマスタ220の記憶内容について説明する。FAQマスタ220は、例えば、図3に示したメモリ302、ディスク304などの記憶装置により実現される。
図5は、FAQマスタ220の記憶内容の一例を示す説明図である。図5において、FAQマスタ220は、FAQ-ID、質問および回答のフィールドを有し、各フィールドに情報を設定することで、FAQ(例えば、FAQ500-1,500-2)をレコードとして記憶する。
ここで、FAQ-IDは、FAQを識別する識別子である。質問は、FAQを形成する質問を示す質問データである。回答は、質問に対応する回答を示す回答データである。質問および回答は、単語または複数の単語の組み合わせによって表現されてもよく、また、1または複数の文によって表現されてもよい。
例えば、FAQ500-1は、FAQ-ID「1」の質問「曇りの定義は?」と、回答「雲の量が9割以上が曇り」と、を含む。
(会話テキストマスタ230の記憶内容)
つぎに、図6を用いて、情報処理装置101が有する会話テキストマスタ230の記憶内容について説明する。会話テキストマスタ230は、例えば、図3に示したメモリ302、ディスク304などの記憶装置により実現される。
図6は、会話テキストマスタ230の記憶内容の一例を示す説明図である。図6において、会話テキストマスタ230は、会話-IDおよび会話テキストのフィールドを有し、各フィールドに情報を設定することで、会話データ(例えば、会話データ600-1~600-4)をレコードとして記憶する。
ここで、会話-IDは、会話テキストを識別する識別子である。会話テキストは、会話内容を示す。会話テキストとしては、例えば、チャットで行われた日常会話(例えば、挨拶、趣味の話など)が記憶される。例えば、会話データ600-1は、会話-ID「1」の会話テキスト「おはようございます」を示す。
(解決不良テーブル240の記憶内容)
つぎに、図7を用いて、情報処理装置101が有する解決不良テーブル240の記憶内容について説明する。解決不良テーブル240は、例えば、図3に示したメモリ302、ディスク304などの記憶装置により実現される。
図7は、解決不良テーブル240の記憶内容の一例を示す説明図である。図7において、解決不良テーブル240は、入力ワード、ゼロ件ヒットおよび適合回答無しのフィールドを有し、各フィールドに情報を設定することで、解決不良データ(例えば、解決不良データ700-1~700-3)をレコードとして記憶する。
ここで、入力ワードは、入力された単語または文章である。ゼロ件ヒットは、ゼロ件ヒットの件数を示す。ゼロ件ヒットの入力ワードは、入力ワードに関連する回答を特定できなかった入力ワードのことである。適合回答無しは、適合回答無しの件数を示す。適合回答無しは、検索した回答について否定的な評価がなされた入力ワードのことである。
例えば、解決不良データ700-1は、入力ワード「台風の予報」のゼロ件ヒット「3」および適合回答無し「0」を示す。
(情報処理装置101の機能的構成例)
図8は、情報処理装置101の機能的構成例を示すブロック図である。図8において、情報処理装置101は、取得部801と、学習部802と、判定部803と、表示制御部804と、を含む。具体的には、例えば、取得部801~表示制御部804は、図3に示したメモリ302、ディスク304、可搬型記録媒体307などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、通信I/F305により、その機能を実現する。各機能部の処理結果は、例えば、メモリ302、ディスク304などの記憶装置に記憶される。
取得部801は、入力された単語または文章に対応する回答を検索した結果、当該入力された単語または文章のうち対応する回答がない単語または文章の情報を取得する。ここで、対応する回答がなかった単語または文章は、ゼロ件ヒットとなった単語または文章である。また、対応する回答がない単語または文章は、適合回答無しとなった単語または文章であってもよい。
具体的には、例えば、取得部801は、不図示の入力装置を用いた管理者の操作入力により、または、外部のコンピュータから、解決不良データを取得することにしてもよい。解決不良データは、ゼロ件ヒットや適合回答無しとなった入力ワード(単語または文章)に関する情報であり、例えば、当該入力ワードがゼロ件ヒットとなった件数や、当該入力ワードが適合回答無しとなった件数を含む。
また、解決不良データは、例えば、情報処理装置101において、不図示のチャットログDB(Database)から生成されることにしてもよい。チャットログは、FAQシステムで行われたチャットに関するログであり、例えば、入力ワード、FAQ-IDおよびFAQ-LISTを含む。
入力ワードは、FAQシステムに入力された単語または文章である。FAQ-IDは、入力ワードに対して提示された回答(回答候補)のうち、選択された回答のFAQ-IDである。FAQ-LISTは、入力ワードに対して提示された回答のリストである。入力ワードに対して回答が提示されなかった場合、FAQ-IDには「-(Null)」が設定される。
また、回答が提示されたにもかかわらず、いずれの回答も選択されなかった場合は、FAQ-IDに「Not Found」が設定される。FAQ-ID「Not Found」の入力ワードは、適合回答無しの入力ワードを示す。入力ワードに対して回答が提示されなかった場合、FAQ-LISTフィールドには「Not Found」が設定される。FAQ-LIST「Not Found」の入力ワードは、ゼロ件ヒットとなった入力ワードを示す。
例えば、情報処理装置101は、チャットログDBを参照して、FAQ-IDに「Not Found」が設定された入力ワードを、適合回答無しの入力ワードとして特定する。また、情報処理装置101は、チャットログDBを参照して、FAQ-LISTに「Not Found」が設定された入力ワードを、ゼロ件ヒットの入力ワードとして特定する。
そして、情報処理装置101は、特定したゼロ件ヒットや適合回答無しとなった入力ワードに関する解決不良データを生成する。この場合、取得部801は、生成された解決不良データを取得する。なお、チャットログDB内のどの期間のチャットログを用いるかは任意に設定可能である。取得された解決不良データは、例えば、図7に示した解決不良テーブル240に記憶される。
学習部802は、問い合わせを示すラベルが付与された質問データを教師データとして機械学習を行って、学習モデルMを生成する。また、学習部802は、問い合わせを示すラベルが付与された質問データと、問い合わせ以外を示すラベルが付与された会話データとを教師データとして機械学習を行って、学習モデルMを生成することにしてもよい。
ここで、学習モデルMは、入力データの特徴量から、問い合わせ、または、問い合わせ以外のいずれであるかを分類する分類器である。学習モデルMとしては、例えば、サポートベクターマシン(SVM:Support Vector Machine)を用いることができる。
具体的には、例えば、学習部802は、図5に示したFAQマスタ220を参照して、FAQの各質問および回答のテキストから特徴量ベクトルを生成する。より詳細に説明すると、例えば、学習部802は、FAQの各質問および回答のテキストを形態素解析して単語に分割して、分割した単語をベクトル化する。単語のベクトル化には、例えば、word2vecなどの既存の技術を用いることができる。
つぎに、学習部802は、各単語のベクトルの和を特徴量ベクトル(文章のベクトル値)として生成する。そして、学習部802は、生成した特徴量ベクトルにラベル「_QUERY_」を付与したものを教師データとする。ラベル「_QUERY_」は、問い合わせ(クエリ)を示すラベルである。
同様に、学習部802は、図6に示した会話テキストマスタ230を参照して、各会話テキストを形態素解析して単語に分割して、分割した単語をベクトル化する。つぎに、学習部802は、各単語のベクトルの和を特徴量ベクトル(文章のベクトル値)として生成する。そして、学習部802は、生成した特徴量ベクトルにラベル「_OTHER_」を付与したものを教師データとする。ラベル「_OTHER_」は、問い合わせ以外を示すラベルである。
ここで、図9を用いて、教師データの具体例について説明する。
図9は、教師データの具体例を示す説明図である。図9において、データセット900は、教師データの集合である。データセット900内の各教師データ(例えば、教師データ901,902)は、文章のベクトル値とラベルとを含む。文章のベクトル値は、FAQのテキストや会話テキストから生成した特徴量ベクトルである。ラベルは、問い合わせ(_QUERY_)、または、問い合わせ以外(_OTHER_)を示すラベル(正解)である。
例えば、学習部802は、データセット900に基づいて、サポートベクターマシンを用いた教師あり学習を行う。この際、学習部802は、例えば、ソフトマージン(制約緩和)を制御するパラメタCには交差検証法を用いて良好な精度が得られる値を採用する。なお、学習部802による機械学習(教師あり学習)は、例えば、FAQマスタ220の記憶内容が更新される度に行われることにしてもよい。
これにより、入力データの特徴量ベクトルから、問い合わせ、または、問い合わせ以外のいずれであるかを分類する学習モデルM(分類器)を生成することができる。なお、学習モデルM(分類器)による分類結果の具体例については、図11を用いて後述する。
図8の説明に戻り、判定部803は、取得された情報を参照して、入力された単語または文章のうち対応する回答がない単語または文章について、当該単語または文章の特徴量に基づいて、問い合わせであるか、または、問い合わせ以外であるかを判定する。具体的には、例えば、判定部803は、学習モデルMを用いて、単語または文章の特徴量に基づいて、当該単語または文章が、問い合わせであるか、または、問い合わせ以外であるかを判定する。
より詳細に説明すると、例えば、判定部803は、解決不良テーブル240を参照して、ゼロ件ヒットまたは適合回答無しとなった入力ワード(対応する回答がない入力ワード)を特定する。そして、判定部803は、特定した入力ワードを単語に分割して、分割した単語をベクトル化する。
つぎに、判定部803は、各単語のベクトルの和を特徴量ベクトル(文章のベクトル値)として生成する。そして、判定部803は、生成した特徴量ベクトルを、生成された学習モデルM(分類器)に入力することにより得られる分類結果から、入力ワードが、問い合わせであるか、または、問い合わせ以外であるかを判定する。
なお、判定された結果は、例えば、ゼロ件ヒットまたは適合回答無しとなった入力ワード(単語または文章)と対応付けて記憶される。
表示制御部804は、入力された単語または文章のうち対応する回答がない単語または文章を一覧表示する際に、問い合わせと判定された単語または文章を、問い合わせ以外と判定された単語または文章とは異なる態様で表示する。
具体的には、例えば、表示制御部804は、問い合わせと判定された単語または文章を、問い合わせ以外と判定された単語または文章と背景色、背景模様、文字色、フォントの少なくともいずれかが異なるように表示することにしてもよい。また、表示制御部804は、問い合わせと判定された単語または文章を表示し、問い合わせ以外と判定された単語または文章を非表示とすることにしてもよい。
より詳細に説明すると、例えば、表示制御部804は、解決不良テーブル240を参照して、後述の図13~図15に示すような管理画面MSを、図2に示した作業者端末201に表示することにしてもよい。管理画面MSは、FAQのメンテナンスを行う際に表示される画面である。また、表示制御部804は、後述の図13~図15に示すような管理画面MSを、自装置の不図示のディスプレイに表示することにしてもよい。
例えば、表示制御部804は、管理画面MSにおいて、ゼロ件ヒットまたは適合回答無しとなった入力ワードを一覧表示する際に、問い合わせと判定された入力ワードをハイライト表示することにしてもよい(後述の図13参照)。この際、表示制御部804は、例えば、ゼロ件ヒットまたは適合回答無しとなった回数が多い順に入力ワードをソートしてランキング形式で表示してもよい。また、表示制御部804は、管理画面MSにおいて、ゼロ件ヒットまたは適合回答無しとなった入力ワードを一覧表示する際に、問い合わせ以外と判定された入力ワードを非表示として、問い合わせと判定された入力ワードのみを絞り込み表示することにしてもよい(後述の図14参照)。
なお、管理画面MSの画面例については、図12~図15を用いて後述する。
(単語数が少ない入力ワードについて)
同じ単語であっても、会話の状況によっては、問い合わせ(クエリ)とも雑談(フリートーク)とも受け取ることができることがある。したがって、入力ワードに含まれる単語数が少ないと(例えば、1個や2個)、上述した学習モデルM(分類器)を用いた手法では、問い合わせであるかどうかの判定精度が低下するおそれがある。
ここで、FAQには、雑談などの会話に比べて、特徴的な単語が出現する傾向がある。そこで、情報処理装置101は、入力ワードに含まれる単語数が少ないときは、単語のFAQらしさを示す尺度となる特徴度を用いて、入力ワードが、問い合わせであるか、または、問い合わせ以外であるかを判定することにしてもよい。
特徴度は、FAQで多く出現するほど値が高くなり、会話テキスト集に多く出現するほど値が低くなるように算出される。例えば、特徴度は、TF(Term Frequency)-IDF(Inverse Document Frequency)アルゴリズムを用いて算出されることにしてもよい。
具体的には、例えば、判定部803は、入力ワード(単語または文章)に含まれる単語数が所定数以下の場合、質問データと回答データとの組の集合と会話データの集合とに基づいて、入力ワードに含まれる単語の特徴度を算出する。ここで、所定数は、任意に設定可能であり、例えば、1、2程度の値に設定される。
質問データと回答データとの組は、質問データと当該質問データに対応する回答データとの組であり、例えば、FAQである。会話データは、例えば、チャットで行われた日常会話を示す会話テキストである。単語の特徴度は、単語の特徴的な度合いを示す指標値である。
より具体的には、例えば、判定部803は、下記式(1)を用いて、入力ワードに含まれる単語iの特徴度(i)を算出することができる。全文書は、例えば、FAQマスタ220内のFAQと、会話テキストマスタ230内の会話テキストを合わせたものである。
特徴度(i)=FAQ内での単語iの出現頻度 × log(全文書中での単語iが出現する文書数の逆数) ・・・(1)
上記式(1)の「FAQ内での単語iの出現頻度」は、例えば、FAQマスタ220内の全FAQでの単語iの出現頻度であり、TF-IDF値におけるTF値に対応する。TF値は、特定の文書中での単語iの出現頻度を示す。上記式(1)の「log(全文書中での単語iが出現する文書数の逆数)」は、TF-IDF値におけるIDF値に対応する。IDF値は、全文書中で単語iが出現する文書数の逆数である。
そして、判定部803は、算出した特徴度(i)に基づいて、入力ワードが、問い合わせであるか、または、問い合わせ以外であるかを判定する。具体的には、例えば、判定部803は、特徴度(i)が閾値を超えている場合、入力ワードが問い合わせであると判定する。また、判定部803は、特徴度(i)以下の場合には、入力ワードが問い合わせ以外であると判定する。閾値は、任意に設定可能である。
なお、入力ワードに複数の単語が含まれる場合、例えば、判定部803は、複数の単語のいずれかの単語の特徴度が閾値を超えている場合に、入力ワードが問い合わせであると判定することにしてもよい。また、判定部803は、複数の単語それぞれの特徴度の平均値が閾値を超えている場合に、入力ワードが問い合わせであると判定することにしてもよい。また、判定部803は、複数の単語それぞれの特徴度が全て閾値を超えている場合に、入力ワードが問い合わせであると判定することにしてもよい。
ここで、図10を用いて、単語iの特徴度(i)から、入力ワードが、問い合わせであるか、または、問い合わせ以外であるかを判定する場合の判定例について説明する。
図10は、特徴度を用いた判定例を示す説明図である。図10に示すケース1では、入力ワードに含まれる単語iを「百葉箱」とする。点線枠1010(FAQ)内の各文書1011~1013は、個々のFAQを示す。点線枠1020(会話テキスト集)内の各文書1021~1032は、個々の会話テキストを示す。
「百葉箱」は、FAQに多く登場する一方で、会話テキスト集にはあまり登場していないため、FAQらしい単語とみなす。上記式(1)を用いた計算では、FAQを対象とした単語iの出現頻度が高くなるため、特徴度(i)は大きくなる。
図10に示すケース2では、入力ワードに含まれる単語iを「今日」とする。点線枠1040(FAQ)内の各文書1041~1043は、個々のFAQを示す。点線枠1050(会話テキスト集)内の各文書1051~1062は、個々の会話テキストを示す。
「今日」は、会話テキスト集に多く登場するため、一般的な単語とみなす。上記式(1)を用いた計算では、FAQと会話テキスト集とを対象としたIDF(DFの逆数)値に対応する部分が低くなるため、特徴度(i)は小さくなる。
なお、FAQテキストと会話テキストの量に差をつけ、FAQよりも大量の会話テキストを設けることで、一般的な単語のIDF値がより小さく計算されるため、特徴度(i)の計算結果が鮮明に表れるようになる。
ここで、図11を用いて、学習モデルM(分類器)による分類結果の具体例について説明する。
図11は、学習モデルによる分類結果の具体例を示す説明図である。図11において、分類結果情報1110は、FAQのテキストから生成した教師データ(ラベル「_QUERY_」)のみを使用して生成した学習モデルM(分類器)を用いて分類した結果を示している。
また、分類結果情報1120は、FAQのテキストから生成した教師データ(ラベル「_QUERY_」)とともに、会話テキストから生成した教師データ(ラベル「_OTHER_」)を使用して生成した学習モデルM(分類器)を用いて分類した結果を示している。
分類結果情報1110において、例えば、分類結果1111は、入力ワード「こんにちは」が、問い合わせ以外(図11中、「Talk」)であることを示す。また、分類結果1112は、入力ワード「今日はいい天気ですね」が、問い合わせ(図11中、「Query」)であることを示す。
また、分類結果1113は、入力ワード「昨日は土砂降りの雨で苦労しました」が、問い合わせであることを示す。ここで、入力ワード「今日はいい天気ですね」や「昨日は土砂降りの雨で苦労しました」は、「問い合わせ以外(Talk)」と分類されるべきものである。
これに対して、分類結果情報1120において、分類結果1121は、入力ワード「今日はいい天気ですね」が、問い合わせ以外であることを示している。また、分類結果1122は、入力ワード「昨日は土砂降りの雨で苦労しました」が、問い合わせ以外であることを示している。
このように、学習モデルM(分類器)の生成にあたり、FAQのテキストから生成した教師データ(ラベル「_QUERY_」)だけでなく、会話テキストから生成した教師データ(ラベル「_OTHER_」)も使用することで、分類精度が向上していることがわかる。
(管理画面MSの画面例)
つぎに、図12~図15を用いて、作業者端末201のディスプレイ404(図4参照)に表示される管理画面MSの画面例について説明する。
図12~図15は、管理画面MSの画面例を示す説明図である。まず、図12を用いて、問い合わせ(_QUERY_)と判定された入力ワードと、問い合わせ以外(_OTHER_)と判定された入力ワードとを、同じ態様で表示する場合の表示例について説明する。
図12において、管理画面MSは、FAQのメンテナンスを行う際に表示される管理画面の一例である。管理画面MSには、ゼロ件ヒットまたは適合回答無しとなった入力ワードが、出現回数(ゼロ件ヒットの件数+適合回答無しの件数)の多い順に一覧表示されている。
つぎに、図13~図15を用いて、問い合わせと判定された入力ワードを、問い合わせ以外と判定された入力ワードとは異なる態様で表示する場合の表示例について説明する。
図13に示す管理画面MSでは、ゼロ件ヒットまたは適合回答無しとなった順位1~7の入力ワードのうち、問い合わせ(_QUERY_)と判定された順位1,2,3,7の入力ワードのみがハイライト表示されている。
これにより、FAQシステムの管理者は、ゼロ件ヒットまたは適合回答無しとなった入力ワードのうち、どの入力ワードが質問(問い合わせ)なのかを容易に識別することが可能となり、優先的にメンテナンスを行うべきFAQを判断しやすくなる。例えば、管理者は、順位1の「台風」は質問(問い合わせ)であり、順位4の「土砂降りの雨で憂鬱です」はフリートーク(問い合わせ以外)であることを容易に判断することができる。
また、FAQシステムの管理者は、順位を参照することで、質問(問い合わせ)の入力ワードのうち、どの入力ワードからメンテナンスを行うべきかを判断しやすくなる。例えば、管理者は、頻繁に出現している高順位の入力ワードからメンテナンスを行うべきであると判断することができる。
図14に示す管理画面MSでは、ゼロ件ヒットまたは適合回答無しとなった入力ワードのうち、問い合わせ(_QUERY_)と判定された順位1,2,3,7の入力ワードのみが表示されている。すなわち、問い合わせ以外(_OTHER_)と判定された入力ワードが非表示となっている。
これにより、FAQシステムの管理者は、ゼロ件ヒットまたは適合回答無しとなった入力ワードのうち、質問(問い合わせ)の入力ワードを容易に特定することが可能となり、優先的にメンテナンスを行うべきFAQを判断しやすくなる。
図15に示す管理画面MSでは、ゼロ件ヒットまたは適合回答無しとなった入力ワードのうち、問い合わせ(_QUERY_)と判定された順位1,2,3,7の入力ワードに対して、アイコン1501~1504が表示されている。アイコン1501~1504は、問い合わせの入力ワードであることを示すマークである。
これにより、FAQシステムの管理者は、ゼロ件ヒットまたは適合回答無しとなった入力ワードのうち、どの入力ワードが質問(問い合わせ)なのかを容易に識別することが可能となり、優先的にメンテナンスを行うべきFAQを判断しやすくなる。
なお、情報処理装置101(表示制御部804)は、作業者端末201のユーザの操作入力に応じて、図12~図15に示した管理画面MSの表示態様を切替可能にしてもよい。例えば、表示制御部804は、ユーザの操作入力に応じて、管理画面MSの表示態様を、図12に示した管理画面MSから、図13に示した管理画面MSに切り替えることにしてもよい。
また、表示制御部804は、ユーザの操作入力に応じて、管理画面MSの表示態様を、図13に示した管理画面MSから、図14に示した管理画面MSに切り替えることにしてもよい。これにより、FAQシステムの管理者は、例えば、ゼロ件ヒットまたは適合回答無しとなった入力ワード全体を一旦確認した上で、優先的にメンテナンスを行うべき問い合わせ(質問)の入力ワードのみを絞り込み表示させることができる。
(情報処理装置101の表示制御処理手順)
つぎに、図16を用いて、情報処理装置101の表示制御処理手順について説明する。情報処理装置101の表示制御処理は、例えば、作業者端末201からの要求に応じて実行される。
図16は、情報処理装置101の表示制御処理手順の一例を示すフローチャートである。図16のフローチャートにおいて、まず、情報処理装置101は、解決不良テーブル240を参照して、管理画面MSにゼロ件ヒットランキングを表示する(ステップS1601)。ゼロ件ヒットランキングは、ゼロ件ヒットまたは適合回答無しとなった入力ワードを、出現回数(ゼロ件ヒットの件数+適合回答無しの件数)が多い順にソートしたものである。
つぎに、情報処理装置101は、Queryハイライト機能が有効であるか否かを判断する(ステップS1602)。Queryハイライト機能の有効/無効は、例えば、予め設定されていてもよく、また、管理画面MS上の操作ボタン(不図示)を押下するなどの操作入力により設定されてもよい。
ここで、情報処理装置101は、Queryハイライト機能が有効となるのを待つ(ステップS1602:No)。そして、情報処理装置101は、Queryハイライト機能が有効となった場合(ステップS1602:Yes)、ゼロ件ヒットランキングから選択されていない未選択の入力ワードを選択する(ステップS1603)。
つぎに、情報処理装置101は、選択した入力ワードを単語に分割する(ステップS1604)。そして、情報処理装置101は、入力ワードに含まれる単語数が所定数以下であるか否かを判断する(ステップS1605)。
ここで、単語数が所定数より大きい場合(ステップS1605:No)、情報処理装置101は、入力ワードから分割した各単語のベクトルの和を特徴量ベクトル(文章のベクトル値)として生成する(ステップS1606)。そして、情報処理装置101は、生成した特徴量ベクトルを学習モデルM(分類器)に入力して、入力ワードが、Query(問い合わせ)に属するか、OTHER(問い合わせ以外)に属するかを判定して(ステップS1607)、ステップS1609に移行する。
また、ステップS1605において、単語数が所定数以下の場合(ステップS1605:Yes)、情報処理装置101は、特徴度判定処理を実行する(ステップS1608)。特徴度判定処理は、単語の特徴度を用いて、入力ワードが、問い合わせであるか、または、問い合わせ以外であるかを判定する処理である。
なお、特徴度判定処理の具体的な処理手順については、図17を用いて後述する。
つぎに、情報処理装置101は、ゼロ件ヒットランキングから選択されていない未選択の入力ワードがあるか否かを判断する(ステップS1609)。ここで、未選択の入力ワードがある場合(ステップS1609:Yes)、情報処理装置101は、ステップS1603に戻る。
一方、未選択の入力ワードがない場合(ステップS1609:No)、情報処理装置101は、管理画面MSにおいて、Query(問い合わせ)に属する入力ワードをハイライト表示して(ステップS1610)、本フローチャートによる一連の処理を終了する。
これにより、管理画面MSにおいて、ゼロ件ヒットまたは適合回答無しとなった入力ワードのうち、QUERYに属すると判定された入力ワードのみをハイライト表示して、どの入力ワードが問い合わせ(質問)なのかを容易に識別可能にすることができる。
なお、Queryハイライト機能が予め有効に設定されている場合、情報処理装置101は、ステップS1601,S1602の処理をスキップすることにしてもよい。また、ステップS1610において、情報処理装置101は、管理画面MSにおいて、Other(問い合わせ以外)に属する入力ワードを非表示とし、Query(問い合わせ)に属する入力ワードのみを表示することにしてもよい。
つぎに、図17を用いて、図16に示したステップS1608の特徴度判定処理の具体的な処理手順について説明する。
図17は、特徴度判定処理の具体的処理手順の一例を示すフローチャートである。図17のフローチャートにおいて、まず、情報処理装置101は、FAQマスタ220および会話テキストマスタ230を参照して、上記式(1)を用いて、図16に示したステップS1604において分割した単語の特徴度を算出する(ステップS1701)。
つぎに、情報処理装置101は、算出した単語の特徴度が閾値を超えているか否かを判断する(ステップS1702)。ここで、単語の特徴度が閾値を超えている場合(ステップS1702:Yes)、情報処理装置101は、入力ワードが、Query(問い合わせ)に属すると判定して(ステップS1703)、特徴度判定処理を呼び出したステップに戻る。
一方、単語の特徴度が閾値以下の場合(ステップS1702:No)、情報処理装置101は、入力ワードが、Other(問い合わせ以外)に属すると判定して(ステップS1704)、特徴度判定処理を呼び出したステップに戻る。
これにより、入力ワードに含まれる単語数が少ないときに(例えば、1個や2個)、入力ワードに特徴的な単語が出現するかどうかで、入力ワードが、問い合わせであるか、または、問い合わせ以外であるかを判定することができる。
以上説明したように、実施の形態にかかる情報処理装置101によれば、入力された単語または文章に対応する回答を検索した結果、入力された単語または文章のうち対応する回答がない単語または文章について、当該単語または文章の特徴量に基づいて、問い合わせであるか、または、問い合わせ以外であるかを判定することができる。入力された単語または文章は、例えば、FAQシステムのユーザの情報処理端末202に入力された単語または文章である。そして、情報処理装置101によれば、入力された単語または文章のうち対応する回答がない単語または文章を一覧表示する際に、問い合わせと判定した単語または文章を、問い合わせ以外と判定した単語または文章とは異なる態様で表示することができる。
これにより、ユーザの情報処理端末202に入力された入力ワードのうち、ゼロ件ヒットまたは適合回答無しとなった入力ワードを一覧表示する際に、質問(問い合わせ)であるか、フリートーク(問い合わせ以外)であるかを識別可能に表示することができる。このため、例えば、FAQシステムの管理者は、FAQのメンテナンスを行う際に、ゼロ件ヒットまたは適合回答無しとなった入力ワードのうち、優先して回答を用意すべき入力ワード(問い合わせ)を容易に判断することが可能となる。
また、情報処理装置101によれば、問い合わせを示すラベルが付与された質問データと、問い合わせ以外を示すラベルが付与された会話データとを教師データとして機械学習を行って、入力データの特徴量から、問い合わせ、または、問い合わせ以外のいずれであるかを分類する学習モデルM(分類器)を用いて、単語または文章の特徴量に基づいて、当該単語または文章が、問い合わせであるか、または、問い合わせ以外であるかを判定することができる。
これにより、学習モデルM(分類器)の生成にあたり、FAQのテキストから生成した教師データ(ラベル「_QUERY_」)だけでなく、会話テキストから生成した教師データ(ラベル「_OTHER_」)も使用することで、分類精度の向上を図ることができる。
また、情報処理装置101によれば、単語または文章に含まれる単語数が所定数以下の場合、質問データと回答データとの組の集合と会話データの集合とに基づいて、単語または文章に含まれる単語の特徴的な度合いを示す特徴度を算出することができる。特徴度は、例えば、TF-IDFアルゴリズムを用いて算出される。そして、情報処理装置101によれば、算出した特徴度に基づいて、単語または文章が、問い合わせであるか、または、問い合わせ以外であるかを判定することができる。
これにより、入力ワードに含まれる単語数が少ないときに(例えば、1個や2個)、入力ワードに特徴的な単語が出現するかどうかで、入力ワードが、問い合わせであるか、または、問い合わせ以外であるかを判定することができる。また、TF-IDFアルゴリズムを用いることで、FAQで多く出現するほど値が高くなり、会話テキスト集に多く出現するほど値が低くなる特徴度を求めることができ、単語のFAQらしさを評価する適切な指標値を得ることができる。
また、情報処理装置101によれば、問い合わせと判定した単語または文章を、問い合わせ以外と判定した単語または文章と背景色、背景模様、文字色、フォントの少なくともいずれかが異なるように表示することができる。
これにより、ゼロ件ヒットまたは適合回答無しとなった入力ワードのうち、質問(問い合わせ)に属する入力ワードを直感的に判断可能にすることができる。
また、情報処理装置101によれば、問い合わせと判定した単語または文章を表示し、問い合わせ以外と判定した単語または文章を非表示とすることができる。
これにより、ゼロ件ヒットまたは適合回答無しとなった入力ワードのうち、回答を用意する必要性が低い入力ワードを非表示にして、優先して回答を用意すべき入力ワードの判断ミスを防ぐことができる。
これらのことから、情報処理装置101によれば、入力される質問に対して適切な回答を提示するためのFAQのメンテナンス作業にかかる手間や時間を削減することができる。これにより、FAQのメンテナンス作業にかかる人的負荷やコストを抑えつつ、ゼロ件ヒットや適合回答無しの件数の増加を抑えることが可能となり、ひいては、ユーザの満足度を向上させることができる。
なお、本実施の形態で説明した表示制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本表示制御プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、DVD、USBメモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本表示制御プログラムは、インターネット等のネットワークを介して配布してもよい。
また、本実施の形態で説明した情報処理装置101は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けICやFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)入力された単語または文章に対応する回答を検索した結果、前記入力された単語または文章のうち対応する回答がない単語または文章について、当該単語または文章の特徴量に基づいて、問い合わせであるか、または、問い合わせ以外であるかを判定し、
前記対応する回答がない単語または文章を一覧表示する際に、前記問い合わせと判定した単語または文章を、前記問い合わせ以外と判定した単語または文章とは異なる態様で表示する、
処理をコンピュータに実行させることを特徴とする表示制御プログラム。
(付記2)前記判定する処理は、
問い合わせを示すラベルが付与された質問データと、問い合わせ以外を示すラベルが付与された会話データとを教師データとして機械学習を行って、入力データの特徴量から、問い合わせ、または、問い合わせ以外のいずれであるかを分類する分類器を用いて、前記単語または文章の特徴量に基づいて、当該単語または文章が、問い合わせであるか、または、問い合わせ以外であるかを判定する、ことを特徴とする付記1に記載の表示制御プログラム。
(付記3)前記単語または文章に含まれる単語数が所定数以下の場合、質問データと回答データとの組の集合と会話データの集合とに基づいて、前記単語または文章に含まれる単語の特徴的な度合いを示す特徴度を算出し、
算出した前記特徴度に基づいて、前記単語または文章が、問い合わせであるか、または、問い合わせ以外であるかを判定する、ことを特徴とする付記1または2に記載の表示制御プログラム。
(付記4)前記表示する処理は、
前記問い合わせと判定した単語または文章を、前記問い合わせ以外と判定した単語または文章と背景色、背景模様、文字色、フォントの少なくともいずれかが異なるように表示する、ことを特徴とする付記1~3のいずれか一つに記載の表示制御プログラム。
(付記5)前記表示する処理は、
前記問い合わせと判定した単語または文章を表示し、前記問い合わせ以外と判定した単語または文章を非表示とする、ことを特徴とする付記1~3のいずれか一つに記載の表示制御プログラム。
(付記6)前記特徴度は、TF(Term Frequency)-IDF(Inverse Document Frequency)アルゴリズムを用いて算出される、ことを特徴とする付記3に記載の表示制御プログラム。
(付記7)前記入力された単語または文章は、ユーザの情報処理端末に入力された単語または文章である、ことを特徴とする付記1~6のいずれか一つに記載の表示制御プログラム。
(付記8)入力された単語または文章に対応する回答を検索した結果、前記入力された単語または文章のうち対応する回答がない単語または文章について、当該単語または文章の特徴量に基づいて、問い合わせであるか、または、問い合わせ以外であるかを判定し、
前記対応する回答がない単語または文章を一覧表示する際に、前記問い合わせと判定した単語または文章を、前記問い合わせ以外と判定した単語または文章とは異なる態様で表示する、
処理をコンピュータが実行することを特徴とする表示制御方法。
(付記9)入力された単語または文章に対応する回答を検索した結果、前記入力された単語または文章のうち対応する回答がない単語または文章について、当該単語または文章の特徴量に基づいて、問い合わせであるか、または、問い合わせ以外であるかを判定する判定部と、
前記対応する回答がない単語または文章を一覧表示する際に、前記判定部によって前記問い合わせと判定された単語または文章を、前記判定部によって前記問い合わせ以外と判定された単語または文章とは異なる態様で表示する表示制御部と、
を有することを特徴とする情報処理装置。