(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-11
(45)【発行日】2023-04-19
(54)【発明の名称】検索支援方法及び情報処理装置
(51)【国際特許分類】
G06F 16/35 20190101AFI20230412BHJP
G06F 16/332 20190101ALI20230412BHJP
G06F 16/335 20190101ALI20230412BHJP
G06F 16/338 20190101ALI20230412BHJP
【FI】
G06F16/35
G06F16/332
G06F16/335
G06F16/338
(21)【出願番号】P 2019082934
(22)【出願日】2019-04-24
【審査請求日】2022-01-11
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100087480
【氏名又は名称】片山 修平
(72)【発明者】
【氏名】永田 享
(72)【発明者】
【氏名】工藤 淳真
【審査官】和田 財太
(56)【参考文献】
【文献】特開2014-063343(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/35
G06F 16/332
G06F 16/335
G06F 16/338
(57)【特許請求の範囲】
【請求項1】
文書検索の検索結果に含まれる複数の文書のうち、特定の文書数Nの文書を対象としてクラスタリングを行い、前記クラスタリングにより生成された各クラスタに分類された文書から抽出した単語を検索キーワード候補として提示する検索支援方法において、
前記クラスタリングの所要時間が基準を超える場合、前記クラスタリングにより生成された各クラスタについて、前記各クラスタに分類された文書のうち、特定の単語を含む文書を特定し、
前記特定の文書数Nを、前記特定の文書数Nから前記特定の単語を含む前記文書の文書数Mを差し引いた文書数N-Mに更新する、
処理をコンピュータが実行
し、
前記特定の単語は、前記各クラスタに分類された文書をそれぞれ特徴づける複数の単語のうち、文書を特徴づける度合が他の単語に比べて低い単語である、
ことを特徴とする検索支援方法。
【請求項2】
前記特定の文書数Nは、前記複数の文書の総数又は前記複数の文書に含まれる一部の文書の総数である、
ことを特徴とする請求項
1に記載の検索支援方法。
【請求項3】
前記特定の単語を含む前記文書を特定する前に、前記クラスタリングにより生成された各クラスタに分類されなかった非分類の文書を特定し、
前記非分類の文書を前記クラスタリングの対象から除外する、
ことを特徴とする請求項1
又は2に記載の検索支援方法。
【請求項4】
前記各クラスタに分類された文書から抽出した単語は、いずれも、前記各クラスタをそれぞれ特徴づける単語である、
ことを特徴とする請求項1から
3のいずれか1項に記載の検索支援方法。
【請求項5】
前記各クラスタをそれぞれ特徴づける単語は、前記各クラスタに分類された文書を特徴づける単語の出現頻度に基づいて決定される、
ことを特徴とする請求項
4に記載の検索支援方法。
【請求項6】
文書検索の検索結果に含まれる複数の文書を対象として第1のクラスタリングを行い、前記第1のクラスタリングにより生成された各クラスタに分類された文書から抽出した単語を検索キーワード候補として提示する検索支援方法
において、
前記文書検索の検索対象に該当する複数の文書のうち、特定の文書数N(Nは自然数)の文書を対象とする第2のクラスタリングの所要時間が基準を超える場合、前記第2のクラスタリングにより生成された各クラスタについて、前記各クラスタに分類された文書のうち、特定の単語を含む文書を特定し、
前記特定の文書数Nを、前記特定の文書数Nから前記特定の単語を含む前記文書の文書数M(MはNより小さな自然数)を差し引いた文書数N-Mに更新する、
処理をコンピュータが実行
し、
前記特定の単語は、前記各クラスタに分類された文書をそれぞれ特徴づける複数の単語のうち、文書を特徴づける度合が他の単語に比べて低い単語である、
ことを特徴とする検索支援方法。
【請求項7】
文書検索の検索結果に含まれる複数の文書のうち、特定の文書数Nの文書を対象としてクラスタリングを行い、前記クラスタリングにより生成された各クラスタに分類された文書から抽出した単語を検索キーワード候補として提示する情報処理装置において、
前記クラスタリングの所要時間が基準を超える場合、前記クラスタリングにより生成された各クラスタについて、前記各クラスタに分類された文書のうち、特定の単語を含む文書を特定し、
前記特定の文書数Nを、前記特定の文書数Nから前記特定の単語を含む前記文書の文書数Mを差し引いた文書数N-Mに更新する、
処理を実行する処理部を備え
、
前記特定の単語は、前記各クラスタに分類された文書をそれぞれ特徴づける複数の単語のうち、文書を特徴づける度合が他の単語に比べて低い単語である、
ことを特徴とする情報処理装置。
【請求項8】
文書検索の検索結果に含まれる複数の文書を対象として第1のクラスタリングを行い、前記第1のクラスタリングにより生成された各クラスタに分類された文書から抽出した単語を検索キーワード候補として提示する情報処理装置
において、
前記文書検索の検索対象に該当する複数の文書のうち、特定の文書数N(Nは自然数)の文書を対象とする第2のクラスタリングの所要時間が基準を超える場合、前記第2のクラスタリングにより生成された各クラスタについて、前記各クラスタに分類された文書のうち、特定の単語を含む文書を特定し、
前記特定の文書数Nを、前記特定の文書数Nから前記特定の単語を含む前記文書の文書数M(MはNより小さな自然数)を差し引いた文書数N-Mに更新する、
処理を実行する処理部を備え
、
前記特定の単語は、前記各クラスタに分類された文書をそれぞれ特徴づける複数の単語のうち、文書を特徴づける度合が他の単語に比べて低い単語である、
ことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本件は、検索支援方法及び情報処理装置に関する。
【背景技術】
【0002】
階層化されたカテゴリで分類された複数のFAQから目的のFAQを検索する際の検索効率の向上を図る技術が提案されている(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、FAQに関する技術が導入されて運用が開始されると、FAQは増加する傾向がある。例えば、導入時に想定されなかった新たな質問があった場合、その質問とその質問に対する回答を含むFAQを新たに作成し、検索対象に追加することが求められる。このように、FAQなどの文書が増加すれば、文書を検索する際の検索対象が増加し、検索時間が増大するという問題がある。
【0005】
そこで、1つの側面では、検索時間を短縮することを目的とする。
【課題を解決するための手段】
【0006】
1つの実施態様では、検索支援方法は、文書検索の検索結果に含まれる複数の文書のうち、特定の文書数Nの文書を対象としてクラスタリングを行い、前記クラスタリングにより生成された各クラスタに分類された文書から抽出した単語を検索キーワード候補として提示する検索支援方法において、前記クラスタリングの所要時間が基準を超える場合、前記クラスタリングにより生成された各クラスタについて、前記各クラスタに分類された文書のうち、特定の単語を含む文書を特定し、前記特定の文書数Nを、前記特定の文書数Nから前記特定の単語を含む前記文書の文書数Mを差し引いた文書数N-Mに更新する、処理をコンピュータが実行し、前記特定の単語は、前記各クラスタに分類された文書をそれぞれ特徴づける複数の単語のうち、文書を特徴づける度合が他の単語に比べて低い単語である、ことを特徴とする方法である。
【0007】
1つの実施態様では、検索支援方法は、文書検索の検索結果に含まれる複数の文書を対象として第1のクラスタリングを行い、前記第1のクラスタリングにより生成された各クラスタに分類された文書から抽出した単語を検索キーワード候補として提示する検索支援方法において、前記文書検索の検索対象に該当する複数の文書のうち、特定の文書数N(Nは自然数)の文書を対象とする第2のクラスタリングの所要時間が基準を超える場合、前記第2のクラスタリングにより生成された各クラスタについて、前記各クラスタに分類された文書のうち、特定の単語を含む文書を特定し、前記特定の文書数Nを、前記特定の文書数Nから前記特定の単語を含む前記文書の文書数M(MはNより小さな自然数)を差し引いた文書数N-Mに更新する、処理をコンピュータが実行し、前記特定の単語は、前記各クラスタに分類された文書をそれぞれ特徴づける複数の単語のうち、文書を特徴づける度合が他の単語に比べて低い単語である、ことを特徴とする方法である。
【発明の効果】
【0008】
検索時間を短縮することができる。
【図面の簡単な説明】
【0009】
【
図1】
図1は対話システムの一例を説明するための図である。
【
図2】
図2は対話サーバのハードウェア構成の一例である。
【
図3】
図3は対話サーバのブロック図の一例である。
【
図4】
図4は対話処理の一例を示すフローチャートである。
【
図7】
図7はクラスタキーワードの抽出例を説明するための図である。
【
図9】
図9は質問画面における他の問い返し例である。
【
図10】
図10は質問画面に出現するマニュアル文書の一例である。
【
図11】
図11は文書数決定処理の一例を示すフローチャートである。
【
図12】
図12は文書数決定処理の一例を説明するための図である。
【
図13】
図13は文書キーワードの抽出例を説明するための図である。
【
図14】
図14は提示キーワード決定処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、本件を実施するための形態について図面を参照して説明する。
【0011】
図1は対話システムSTの一例を説明するための図である。対話システムSTはユーザ端末100と対話サーバ200を含んでいる。対話サーバ200は情報処理装置の一例である。
図1では、ユーザ端末100の一例としてPersonal Computer(PC)が示されているが、タブレット端末といったスマートデバイスであってもよい。
【0012】
ユーザ端末100は入力装置110、表示装置120、及び制御装置130を含んでいる。入力装置110と表示装置120はいずれも制御装置130に接続されている。対話システムSTを利用するユーザが入力装置110を操作すると、制御装置130は操作内容に応じた指示に基づいて表示装置120の表示内容を制御する。例えば、ユーザが入力装置110を操作して対話サーバ200にアクセスする操作を行うと、制御装置130は表示装置120に質問画面SCを表示する。
【0013】
その他、詳細は後述するが、ユーザが入力装置110を操作して質問画面SC内に対し単語ではなく自然文といった文章で質問を入力して送信する操作を行うと、制御装置130は入力された質問を質問画面SC内に表示する。また、制御装置130は入力されたその質問を対話サーバ200に向けて送信する。ユーザが入力装置110を操作して質問画面SC内の単語や所定の文字列を指定する操作を行うと、制御装置130はこれらの指定を対話サーバ200に向けて送信する。この所定の文字列はユーザが文章で入力した質問に応じた文字列である。尚、質問画面SC内には指定可能な単語や所定の文字列と、指定不可能な単語や文字列、文章が含まれる。
【0014】
ユーザ端末100と対話サーバ200は通信ネットワークNWを介して互いに接続されている。通信ネットワークNWとしては例えばLocal Area Network(LAN)がある。本実施形態では、対話サーバ200の運用形態をオンプレミスとして説明するが、対話サーバ200の運用形態をクラウドとしてもよい。この場合、インターネットを通信ネットワークNWとして利用すればよい。
【0015】
対話サーバ200はユーザ端末100から送信された質問や指定を受け付けると、各種の処理を実行する。例えば、対話サーバ200は質問や指定の内容を判定し、質問や指定に応じた問い返しを含む画面情報をユーザ端末100に返信する。また、対話サーバ200は質問や指定の内容を判定し、質問や指定に応じたマニュアル文書をユーザ端末100に返信する。マニュアル文書は例えば操作マニュアルに関する文書である。マニュアル文書がFrequently Asked Questions(FAQ)を記載したFAQ文書を含んでいてもよい。このように、対話サーバ200はユーザの質問や指定に応じた問い返しやマニュアル文書を返信する。したがって、対話サーバ200をチャットボットと呼んでもよい。尚、チャットボットはチャットとロボットを組み合わせた造語である。
【0016】
次に、
図2を参照して、対話サーバ200のハードウェア構成について説明する。尚、上述した制御装置130は対話サーバ200と基本的に同様のハードウェア構成であるため、説明を省略する。
【0017】
図2は対話サーバ200のハードウェア構成の一例である。
図2に示すように、対話サーバ200は、少なくともハードウェアプロセッサとしてのCentral Processing Unit(CPU)200A、Random Access Memory(RAM)200B、Read Only Memory(ROM)200C、及びネットワークI/F(インタフェース)200Dを含んでいる。対話サーバ200は、必要に応じて、Hard Disk Drive(HDD)200E、入力I/F200F、出力I/F200G、入出力I/F200H、ドライブ装置200Iの少なくとも1つを含んでいてもよい。CPU200Aからドライブ装置200Iまでは、内部バス200Jによって互いに接続されている。すなわち、対話サーバ200はコンピュータによって実現することができる。尚、CPU200Aに代えてMicro Processing Unit(MPU)をハードウェアプロセッサとして利用してもよい。
【0018】
入力I/F200Fには、入力装置710が接続される。入力装置710としては、例えばキーボードやマウスなどがある。尚、上述した入力装置110についても入力装置710と同様である。出力I/F200Gには、表示装置720が接続される。表示装置720としては、例えば液晶ディスプレイがある。尚、上述した表示装置120についても表示装置720と同様である。入出力I/F200Hには、半導体メモリ730が接続される。半導体メモリ730としては、例えばUniversal Serial Bus(USB)メモリやフラッシュメモリなどがある。入出力I/F200Hは、半導体メモリ730に記憶されたプログラムやデータを読み取る。入力I/F200F及び入出力I/F200Hは、例えばUSBポートを備えている。出力I/F200Gは、例えばディスプレイポートを備えている。
【0019】
ドライブ装置200Iには、可搬型記録媒体740が挿入される。可搬型記録媒体740としては、例えばCompact Disc(CD)-ROM、Digital Versatile Disc(DVD)といったリムーバブルディスクがある。ドライブ装置200Iは、可搬型記録媒体740に記録されたプログラムやデータを読み込む。ネットワークI/F200Dは、例えばLANポートや通信回路などを備えている。ネットワークI/F200Dは通信ネットワークNWと接続される。
【0020】
上述したRAM200Bには、ROM200CやHDD200E、半導体メモリ730に記憶されたプログラムがCPU200Aによって一時的に格納される。RAM200Bには、可搬型記録媒体740に記録されたプログラムがCPU200Aによって一時的に格納される。格納されたプログラムをCPU200Aが実行することにより、CPU200Aは後述する各種の機能を実現し、また、後述する各種の処理を実行する。尚、プログラムは後述するフローチャートに応じたものとすればよい。
【0021】
次に、
図3を参照して、対話サーバ200の機能構成について説明する。
【0022】
図3は対話サーバ200のブロック図の一例である。
図3では対話サーバ200の機能の要部が示されている。
図3に示すように、対話サーバ200は記憶部210、処理部220、及び通信部230を構成要素として含んでいる。記憶部210は例えばRAM200B及びHDD200Eによって実現することができる。処理部220は例えばCPU200Aによって実現することができる。通信部230は例えばネットワークI/F200Dによって実現することができる。したがって、記憶部210、処理部220、及び通信部230は互いに接続されている。
【0023】
ここで、記憶部210は文書群記憶部211を構成要素として含んでいる。処理部220は文書検索部221、文書数決定部222、及び提示キーワード決定部223を構成要素として含んでいる。文書検索部221、文書数決定部222、及び提示キーワード決定部223はそれぞれ文書群記憶部211にアクセスして、各種の処理を実行する。例えば、文書検索部221は質問を受け付けると、文書群記憶部211にアクセスして、文書群記憶部211が記憶する複数のマニュアル文書を検索対象として検索する。文書検索部221は質問に応じた少なくとも1つのマニュアル文書を発見すると、発見したマニュアル文書を検索結果として取得する。文書検索部221はマニュアル文書を取得すると、マニュアル文書の見出し(例えば質問項目など)を含む画面情報を生成する。尚、その他の構成要素については、対話サーバ200の動作を説明する際に詳しく記載する。
【0024】
続いて、
図4から
図10を参照して、対話サーバ200の動作について説明する。
【0025】
まず、
図4に示すように、文書検索部221は質問を受け付ける(ステップS101)。例えば、
図5に示すように、ユーザが質問画面SC内に設けられた入力欄BXに文章で質問を入力して送信ボタンBTを押下する操作を行うと、文書検索部221は制御装置130から送信された質問を受け付ける。
【0026】
ステップS101の処理が完了すると、次いで、文書検索部221は検索キーワードを特定する(ステップS102)。より詳しくは、文書検索部221は受け付けた質問に対して形態素解析を実行し、質問に含まれる少なくとも1つの形態素を検索キーワードとして特定する。
【0027】
ステップS102の処理が完了すると、次いで、文書検索部221はマニュアル文書を検索する(ステップS103)。より詳しくは、文書検索部221は特定した検索キーワードに基づいて、文書群記憶部211に記憶された複数のマニュアル文書を検索対象として検索する。ここで、文書群記憶部211は、
図6に示すように、マニュアル文書MD1,MD2,MD3を含む複数のマニュアル文書を記憶する。マニュアル文書は第1文書種別及び第2文書種別といった文書種別に大きく分けられる。第1文書種別は操作に関する質問とその質問に対する回答を含んでいる。第2文書種別は不具合やトラブルとして生じた現象とその現象の原因を含んでいる。例えば、マニュアル文書MD1,MD2は、いずれも質問と回答を含むため、第1文書種別として特定することができる。一方、マニュアル文書MD3は、現象と原因を含むため、第2文書種別として特定することができる。
【0028】
したがって、文書検索部221はこのような文書群記憶部211に記憶された複数のマニュアル文書を検索キーワードに基づいて検索する。そして、文書検索部221は検索結果を取得すると、検索結果に含まれる複数のマニュアル文書のうち、検索キーワードと関連する度合(以下、関連度という。)が高い数件(例えば2~3件)のマニュアル文書を特定する。文書検索部221はBest Matching 25(BM25)といった公知技術を利用してこの関連度を算出することができる。文書検索部221は数件のマニュアル文書を特定すると、関連度が高いマニュアル文書からその見出しを上位に配置して並べた画面情報を生成する。
【0029】
ステップS103の処理が完了すると、次いで、文書数決定部222は文書数決定処理を実行する(ステップS104)。詳細は後述するが、文書数決定処理は文書検索部221が取得した検索結果に含まれる複数のマニュアル文書の文書数から特定の文書数N(Nは自然数)を決定する処理である。特定の文書数Nは複数のマニュアル文書の総数であってもよいし、複数のマニュアル文書に含まれる一部のマニュアル文書の総数であってもよい。この文書数決定処理は対話処理に含まれているが、文書数決定処理を対話処理から除外し、対話処理と並行して又は対話処理より前(例えば夜間処理など)に独立して実行してもよい。文書数決定部222は文書数決定処理を実行することにより特定の文書数Nを決定する。これにより、後続のクラスタリング対象が絞り込まれる。
【0030】
ステップS104の処理が完了すると、次いで、文書検索部221はクラスタリングを実行する(ステップS105)。より詳しくは、文書検索部221は文書数決定部222が決定した特定の文書数Nのマニュアル文書を対象としてクラスタリングを実行する。特定の文書数Nのマニュアル文書を対象としたクラスタリングにより、特定の文書数Nのマニュアル文書は複数のクラスタのそれぞれに分類される。例えば、マニュアル文書MD1,MD2が共通のカテゴリに属していれば、
図7に示すように、マニュアル文書MD1,MD2は同じ1つのクラスタC1に分類される。図示しないが、マニュアル文書MD3がマニュアル文書MD1,MD2と異なるカテゴリに属していれば、マニュアル文書MD3はクラスタC1と異なるクラスタに分類される。尚、クラスタリングはカテゴリ以外にもマニュアル文書に含まれる単語などにも基づいて、マニュアル文書を分類することもある。
【0031】
ステップS105の処理が完了すると、次いで、文書検索部221はクラスタキーワードを抽出する(ステップS106)。より詳しくは、文書検索部221は各クラスタに分類されたマニュアル文書からクラスタキーワードを抽出する。クラスタキーワードは各クラスタをそれぞれ特徴づける単語である。文書検索部221は各クラスタに分類されたマニュアル文書のそれぞれを特徴づける単語の中の、出現頻度の高い上位数件をクラスタキーワードとして抽出する。具体的には、
図7に示すように、まず、文書検索部221はクラスタC1に分類されたマニュアル文書MD1とマニュアル文書MD2のそれぞれを特徴づける単語を、Term Frequency - Inverse Document Frequency(TF-IDF)といった公知技術を利用して、特定する。本実施形態では、一例として、文書検索部221はマニュアル文書MD1から単語「サーバ」、「アプリ」、及び「再起動」を特定する。また、文書検索部221は、一例として、マニュアル文書MD2から単語「サーバ」、「DB」、及び「再起動」を特定する。文書検索部221はこれらの単語を特定すると、特定したこれらの単語の中から出現頻度の高い上位数件の単語をクラスタキーワードとして抽出する。ここで、
図7にも示すように、単語「サーバ」及び「再起動」の出現頻度はいずれも2件である。一方、単語「アプリ」と単語「DB」の出現頻度はいずれも1件である。したがって、本実施形態では、文書検索部221は出現頻度が所定の閾値「2」以上の単語「サーバ」及び「再起動」をクラスタキーワードとして抽出する。文書検索部221はクラスタキーワードを抽出すると、ステップS103の処理で生成した画面情報に、クラスタキーワードを配置する。すなわち、画面情報にクラスタキーワードが含まれる。
【0032】
ステップS106の処理が完了すると、次いで、文書検索部221は画面情報を返信する(ステップS107)。すなわち、文書検索部221は関連度が高い上位数件のマニュアル文書の見出しとクラスタキーワードを含む画面情報をユーザ端末100に通信部230を介して返信する。これにより、制御装置130は対話サーバ200から返信された画面情報を受信する。制御装置130は画面情報を受信すると、受信した画面情報に基づいて、表示装置120が表示する質問画面SCを更新する。この結果、質問画面SCが更新される。具体的には、
図8に示すように、ユーザの質問に対する返答として、マニュアル文書の見出し21と共に、複数のクラスタキーワード22A,22B,22Cが検索キーワードの候補として提示される。マニュアル文書の見出し21とクラスタキーワード22A,22B,22CはポインタPTにより指定することができる。ユーザは質問画面SCを確認して、ポインタPTによりマニュアル文書の見出し21のいずれか1つ又はクラスタキーワード22A,22B,22Cのいずれか1つを指定する。
【0033】
マニュアル文書の見出し21のいずれか1つ又はクラスタキーワード22A,22B,22Cのいずれか1つが指定されると、制御装置130はその指定を対話サーバ200に送信する。これにより、
図4に示すように、文書検索部221は通信部230を介してその指定を受け付ける(ステップS108)。文書検索部221は指定を受け付けると、クラスタキーワードの指定であるか否かを判定する(ステップS109)。
【0034】
文書検索部221はクラスタキーワードの指定であると判定した場合(ステップS109:YES)、文書検索部221はステップS103の処理に戻り、後続の処理を実行する。したがって、文書検索部221がステップS107の処理を実行することにより、制御装置130は対話サーバ200から返信された画面情報を受信する。制御装置130は画面情報を受信すると、受信した画面情報に基づいて、表示装置120が表示する質問画面SCをさらに更新する。この結果、質問画面SCがさらに更新される。具体的には、
図9に示すように、クラスタキーワードにより絞り込まれた返答として、マニュアル文書の見出し31と共に、複数のクラスタキーワード32A,32B,32Cが新たに検索キーワードの候補として提示される。マニュアル文書の見出し31とクラスタキーワード32A,32B,32CはポインタPTにより指定することができる。ユーザは質問画面SCを確認して、ポインタPTによりマニュアル文書の見出し31のいずれか1つ又はクラスタキーワード32A,32B,32Cのいずれか1つを指定する。
【0035】
マニュアル文書の見出し31のいずれか1つ又はクラスタキーワード32A,32B,32Cのいずれか1つが指定されると、制御装置130はその指定を対話サーバ200に送信する。この結果、ステップS108の処理により、文書検索部221は通信部230を介してその指定を受け付ける。文書検索部221は指定を受け付けると、再び、ステップS109の処理を実行する。
【0036】
ここで、文書検索部221はクラスタキーワードの指定でないと判定した場合(ステップS109:NO)、マニュアル文書の見出しの指定であると判定し、マニュアル文書を返信して(ステップS110)、処理を終了する。すなわち、
図9に示すように、マニュアル文書の見出し31のいずれか1つが指定された場合、文書検索部221は指定された見出しのマニュアル文書を返信する。これにより、制御装置130は対話サーバ200から返信されたマニュアル文書を受信する。制御装置130はマニュアル文書を受信すると、受信したマニュアル文書に基づいて、表示装置120が表示する質問画面SCをさらに更新する。これにより、例えば
図10に示すように、マニュアル文書MD1の質問及び回答が質問画面SC内に出現する。このように、ユーザの質問に応じたマニュアル文書が提示される。
【0037】
続いて、
図11から
図13を参照して、文書数決定処理について説明する。
【0038】
上述したように、ステップS103の処理が完了すると、文書数決定部222は文書数決定処理を実行する。具体的には、
図11に示すように、まず、文書数決定部222はクラスタリングを実行する(ステップS201)。すなわち、検索結果に含まれる複数のマニュアル文書に対してクラスタリングを実行する。したがって、例えば
図12(a)に示すように、検索結果にマニュアル文書MD1、マニュアル文書MD2、マニュアル文書MD3を含む複数のマニュアル文書が含まれている場合、文書数決定部222はこれら複数のマニュアル文書に対してクラスタリングを実行する。例えば、文書数決定部222は複数のマニュアル文書のそれぞれに付与された、そのマニュアル文書が所属するカテゴリ「X」などに基づいて、クラスタリングを実行する。
【0039】
これにより、文書数決定部222は、
図12(b)に示すように、クラスタC1やクラスタC2などを含む複数のクラスタを生成し、生成した複数のクラスタに複数のマニュアル文書を分類する。例えば、文書数決定部222は、共通するカテゴリ「X」に基づいて、クラスタC1にマニュアル文書MD1及びマニュアル文書MD2を分類する。文書数決定部222は、共通するカテゴリ「Y」に基づいて、クラスタC2にマニュアル文書MD3などを分類する。カテゴリは上述した文書種別であってもよいし、文書種別と異なる種別(例えば質問カテゴリなど)であってもよい。
【0040】
尚、本実施形態では、文書数決定部222は、カテゴリに基づいて、複数のマニュアル文書を分類しているが、カテゴリと共に各マニュアル文書に含まれる単語なども利用して複数のマニュアル文書を分類してもよい。また、文書数決定部222は、カテゴリを利用せずに、各マニュアル文書に含まれる単語を利用して複数のマニュアル文書を分類してもよい。
【0041】
ステップS201の処理が完了すると、次いで、文書数決定部222は所要時間が基準値を超えているか否かを判定する(ステップS202)。所要時間はクラスタリングに要した時間である。すなわち、クラスタリングを実行し始めてから実行し終えるまでの時間である。基準値は予め定めた応答時間として許容可能な閾値(例えば1秒といった数秒)を定めればよい。文書数決定部222は所要時間が基準値を超えていないと判定すると(ステップS202:NO)、処理を終了する。すなわち、文書数決定部222は、所要時間が基準値以下の場合、処理を終了する。したがって、文書数決定部222は、
図12(a)に示す複数のマニュアル文書の文書数を特定の文書数Nとして決定する。尚、文書数決定部222は、
図12(a)に示す複数のマニュアル文書の中の一部のマニュアル文書の文書数を特定の文書数Nとして決定してもよい。
【0042】
一方、文書数決定部222は所要時間が基準値を超えていると判定すると(ステップS202:YES)、次いで、クラスタ漏れのマニュアル文書を除外する(ステップS203)。より詳しくは、文書数決定部222は複数のクラスタに分類されなかった非分類のマニュアル文書を特定し、後続のクラスタリング対象から除外する。本実施形態では、
図12(b)に示すように、カテゴリ「P」が付与されたマニュアル文書MD4がクラスタC1などに分類されていない。同様に、カテゴリ「Q」が付与されたマニュアル文書MD5がクラスタC1などに分類されていない。したがって、文書数決定部222はこのようなマニュアル文書MD4及びマニュアル文書MD5を除外して、検索結果を絞り込む絞り込み処理を実行する。これにより、
図12(c)に示すように、検索結果に含まれる複数のマニュアル文書の文書数が低減する。本実施形態では、検索結果に含まれる複数のマニュアル文書の文書数「12」が文書数「10」に低減する。
【0043】
ステップS203の処理が完了すると、次いで、文書数決定部222はクラスタリングを実行する(ステップS204)。これにより、文書数決定部222は、
図12(d)に示すように、クラスタC4やクラスタC5などを含む複数のクラスタを生成し、生成した複数のクラスタに複数のマニュアル文書を分類する。例えば、文書数決定部222は、共通するカテゴリ「X」に基づいて、クラスタC4にマニュアル文書MD1及びマニュアル文書MD2を分類する。文書数決定部222は、共通するカテゴリ「Y」やマニュアル文書MD3に含まれる単語などに基づいて、クラスタC5にマニュアル文書MD6などを分類する。このように、カテゴリが相違しても、マニュアル文書MD4やマニュアル文書MD5を除外することにより、クラスタC5にカテゴリ「Y」と異なるカテゴリ「Z」のマニュアル文書MD6が分類されることもある。
【0044】
ステップS204の処理が完了すると、次いで、文書数決定部222は所要時間が基準値を超えているか否かを判定する(ステップS205)。上述したように、所要時間はクラスタリングに要した時間であり、基準値は予め定めた応答時間として許容可能な閾値である。文書数決定部222は所要時間が基準値を超えていないと判定すると(ステップS205:NO)、処理を終了する。この場合、文書数決定部222は、
図12(c)に示す複数のマニュアル文書の文書数を特定の文書数Nとして決定する。
【0045】
一方、文書数決定部222は所要時間が基準値を超えていると判定すると(ステップS205:YES)、次いで、文書キーワードを抽出する(ステップS206)。より詳しくは、文書数決定部222は、TF-IDFといった公知技術を利用して、各クラスタに分類されたマニュアル文書をそれぞれ特徴づける複数の単語を文書キーワードとして抽出する。
【0046】
例えば、
図13に示すように、文書数決定部222がマニュアル文書MD1に対してTF-IDFを利用してTF-IDF値を算出すると、数件のTF-IDF値と共に、そのTF-IDF値を算出した複数の単語を特定する。本実施形態では、3件のTF-IDF値とこれら3件のTF-IDF値を算出した複数の単語「サーバ」、「アプリ」及び「再起動」を特定する。文書数決定部222は複数の単語を特定すると、TF-IDF値が上位になる数件の単語を文書キーワードとして抽出する。本実施形態では、文書数決定部222はTF-IDF値が上位になる2件の単語「サーバ」及び「アプリ」を文書キーワードとして抽出する。尚、マニュアル文書MD2についてはマニュアル文書MD1と同様であるため、説明を省略する。このように、TF-IDFを利用することにより、各クラスタに分類された複数のマニュアル文書をそれぞれ特徴付ける複数の単語を文書キーワードとして抽出することができる。
【0047】
ステップS206の処理が完了すると、次いで、文書数決定部222は各クラスタからTF-IDF値が最大の文書キーワードを選択する(ステップS207)。本実施形態では、クラスタC4に分類されたマニュアル文書MD1の文書キーワード「サーバ」及び「アプリ」に対しTF-IDF値「0.29」及び「0.2」が算出されている。同様に、クラスタC4に分類されたマニュアル文書MD2の文書キーワード「サーバ」及び「DB」に対しTF-IDF値「0.3」及び「0.24」が算出されている。したがって、文書数決定部222はクラスタC4から最大のTF-IDF値「0.3」を算出したマニュアル文書MD2の文書キーワード「サーバ」を選択する。文書数決定部222はクラスタC5及びクラスタC6に対してもクラスタC4と同様にTF-IDF値が最大の文書キーワードを選択する。
【0048】
ステップS207の処理が完了すると、次いで、文書数決定部222はTF-IDF値が最小の文書キーワードを含むマニュアル文書を特定する(ステップS208)。すなわち、文書数決定部222はステップS207の処理で各クラスタから選択した文書キーワードのうち、TF-IDF値が最小の文書キーワードを特定し、特定した文書キーワードを含むマニュアル文書を特定する。これにより、例えば、
図12(d)に示すように、クラスタC6に分類されたマニュアル文書MD7が特定される。すなわち、文書数決定部222は、複数の文書キーワードのうち、マニュアル文書を特徴づける度合であるTF-IDF値が他の文書キーワードに比べて低い文書キーワードを含むマニュアル文書MD7を特定する。
【0049】
ステップS208の処理が完了すると、次いで、文書数決定部222は特定したマニュアル文書を含むクラスタの全マニュアル文書を除外する(ステップS209)。したがって、ステップS208の処理により、文書数決定部222がマニュアル文書MD7を特定した場合、マニュアル文書MD7を含めて、クラスタC6の全てのマニュアル文書を検索結果から除外する。これにより、
図12(e)に示すように、検索結果に含まれる10件のマニュアル文書が7件のマニュアル文書に低減する。この場合、文書数決定部222は、
図12(e)に示す複数のマニュアル文書の文書数を特定の文書数Nとして決定する。このように、文書数決定部222は検索結果に含まれる複数のマニュアル文書の文書数「10」を文書数「7」に更新する。すなわち、文書数決定部222は特定の文書数Nを、特定の文書数Nから特定の文書キーワードを含むマニュアル文書の文書数M(MはNより小さな自然数)を差し引いた文書数N-Mに更新する。
【0050】
ステップS209の処理が完了すると、文書数決定部222は再びステップS204の処理を実行し、その後、ステップS205の処理を実行する。したがって、所要時間が基準値以下になるまでステップS204からS209の処理が繰り返される。これらの処理により、検索キーワードの候補として提示されるクラスタキーワードを抽出する時間が低減される。
【0051】
以上、本実施形態によれば、対話サーバ200は処理部220を含んでいる。特に、処理部220は文書検索部221と文書数決定部222を含んでいる。文書検索部221は文書検索の検索結果に含まれる複数のマニュアル文書のうち、特定の文書数Nのマニュアル文書を対象としてクラスタリングを実行する。そして、文書検索部221はクラスタリングにより生成された各クラスタに分類されたマニュアル文書から抽出したクラスタキーワードを検索キーワード候補として提示する。一方、文書数決定部222はクラスタリングの所要時間が基準値を超える場合、クラスタリングにより生成された各クラスタについて、各クラスタに分類されたマニュアル文書のうち、特定の文書キーワードを含むマニュアル文書を特定する。そして、文書数決定部222は特定の文書数Nを、特定の文書数Nから特定の文書キーワードを含むマニュアル文書の文書数Mを差し引いた文書数N-Mに更新する。これにより、検索時間を短縮することができる。すなわち、クラスタキーワードを抽出するためのクラスタリング対象を減らした後にクラスタキーワードを抽出するため、検索キーワード候補の提示までの時間を短縮できる。結果的に、ユーザが質問に応じたマニュアル文書に辿りつくまでの検索時間を短縮することができる。
【0052】
特に、本実施形態によれば、チャットボットを対話サーバ200で実現する場合であっても、チャットボットが返す会話の内容を定義するトークスクリプト(又はトークルール)を対話サーバ200に設けないで済む。すなわち、トークスクリプトによってユーザの質問に対して問い返しを行い、これを繰り返すことによってユーザの質問に応じたマニュアル文書を絞り込んでいたが、検索キーワードの候補がユーザに動的に提示されるため、トークスクリプトが不要となる。これにより、ユーザの質問とユーザが求める又は求めた回答の状況を分析してトークスクリプトを作成したり、見直したりする手間を削減することができる。
【0053】
続いて、
図14を参照して、提示キーワード決定部223の動作について説明する。
【0054】
図4を参照して説明したステップS106からS108までの処理を
図14に示すステップS301からS307までの処理に置き換えてもよい。より詳しく説明すると、提示キーワード決定部223は文書検索部221がステップS105の処理を完了すると、文書検索部221の検索結果を取得する(ステップS301)。提示キーワード決定部223は検索結果を取得すると、文書種別を判定する(ステップS302)。すなわち、提示キーワード決定部223は取得した検索結果に含まれるマニュアル文書が、第1文書種別と第2文書種別のいずれかを判定する。
【0055】
提示キーワード決定部223はマニュアル文書が第1文書種別であると判定した場合(ステップS303:YES)、質問と回答の両方からクラスタキーワードを抽出する(ステップS304)。すなわち、提示キーワード決定部223は質問と回答の両方をクラスタキーワードの抽出対象として、クラスタキーワードを抽出する単語抽出処理を実行する。これは、回答の中にユーザが検索時に想定しなかった重要な単語が含まれている場合もあるためである。ステップS304の処理で抽出したクラスタキーワードを検索キーワードの候補として提示することで、ユーザ自身が想定しなかった検索キーワードでの絞り込みを促すことができる。
【0056】
一方、提示キーワード決定部223はマニュアル文書が第1文書種別でないと判定した場合(ステップS303:NO)、現象からクラスタキーワードを抽出する(ステップS305)。すなわち、提示キーワード決定部223はマニュアル文書が第2文書種別であると判定した場合、原因をクラスタキーワードの抽出対象とせずに、現象をクラスタキーワードの抽出対象として単語抽出処理を実行する。これは、トラブルや不具合といった場合、1つの現象に対し、複数の原因が存在する場合もあるためである。また、ユーザは現象から原因を判断できない場合が多い。この場合、原因に含まれる様々な単語の一部をクラスタキーワードとして抽出し、抽出したクラスタキーワードを検索キーワードの候補として提示しても、ユーザが誤ったマニュアル文書に到達するおそれがあるためである。
【0057】
ステップS304又はS305の処理が完了すると、文書検索部221は画面情報を返信する(ステップS306)。すなわち、文書検索部221は関連度が高い上位数件のマニュアル文書の見出しと、ステップS304又はS305の処理で抽出したクラスタキーワードを含む画面情報を返信する。そして、画面情報に含まれるクラスタキーワードの指定が制御装置130から送信されると、文書検索部221は通信部230を介してその指定を受け付ける(ステップS307)。
【0058】
文書検索部221は指定を受け付け、ステップS109の処理により、クラスタキーワードの指定であると判定すると、ステップS103の処理(
図4参照)を実行する。この場合、文書検索部221は文書群記憶部211に記憶された複数のマニュアル文書を検索対象として、指定されたクラスタキーワードにより検索処理を実行する。尚、文書検索部221は検索キーワードにより絞り込まれた検索結果に含まれる複数のマニュアル文書を絞り込み対象として、指定されたクラスタキーワードにより複数のマニュアル文書を絞り込む絞り込み処理を実行してもよい。このように、マニュアル文書が第1文書種別か第2文書種別かに応じて、クラスタキーワードを抽出する対象範囲を変えることで、クラスタキーワードに基づく検索の検索精度を向上することができる。
【0059】
以上、本件の各実施形態について説明したが、上述した対話システムSTの構成要素は適宜変更してもよい。例えば、対話システムSTからユーザ端末100を除外し、対話サーバ200が有する各構成要素を複数のサーバ装置に分散してもよい。この場合、複数のサーバ装置を対話システムSTとしてもよい。また、対話サーバ200が有する各構成要素をユーザ端末100に搭載し、ユーザ端末100を情報処理装置としてもよい。また、文書数決定部222は事前に文書群記憶部211が文書検索部221による検索対象として記憶する複数のマニュアル文書(例えば全てのマニュアル文書)に対して文書数決定処理を実行して、特定の文書数Nを決定しておいてもよい。例えば、文書数決定部222は特定した検索キーワードに基づく検索を実行する前(具体的には運用開始前など)に文書数決定処理を実行して、特定の文書数Nを決定しておいてもよい。
【0060】
以上、本発明の好ましい実施形態について詳述したが、本発明に係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【0061】
なお、以上の説明に関して更に以下の付記を開示する。
(付記1)文書検索の検索結果に含まれる複数の文書のうち、特定の文書数Nの文書を対象としてクラスタリングを行い、前記クラスタリングにより生成された各クラスタに分類された文書から抽出した単語を検索キーワード候補として提示する検索支援方法において、前記クラスタリングの所要時間が基準を超える場合、前記クラスタリングにより生成された各クラスタについて、前記各クラスタに分類された文書のうち、特定の単語を含む文書を特定し、前記特定の文書数Nを、前記特定の文書数Nから前記特定の単語を含む前記文書の文書数Mを差し引いた文書数N-Mに更新する、処理をコンピュータが実行することを特徴とする検索支援方法。
(付記2)前記特定の単語は、前記各クラスタに分類された文書をそれぞれ特徴づける複数の単語のうち、文書を特徴づける度合が他の単語に比べて低い単語である、ことを特徴とする付記1に記載の検索支援方法。
(付記3)前記特定の文書数Nは、前記複数の文書の総数又は前記複数の文書に含まれる一部の文書の総数である、ことを特徴とする付記1又は2に記載の検索支援方法。
(付記4)前記特定の単語を含む前記文書を特定する前に、前記クラスタリングにより生成された各クラスタに分類されなかった非分類の文書を特定し、前記非分類の文書を前記クラスタリングの対象から除外する、ことを特徴とする付記1から3のいずれか1項に記載の検索支援方法。
(付記5)前記各クラスタに分類された文書から抽出した単語は、いずれも、前記各クラスタをそれぞれ特徴づける単語である、ことを特徴とする付記1から4のいずれか1項に記載の検索支援方法。
(付記6)前記各クラスタをそれぞれ特徴づける単語は、前記各クラスタに分類された文書を特徴づける単語の出現頻度に基づいて決定される、ことを特徴とする付記5に記載の検索支援方法。
(付記7)文書検索の検索結果に含まれる複数の文書を対象として第1のクラスタリングを行い、前記第1のクラスタリングにより生成された各クラスタに分類された文書から抽出した単語を検索キーワード候補として提示する検索支援方法であって、前記文書検索の検索対象に該当する複数の文書のうち、特定の文書数N(Nは自然数)の文書を対象とする第2のクラスタリングの所要時間が基準を超える場合、前記第2のクラスタリングにより生成された各クラスタについて、前記各クラスタに分類された文書のうち、特定の単語を含む文書を特定し、前記特定の文書数Nを、前記特定の文書数Nから前記特定の単語を含む前記文書の文書数M(MはNより小さな自然数)を差し引いた文書数N-Mに更新する、処理をコンピュータが実行することを特徴とする検索支援方法。
(付記8)記憶部に記憶された文書群を検索対象とした検索結果を取得すると、前記検索結果に含まれる文書が、質問及び回答を含む第1の種別と、現象及び原因を含む第2の種別とのいずれかを判定し、前記文書が前記第1の種別である場合、前記質問及び前記回答を抽出対象として単語抽出処理を行い、前記文書が前記第2の種別である場合、前記現象を抽出対象とし、かつ、前記原因を抽出対象とせずに単語抽出処理を行い、前記単語抽出処理により抽出した単語のうち、いずれかの単語の指定を受け付けると、前記文書群を検索対象として、指定された前記単語による検索処理を行うか、前記検索結果に含まれる前記文書を絞り込み対象として、指定された前記単語による絞り込み処理を行う、処理をコンピュータが実行することを特徴とする検索支援方法。
(付記9)文書検索の検索結果に含まれる複数の文書のうち、特定の文書数Nの文書を対象としてクラスタリングを行い、前記クラスタリングにより生成された各クラスタに分類された文書から抽出した単語を検索キーワード候補として提示する情報処理装置において、前記クラスタリングの所要時間が基準を超える場合、前記クラスタリングにより生成された各クラスタについて、前記各クラスタに分類された文書のうち、特定の単語を含む文書を特定し、前記特定の文書数Nを、前記特定の文書数Nから前記特定の単語を含む前記文書の文書数Mを差し引いた文書数N-Mに更新する、処理を実行する処理部を備えることを特徴とする情報処理装置。
(付記10)前記処理部は、前記特定の単語を含む前記文書を特定する前に、前記クラスタリングにより生成された各クラスタに分類されなかった非分類の文書を特定し、前記非分類の文書を前記クラスタリングの対象から除外する、ことを特徴とする付記9に記載の情報処理装置。
(付記11)文書検索の検索結果に含まれる複数の文書を対象として第1のクラスタリングを行い、前記第1のクラスタリングにより生成された各クラスタに分類された文書から抽出した単語を検索キーワード候補として提示する情報処理装置であって、前記文書検索の検索対象に該当する複数の文書のうち、特定の文書数N(Nは自然数)の文書を対象とする第2のクラスタリングの所要時間が基準を超える場合、前記第2のクラスタリングにより生成された各クラスタについて、前記各クラスタに分類された文書のうち、特定の単語を含む文書を特定し、前記特定の文書数Nを、前記特定の文書数Nから前記特定の単語を含む前記文書の文書数M(MはNより小さな自然数)を差し引いた文書数N-Mに更新する、処理を実行する処理部を備えることを特徴とする情報処理装置。
(付記12)文書群を記憶する記憶部と、前記文書群を検索対象とした検索結果を取得すると、前記検索結果に含まれる文書が、質問及び回答を含む第1の種別と、現象及び原因を含む第2の種別とのいずれかを判定し、前記文書が前記第1の種別である場合、前記質問及び前記回答を抽出対象として単語抽出処理を行い、前記文書が前記第2の種別である場合、前記現象を抽出対象とし、かつ、前記原因を抽出対象とせずに単語抽出処理を行い、前記単語抽出処理により抽出した単語のうち、いずれかの単語の指定を受け付けると、前記文書群を検索対象として、指定された前記単語による検索処理を行うか、前記検索結果に含まれる前記文書を絞り込み対象として、指定された前記単語による絞り込み処理を行う処理を実行する処理部と、を備えることを特徴とする情報処理装置。
【符号の説明】
【0062】
ST 対話システム
100 ユーザ端末
200 対話サーバ
210 記憶部
211 文書群記憶部
220 処理部
221 文書検索部
222 文書数決定部
223 提示キーワード決定部
230 通信部