以下に図面を参照して、開示の検索プログラム、検索装置、および検索方法の実施の形態を詳細に説明する。
図1は、本実施の形態にかかる検索装置101の動作例を示す説明図である。検索装置101は、検索条件に応じた情報をデータベースから検索するコンピュータである。検索装置101は、例えば、サーバである。
データベースに蓄積されたデータは、どのようなものでもよい。本実施の形態では、データベースに蓄積されたデータは、製造された品物である製品や、サービス等に対する問い合わせを示す情報や、該当の問い合わせに対応する回答を示す情報である。問い合わせを示す文章を、「インシデント文」と呼称する。また、インシデント文やインシデント文に対応する回答を「事例」と呼称する。そして、本実施の形態では、前述のデータベースを、「事例DB(DataBase)」と呼称する。
事例DBには、サポート担当者によって入力されたインシデント文や、前述のインシデント文の応答が登録される。ここで、事例DBに登録される、ある製品のインシデント文は、他の製品のインシデント文と区別できるように、ある製品の機能を特定する、または機能を特徴付ける名称や、専門用語、特徴語といった、製品機能を特徴付ける用語が使用されることがある。ここで、特徴語とは、ある製品の説明書等に頻繁に使用されており、ある製品を特徴付ける語のことである。従って、事例DBから事例を検索する際に、一定の検索精度を確保するためには、製品機能を特徴付ける用語を用いて検索することが求められる。ここで、検索精度とは、検索結果により得られた事例のうちの適切な事例の割合である。
例えば、ある製品を利用する利用者からの問い合わせがあるとする。製品の利用者からの問い合わせ文は、製品機能を特徴付ける用語が使用されておらず、誰もが使用する一般用語で形成される。従って、習熟したサポート担当者は、一般用語に対応する、製品機能を特徴付ける用語を追加して事例DBを検索することにより、一定の検索精度を確保することができ、適切な事例を得ることができる。
しかしながら、習熟していないサポート担当者は、一般用語に対応する、製品機能を特徴付ける用語を知らないために、一定の検索精度を確保することができない場合がある。そこで、検索精度を向上させる技術として、同義語辞書や関連語辞書により、検索条件に指定するキーワードを追加する方法が考えられる。しかしながら、この方法に従って、一般的な同義語辞書や関連語辞書を用いると、検索結果により得られる事例の件数が増大するものの、適切な事例の件数が増大するとは限らず、ノイズが増え、検索精度が低下する場合がある。
より具体的に、一般的な同義語辞書や関連語辞書を用いた場合に検索精度が低下する場合がある例について説明する。例えば、製品の利用者から「トラップ」という単語を含むインシデント文を受け付けたとする。そして、ある製品において、「トラップ」という単語は、「イベント監視」に使用する語であったとする。しかしながら、一般的な同義語辞書や関連語辞書には、「トラップ」の同義語や関連語としては、「罠」、「計略」という語が登録されている。従って、一般的な同義語辞書や関連語辞書を用いると、「罠」、「計略」をキーワードに追加することはできても、「イベント監視」をキーワードに追加することはできないため、検索結果により得られる事例の件数が増大するもののノイズも増える可能性がある。
また、製品の同義語辞書や関連語辞書を作成することも考えられるが、手間がかかる。また、ある単語に対応する製品機能を特徴付ける用語が、製品によって異なる場合もある。例えば、前述の例を使用して、ある製品において「トラップ」という単語は、「イベント監視」に使用する語であったとする。しかしながら、別の製品において「トラップ」という単語は、「ネットワーク管理のシステム監視」で使用する語であったとする。このように、製品ごとに、単語に対応する製品機能を特徴付ける用語が異なる可能性があるため、製品ごとの同義語辞書や関連語辞書を作成することになり、手間がかかる。
そこで、本実施の形態では、製品に関する手引書、いわゆるマニュアルを活用する。マニュアルは、一般の利用者向けに書かれたものであるから、一般用語が記載されているともに、製品機能を特徴付ける用語も記載されている。具体的には、本実施の形態では、検索装置101は、製品の利用者の問い合わせ内の単語をマニュアルの中から検索し、見つかった記事の見出しに含まれる単語を事例DBへの検索条件に加える。
図1を用いて、検索装置101の動作例について説明する。検索装置101は、検索条件に応じた事例を、事例DB111から検索する。また、検索装置101は、記憶部110にアクセス可能である。そして、記憶部110は、階層化された複数の項目に対応付けられた複数の文書データを、複数の項目の各々の項目に対応付けて記憶する。具体的には、記憶部110は、ある製品のマニュアルが記憶される。
ここで、階層化された複数の項目とは、文書データを細別化する見出しである。具体的には、階層化された複数の項目は、章、節、項等の見出しである。例えば、複数の文書データのうちのある文書データは、x章y節というように細分化される。ここで、xやyは、一般的には、1以上の自然数であるが、これに限らない。具体的には、xやyは、他の文書データと区別がつけばよいため、A、B、C、…というアルファベットでもよいし、ア、イ、ウ、…という五十音順や、イ、ロ、ハ、…といういろは順の仮名でもよい。また、階層化された複数の項目の一つの項目には、マニュアルそのものの名称を含んでもよい。
図1の例では、記憶部110は、「製品B 使用手引書 監視機能編」というマニュアルmaを記憶する。そしてマニュアルmaは、階層化された複数の項目として、項目h0、h1、…、h4、h41、h42、h43を有する。項目h0は、階層化された複数の項目のうちの最上位の項目である。項目h1、h4は、項目h0の下の階層であり、章に対応する項目である。また、項目h41、h42、h43は、項目h4の下の階層であり、節に対応する項目である。また、複数の文書データとして、マニュアルmaは、文書データd41〜d43を含む。そして、文書データd41〜d43は、それぞれ、項目h41〜h43に対応付けられる。
検索装置101は、例えば、サポート担当者の入力によって、単語を受け付ける。また、検索装置101は、インシデント文を受け付けたことにより、受け付けたインシデント文内の単語を受け付けたとしてもよい。図1の例では、検索装置101は、インシデント文is1として、「トラップが上がった時に音を出したい。」を受けたことにより、単語w1「トラップ」と、単語w2「時」と、単語w3「音」とを受け付けたとする。図1では、単語w1〜w3を、網掛けを付与した上で、さらに太字で示す。
単語を受け付けると、検索装置101は、記憶部110を参照して、複数の項目h0、h1、…、h4、h41、h42、h43のうち、受け付けた単語に関連する文書データに対応付けられた項目を特定する。図1の例では、検索装置101は、マニュアルmaから、単語w1〜w3のいずれかを含む文書データを検索し、「トラップ」を含む文書データd43を検出する。従って、検索装置101は、図1の(1)で示すように、「トラップ」を含む文書データd43に対応付けられた項目h43と、項目h43の上の階層である項目h4と、項目h4の上の階層である項目h0とを特定する。
ここで、図1では、検索装置101は、受け付けた単語そのものを含む文書データに対応付けられた項目を特定したが、これに限らない。例えば、検索装置101は、受け付けた単語の同義語を含む文書データを、受け付けた単語に関連する文書データとしてもよい。また、項目の特定として、検索装置101は、項目の名称や、項目に付与された「x章y節」、マニュアルmaにおける特定した項目のページ数と行番号を特定することにより、項目を特定したとしてもよい。
次に、検索装置101は、特定した項目の名称に含まれる単語に基づいて、検索条件critを生成する。図1の例では、検索装置101は、図1の(2)で示すように、単語w1〜w3と、特定した項目h0、h4、h43の名称に含まれる単語w4「監視ポリシー」および単語w5「イベント監視」とをキーワードとする検索条件critを生成する。ここで、図1では、検索装置101は、特定した項目の名称に含まれる単語そのものをキーワードとしたが、これに限らない。例えば、検索装置101は、特定した項目の名称に含まれる単語の同義語を、キーワードとしてもよい。
そして、検索装置101は、図1の(3)で示すように、生成した検索条件critに応じた事例を、事例DB111から検索する。ここで、生成した検索条件critには、「トラップ」に対応する、製品機能を特徴付ける用語として「イベント監視」が含まれるため、一定の検索精度を確保することができ、検索装置101は、適切な事例を得ることができる。
また、キーワードの抽出に当たっては、マニュアル内の説明文からキーワードを抽出すると全文を構文解析することになり、キーワードの選定に時間がかかる。そこで、図1で示したように、検索装置101は、単語の出現箇所、すなわちヒット箇所を含むマニュアルの章、節、段落などの見出しからキーワードを抽出することで、キーワードの選定時間を短縮することができる。見出しは、後述の説明文を表す短文であるため、該当の短文で使用される単語は、製品の特徴語となる。
また、図1の例では、記憶部110には1つのマニュアルが記憶されている例を示したが、複数のマニュアルが記憶されてもよい。そして、検索装置101は、インシデント文に関連するマニュアルを、以下のように特定する。まず、検索装置101は、インシデント文内の単語が複数のマニュアルでヒットすることにより、インシデント文の対象となる製品が特定できる。さらに、検索装置101は、ヒットした複数のマニュアルのうち、インシデント文内の単語が特定のマニュアル内でヒット数が多い場合に、製品でのマニュアルが特定できる。さらに、検索装置101は、インシデント文内の単語が同一段落で複数ヒットしたり、同一の文で複数の単語がヒットしたりする場合に、該当の段落や、該当の文の見出しを特定することにより、インシデント文内の一般用語に対応する特徴語を得ることができる。
なお、図1の例では、受け付けた単語、マニュアルma、事例DB111の内容が日本語であるが、これに限らない。例えば、受け付けた単語、マニュアルma、事例DB111は、英語、フランス語等、他の言語であってもよい。次に、検索装置101を含むシステムについて、図2を用いて説明する。
(システムの構成例)
図2は、システム200の構成例を示す説明図である。システム200は、検索装置101と、クライアント端末201とを含む。検索装置101とクライアント端末201とは、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)等のネットワーク210で接続される。
クライアント端末201は、サポート担当者SEが操作するコンピュータである。次に、検索装置101のハードウェア構成例を、図3を用いて示し、クライアント端末201のハードウェア構成例を、図4を用いて示す。
(検索装置101のハードウェア構成例)
図3は、検索装置101のハードウェア構成例を示す説明図である。図3において、検索装置101は、CPU(Central Processing Unit)301と、メモリ302と、ストレージ装置303と、ネットワークインタフェース304とを含む。また、CPU301〜ネットワークインタフェース304は、バス305によってそれぞれ接続される。
CPU301は、検索装置101の全体の制御を司る演算処理装置である。また、CPU301は、複数のコアを有してもよい。また、CPU301は、プログラムを実行することができる。メモリ302は、検索装置101の主記憶装置として使用される記憶装置である。メモリ302には、CPU301で実行するOS(Operating System)プログラムやアプリケーションプログラムが一時的に格納される。また、メモリ302には、CPU301による処理に用いる各種データが格納される。メモリ302は、例えば、DRAM(Dynamic Random Access Memory)等が採用される。
ストレージ装置303は、記憶媒体にデータの書き込みおよび読み出しを行う。ストレージ装置303は、検索装置101の補助記憶装置として使用される。ストレージ装置303には、OSプログラム、アプリケーションプログラム、および各種データが格納される。ストレージ装置303は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)等が採用される。
ネットワークインタフェース304は、ネットワーク210に接続する。そして、ネットワークインタフェース304は、ネットワーク210を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。ネットワークインタフェース304は、例えばモデムやLANアダプタなどを採用することができる。
なお、検索装置101の管理者が、検索装置101を直接操作する場合、検索装置101は、ディスプレイ、キーボード、マウスといったハードウェアを有してもよい。
(クライアント端末201のハードウェア構成例)
図4は、クライアント端末201のハードウェア構成例を示す説明図である。図4において、クライアント端末201は、CPU401と、メモリ402と、表示装置403と、ストレージ装置404と、入力装置405と、光学ドライブ装置406と、ネットワークインタフェース407と、機器接続インタフェース408を含む。また、CPU401〜機器接続インタフェース408は、バス409によってそれぞれ接続される。
CPU401は、クライアント端末201の全体の制御を司る演算処理装置である。また、CPU401は、複数のコアを有してもよい。また、CPU401は、プログラムを実行することができる。メモリ402は、クライアント端末201の主記憶装置として使用される記憶装置である。メモリ402には、CPU401で実行するOSプログラムやアプリケーションプログラムが一時的に格納される。また、メモリ402には、CPU401による処理に用いる各種データが格納される。メモリ402は、例えば、DRAM等が採用される。
表示装置403には、ディスプレイ411が接続される。表示装置403は、CPU401からの命令により、画像をディスプレイ411の画面に表示する。表示装置403は、例えば、ビデオカードである。また、ディスプレイ411は、TFT(Thin Film Transistor)液晶ディスプレイ、CRT(Cathode Ray Tube)、プラズマディスプレイなどを採用することができる。
ストレージ装置404は、記憶媒体にデータの書き込みおよび読み出しを行う。ストレージ装置404は、クライアント端末201の補助記憶装置として使用される。ストレージ装置404には、OSプログラム、アプリケーションプログラム、および各種データが格納される。ストレージ装置404は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)等が採用される。
入力装置405には、キーボード412とマウス413とが接続される。入力装置405は、キーボード412やマウス413からの入力をCPU401に送信する。
光学ドライブ装置406は、光ディスク414に記録されたデータの読み取りを行う。光ディスク414は、データが記録された可搬型の記録媒体である。
ネットワークインタフェース407は、ネットワーク210に接続する。そして、ネットワークインタフェース407は、ネットワーク210を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。ネットワークインタフェース407は、例えばモデムやLANアダプタなどを採用することができる。
機器接続インタフェース408は、クライアント端末201に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース408には、メモリ装置415や外付けのディスク装置416を接続することができる。
(検索装置101の機能構成例)
図5は、検索装置101の機能構成例を示す説明図である。検索装置101は、制御部500を有する。制御部500は、受け付け部501と、形態素解析実行部502と、構文解析実行部503と、特定部504と、検索部505と、レイアウト解析実行部506とを含む。制御部500は、記憶装置に記憶されたプログラムをCPU301が実行することにより、各部の機能を実現する。記憶装置とは、具体的には、例えば、図3に示したメモリ302、ストレージ装置303などである。また、各部の処理結果は、メモリ302や、CPU301のレジスタ、CPU301のキャッシュメモリ等に格納される。
また、検索装置101は、記憶部110にアクセス可能である。記憶部110は、メモリ302、ストレージ装置303などである。そして、記憶部110は、事例DB111と、製品マニュアルDB511と、日本語辞書512とを含む。事例DB111には、複数の事例が登録される。製品マニュアルDB511は、複数の製品マニュアルが登録される。日本語辞書512は、日本語の単語と、単語が取り得る格文法情報が登録される。日本語辞書512の記憶内容の一例を、図8で示す。
受け付け部501は、クライアント端末201から、単語を受け付ける。また、受け付け部501は、クライアント端末201から、インシデント文を受け付けてもよい。
形態素解析実行部502は、日本語辞書512を参照して、受け付けたインシデント文を、単語に分解する。
構文解析実行部503は、日本語辞書512を参照して、分解した単語に対して格文法に基づく格文法情報を設定する。ここで、格文法情報は、文において単語の意味や役割を示す情報である。格文法情報が示す格は、例えば、深層格として、主格、述語(動詞)、対象格、様態格、時間格等がある。また、表層格として、ガ格、ヲ格、二格等がある。例えば、主格に設定した単語は、該当の単語が、動作を引き起こすものであることを示す。また、対象格に設定した単語は、該当の単語が、動作が作用する対象となるものであることを示す。例えば、構文解析実行部503は、文において動作主となる単語に、主格を示す格文法情報を設定する。
特定部504は、製品マニュアルDB511を参照して、複数の項目、具体的には、複数の章、節のうち、形態素解析実行部502が分解した単語に関連する文書データに対応付けられた章、節を特定する。また、特定部504は、文書データが、節よりさらに細分化されていれば、最下層の見出しまで特定してもよい。
また、特定部504が、インシデント文に含まれており、形態素解析実行部502が分解した複数の単語の各単語と、格文法に基づく各単語の格文法情報との組み合わせを受け付けたとする。この場合、特定部504は、複数の章、節のうち、形態素解析実行部502が分解した単語であって、主格または対象格である単語に関連する文書データを特定してもよい。ここで、特定した文書データが所定の閾値より多い場合、特定部504は、主格または対象格である単語に関連する特定した文書データのうち、形態素解析実行部502が分解した単語であって、述語(動詞)である単語に関連する文書データを特定してもよい。さらに、述語(動詞)である単語に関連する特定した文書データが所定の閾値より多い場合、特定部504は、形態素解析実行部502が分解した単語であって、道具格または様態格等である単語に関連する文書データを特定してもよい。以下の説明では、道具格または様態格等である単語に関連する文書データを含むマニュアルを、「キーワード抽出候補マニュアル」と呼称する。
また、特定部504は、複数の単語を受け付けると、製品マニュアルDB511を参照して、複数の単語の各単語に対応して、複数の文書データにおける各単語の出現回数に対する複数の文書データの各文書データにおける各単語の出現回数の割合を計数してもよい。出現回数を、以下、「ヒット数」と呼称する。また、特定部504は、この割合を求める処理を、キーワード抽出候補マニュアルだけに対して行ってもよい。
例えば、複数の単語が、「トラップ」、「音」であり、複数の文章データとして、あるマニュアルの2章5節の「障害復旧」と、4章3節の「イベント監視」とがあるとする。そして、2章5節の「障害復旧」には、「トラップ」が5回、「音」が3回出現し、4章3節の「イベント監視」には、「トラップ」が9回、「音」が14回出現したとする。この場合、「トラップ」、「音」における、複数の文書データにおけるヒット数は、それぞれ、5+9=14回、3+14=17回である。そして、「トラップ」において、2章5節の「障害復旧」におけるヒット数の割合は、5/14=36[%]となり、4章3節の「イベント監視」におけるヒット数の割合は、9/14=64[%]となる。また、「音」において、2章5節の「障害復旧」におけるヒット数の割合は、3/17=18[%]となり、4章3節の「イベント監視」におけるヒット数の割合は、14/17=82[%]となる。
次に、特定部504は、計数した各単語に対応する各文書データにおける割合を、各文書データに対応して累積する。累積した値を、各文書データの評価値とする。前述の例を用いると、特定部504は、2章5節の「障害復旧」の評価値を、「トラップ」のヒット数の割合+「音」のヒット数の割合=36+18=54と算出する。同様に、特定部504は、4章3節の「イベント監視」の評価値を、「トラップ」のヒット数の割合+「音」のヒット数の割合=64+82=146と算出する。
そして、特定部504は、各文書データに対応して累積した割合、すなわち、各文書データの評価値に基づいて、複数の項目のうち、受け付けた複数の単語に関連する文書データに対応付けられた項目を特定する。例えば、特定部504は、評価値が最も大きい値となった文書データや、評価値が所定の閾値より大きい文書データを、受け付けた複数の単語に関連する文書データとし、該当の文書データに対応付けられた項目を特定する。
検索部505は、特定部504が特定した項目の名称に含まれる単語に基づいて、検索条件を生成する。そして、検索部505は、生成した検索条件を用いて、事例DB111を検索する。
レイアウト解析実行部506は、製品マニュアルDB511に含まれる製品マニュアルのレイアウトを解析し、見出しやタイトル等の構成を解析する。レイアウト解析実行部506は、例えば、キーワード抽出候補マニュアルにおける特定部504が単語に関連する文書データであると特定した箇所だけ、レイアウト解析を行う。または、レイアウト解析実行部506は、システム200の運用開始前に、製品マニュアルDB511に含まれる全ての製品マニュアルのレイアウトを解析しておいてもよい。
図6は、検索処理の一連の手順例を示す説明図である。サポート担当者SEは、製品の利用者から問い合わせを受ける。問い合わせの文章を、以下、インシデント文とする。図6では、サポート担当者SEは、インシデント文is1〜is3を受け付けたとする。ここで、図6で示すように、インシデント文is1は、「トラップが上がった時に音を出したい。」である。また、インシデント文is2は、「手順書どおり設定してみたがうまくいかない。」である。インシデント文is3は、「設定方法について教えて欲しい。」である。
クライアント端末201は、サポート担当者SEの操作によって、インシデント文is1〜is3を受け付ける。クライアント端末201は、検索条件critとしてインシデント文is1〜is3を検索装置101に送信する。検索装置101は、インシデント文is1〜is3を受け付けて、図6の(1)で示すように、製品マニュアルDB511から、インシデント文is1〜is3から抽出したキーワードを含むマニュアルを検索する。そして、検索装置101は、図6の(2)で示すように、検索結果から、マニュアルを絞り込む。これにより、検索装置101は、インシデント文is1〜is3の対象となる製品を絞り込むことができる。インシデント文is1〜is3からキーワードを抽出し、マニュアルを絞り込む具体例については、図7〜図11で示す。図6の例では、検索装置101は、製品B仕様手引書511−B1と、製品Bリファレンス511−B2とを絞り込んだとする。
次に、検索装置101は、図6の(3)で示すように、絞り込んだマニュアル名を取り出すとともに、絞り込んだマニュアルから、キーワードがヒットした箇所の機能名、操作方法、機能説明等を取り出す。ここで、検索装置101は、機能名、操作方法、機能説明として、マニュアルの章、節、パラグラフなどの見出しを取り出す。そして、検索装置101は、図6の(4)で示すように、取り出した機能名、操作方法、機能説明から、追加キーワードを抽出する。見出しを取り出して、追加キーワードを抽出する具体例については、図12〜図16で示す。
次に、検索装置101は、図6の(5)で示すように、抽出したキーワードを検索条件critに追加する。そして、検索装置101は、図6の(6)で示すように、追加キーワードを追加した検索条件critを用いて、事例DB111を検索する。次に、検索装置101は、図6の(7)で示すように、検索結果の表示として、ヒット事例を取り出す。追加キーワードを追加した検索条件critを用いて、事例DB111を検索し、ヒット事例を取り出す具体例については、図17で示す。
図7は、キーワードの抽出例を示す説明図である。検索装置101は、受け付けたインシデント文is1〜is3からキーワードを抽出する。具体的には、図7の(1)で示すように、形態素解析実行部502が、インシデント文is1〜is3を単語に分解し、構文解析実行部503が、分解した単語からキーワードを抽出する。単語に分解することについて、図8で説明する。
ここで、構文解析実行部503は、単語に対して格文法情報を設定し、設定した格文法情報の要素格に基づいて、キーワードを抽出する。格文法情報の設定のより具体的な説明については、図9で示す。格文法情報を設定した単語を、「格要素」と呼称することがある。また、構文解析実行部503は、格要素を、設定した格文法情報の格ごとに分類する。分類する格は、A:主格、V:述語(動詞)、O:対象格、C:様態格、I:道具格である。ここで、図7では、格の前に付与したアルファベットを単語の後ろに付与することにより、該当の単語の格を示す。
図7の例では、構文解析実行部503は、キーワードkwとして、対象格に設定した「トラップ」、述語(動詞)に設定した「上がる」、対象格に設定した「音」、…等を抽出する。
次に、構文解析実行部503は、図7の(2)で示すように、キーワードkwのうちの和語動詞について、同義語のサ変名詞を動詞キーワードとして、キーワードkwに追加する。動詞キーワードの追加について、図10で示す。図7の例では、「(トラップが)上がる」について、同義語のサ変名詞が「(トラップ)を検知する、検出する」となるため、構文解析実行部503は、「検知」、「検出」を動詞キーワードとして、キーワードkwに追加する。また、構文解析実行部503は、キーワードkwのうちの対象格や道具格の同義語も、キーワードkwに追加してもよい。
(インシデント文の形態素解析)
インシデント文is1〜is3からキーワードを抽出するため、まず、形態素解析実行部502が、日本語辞書512を用いて、インシデント文is1〜is3に対して形態素解析を行い、単語に分解する。ここで、日本語辞書512の記憶内容の一例を、図7を用いて説明する。
図8は、日本語辞書512の記憶内容の一例を示す説明図である。図8に示す日本語辞書512は、レコード801−1〜10を有する。
日本語辞書512は、見出しと、読みと、品詞と、格文法情報と、同義語というフィールドを含む。見出しフィールドには、対象となる単語が格納される。読みフィールドには、対象となる単語の読みを示す文字列が格納される。品詞フィールドには、対象となる単語の品詞を示す文字列が格納される。格文法情報フィールドには、対象となる単語が取り得る格文法情報を示す文字列が格納される。同義語フィールドには、対象となる単語の同義語を示す文字列が格納される。
ここで、図7に示すレコード801−1〜10は、インシデント文is1に対して形態素解析を用いて分解した単語に対するレコードである。図7で示すように、形態素解析実行部502は、インシデント文is1を、以下のように分解する。
インシデント文is1の形態素解析結果:トラップ+が+上が+った+時+に+音+を+出し+たい
同様に、形態素解析実行部502は、インシデント文is2、is3を、以下のように分解する。
インシデント文is2の形態素解析結果:手順書+どおり+に+設定+して+みた+が、うまくいか+ない
インシデント文is3の形態素解析結果:設定方法+について+教え+て+欲しい
(インシデント文の構文解析)
次に、構文解析実行部503が、形態素解析の結果を述語への係り受けに基づいて、格構造を生成する。格構造の生成では、構文解析実行部503は、日本語辞書512から得られた述語の格文法情報と述語に係り受けする助詞の格文法情報とから、格構造を生成する。図9を用いて説明する。
図9は、インシデント文の格構造の一例を示す説明図である。図9では、インシデント文is1〜is3の格構造is1_casestrc〜is3_casestrcについて示す。
格構造is1_casestrcについて、具体的に説明する。構文解析実行部503は、インシデント文is1では、述語「上がる」に「トラップ」が係り受けしており、また、ガ格の助詞「が」により、「トラップ」を、述語「上がる」の対象格に設定する。また、構文解析実行部503は、述語「出す」には、「音」がヲ格の助詞「を」により係り受けしているため、「音」を、述語「出す」の対象格に設定する。また、構文解析実行部503は、述語「上がる」を、時間格の時詞「時」とニ格の助詞「に」とにより、述語「出す」の時間格に設定する。設定した格文法情報に基づいて、構文解析実行部503は、インシデント文is1の格構造is1_casestrcを生成する。
同様に、構文解析実行部503は、インシデント文is2、is3に対しても、それぞれに含まれる単語に対して格を設定し、設定した格を示す格構造is2_casestrc、is3_casestrcを生成する。
次に、構文解析実行部503は、日本語辞書512を用いて、格要素の同義語をキーワードとして追加する。格要素の同義語の一例について、図10を用いて説明する。
図10は、格要素の同義語の一例を示す説明図である。表1000は、キーワードkwとなった格要素に対する同義語を示す。図10に示す表1000は、レコード1001−1〜9を有する。例えば、レコード1001−1について、「トラップ」の同義語は、レコード801−1の同義語フィールドを参照すると「罠」、「計略」であるから、構文解析実行部503は、「罠」、「計略」をキーワードkwに追加する。
次に、キーワードkwを用いて、キーワード抽出候補マニュアルを特定する例を、図11を用いて説明する。
図11は、キーワード抽出候補マニュアルの特定例を示す説明図である。特定部504は、格要素および格要素の同義語をキーワードkwとして指定し、製品マニュアルDB511を検索する。ここで、格文法の役割を考慮して、特定部504と検索部505とは、次に示す順序で検索結果を絞りながら検索を繰り返す。特定部504と検索部505とのキーワード抽出候補マニュアルの特定のシーケンスについては、図19で示す。
1番目:主格、対象格
2番目:述語(動詞)
3番目:道具格、様態格等
図11の例では、主格、対象格となる格要素および同義語を、キーワードkw1として網掛けなしの枠で示し、キーワードkw1の検索結果も同様に網掛けなしの枠で示す。また、述語(動詞)となる格要素および同義語を、キーワードkw2として薄い網掛けを付与した枠で示し、キーワードkw2の検索結果も同様に薄い網掛けを付与した枠で示す。また、道具格、態様格となる格要素および同義語を、キーワードkw3として濃い網掛けを付与した枠で示し、キーワードkw3の検索結果も同様に濃い網掛けを付与した枠で示す。
具体的には、特定部504は、図11の(1)で示すように、主格・対象格となる格要素「トラップ、設定方法、音」と、同義語「罠、計略、音声、サウンド、操作手順、手続き」とをキーワードkw1に指定する。そして、検索部505が、製品マニュアルDB511から、指定されたキーワードkw1に従って検索する。ここで、検索部505は、製品マニュアルDB511の各マニュアルに対して全文検索を行い、検索キーワードkw1の各単語の少なくともいずれか一つの単語を有するマニュアルを見つける。図11の例では、30製品のマニュアルがヒットしたとする。
次に、特定部504は、図11の(2)で示すように、述語(動詞)となる格要素「上がる、出す、教える、設定 うまくいく」と、同義語「検知、検出、教授、指導、セット、設置、動作」とをキーワードkw2に指定する。そして、検索部505が、30製品のマニュアルから、指定されたキーワードkw2に従って絞り込み検索する。ここで、検索部505は、30製品のマニュアルの各マニュアルに対して全文検索を行い、検索キーワードkw2の各単語の少なくともいずれか一つの単語を有するマニュアルを見つける。図11の例では、9製品のマニュアルがヒットしたとする。
次に、特定部504は、図11の(3)で示すように、道具格、様態格となる格要素「手順書」と、同義語「操作手引書、手引書」とをキーワードkw3に指定する。そして、検索部505は、9製品のマニュアルから、指定されたキーワードkw3に従って絞り込み検索する。ここで、検索部505は、9製品のマニュアルの各マニュアルに対して全文検索を行い、検索キーワードkw3の各単語の少なくともいずれか一つの単語を有するマニュアルを見つける。図11の例では、2製品のマニュアルがヒットしたとする。特定部504は、最後にヒットした2製品のマニュアルを、キーワード抽出候補マニュアルとして特定する。
特定部504は、図11の(3)の検索結果として、2製品のマニュアルに対する、「製品名、マニュアル名、ヒットした章・節」と検索に指定したキーワードごとのヒット数を得る。2製品のマニュアルにおいて、キーワードが出現した箇所の一例を、図12で示す。また、2製品のマニュアルに対する、「製品名、マニュアル名、ヒットした章・節」と検索に指定したキーワードごとのヒット数の一例を、図13で示す。
図12は、抽出候補マニュアル内におけるキーワードの出現例を示す説明図である。ウインドウ1200は、キーワード「トラップ」、「音」、「設定」、「通知」が出現した箇所を示す。図12では、キーワード「トラップ」、「音」、「設定」、「通知」に関して、網掛けを付与し、かつ、太字で示す。
図13は、キーワード抽出候補マニュアルにおけるキーワードごとのヒット数の一例を示す説明図である。表1300は、2製品のマニュアルに対する、「製品名、マニュアル名、ヒットした章・節」と検索に指定したキーワードごとのヒット数の一覧である。図13で示す表1300は、レコード1301−1〜6を有する。1つのレコードが、製品名、マニュアル名、章、節の組み合わせの1つを示す。
ここで、図13の例では、2製品のマニュアルの数は、4つである。具体的には、4つのマニュアルは、製品名が「ライフサイクル管理」となる製品の解説書、使用手引書、リファレンスマニュアルと、製品名が「ジョブ管理」となる製品の使用手引書とである。
ここで、特定部504は、キーワードのヒット数の合計が最も大きい組み合わせの製品名、マニュアル名、ヒットした章・節を取り出してもよい。この場合、レコード1301−2が示す組み合わせがヒット数の合計が最も大きいため、特定部504は、「ライフサイクル管理」、「使用手引書監視機能編」、「第4章 監視ポリシーの設定」、「4.3 イベント監視」を取り出す。
または、特定部504は、キーワードのヒット数から、キーワードごとの評価値を求め、評価値の合計が最も大きい組み合わせの製品名、マニュアル名、ヒットした章・節を取り出してもよい。キーワードごとの評価値の一例について、図14を用いて説明する。
図14は、キーワード抽出候補マニュアルにおけるキーワードごとの評価値の一例を示す説明図である。特定部504は、各組み合わせの各キーワードについて、キーワード抽出候補マニュアルの全てのヒット数に対する、該当の組み合わせにおける該当のキーワードのヒット数を、該当の組み合わせにおける該当のキーワードのヒット率として算出する。そして、特定部504は、該当の組み合わせにおける各キーワードのヒット率の合計を、該当の組み合わせの評価値として算出し、最も評価値が高い組み合わせの製品名、マニュアル名、ヒットした章・節を取り出す。
例えば、特定部504は、図13におけるレコード1301−1のキーワード「トラップ」の評価値を、以下のように算出する。
レコード1301−1のキーワード「トラップ」のヒット率=5/(5+9+25+7+6+4)=8.9[%]
図14に示す表1400は、各組み合わせの各キーワードの評価値と、各キーワードの評価値の合計とを示す。図14に示す表1400が有するレコード1401−1〜6は、それぞれ、レコード1301−1〜6の評価値をまとめたものである。例えば、レコード1301−1の評価値は、8.9+7.0+0.2+2.5=18.6となる。そして、図14の例では、評価値が最も高い組み合わせは、太枠でくくったレコード1401−2が示す組み合わせとなる。従って、特定部504は、「ライフサイクル管理」、「使用手引書監視機能編」、「第4章 監視ポリシーの設定」、「4.3 イベント監視」を取り出す。
さらに、特定部504は、取り出した節に関して、該当の節より下層の見出しを取り出してもよい。具体的には、特定部504は、各見出しに属する段落に含まれる各キーワードのヒット数を計数し、各キーワードのヒット数が最大となる段落が属する見出しを取り出す。また、該当の節より下層の見出しよりさらに下層の見出しがある場合、特定部504は、同様な方法で、さらに下層の見出しを取り出す。特定部504は、このようにして、取り出した節における最下層の見出しを取り出してもよい。最下層の見出しの取り出し例について、図15で示す。
図15は、最下層の見出しごとのキーワードのヒット数の一例を示す説明図である。図15に示す表1500は、製品名が「ライフサイクル管理」であるマニュアル「ライフサイクル管理使用手引書監視機能編」の4.3.1の各見出しと、各見出しに属する段落に含まれる各キーワードのヒット数と、ヒット数の合計とを示す。図15に示す表1500は、レコード1501−0〜6を有する。
例えば、特定部504は、ヒット数の合計が、所定の閾値以上である見出しを取り出す。図15の例では、太枠でくくったレコード1501−0〜3が示す組み合わせとなる。図15の例では、最終的に、特定部504は、以下の文字列を取り出す。
4.監視ポリシーの設定
4.3 イベント監視
4.3.1 イベント監視の条件設定
4.3.1.1 イベント監視の条件定義
4.3.1.2 アクション定義
4.3.1.3 アクション環境設定
そして、形態素解析実行部502は、取り出した文字列に対して、形態素解析を行い、キーワードを抽出する。具体的には、形態素解析実行部502は、「監視ポリシー、イベント監視、条件設定、条件定義、アクション定義、アクション環境設定」を抽出する。ここで、「4.3.1.2 アクション定義」を例として用いて、形態素解析の結果を図16で示す。
図16は、取り出した文字列に対する形態素解析の結果の一例を示す説明図である。図16で示すマニュアル1601は、「ライフサイクル管理使用手引書監視機能編」の4.3.1.2の「アクション定義」の内容を示す。そして、図16に示すマニュアル1601内の枠でくくった単語が、形態素解析の結果、キーワードとして抽出した単語である。
次に、インシデント文is1〜is3と、製品マニュアルから抽出したキーワードとを用いて検索部505が事例DB111を検索する例について、図17を用いて説明する。
図17は、インシデント文と製品マニュアルからのキーワードによる事例検索の一例を示す説明図である。検索部505は、図11で示したインシデント文is1〜is3から抽出した格要素および同義語を含むキーワードkw_isと、図12〜図16で示した製品マニュアルDB511から抽出したキーワードkw_maとを含む検索条件critを生成する。
そして、検索部505は、生成した検索条件critにより事例DB111を検索する。図17の例では、検索部505は、検索結果1701を得る。例えば、検索部505は、キーワードがヒットした数を各事例のスコアとしてもよい。そして、検索部505は、スコアの大きい順に事例を出力する。
次に、検索装置101が行う検索処理のフローチャートを、図18を用いて説明する。
図18は、検索処理手順の一例を示すフローチャートである。検索装置101は、クライアント端末201から受け付けたインシデント文is1〜is3を、検索条件critに指定する(ステップS1801)。次に、検索装置101は、インシデント文is1〜is3から形態素解析により単語を抽出する(ステップS1802)。そして、検索装置101は、抽出した単語から、格文法に基づき格構造を生成する(ステップS1803)。次に、検索装置101は、日本語辞書512を参照して、生成した格構造の格要素の同義語を、検索条件critに追加する(ステップS1804)。
そして、検索装置101は、生成した格構造ごとに、製品マニュアルDB511を検索して製品マニュアルを絞り込み、キーワード抽出候補マニュアルを特定する(ステップS1805)。ステップS1805の処理について、特定部504と検索部505とのキーワード抽出候補マニュアルの特定のシーケンス例を、図19で示す。
次に、検索装置101は、キーワード抽出候補マニュアルのヒットページの構造やヒットした文からキーワードを抽出し、抽出したキーワードを検索条件に追加する(ステップS1806)。ステップS1806の処理について、特定部504と、レイアウト解析実行部506と、形態素解析実行部502と、構文解析実行部503とによる、キーワード抽出候補マニュアルからのキーワード抽出のシーケンス例を、図20で示す。
そして、検索装置101は、キーワードを追加した検索条件で事例DB111を検索する(ステップS1807)。次に、検索装置101は、ヒットした事例を検索結果として、クライアント端末201に出力する(ステップS1808)。クライアント端末201は、検索結果を、ディスプレイ421に表示する。ステップS1808の処理終了後、検索装置101は、検索処理を終了する。
図19は、キーワード抽出候補マニュアル特定のシーケンス例を示す説明図である。特定部504は、主格、対象格のキーワードを指定する(ステップS1901)。そして、検索部505は、指定されたキーワードで、製品マニュアルDB511を検索する(ステップS1902)。
次に、特定部504は、述語(動詞)のキーワードを指定する(ステップS1903)。そして、検索部505は、ステップS1902の検索結果を絞り込み検索する(ステップS1904)。
次に、特定部504は、道具格、様態格のキーワードを指定する(ステップS1905)。そして、検索部505は、ステップS1904の検索結果を絞り込み検索する(ステップS1906)。
図20は、キーワード抽出候補マニュアルからのキーワード抽出のシーケンス例を示す説明図である。特定部504は、キーワード抽出候補マニュアルの章、節、見出しの組み合わせごとの評価値を算出する(ステップS2001)。そして、特定部504は、評価値に基づいて、キーワードを抽出する組み合わせを特定する(ステップS2002)。
次に、レイアウト解析実行部506は、特定した組み合わせに対応する章、節、見出しを抽出する(ステップS2003)。形態素解析実行部502は、抽出した章、節、見出しを単語に分解する(ステップS2004)。構文解析実行部503は、分解した単語に対して格文法情報を設定し、格文法情報が主格、対象格となった単語を、キーワードとして抽出する(ステップS2005)。
以上説明したように、検索装置101は、製品利用者の問い合わせ内の単語を製品マニュアルの中から検索し、見つかった記事の見出しに含まれる単語を事例DBへの検索条件に加えることを行う。これにより、検索装置101は、一般用語に対応する、製品を特徴付ける用語を検索条件に追加することができるので、検索精度を向上させることができる。また、検索装置101は、検索精度の向上のための、製品ごとの同義語辞書や関連性辞書の整備をしなくてよくなる。
また、検索装置101は、インシデント文内の主格または対象格となる単語に関連する文書データに対応付けられた項目を特定してもよい。主格または対象格となる単語は、インシデント文内で重要な単語であるため、検索装置101は、より適切な事例を検索することができる。
また、検索装置101は、キーワード抽出候補マニュアルの章、節、見出しの組み合わせごとの評価値を算出し、算出した評価値に基づいて、受け付けた単語に関連する文書データに対応付けられた項目を特定してもよい。キーワード抽出候補マニュアルに出現する単語の数は、様々であり、単にヒット数の合計で評価すると、ヒット数が多い単語に関連する文書データに対応付けられた項目を特定することになる。例えば、図13の例では、「設定」という単語は比較的出現しやすい単語であり、「トラップ」、「音」、「通知」に比べて多くヒットしている。そこで、全ヒット数に対する、該当の文章データにおけるヒット数の割合を求めることで、検索装置101は、ヒットしやすい単語の影響を少なくし、複数の単語がよりまんべんなくヒットする文書データに対応付けられた項目を特定することができる。
また、複数の単語がよりまんべんなくヒットする文書データを特定することにより、検索装置101は、インシデント文が対象とする製品のマニュアルを適切に特定することができる。具体的には、図1で説明したように、ある単語に対応する製品機能を特徴付ける用語が、製品によって異なる場合もある。従って、インシデント文が対象としていない製品のマニュアルを特定してしまうと、インシデント文が対象とする製品とは関係の薄い単語が検索条件に追加されることになってしまう。例えば、「トラップ」という単語は、ある製品では「イベント監視」に使用する語であり、別の製品では「ネットワーク管理のシステム監視」で使用する語であったとする。このとき、別の製品のマニュアルを特定してしまうと、「ノード、ポーリング、TCP/IP(Transmission Control Protocol/Internet Protocol)」といった単語が検索条件に追加されることになってしまうことになる。しかしながら、本実施の形態では、検索装置101は、インシデント文が対象とする製品のマニュアルを適切に特定するため、一定の検索精度を確保することができる。
なお、本実施の形態で説明した検索方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本検索プログラムは、ハードディスク、フレキシブルディスク、CD−ROM(Compact Disc−Read Only Memory)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本検索プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)検索条件に応じた情報をデータベースから検索する検索プログラムにおいて、
単語を受け付けると、階層化された複数の項目に対応付けられた複数の文書データを、前記複数の項目の各々の項目に対応付けて記憶する記憶部を参照して、前記複数の項目のうち、受け付けた前記単語に関連する文書データに対応付けられた項目を特定し、
特定した前記項目の名称に含まれる単語に基づいて、前記検索条件を生成する、
処理をコンピュータに実行させることを特徴とする検索プログラム。
(付記2)前記コンピュータに、
受け付けた文が形態素解析および構文解析されることにより、前記文に含まれる複数の単語の各単語と、格文法に基づく前記各単語の格文法情報との組み合わせを受け付ける、処理を実行させ、
前記特定する処理は、
前記組み合わせを受け付けると、前記記憶部を参照して、前記複数の項目のうち、前記組み合わせに含まれる格文法情報が、主格または対象格である単語に関連する文書データに対応付けられた項目を特定する、
ことを特徴とする付記1に記載の検索プログラム。
(付記3)前記コンピュータに、
複数の単語を受け付けると、前記記憶部を参照して、前記複数の単語の各単語に対応して、前記複数の文書データにおける前記各単語の出現回数に対する、前記複数の文書データの各文書データにおける前記各単語の出現回数の割合を計数し、
計数した前記各単語に対応する前記各文書データにおける割合を、前記各文書データに対応して累積する、処理を実行させ、
前記特定する処理は、
前記各文書データに対応して累積した割合に基づいて、前記複数の項目のうち、受け付けた前記複数の単語に関連する文書データに対応付けられた項目を特定する、
ことを特徴とする付記1または2に記載の検索プログラム。
(付記4)前記データベースには、複数の製品のいずれかの製品に関する問い合わせおよび前記問い合わせの回答を示す情報が格納されており、
前記複数の文書データの各文書データは、前記複数の製品のいずれかの製品に関する手引書である、
ことを特徴とする付記1〜3のいずれか一つに記載の検索プログラム。
(付記5)検索条件に応じた情報をデータベースから検索する検索装置において、
単語を受け付けると、階層化された複数の項目に対応付けられた複数の文書データを、前記複数の項目の各々の項目に対応付けて記憶する記憶部を参照して、前記複数の項目のうち、受け付けた前記単語に関連する文書データに対応付けられた項目を特定し、
特定した前記項目の名称に含まれる単語に基づいて、前記検索条件を生成する、
制御部を有することを特徴とする検索装置。
(付記6)検索条件に応じた情報をデータベースから検索する検索方法において、
単語を受け付けると、階層化された複数の項目に対応付けられた複数の文書データを、前記複数の項目の各々の項目に対応付けて記憶する記憶部を参照して、前記複数の項目のうち、受け付けた前記単語に関連する文書データに対応付けられた項目を特定し、
特定した前記項目の名称に含まれる単語に基づいて、前記検索条件を生成する、
処理をコンピュータが実行することを特徴とする検索方法。