以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る検索装置の一例を示す図である。検索装置10は、検索条件に対する回答に基づいて対象の特定を行う。検索装置10は、記憶部11と処理部12とを有している。記憶部11は、例えば検索装置10が有するメモリ、またはストレージ装置である。処理部12は、例えば検索装置10が有するプロセッサ、または演算回路である。
記憶部11は、複数のデータ2a,2b,・・・と、複数のデータ2a,2b,・・・のいずれかに対応づけられた質問群3とを記憶する。複数のデータ2a,2b,・・・には、例えばユーザが使用するコンピュータがエラーメッセージを出力したときの対処方法が示されている。質問群3は、例えば、各データを検索結果とする条件に該当するか否かについて、ユーザに問い合わせる質問の集合である。各質問は、1または複数のデータに対応づけられている。なお、記憶部11には、条件に該当するか否かを判別するための質問と、条件に該当するための質問に対する回答との組を複数種類記憶するようにしてもよい。
処理部12は、記憶部11を参照して、複数のデータ2a,2b,・・・のそれぞれについて、対応づけられた質問の数に応じて、複数のデータ2a,2b,・・・のそれぞれに対応づけられた各質問の優先度を算出する。例えば記憶部11が、複数のデータ2a,2b,・・・のいずれかに対応づけられた、質問と回答の組を複数種類記憶しているものとする。この場合、処理部12は、記憶部11を参照して、質問ごとに、質問が含まれる組に対応づけられた各データに対応づけられた組の数に応じた評価値の総計を、優先度として算出する。
そして処理部12は、算出した優先度に基づいて、提示する質問の順を制御する。例えば処理部12は、ユーザが使用する端末装置1に、優先度が高い順に、質問を表示させる。例えば、質問と回答との組ごとの評価値の総計を優先度として算出した場合、処理部12は、評価値の総計に基づいて、提示する質問の順を制御する。
このように、データに対応づけられた質問の数に応じて、質問の優先度を算出することで、効率的な順番で質問を表示させることができる。例えば、処理部12は、各データに対応づけられた質問の数の逆数を、そのデータに対応づけられた質問の影響度とする。影響度は、1つのデータに対応づけられた質問の数が少ないほど、大きな値となる。そして処理部12は、影響度が高い質問の優先度を高くする。これにより、少ない質問数で特定可能なデータについての質問が、優先的に表示される。その結果、少ない質問数で結果を得られる可能性が高くなり、システム全体として、ユーザに提示する質問の表示回数を削減できる。
また、処理部12は、複数のデータのそれぞれについて、検索結果として出力された回数と、対応づけられた質問の数とに基づいて、質問の優先度を算出してもよい。例えば処理部12は、データに対応づけられた質問の数に基づいて、各質問の影響度を求め、求めた影響度に対して、データが検索結果として出力された回数を乗算する。そして処理部12は、乗算結果を評価値とする。なお、同じ質問が複数のデータに対応づけられている場合、その質問に対する評価値は、対応づけられたデータごとに算出される。そこで処理部12は、質問に対して、対応づけられたデータごとに求められた評価値の総計を、その質問の優先度とする。そして処理部12は、優先度が高い順に、ユーザの使用する端末装置1に質問を表示する。
このように、データが検索結果として出力された回数を考慮にいれて、各データに対応づけられた質問の表示順を決定することで、検索結果として出力された回数が多いデータに対応する質問ほど優先度が高くなり、早期に表示される。その結果、利用頻度が高いデータを早期に検索結果として特定できるようになり、検索の効率が向上する。
処理部12は、一質問に対する回答に応じて、質問の優先度を再度計算してもよい。例えば処理部12は、一質問に対する回答が入力されると、該当する可能性のある1または複数のデータの特定に不要な質問、および一質問を、優先度の計算対象から除外する。そして処理部12は、除外していない質問の優先度を再度計算する。これにより、質問に対する回答を得るごとに、適切な質問の表示順を適切な順番に並べ替えることができる。
なお、処理部12は、1または複数の質問それぞれの回答に応じた条件で複数のデータを検索し、検索の条件に該当するデータが1つになったとき、該当するデータを検索結果として出力する。処理部12は、優先度が一致する2以上の質問がある場合、2以上の質問それぞれが対応づけられたデータの数に応じて、2以上の質問の表示順を制御する。例えば処理部12は、対応づけられたデータの数が多い質問ほど、表示の優先度を高くする。これにより、多くのデータの絞り込みに有効な質問ほど早期に表示され、データ検索の効率が向上する。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、コンピュータシステムについてのトラブルの対処の事例を、ナレッジとして格納しておき、そのナレッジを対話型で検索するものである。なお、各事例には、その事例と同じ現象であると判定するための条件が設定されている。
図2は、第2の実施の形態のシステム構成例を示す図である。ナレッジシステム100には、ネットワーク20を介して複数の端末装置31,32,・・・が接続されている。複数の端末装置31,32,・・・は、ユーザが使用するコンピュータである。
ナレッジシステム100は、ユーザサポートに関する膨大な量の知識を、ナレッジとして蓄積し、管理するコンピュータである。
図3は、ナレッジシステムのハードウェアの一構成例を示す図である。ナレッジシステム100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
メモリ102は、ナレッジシステム100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
バス109に接続されている周辺機器としては、ストレージ装置103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、液晶表示装置や有機EL(Electro Luminescence)表示装置などがある。
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース107は、ナレッジシステム100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した検索装置10も、図3に示したナレッジシステム100と同様のハードウェアにより実現することができる。
ナレッジシステム100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。ナレッジシステム100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、ナレッジシステム100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。またナレッジシステム100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
図4は、ナレッジシステムの機能の一例を示すブロック図である。ナレッジシステム100は、事例情報記憶部110、事例登録部120、入出力処理部130、条件表示順制御部140、および検索エンジン150を有する。
事例情報記憶部110は、ナレッジとしての事例情報を記憶する。事例情報記憶部110は、例えばナレッジシステムが有するメモリ102またはストレージ装置103の記憶領域の一部である。
事例登録部120は、サポート員からの入力を受け付け、そのサポート員が対応したインシデントについての詳細を記述した事例を、事例情報記憶部110に格納する。例えばサポート員は、ユーザからの問い合わせに対するサポートが終了すると、発生した現象、ユーザのコンピュータの環境、現象の発生原因、対処方法などを、事例登録部120に対して入力する。事例登録部120は、入力された情報を1つの事例を示すレコードとして、事例情報記憶部110に格納する。
入出力処理部130は、ユーザが使用する端末装置31からの情報の取得、および端末装置31への情報の送信を行う。例えば入出力処理部130は、端末装置31から発生した現象を示す文字列(エラーコードなど)を受信すると、その文字列によるキーワード検索を検索エンジン150に要求する。また入出力処理部130は、条件表示順制御部140からユーザへの質問を受け取ると、その質問を示す画像を端末装置31に表示させるための表示データを、端末装置31に送信する。そして入出力処理部130は、端末装置31から、質問に対する回答を受信する。入出力処理部130は、受信した回答を、条件表示順制御部140に送信する。さらに入出力処理部130は、検索エンジン150から、1つの事例を検索結果として取得すると、その事例を端末装置31に送信する。
条件表示順制御部140は、ナレッジの絞り込みのための複数の条件のうち、ユーザに提示する条件の表示順を決定する。各条件は、ユーザへの質問と、条件に該当する場合の回答との組で表される。例えば、質問「A_OS環境か?」、回答「YES」の組が、1つの条件となる。この場合、トラブルが発生したシステムのOSが「A_OS」であれば、ユーザは質問に対して「YES」と回答する。この回答は、条件表示順制御部140において、条件に該当する旨の回答として認識される。
そして条件表示順制御部140は、ナレッジが1つに絞り込まれるまで、随時、条件の表示順を決定し、表示順が最初となる条件に対応する質問を、入出力処理部130に送信する。条件表示順制御部140は、入出力処理部130から質問に対する回答を受信すると、その回答に応じて条件に該当したか否かを判断し、判断結果に応じたナレッジの検索を、検索エンジン150に依頼する。
検索エンジン150は、条件表示順制御部140から、条件に該当したか否かの情報を受信すると、その情報に基づいて、事例情報記憶部110内の事例を検索する。検索エンジン150は、検索結果を入出力処理部130または条件表示順制御部140に送信する。
なお、図4に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
図5は、事例登録部による事例登録例を示す図である。例えばサポート員は、複数の事例41,42,43,・・・を事例登録部120に入力する。事例登録部120は、入力された事例41,42,43,・・・を、例えば事例情報記憶部110内の事例管理テーブル111に登録する。事例管理テーブル111には、事例番号に対応づけて、入力された事例と、その事例の発生回数とが管理されている。
例えば事例登録部120は、事例が入力されると、事例番号を付与して、その事例を示すレコードを事例管理テーブル111に追加する。追加されたレコードの発生回数の初期値は「1」である。
なお、入力された事例41,42,43,・・・には、発生した現象が、文章で示されている。また事例41,42,43,・・・には、障害の原因を特定するための1以上の条件が示されている。条件には、動作環境に関する条件や、実行中の処理(実行コマンド)に関する条件などが含まれる。例えば事例41には、「A_OS」という環境で発生した現象であること(条件A)、特定の環境パラメータを指定していること(条件B)、および特定のコマンドを実行したときに発生した現象であること(条件C)が示されている。
さらに事例41,42,43,・・・には、発生した現象の原因と対処方法とが示されている。
ナレッジシステム100では、このような事例管理テーブル111から、ユーザが使用しているシステムに発生した現象に対する対処方法が記載された事例を、対話型で絞り込む。その際、ユーザに、該当するか否かの入力を促す対象の条件の表示順を最適化することによって、ユーザに対する条件の表示回数を減らすことができる。
例えばナレッジシステム100では、まず、ユーザに、現象(例えば、表示されたメッセージ)を入力してもらう。例えばユーザが端末装置31によりナレッジシステム100にアクセスすると、入出力処理部130が、現象の入力用の画面データを端末装置31に送信する。ユーザは、端末装置31に、例えばエラーなどのメッセージを入力する。端末装置31は、入力されたメッセージをナレッジシステム100に送信する。ナレッジシステム100では、入出力処理部130が、入力されたメッセージが「現象」に含まれる事例の検索を、検索エンジン150に要求する。すると検索エンジン150が、該当する事例を事例情報記憶部110から検索する。
検索エンジン150は、検索結果を、条件表示順制御部140に送信する。条件表示順制御部140は、検索により合致した事例のいずれかに含まれる条件の表示順を決定する。
図6は、検出された事例に含まれる条件の例を示す図である。図6の例では、ユーザが入力したメッセージに合致する事例が4つ検出されている。第1の事例には、条件「A」、条件「B」、条件「C」の3つの条件が記載されている。第2の事例には、条件「D」のみが記載されている。第3の事例には、条件「E」、条件「F」の2つの条件が記載されている。第4の事例には、条件「E」、条件「G」の2つの条件が記載されている。
また第1の事例の発生回数は「15」回である。第2の事例の発生回数は「3」回である。第3の事例の発生回数は「1」回である。第4の事例の発生回数は「6」回である。
このような4つの事例が検出されたとき、ユーザのシステムに発生した現象と同じ事例がどの事例なのかを決定するために、ナレッジシステム100は、条件「A」〜「G」から条件を1つずつ選択してユーザの端末装置31に表示して、該当するか否かの回答を得る。この際、条件表示順制御部140が、効率的に事例が特定できるような条件の表示順を決定する。事例の特定を効率的に行うには、各事例が特定できるまでの条件の表示回数が少ないほどよい。このとき、各事例の発生頻度が均等であれば、各事例が特定できるまでの条件表示数の合計が最も小さくなる表示順とすれば、効率的な表示順となる。しかし、実際には、各事例の発生頻度は均等ではない。そのため、単に各事例が特定できるまでの条件表示数の合計が小さいだけでは、効率のよい表示順とは言えない。
そこで条件表示順制御部140は、発生回数で重みをつけ、「特定できるまでの条件表示数×発生回数の総和」が小さいほど、効率的であるとする。
以下、図7〜図9を参照し、事例を特定するための効率的な条件の表示順について説明する。
図7は、条件の表示順のパターンごとの効率性の評価例を示す図である。7つの条件の表示順には5040通りのパターン51,52,・・・がある。各パターン51,52,・・・について、各事例が特定できるまでの条件表示数と、特定される事例の発生回数とを用いて、「特定できるまでの条件表示数×発生回数の総和」を計算することができる。
例えば1番目のパターン51(パターン#1)の条件の表示順は、条件「ABCDEFG」の順である。パターン51に従ってユーザの端末装置31に条件を表示した場合、1回目の条件表示として条件「A」が、ユーザの端末装置31に表示される。ユーザが条件「A」に該当するか否かを入力すると、次に2回目の条件表示として条件「B」が、ユーザの端末装置31に表示される。このように、パターン51に示された表示順に従って、条件が順次端末装置31に表示される。そして、少なくとも一部の条件に対する回答を受け取った段階でユーザのシステムに発生した現象に対応する事例が特定できた場合、それ以後の条件の表示は行わずに済む。
図7の例では、条件「A」、条件「B」、条件「C」の3つの条件を表示したとき、ユーザがこれらの3つの条件を満たしていると回答した場合、第1の事例に該当することが特定できる。このとき、第1の事例を特定できるまでの条件表示数は「3」となる。
その後、さらに条件「D」を表示したとき、ユーザが条件「D」を満たしていると回答した場合、第2の事例に該当することが特定できる。このとき、第2の事例を特定できるまでの条件表示数は「4」となる。
その後、さらに条件「E」、条件「F」を表示したとき、ユーザが条件「E」および条件「D」を共に満たしていると回答した場合、第3の事例に該当することが特定できる。このとき、第3の事例を特定できるまでの条件表示数は「6」となる。
その後、さらに条件「G」を表示したとき、ユーザが条件「E」を満たしていると既に回答済みであり、さらに条件「G」を満たしていると回答した場合、第4の事例に該当することが特定できる。このとき、第4の事例を特定できるまでの条件表示数は「7」となる。
事例ごとに、「特定できるまでの条件表示数×発生回数」を計算すると、第1の事例については「45」、第2の事例については「12」、第3の事例については「6」、第4の事例については「42」となる。すると1番目のパターン(パターン#1)についての「特定できるまでの条件表示数×発生回数の総和」は「105」となる。
同様にして、条件の表示順のすべてのパターンについて、「特定できるまでの条件表示数×発生回数の総和」を算出することができる。
図8は、事例を特定できるまでの条件表示数×発生回数の総和の算出結果の一例を示す図である。図8の例では、表示順が「ABCDEGF」の場合、「ABCDGEF」の場合、「ABCEGDF」の場合、および「ABCGEDF」の場合において、「特定できるまでの条件表示数×発生回数の総和」が最小値「100」となっている。したがって、総和が「100」となる表示順のいずれかに従って条件を表示すると、効率的に事例を特定できる。
なお、図8に示した例では、ある現象に該当する事例の集団について、その事例の集団に含まれるすべての条件を表示することを前提としている。この場合、無駄な条件表示が含まれることがある。
例えば、条件「A」に該当しないとした場合、条件「B」、条件「C」に対する回答を待つまでもなく、第1の事例には該当しないことは判明する。しかも、条件「B」と条件「C」とは、いずれも第1の事例にしか含まれていない。それにもかかわらず、最初に設定したパターンに従って条件「B」と条件「C」とを端末装置31に表示すると、条件「A」を含まない事例(第2の事例、第3の事例、第4の事例)にたどり着きたい場合には、意味のない条件が表示されることになる。
そこで条件表示順制御部140は、表示した条件に該当するか否かの回答結果に応じて、次に表示する候補の条件を絞り込む。すなわち条件表示順制御部140は、特定される可能性がなくなった事例を除外し、残りの事例に含まれる条件について、効率的な表示順を決定する。なお、既に決めた順でなく、表示順を決定しなおすのは、どの条件が残ったのかによって、表示順のパターンの評価値が変わることがあるためである。
ここで、1番目のパターン(パターン#1)が効率よい表示順と判明したと仮定する。最初の条件「A」を表示した結果、条件「A」に該当しないとの回答を得たものとする。この場合、条件「A」を含まない事例(第2の事例、第3の事例、第4の事例)のいずれかに含まれる条件だけで、再度表示順を評価しなおすのが適切である。つまり条件表示順制御部140は、第2の事例、第3の事例、第4の事例のいずれかに含まれる条件(条件D、条件E、条件F、条件G)についての表示順を決定することになる。この場合は、条件表示順制御部140は、表示順の24通り(4の階乗)のパターンそれぞれについて、評価値(特定できるまでの条件表示数×発生回数の総和)を計算する。
このように、再評価の回数は、1番目のパターン(パターン#1)で条件「A」が該当しないケースでは、評価する表示順の数が24通りである。また、例えばn番目(nは1以上の整数)のパターン(パターン#n)が効率のよい表示順であるものと仮定する。このとき、最初に条件「D」を表示した結果、条件「D」に該当しないとの回答を得た場合を考える。この場合、条件「D」を含まない事例(第1の事例、第3の事例、第4の事例)のいずれかに含まれる条件で再度表示順を評価しなおすこととなる。条件「D」を除いた、残りの条件数は、6つ(条件「A,B,C,E,F,G」)である。そこで条件表示順制御部140は、表示順の720通り(6の階乗)のパターンそれぞれについて、評価する。つまり、最初に5040通りの表示順のパターンを評価し、1つの条件を表示した後にさらに720通りの表示順のパターンを評価することになる。
このように、無駄な条件の表示を減らし、かつ効率のよい表示順とするには、表示順の多数のパターンについての評価を繰り返し実行することとなり、計算量が増えてしまう。
以下、図9を参照して、表示順の再評価の過程と、最終的にどの程度の計算量となるかについて説明する。
図9は、表示順のパターンを評価する場合の計算量の一例を示す図である。前述の評価方法で7つの条件の表示順の5040通りのパターンを評価し、適用するパターンがm−3番目のパターン(パターン#m−3)に決定されたものとする。このパターンによる条件の表示順は、「ABCEGDF」である。適用するパターンにおける表示順が先頭の条件「A」が、ユーザの端末装置31に最初に表示される。
ユーザから条件「A」に該当するとの回答が得られた場合、条件「A」を除く6個の条件についての720通りの表示順のパターンが評価される。図9の例では、表示順「BCEGDF」のパターンの評価が最も高く、このパターンが、適用するパターンとして決定されている。その結果、条件「B」がユーザの端末装置31に表示される。
他方、ユーザから条件「A」に該当しない(非該当)との回答が得られた場合、条件「A,B,C」を除く4つの条件についての24通りの表示順のパターンが評価される。この例では、「EGDF」、「GEDF」、「DEGF」、「DGEF」の総和が同じ25で、最も小さい値となる。値が同じ場合には、条件表示順制御部140は、例えば、より多くの事例に含まれる条件が前にある表示順を採用する。例えば2つの事例に含まれる条件「E」が先頭にある表示順のパターン「EGDF」が採用される。その結果、条件「E」がユーザの端末装置31に最初に表示される。
その後、同様にユーザからの回答に応じて分岐しながら、特定される可能性の残っている事例に含まれる条件の表示順のパターンの評価を繰り返すことになる。そして、いずれかの事例が特定できた時点で、条件の表示が終了する。
図9の例では、第1の事例を特定できるまでの条件表示回数は3回である。第2の事例を特定できるまでの条件表示回数は、条件「E」に該当する方のルートでは、4回の場合と、5回の場合と、6回の場合とがあり、平均すると5回である。また第2の事例を特定できるまでの条件表示回数は、条件「E」に該当しない方のルートでは、3回の場合と、4回の場合と、5回の場合とがあり、平均すると4回である。すると第2の事例を特定できるまでの条件表示回数の全ルートでの平均は、4.5回となる。第3の事例を特定できるまでの条件表示回数は、5回の場合と、6回の場合と、7回の場合とがあり、平均すると6回である。第4の事例を特定できるまでの条件表示回数は、3回の場合と、4回の場合と、5回の場合とがあり、平均すると4回である。
図9に示した例では、いずれかの事例を特定できるまでの条件表示回数(平均)×発生回数の総和(評価値)は、「第1の事例(3×15)+第2の事例(4.5×3)+第3の事例(6×1)+第4の事例(4×6)=88.5」となる。この評価値は、図8に示した、表示順のパターン「ABCEGDF」の評価値「100」より小さい。すなわち、すべての条件を表示する順と比較して、無駄な条件の表示を抑止することで、条件の表示回数を減らすことができる。
しかし、ユーザからの回答に応じて評価を繰り返す方式だと、評価するパターンの数は、最小で5040+24+1=5065通り、最大で5040+720+120+24+6+2+1=5913通りとなる。さらに条件の数が多くなると、評価するパターンの数も肥大化する。
そこで第2の実施の形態では、計算量を削減するために、表示順のパターンごとの評価値を計算する場合よりも少ない計算量で、表示順のパターンごとの評価値を計算した場合と同様に効率的な表示順を決定する。
例えば条件表示順制御部140は、事例ごとに、事例に対応する条件の数により、各条件の影響度を計算する。そして条件表示順制御部140は、該当事例に含まれる条件の影響度に、その事例の発生回数を乗算して、該当する条件の重みを計算する。さらに条件表示順制御部140は、事例ごとに得られた各条件の重みから、条件ごとの重みの総和を計算する。そして条件表示順制御部140は、重みの総和値で条件を降順にソートし、最上位の条件を、ユーザの端末装置31に送信する条件に決定する。
図10は、事例ごとの条件の重みの計算例を示す図である。図10の例では、各事例における条件の数の逆数を、その事例に対する条件1つ当たりの影響度としている。例えば第1の事例は、含まれる条件の数は「3」である。すると、条件1つの影響度は「1/3」となる。第1の事例の発生回数は「15」である。したがって、第1の事例に含まれる条件「A,B,C」それぞれの重みは、いずれも「5」(影響度×発生回数)となる。
このような重みの計算が、事例ごとに行われる。すると、複数の事例に含まれる条件については、複数の重みが算出される。図10の例では、条件「E」は、第3の事例と第4の事例とに含まれている。条件「E」の第3の事例における重みは「0.5」である。また、条件「E」の第4の事例における重みは「3」である。この場合、条件「E」の重みの総和は、「3.5」(0.5+3)となる。
7つの条件それぞれの重みの総和は以下の通りである。
A:1/3×15=5.0
B:1/3×15=5.0
C:1/3×15=5.0
D:1/1×3=3.0
E:1/2×1+1/2×6=0.5+3.0=3.5
F:1/2×1=0.5
G:1/2×6=3.0
よって、7つの条件のうち、重みの総和が最も大きいのは、重みの総和「5.0」の条件「A,B,C」である。この場合、最初に端末装置31に表示する条件は、条件「A,B,C」のいずれかとなる。
ここで、最初に表示する条件を条件「A」に決定し、条件「A」がユーザの端末装置31に表示したものとする。その後、ユーザの端末装置31から、表示した条件に対する回答を得るごとに、重みの総和の計算が繰り返される。
図11は、重みの総和に応じた表示対象の条件の決定例を示す図である。例えばユーザから条件「A」に該当するとの回答を得た場合、条件表示順制御部140は、条件「A」を除いた6つの条件「B,C,D,E,F,G」で、再度、重みの総和を計算する。
なお、第1の事例は、残りの条件が条件「B,C」の2つとなるので、第1の事例での条件「B,C」の影響度は、1/2となる。影響度を更新した上で、6つの条件「B,C,D,E,F,G」の重みの総和を計算した結果は、以下の通りである。
B:1/2×15=7.5
C:1/2×15=7.5
D:1/1×3=3.0
E:1/2×1+1/2×6=0.5+3.0=3.5
F:1/2×1=0.5
G:1/2×6=3.0
この場合、条件「B,C」の重みの総和が「7.5」で最も大きい。そのため条件表示順制御部140は、次は、条件「B,C」のいずれかを、表示対象として決定する。図11の例では、条件表示順制御部140は、条件「B」をユーザの端末装置31に表示させている。
ユーザから条件「A」に該当しないとの回答を得た場合、条件表示順制御部140は、条件「A」を含まない事例(第2の事例、第3の事例、第4の事例)のいずれかに含まれる4つの条件「D,E,F,G」について、重みの総和を計算する。計算結果は以下の通りである。
D:1/1×3=3.0
E:1/2×1+1/2×6=0.5+3.0=3.5
F:1/2×1=0.5
G:1/2×6=3.0
この場合、条件「E」の重みの総和が「3.5」で最も大きい。そのため条件表示順制御部140は、次は、条件「E」を、表示対象として決定し、条件「E」をユーザの端末装置31に表示させる。
ユーザから条件「E」に該当するとの回答を得た場合、条件表示順制御部140は、現在の表示対象の候補となる条件「D,E,F,G」から、回答を得た条件「E」を除外する。その結果、表示対象の候補として条件「D,F,G」が残る。そのため条件表示順制御部140は、条件「D,F,G」についての重みの総和を再度計算する。計算結果は以下の通りである。
D:1/1×3=3.0
F:1/1×1=1.0
G:1/1×6=6.0
この場合、条件「G」の重みの総和が「6.0」で最も大きい。そのため条件表示順制御部140は、次は条件「G」を表示対象として決定し、条件「G」をユーザの端末装置31に表示させる。
ユーザから条件「E」に該当しないとの回答を得た場合、条件「A,E」のいずれも含まない事例は、第2の事例のみとなる。第2の事例に含まれる条件は、条件「D」のみである。そのため条件表示順制御部140は、次は条件「D」を表示対象として決定し、条件「D」をユーザの端末装置31に表示させる。
条件表示順制御部140は、ユーザからの回答に応じて分岐しながら、特定される可能性の残っている事例に含まれる条件(表示対象候補の条件)の重みの総和の計算を繰り返し、表示対象候補の条件のうちの重みの総和が最も高い条件を、表示対象に決定する。
図11の例では、第1の事例を特定できるまでの条件表示回数は3回である。第2の事例を特定できるまでの条件表示回数は平均4.5回である。第3の事例を特定できるまでの条件表示回数は平均6回である。第4の事例を特定できるまでの条件表示回数は平均4回である。図11に示した例では、特定できるまでの条件表示回数(平均)×発生回数の総和(評価値)は、「第1の事例(3×15)+第2の事例(4.5×3)+第3の事例(6×1)+第4の事例(4×6)=88.5」となる。この値は、図9に示した例と同じである。すなわち、表示対象候補の条件の表示順のすべてのパターンについての評価をしなくても、条件の表示回数を減らすことができている。
次に、ナレッジシステム100における事例検索処理の手順について詳細に説明する。
図12は、事例検索処理の手順の一例を示すフローチャートである。なお、事例検索処理は、例えばユーザが使用する端末装置31から、事例検索要求が入力されたときに実行開始される。以下、図12に示す処理をステップ番号に沿って説明する。
[ステップS101]入出力処理部130は、端末装置31からの事例検索要求に応じて、現象入力画面を端末装置31に表示させる。例えば入出力処理部130は、現象入力画面を示す画面データを端末装置31に送信する。これにより、端末装置31の画面には、現象入力画面が表示される。現象入力画面には、例えば現象を入力するためのテキストボックスが含まれる。ユーザがテキストボックスに現象を表す文字列(例えばエラーメッセージ)を入力すると、端末装置31からナレッジシステム100に現象を表す文字列が送信される。
[ステップS102]入出力処理部130は、端末装置31から、入力された現象を表す文字列を受信する。入出力処理部130は、現象を表す文字列を検索エンジン150に送信する。
[ステップS103]検索エンジン150は、事例情報記憶部110に蓄積されている事例の中から、受信した現象に対応する事例を検索する。例えば検索エンジン150は、受信した現象を表す文字列を検索キーとして、各事例の現象の項目の文字列を検索する。そして検索エンジン150は、現象の項目内に検索キーと同じ文字列を含む事例に対応するレコードを事例情報記憶部110から抽出し、条件表示順制御部140に送信する。
[ステップS104]条件表示順制御部140は、検出された事例を含む事例リストを作成する。事例リストには、例えば該当事例に含まれる条件が含まれる。例えば条件表示順制御部140は、入力された現象に対応する事例の条件の項目から、条件の識別子を抽出し、抽出元の事例の事例番号に対応づけて、事例リストに登録する。
[ステップS105]条件表示順制御部140は、入力された現象に対応する事例が0個か否かを判断する。条件表示順制御部140は、現象に対応する事例が0個であれば、処理をステップS106に進める。条件表示順制御部140は、現象に該当する事例が少なくとも1個あれば、処理をステップS107に進める。
[ステップS106]条件表示順制御部140は、「該当事例なし」のメッセージを、端末装置31に表示させる。例えば条件表示順制御部140は、「該当事例なし」の文字列を含む該当文字列の表示要求を、入出力処理部130に送信する。すると、入出力処理部130は、「該当事例なし」を示す画面データを端末装置31に送信する。その後、事例検索処理が終了する。
[ステップS107]条件表示順制御部140は、事例リストに含まれる事例の少なくとも1つに含まれる条件のリストである、条件リストを作成する。例えば条件表示順制御部140は、事例リストから各事例の条件を抽出し、条件の重複を排除して、抽出した条件を条件リストに登録する。
[ステップS108]条件表示順制御部140は、条件リストに含まれる各条件の重みの総和を計算する。例えば条件表示順制御部140は、事例ごとに、その事例に含まれる条件1つ当たりの影響度を計算する。影響度は、事例に含まれる条件のうちの、該当するか否かの判断を行っていない条件の数の逆数である。条件表示順制御部140は、事例ごとの各条件の影響度に、その事例の発生回数を乗算し、各条件の重みとする。そして条件表示順制御部140は、条件ごとに、複数の事例それぞれで算出された重みの総和を計算する。条件表示順制御部140は、各条件の重みの総和を、条件リストに設定する。
[ステップS109]条件表示順制御部140は、重みの総和が最大の条件を、表示対象の条件に決定する。条件表示順制御部140は、重みの総和が最大の条件が複数ある場合、それらの条件のうち、その条件を含む事例の数が最も多い条件を、表示対象の条件に決定する。
[ステップS110]条件表示順制御部140は、条件表示画面を端末装置31に表示させる。例えば条件表示順制御部140は、ステップS109で決定した条件と、その条件に該当するか否かの選択肢とを含む画面データを、端末装置31に送信する。
[ステップS111]条件表示順制御部140は、端末装置31から、条件に該当するか否かの回答を受信する。
[ステップS112]条件表示順制御部140は、条件に該当したとの回答が得られたか否かを判断する。条件表示順制御部140は、条件に該当したとの回答が得られた場合、処理をステップS114に進める。また条件表示順制御部140は、条件に該当していないとの回答が得られた場合、処理をステップS113に進める。
[ステップS113]条件表示順制御部140は、該当しないとの回答が得られた条件を含む事例を、重みの計算対象から除外する。条件表示順制御部140は、その後、処理をステップS105に進める。
[ステップS114]条件表示順制御部140は、事例リスト内のいずれかの事例に該当するか否かを判断する。例えば条件表示順制御部140は、事例リストに示される事例のうち、対応するすべての条件について該当しているとの回答が得られた事例がある場合、その事例に該当すると判断する。条件表示順制御部140は、いずれか1つの事例に該当する場合、処理をステップS116に進める。また条件表示順制御部140は、該当する事例がなければ、処理をステップS115に進める。
[ステップS115]条件表示順制御部140は、該当するとの回答を得た条件を、重みの計算対象から除外する。条件表示順制御部140は、その後、処理をステップS105に進める。
[ステップS116]条件表示順制御部140は、事例情報記憶部110内の事例管理テーブル111における、該当した事例の発生回数を、1だけカウントアップする。
[ステップS117]条件表示順制御部140は、該当した事例を、端末装置31に表示させる。例えば条件表示順制御部140は、該当した事例を、検索結果として入出力処理部130に送信する。すると入出力処理部130は、該当した事例に示された原因や対処方法を含む画像データを、端末装置31に送信する。条件表示順制御部140は、その後、事例検索処理を終了する。
このような手順で、FAQ形式による効率的な事例検索が可能となる。なお、ステップS108における条件の重みの総和の計算は、事例リストと条件リストを用いて行われる。以下、図13〜図15を参照して、事例リストと条件リストを用いた重みの総和の計算例について説明する。
図13は、事例リストと条件リストを用いた重みの総和の計算例を示す第1の図である。例えば事例リスト61には、入力された現象に該当する事例の事例番号に対応づけて、その事例に含まれる条件の識別子が設定されている。そして事例リスト61では、登録された各条件に対応づけて、該当するか否か、条件数、影響度、発生回数、および重みが設定されている。該当するか否かの情報は、初期状態では空欄である。条件数は、対応する事例に含まれる条件の数であり、同じ事例内の条件には同じ値が設定される。影響度は、条件数の逆数である。発生回数は、対応する事例の発生回数であり、同じ事例内の条件には同じ値が設定される。重みは、影響度と発生回数との乗算結果である。
条件リスト62には、事例リスト61に含まれる条件の識別子に対応づけて、重みの総和と表示順とが設定されている。
図13の例では、条件「E」は、第3の事例と第4の事例に含まれている。そのため、条件「E」の重みの総和は、第3の事例における重み「0.5」と第4の事例における重み「3」との合計となる。その他の条件「A,B,C,D,F,G」については、1つの事例にのみ含まれているため、事例リスト61に示されている重みが、その条件の重みの総和となっている。その結果、7つの条件のうち、重みの総和が最も大きいのは、条件「A,B,C」である。これらの条件は、いずれも、その条件を含む事例の数が「1」で同じである。したがって、条件「A,B,C」のいずれか1つ(図13の例では条件「A」)が、最先の表示順となっている。
この場合、条件「A」がユーザの端末装置31に表示され、ユーザにより、該当するか否かの回答が入力される。回答を取得した条件表示順制御部140は、回答に応じて、事例リスト61と条件リスト62とを更新する。
図14は、事例リストと条件リストを用いた重みの総和の計算例を示す第2の図である。図14には、条件「A」に該当するとの回答を取得した場合の例が示されている。
条件「A」に該当する場合、事例リスト61において、条件「A」に該当するか否かの値として「該当」が設定される。そして条件表示順制御部140は、事例リスト61における条件「A」を、重みの計算対象から除外する。条件「A」が重みの計算対象から除外されたため、第1の事例の条件数は「2」となる。そのため第1の事例に対応する条件「B,C」の影響度は「1/2」となり、重みは「7.5」となる。
事例リスト61において条件「A」が重みの計算対象から除外されているため、条件リスト62においても、条件「A」については、重みの総和の計算対象から除外される。図14では、重みまたは重みの総和の計算対象から除外した条件を示すレコードを、網掛けで示している。図14の例では、条件「A」以外の条件の重みの総和を計算した結果、条件「B,C」の重みの総和が最も大きくなっている。これらの条件は、いずれも、その条件を含む事例の数が「1」で同じである。したがって、条件「B,C」のいずれか1つ(図14の例では条件「B」)が、最先の表示順となっている。
図15は、事例リストと条件リストを用いた重みの総和の計算例を示す第3の図である。図15には、条件「A」に該当しないとの回答を取得した場合の例が示されている。
条件「A」に該当しない場合、事例リスト61において、条件「A」に該当するか否かの値として「否」が設定される。これにより、第1の事例に該当することはなくなる。そのため条件表示順制御部140は、事例リスト61における第1の事例に対応づけられた各条件「A,B,C」を、重みの計算対象から除外する。事例リスト61において条件「A,B,C」が重みの計算対象から除外されているため、条件リスト62においても、条件「A,B,C」については、重みの総和の計算対象から除外される。図15の例では、重みまたは重みの総和の計算対象から除外した条件を示すレコードを、網掛けで示している。図15の例では、条件「A,B,C」以外の条件の重みの総和を計算した結果、条件「E」の重みの総和が最も大きくなっている。
図14および図15に示したように、条件に該当するか否かについて、ユーザから回答が得られるごとに、回答に応じて事例リスト61と条件リスト62から、一部の条件が、重みまたは重みの総和の計算対象から除外されていく。その結果、該当する可能性のある事例に含まれない条件に関する質問が、端末装置31に表示されることが抑止され、処理の効率化が図られている。しかも回答があるごとに、表示順の最適化を図っているため、ユーザが目的の事例を検索結果として得るまでの質問数が少なくて済む。
次に、図16〜図20を参照して、端末装置31に表示される検索画面の遷移例について説明する。なお、図16〜図20の例では、図11に示す順番で条件が表示される場合において、最初に条件「A」に該当しないと回答し、次の条件「E」に該当すると回答し、最後に条件「G」に該当すると回答するものとする。
図16は、現象入力画面の一例を示す図である。ユーザが端末装置31を用いて、トラブルシューティング用のナレッジ検索のためにナレッジシステム100にアクセスすると、まず図16に示すような現象入力画面70が端末装置31に表示される。
現象入力画面70には、現象入力用のテキストボックス71と、検索画面移行用のボタン72とが表示される。現象入力画面70が表示されると、ユーザは、テキストボックス71内に、解決しなければならない現象を示す文字列を入力する。例えばユーザは、問題の現象に伴って出力されたエラーメッセージの内容を、テキストボックス71に入力する。そしてユーザがボタン72を押下すると、端末装置31からナレッジシステム100に、テキストボックス71に入力された文字列が、現象を示す情報として送信される。
するとナレッジシステム100において、入力された現象に基づいて、トラブル対処の事例が検索される。この検索により、第1〜第4の事例が検出されたものとする。ナレッジシステム100は、検出した事例のいずれかに含まれる条件の重みの総和を計算し、重みの総和が最も大きい条件を、表示対象の条件として決定する。ここでは、表示対象の条件が条件「A」に決定されたものとする。この場合、端末装置31には、条件「A」の条件表示画面が表示される。
図17は、条件「A」の条件表示画面の一例を示す図である。条件表示画面80には、前の画面に戻るためのボタン81、現象表示部82、条件表示部83、回答入力用の2つのボタン84、85、選択済み条件表示部86、候補事例表示部87,88,・・・が含まれる。
条件表示画面80の状態でボタン81が押下されると、端末装置31には、図16に示した現象入力画面70が表示される。現象表示部82には、ユーザが現象入力画面70のテキストボックス71に入力した、現象を示す文字列が表示される。条件表示部83には、表示対象として決定された条件が表示される。図17の例では、条件「A」を示す文字列(例えば「A_OS環境である」という文字列)が表示される。回答入力用のボタン84,85のうち、ボタン84は、条件に該当する旨の回答用のボタンである。ボタン85は、条件に該当しない旨の回答用のボタンである。選択済み条件表示部86は、既に回答を選択済みの条件が表示される。図17の例では、回答を選択済みの条件が存在しないため、選択済み条件表示部86は空欄となっている。候補事例表示部87,88,・・・には、ユーザのシステムで発生した現象への対応策の候補となる事例が表示される。図17の段階では、現象に基づく検索によって該当したすべての事例が、対応策の候補の事例である。
ここで、ユーザは、条件「A」に該当しないことを示すボタン85を選択したものとする。すると、条件に該当しないことを示す情報が、端末装置31からナレッジシステム100に送信される。ナレッジシステム100では、条件「A」に非該当であることから、条件「D,E,F,G」の重みの総和が計算され、最も重みの総和の高い条件「E」が、表示対象の条件に決定される(図11参照)。この場合、端末装置31には、条件「E」の条件表示画面が表示される。
図18は、条件「E」の条件表示画面の一例を示す図である。条件表示画面80aでは、図17に示した条件表示画面80と比べて、条件表示部83の内容が、条件「E」を示す文字列に変更されている。また条件表示画面80aの選択済み条件表示部86には、条件「A」の回答が選択済みであること、および選択された回答が「非該当」であることが示されている。さらに第1の事例は、対応策の候補から除外されているため、候補事例表示部87,88,・・・には、第1の事例以外の各事例の情報が表示されている。
ここで、ユーザは、条件「E」に該当することを示すボタン84を選択したものとする。すると、条件に該当することを示す情報が、端末装置31からナレッジシステム100に送信される。ナレッジシステム100では、条件「E」に該当することから、条件「D,F,G」の重みの総和が計算され、最も重みの総和の高い条件「G」が、表示対象の条件に決定される(図11参照)。この場合、端末装置31には、条件「G」の条件表示画面が表示される。
図19は、条件「G」の条件表示画面の一例を示す図である。条件表示画面80bでは、図18に示した条件表示画面80aと比べて、条件表示部83の内容が、条件「G」を示す文字列に変更されている。また条件表示画面80bの選択済み条件表示部86には、条件「A」について「非該当」の回答が選択済みであり、条件「E」について「該当」の回答が選択済みであることが示されている。さらに第1の事例は、対応策の候補から除外されているため、候補事例表示部87,88,・・・には、第1の事例以外の各事例の情報が表示されている。
ここで、ユーザは、条件「G」に該当することを示すボタン84を選択したものとする。すると、条件に該当することを示す情報が、端末装置31からナレッジシステム100に送信される。ナレッジシステム100では、条件「E,G」に該当することから、第4の事例のすべての条件に該当したと判断される。すると端末装置31には、第4の事例を示す検索結果表示画面が表示される。
図20は、検索結果表示画面の一例を示す図である。検索結果表示画面90には、問題が解決したか否かの入力用のボタン91、前の画面に戻るためのボタン92、現象表示部93、絞り込み条件表示部94、および事例表示部95が含まれる。
ユーザは、表示された事例を参考にして対処することで、システムの問題が解決した場合、解決した旨のボタン91を押下する。すると端末装置31は、問題が解決したことを示す情報を、ナレッジシステム100に送信する。ナレッジシステム100は、例えば、事例に対応づけて解決案件数を管理しており、問題が解決したことを示す情報を受信すると、提示した事例に対応する解決案件数をカウントアップする。
また検索結果表示画面90の状態でボタン92が押下されると、端末装置31には、図19に示した条件表示画面80bが表示される。現象表示部93には、ユーザが現象入力画面70のテキストボックス71に入力した、現象を示す文字列が表示される。絞り込み条件表示部94には、既に回答を選択済みの条件が、検索の絞り込み条件として表示される。例えば図20では、絞り込み条件表示部94に、条件「A」について「非該当」の回答が選択済みであり、条件「E」について「該当」の回答が選択済みであり、条件「G」について「該当」の回答が選択済みであることが示されている。
事例表示部95には、ユーザにより該当すると入力された条件に応じて1つに絞り込まれた事例が表示される。図20の例では、事例表示部95には、特定するための条件として条件「E,G」が指定された第4の事例が表示されている。
このようにして、ユーザは、提示された条件に該当するか否かを入力するだけで、適切な事例を参照することができる。しかも、提示される条件数が最小限に抑えられているため、ユーザの負担も少なくて済む。
〔その他の実施の形態〕
第2の実施の形態では、システムのトラブルに対する対処方法についてのナレッジを検索する例を示したが、第2の実施の形態に示した検索方法は、他のナレッジの検索にも利用できる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。