【文献】
津田祐輝,外3名,FAQ作成支援のための分類用閾値自動調節機構を組み入れた問い合わせメール分類方式,電気学会論文誌C 電子・情報・システム部門誌,日本,(社)電気学会,2011年11月 1日,第131巻,第111号,p.1925-1932,ISSN 0385-4221
【文献】
田中崇裕,外2名,自己組織化マップを用いた自由記述形式アンケートの内容分析のための単語クラスタリングに関する検討,電子情報通信学会技術研究報告 NC2010−196 ニューロコンピューティング,日本,社団法人電子情報通信学会,2011年 2月28日,第110巻,第461号,p.407-410,ISSN 0913-5685
【文献】
広瀬千夏,外2名,背景記事集合の類似度に基づく新聞記事のクラスタリング,電子情報通信学会技術研究報告 NLC2005−110 言語理解とコミュニケーション,日本,社団法人電子情報通信学会,2006年 1月26日,第105巻,第594号,p.25-30,ISSN 0913-5685
(58)【調査した分野】(Int.Cl.,DB名)
前記クラスタリング手段は、前記各メッセージにおいて所定のフィールドパターンに合致する部分を、前記メッセージ間で互いに類似するフィールドとみなして前記メッセージ群を前記クラスタに分類し、
前記フィールド解析手段は、前記フィールドパターンに合致する値を持つフィールドを、不変部分として識別することを特徴とする請求項1から請求項3のいずれか1項に記載のメッセージ分析装置。
【発明を実施するための形態】
【0012】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【0013】
(第1の実施の形態)
本発明の第1の実施の形態としてのメッセージ分析装置1の機能ブロック構成を
図1に示す。
図1において、メッセージ分析装置1は、クラスタリング部11と、フィールド解析部12と、パターン生成部13とを備える。メッセージ分析装置1は、メッセージ群を分析してその内容や傾向を示すメッセージパターンを生成する装置である。
【0014】
ここで、メッセージとは、装置やサービスまたは人間等によって記録される情報の単位をいう。例えば、メッセージは、装置やサービス等の動作状況や利用状況の履歴を表すログデータに含まれる情報の単位であってもよい。この場合、メッセージは、サーバやクライアントといったIT(Information Technology)システムの構成要素によって、所定のタイミング毎に生成され、ログデータに追加される単位の情報であってもよい。この場合、メッセージは、そのメッセージが出力された時刻や出力元の名称等を含んでいることが多い。また、この場合、メッセージは、ログデータを表すファイルに含まれる1行分のテキストデータであることが多い。ただし、1つのメッセージは、複数行にわたっていてもよい。あるいは、複数のメッセージが、1行に含まれていてもよい。例えば、ログデータを表すファイルにおいて、複数行に渡る1つのメッセージに含まれる改行コードを空白文字に変換する前処理や、1行に含まれる複数のメッセージ間の空白文字を改行コードに変換する前処理等が行われることを想定してもよい。この場合、メッセージは、ログデータを表すファイルの1行によって構成されるとみなすことができる。
【0015】
その他、メッセージは、ログデータに含まれる情報に限らず、任意のサービスに対して入力装置やネットワークを介して入力され、記録される情報の単位であってもよい。
【0016】
また、メッセージは、1つ以上のフィールドによって構成される。フィールドは、例えば、セパレータによって区切られた情報であってもよい。例えば、「April 1 13:31:52 logging start」というメッセージは、空白をセパレータとして、5つのフィールド「April」、「1」、「13:31:52」、「logging」、「start」から構成される。あるいは、日本語で構成されるメッセージのように、空白等のセパレータで区切られていないメッセージがある。このようなメッセージは、単語や形態素、カタカナやひらがな、漢字といった文字種で分離する前処理により、1つ以上のフィールドによって構成されるとみなすことができる。
【0017】
つまり、本実施の形態におけるメッセージが、1つ以上のフィールドから構成されるという前提は、本実施の形態において処理可能なメッセージの種類を限定するものではない。どのような種類のメッセージであっても、必要に応じて前処理を施すことにより、1つ以上のフィールドから構成されるものとして処理可能である。
【0018】
また、メッセージに対する前処理として、1つのフィールドを複数のフィールドに分割する処理も考えられる。例えば、あるフィールドの値が、あるメッセージでは「abc&def」であり、他のメッセージでは「abc&ghi」であったとする。また、メッセージの内容について、abc、defおよびghiが個別の対象を表すことが定義されていたとする。このような場合、「abc&def」は、1つのフィールドではなく、「abc」、「&」および「def」のように3つのフィールドとして処理されるのに適している。メッセージに対する前処理には、このような処理が含まれ得る。
【0019】
本実施の形態では、必要に応じて上述した前処理が施された1つ以上のフィールドからなるメッセージの集合(対象のメッセージ群)が、メッセージ分析装置1に対して入力されるものとする。例えば、対象のメッセージ群は、各メッセージについてそのフィールドの値(文字列、数値、記号等)をテーブル形式で表した情報として、あらかじめ記憶装置に格納されていてもよい。
【0020】
次に、メッセージ分析装置1のハードウェア構成の一例を
図2に示す。
図2において、メッセージ分析装置1は、CPU(Central Processing Unit)1001、メモリ1002、出力装置1003、および、入力装置1004を含む。メモリ1002は、RAM(Random Access Memory)、ROM(Read Only Memory)、補助記憶装置(ハードディスク等)等によって構成される。出力装置1003は、ディスプレイ装置やプリンタ等のように、情報を出力する装置によって構成される。入力装置1004は、キーボードやマウス等のように、ユーザ操作の入力を受け付ける装置によって構成される。この場合、メッセージ分析装置1の各機能ブロックは、メモリ1002に格納されるコンピュータ・プログラムを読み込んで実行するとともに出力装置1003、入力装置1004の各部を制御するCPU1001によって構成される。なお、メッセージ分析装置1およびその各機能ブロックのハードウェア構成は、上述の構成に限定されない。
【0021】
次に、メッセージ分析装置1の各機能ブロックの詳細について説明する。
【0022】
クラスタリング部11は、対象のメッセージ群を、メッセージ間の類似性に基づいてクラスタに分類する。クラスタ数は、メッセージ数以下となる。なお、対象のメッセージ群は、前述のように、必要に応じて前処理を施された、1つ以上のフィールドからなるメッセージの集合である。例えば、クラスタリング部11は、メモリ1002にあらかじめ記憶された対象のメッセージ群を取得して、クラスタに分類してもよい。複数の情報をそれらの間の類似性に基づいて分類する手法には、公知の技術を採用可能である。
【0023】
フィールド解析部12は、クラスタ内のメッセージ群を構成する各フィールドについて、その値が変異している変数部分と、変異していない不変部分とを識別する。具体的には、フィールド解析部12は、クラスタ内の全てのメッセージに渡って、その値が一致しているフィールドを不変部分として識別してもよい。また、フィールド解析部12は、クラスタ内の全てのメッセージのうち、少なくともいずれかで値が異なるフィールドを変数部分として識別してもよい。
【0024】
パターン生成部13は、フィールドの変数部分と不変部分とに基づいて、クラスタ内のメッセージ群に共通するメッセージパターンを生成する。例えば、パターン生成部13は、変数部分のフィールドを所定の記号(例えば、アスタリスク「*」)で表した情報と、不変部分のフィールドをその値で表した情報とを、フィールドの出現順に並べた情報を、共通パターンとして生成してもよい。そして、パターン生成部13は、そのクラスタに含まれるメッセージ群において、変数部分のフィールドがとる値のリストを抽出する。以降、変数部分として識別されたフィールドを変数と呼び、変数がとり得る値を引数と呼ぶことにする。そして、パターン生成部13は、各クラスタについて、共通パターンおよび各変数の引数のリストを、メッセージパターンとして生成すればよい。
【0025】
以上のように構成されたメッセージ分析装置1の動作について、
図3を参照して説明する。
【0026】
まず、クラスタリング部11は、対象のメッセージ群を、メッセージ間の類似性に基づいてクラスタに分類する(ステップS1)。
【0027】
次に、フィールド解析部12は、ステップS1で生成された各クラスタについて、クラスタ内のメッセージ群を構成する各フィールドのうち、その値が変異している変数部分と、変異していない不変部分とを識別する(ステップS2)。
【0028】
次に、パターン生成部13は、各クラスタについて、変数部分と不変部分とに基づいて、クラスタ内のメッセージ群に共通するメッセージパターンを生成する(ステップS3)。
【0029】
前述のように、パターン生成部13は、メッセージパターンとして、共通パターンおよび変数の引数のリストを生成してもよい。
【0030】
以上で、メッセージ分析装置1は、動作を終了する。
【0031】
次に、本発明の第1の実施の形態の効果について述べる。
【0032】
本発明の第1の実施の形態としてのメッセージ分析装置は、メッセージ間で変異する部分をあらかじめ定義する必要なく、多数のメッセージの内容や傾向を表す情報を提示することができる。
【0033】
その理由について述べる。本実施の形態では、クラスタリング部が、メッセージ群を、メッセージ間の類似性に基づいてクラスタに分類する。そして、フィールド解析部が、クラスタ内のメッセージ群を構成する各フィールドについて、その値が変異している変数部分と、変異していない不変部分とを識別する。そして、パターン生成部が、フィールドの変数部分と不変部分とに基づいて、クラスタ内のメッセージ群に共通するメッセージパターンを生成するからである。
【0034】
このように、本実施の形態は、メッセージ群において変異する部分の定義を必要とせずに、変異部分および不変部分を抽出可能である。これにより、本実施の形態は、事前の変数定義がなくても、類似するメッセージ群を、それらの間で不変の部分と変異する部分とを認識可能に利用者に提示することができる。その結果、本実施の形態を利用する利用者は、大量のメッセージ群の内容や傾向をより容易に把握することができる。
【0035】
(第2の実施の形態)
次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第1の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
【0036】
まず、本発明の第2の実施の形態としてのメッセージ分析装置2の機能ブロック構成を
図4に示す。
図4において、メッセージ分析装置2は、本発明の第1の実施の形態としてのメッセージ分析装置1に対して、次の点が異なる。すなわち、メッセージ分析装置2は、クラスタリング部11に替えてクラスタリング部21と、フィールド解析部12に替えてフィールド解析部22と、パターン生成部13に替えてパターン生成部23とを備え、さらに、クラスタ類似性判定部24を備える。なお、メッセージ分析装置2およびその各機能ブロックは、
図2を参照して説明した本発明の第1の実施の形態と同一のハードウェア要素によって構成可能である。ただし、メッセージ分析装置2および各機能ブロックのハードウェア構成は、上述の構成に限定されない。
【0037】
次に、メッセージ分析装置2の各機能ブロックの詳細について説明する。
【0038】
クラスタリング部21は、あるメッセージと、そのメッセージに対して類似性が所定条件を満たす他のメッセージとを、同一クラスタに分類する。
【0039】
例えば、クラスタリング部21は、2つのメッセージ間の類似性として、各メッセージを構成するフィールド数に対して一致するフィールド数の割合に基づく値(類似度)を用いてもよい。この場合、類似度が高いほど、2つのメッセージ間の類似性は高くなる。例えば、2つのメッセージが共に10個のフィールドで構成され、そのうちの7個が一致する場合、これらのメッセージ間の類似度は、7/10=0.7と算出される。この場合、クラスタリング部21は、あるメッセージと、そのメッセージに対して類似度が閾値以上の他の各メッセージとを、同一クラスタに分類してもよい。
【0040】
あるいは、クラスタリング部21は、2つのメッセージ間の類似性として、各メッセージを構成するフィールド数に対して一致しないフィールド数の割合に基づく値(距離)を用いてもよい。この場合、距離が大きいほど、2つのメッセージ間の類似性は低くなる。例えば、2つのメッセージが共に10個のフィールドで構成され、そのうちの3個が不一致の場合、これらのメッセージ間の距離は、3/10=0.3と算出される。この場合、クラスタリング部21は、あるメッセージと、そのメッセージに対して距離が閾値以下の他の各メッセージとを、同一クラスタに分類してもよい。
【0041】
なお、2つのメッセージのフィールド数が異なる場合、類似度または距離を算出する際の分母としては、多い方または少ない方のいずれかのフィールド数を採用することを、あらかじめ定めておけばよい。例えば、多い方のフィールド数を採用すると定められていることを想定する。このとき、9個のフィールドからなるメッセージと、10個のフィールドからなるメッセージとの間で、6個のフィールドが等しいとする。この場合、これらのメッセージ間の類似度は、前述の計算手法の場合、6/10=0.60と算出される。また、これらのメッセージ間の距離は、前述の計算手法の場合、4/10=0.40と算出される。
【0042】
また、クラスタリング部21は、各メッセージにおいて所定のフィールドパターンに合致する部分を、メッセージ間で互いに類似するフィールドとみなして、メッセージ群をクラスタに分類する。ここで、所定のフィールドパターンとは、メッセージにおいて、値が異なっていても類似するフィールドであるとみなすことが可能な部分がとり得る値のパターンである。そのようなフィールドパターンは、あらかじめ定義されていてもよい。例えば、日付や日時等は、値が異なっていても類似するフィールドであるとみなすことができる。そこで、クラスタリング部21は、日付形式や日時形式に合致するフィールドパターンをあらかじめ記憶しておいてもよい。そして、クラスタリング部21は、上述の類似度や距離を算出する際に、これらのフィールドパターンに合致する部分については、値が異なっていても一致するフィールドであるとして算出を行えばよい。
【0043】
クラスタ類似性判定部24は、各クラスタについて、そのクラスタにおけるメッセージ群全体の類似性が所定条件を満たすか否かを判定する。以降、クラスタにおけるメッセージ群全体の類似性を、単に全体の類似性とも記載する。例えば、クラスタ類似性判定部24は、クラスタ内におけるメッセージ群を構成するフィールドのうち、不変部分を構成するフィールドの割合を、全体の類似性として用いてもよい。この場合、所定条件とは、全体の類似性を表す値が閾値以上であることであってもよい。また、全体の類似性を表す値の閾値は、クラスタリング部21によって2つのメッセージ間の類似性の判断に用いられた類似度の閾値と同一の値であってもよい。
【0044】
具体的には、クラスタ類似性判定部24は、クラスタ内における不変部分を構成するフィールドの個数を、クラスタ内のメッセージのうちの最大フィールド数で除した値を、全体の類似性を表す値として算出してもよい。そして、この場合、クラスタ類似性判定部24は、全体の類似性を表す値が閾値以上であるか否かを判定する。
【0045】
ここで、クラスタリング部21によって類似度または距離の閾値に基づき生成されたクラスタであっても、全体の類似性が所定条件を満たさない場合がある。これは、分類の際に基準としたメッセージに対して類似性があると判定された他の各メッセージによって、変異するフィールドが大きく異なる場合があるためである。そのようなクラスタは、メッセージパターンを生成する分類として適切ではないことが多い。そこで、クラスタ類似性判定部24は、メッセージパターンの生成対象として適切でないクラスタを除外するために備えられた機能ブロックである。
【0046】
なお、クラスタ類似性判定部24によって全体の類似性が所定条件を満たさないと判定されたクラスタがあっても、全体の類似性が所定条件を満たすと判定された他のクラスタを対象として、後述のパターン生成部23が処理を行ってもよい。あるいは、クラスタ類似性判定部24によって全体の類似性が所定条件を満たさないと判定されたクラスタがある場合、クラスタリング部21が、類似度の閾値を変更して再度クラスタリング処理をやり直してもよい。
【0047】
その場合、閾値の変更方法としては、閾値を上げる(大きくする)方法と、下げる(小さくする)方法がある。例えば、類似度に関する閾値を上げると、実際に出力されているメッセージ数に近い多数の細かいクラスタが得られる。つまり、最終的に得られるメッセージパターン数は、メッセージ数に対してより近くなる。また、類似度に関する閾値を下げると、実際に出力されているメッセージ数より少数の粗いクラスタが得られる。つまり、最終的に得られるメッセージパターン数は、メッセージ数に比べてより少なくなる。閾値の変更方法は、メッセージパターンの用途、メッセージ量、メッセージパターンの種類数等に応じて決定されてもよい。
【0048】
パターン生成部23は、クラスタ類似性判定部24によって全体の類似性が所定条件を満たすと判定されたクラスタについて、本発明の第1の実施の形態におけるパターン生成部13と同様にメッセージパターンを生成する。
【0049】
以上のように構成されたメッセージ分析装置2の動作について、
図5を参照して説明する。
【0050】
まず、クラスタリング部21は、メッセージ群をクラスタリングする際の閾値を取得する(ステップS21)。例えば、クラスタリング部21は、入力装置1004を介して閾値を取得してもよい。
【0051】
次に、クラスタリング部21は、対象のメッセージ群のうち、あるメッセージと、そのメッセージに対して類似度が閾値以上または距離が閾値以下の他の各メッセージとを、同一のクラスタに分類する(ステップS22)。
【0052】
具体的には、前述のように、クラスタリング部21は、メッセージの集合からメッセージを1つ取り出し、このメッセージと、他の各メッセージとの間でそれぞれ類似度(または距離)を計算する。そして、クラスタリング部21は、取り出したメッセージと、そのメッセージに対して閾値以上の類似度(または閾値以下の距離)が算出された各メッセージとによって、1つのクラスタを形成すればよい。
【0053】
そして、クラスタリング部21は、1つのクラスタを算出したのち、まだ分類していない残りのメッセージについて同様の処理を行い、別のクラスタを形成する。そして、メッセージ分析装置2は、各クラスタについて、ステップS23〜S27の処理を行う。
【0054】
なお、メッセージ分析装置2は、まず全てのメッセージをいずれかのクラスタに分類してから、各クラスタについてステップS23〜S27の処理を繰り返してもよい。あるいは、メッセージ分析装置2は、1つのクラスタを形成する度にそのクラスタについてステップS23〜S27の処理を実行することを繰り返してもよい。
【0055】
ここでは、まず、フィールド解析部22は、クラスタ内の全てのメッセージに渡って値が一致しているフィールドと、フィールドパターンに一致するフィールドとを、不変部分として識別する。また、フィールド解析部22は、少なくとも1つのメッセージにおいて値が異なるフィールドを、変数部分として識別する(ステップS23)。
【0056】
次に、クラスタ類似性判定部24は、このクラスタにおける全体の類似性が、所定条件を満たすか否かを判断する(ステップS24)。
【0057】
前述のように、クラスタ類似性判定部24は、このクラスタ中の不変部分を構成するフィールドの個数を最大フィールド数で除した値を、クラスタにおける全体の類似性を表す値として算出してもよい。そして、クラスタ類似性判定部24は、このクラスタにおける全体の類似性を表す値が、閾値を超えるか否かを判断すればよい。
【0058】
もし、このクラスタ全体の類似性が所定条件を満たさないと判断された場合、メッセージ分析装置2は、当該クラスタに関してメッセージパターンの生成に失敗した旨を出力して、処理を終了する。
【0059】
一方、このクラスタ全体の類似性が所定条件を満たすと判断された場合、パターン生成部23は、このクラスタの共通パターンを生成する(ステップS25)。
【0060】
具体的には、パターン生成部23は、変数部分のフィールドを所定の記号(例えばアスタリスク「*」)で表した情報と、不変部分のフィールドを表す情報とを、フィールドの出現順に並べた情報を共通パターンとして生成する。なお、パターン生成部23は、不変部分のうちフィールドパターンに一致するフィールドについては、その値の代わりに、所定の文字列を用いて共通パターンを生成してもよい。例えば、パターン生成部23は、日付のフィールドパターンに一致するフィールドを「(Date)」と表し、時刻のフィールドパターンに一致するフィールドを「(Time)」と表して、共通パターンを生成してもよい。
【0061】
次に、パターン生成部23は、共通パターンのうち変数部分のフィールドについて、引数のリストを生成する(ステップS26)。
【0062】
そして、パターン生成部23は、共通パターンおよび各変数部分の引数のリストを、このクラスタのメッセージパターンとして出力する(ステップS27)。なお、出力先は、出力装置1003、メモリ1002、または、ネットワークを介して接続された他の装置等であってもよい。
【0063】
以上で、メッセージ分析装置2は、動作を終了する。
【0064】
次に、メッセージ分析装置2の動作を具体例で示す。
【0065】
この具体例では、メッセージ分析装置2は、メッセージ間の類似性の判断に前述の類似度を用いるものとする。
【0066】
ここでは、まず、クラスタリング部21は、類似度の閾値として0.6を取得する(ステップS21)。
【0067】
次に、クラスタリング部21は、対象のログメッセージ群のうち、あるメッセージと、そのメッセージに対する他の各メッセージとの類似度を算出することにより、
図6に示すクラスタAおよびクラスタBを形成する(ステップS22)。
【0068】
図6において、各行は、1つのメッセージを表す。また、点線の楕円は、フィールドを示している。この例では、日付および時刻を表すフィールドパターンが定められている。クラスタリング部21は、日付のフィールドパターンに一致している部分を日付フィールドとして、メッセージ間において互いに一致するものとみなす。また、クラスタリング部21は、時刻のフィールドパターンに一致している部分を時刻フィールドとして、メッセージ間において互いに一致するものとみなす。この場合、クラスタAでは、1行目のメッセージに対して、2行目のメッセージは、9つのフィールドのうち7つが一致している。したがって、クラスタリング部21は、1、2行目のメッセージ間の類似度として、7/9≒0.77を算出する。このように、クラスタリング部21は、1行目のメッセージと、1行目のメッセージに対して類似度が0.6以上の2〜4行目の各メッセージとを、クラスタAとして分類している。クラスタBについても同様である。
【0069】
次に、メッセージ分析装置2は、クラスタAについて、ステップS23〜S27の処理を行う。
【0070】
ここでは、フィールド解析部22は、クラスタAについて、不変部分のフィールドと、変数部分のフィールドとを識別し、
図7に示す識別処理結果を生成する(ステップS23)。
【0071】
図7において、まず、フィールド解析部22は、識別処理結果を格納する表を作成する。識別処理結果を格納する表は、1列目(最も左の列)に、フィールドに付与したIDを含む。また、この表は、1行目(最も上の行)に、メッセージの識別情報を含む。また、この表は、2列目以降の各列に、各メッセージの解析結果を格納可能となっている。
【0072】
次に、フィールド解析部22は、クラスタAに含まれるメッセージの1つ(一例としてMsg1134)を代表メッセージとして識別処理を行う。まず、フィールド解析部22は、代表メッセージMsg1134を構成する各フィールドの値を、
図7の表の2列目に格納する。ただし、フィールド解析部22は、日付のフィールドパターンに一致する日付フィールドについては、値の代わりに、日付を表す情報「(Date)」を格納する。また、フィールド解析部22は、時刻のフィールドパターンに一致する時刻フィールドについては、値の代わりに、時刻を表す情報「(Time)」を格納する。
【0073】
次に、フィールド解析部22は、クラスタAに含まれる次のメッセージMsg1211を構成する各フィールドの値のうち、代表メッセージと値が異なるフィールドについて、3列目にその値を格納する。ただし、フィールド解析部22は、日付フィールドおよび時刻フィールドについては、代表メッセージと値が一致するものとして、値を格納しない。そして、フィールド解析部22は、クラスタAの残りのメッセージMsg2091およびMsg4625についても同様に、代表メッセージと値が異なるフィールドについてその値を4列目および5列目に格納する。このようにして、フィールド解析部22は、クラスタAの全てのメッセージについて表に値を格納する処理を行い、
図7の表を生成する。
【0074】
次に、フィールド解析部22は、
図7の表の3列目以降において少なくとも1つの列に値が格納されている4個のフィールド(フィールドID3、7、9、10)を、クラスタAの変数部分として識別する。また、フィールド解析部22は、
図7の表の3列目以降において値が格納されていない6個のフィールド(フィールドID1、2、4、5、6、8)を、クラスタAの不変部分として識別する。
【0075】
次に、クラスタ類似性判定部24は、クラスタAにおける全体の類似性を表す値が、閾値以上であるか否かを判断する(ステップS24)。
【0076】
図7を参照すると、クラスタAでは、Msg2091を構成するフィールド数が最大で10個である。また、ステップS23において、6個のフィールド(フィールドID1、2、4、5、6、8)が、クラスタAの不変部分として識別されている。したがって、クラスタ類似性判定部24は、クラスタAにおける全体の類似性を表す値として、6/10=0.60を算出する。ここで、閾値が0.6であるため、クラスタ類似性判定部24は、クラスタAにおける全体の類似性を表す値は、閾値以上であると判断する。
【0077】
そこで、パターン生成部23は、クラスタAの共通パターンを生成するため、不変部分のフィールドID1、2、4、5、6、8をその値またはフィールドパターンを表す情報で表現する。また、パターン生成部23は、変数部分のフィールドID3、7、9、10を所定の記号「*」で表す。そして、パターン生成部23は、これらの情報をフィールドIDの順に並べて、クラスタAの共通パターン「(Date) (Time) * process abc [ * ] * *」を生成する(ステップS25)。
【0078】
次に、パターン生成部23は、クラスタAの共通パターンのうち変数部分のフィールドID3,7,9,10について、それぞれ引数のリストを生成する(ステップS26)。
【0079】
例えば、パターン生成部23は、
図7の表におけるフィールドID3の行を参照することにより、フィールドID3の引数のリスト「host01、host02、host03」を生成する。同様に、パターン生成部23は、
図7の表におけるフィールドID7、9、10の行をそれぞれ参照することにより、引数のリストを生成する。
【0080】
そして、パターン生成部23は、クラスタAの共通パターンおよび各変数部分の引数のリストを、メッセージパターンとして出力する(ステップS27)。
【0081】
そして、メッセージ分析装置2は、クラスタBについてもステップS23〜S27を実行する。
【0083】
次に、本発明の第2の実施の形態の効果について述べる。
【0084】
本発明の第2の実施の形態としてのメッセージ分析装置は、大量のメッセージを、より少数のメッセージパターンの集合として提示することができ、メッセージの内容や傾向を利用者に対してより素早く把握させるよう支援することができる。
【0085】
その理由について述べる。本実施の形態では、クラスタリング部が、メッセージ中の所定のフィールドパターンに一致する部分については類似するフィールドとみなしてクラスタリングを行うからである。また、フィールド解析部が、所定のフィールドパターンに一致する部分については不変部分とみなして共通メッセージを生成するからである。
【0086】
これにより、本実施の形態は、複数のメッセージ間における軽微な相違については類似するものとみなすことができ、軽微な相違も変数部分とみなす場合と比べて、より少数の共通するメッセージパターンを生成することができる。
【0087】
また、他の理由について述べる。本実施の形態では、クラスタ類似性判定部が、クラスタにおける全体の類似性が所定条件を満たすか否かを判断するからである。そして、パターン生成部が、全体の類似性が所定条件を満たすクラスタについて、メッセージパターンを生成するからである。
【0088】
これにより、本実施の形態は、全体の類似性が適正なクラスタについてメッセージパターンを生成するので、メッセージ群の内容と傾向をより精度よく反映したメッセージパターンを提示することができる。
【0089】
(第3の実施の形態)
次に、本発明の第3の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第1および第2の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
【0090】
まず、本発明の第3の実施の形態としてのメッセージ分析装置3の機能ブロック構成を
図8に示す。
図8において、メッセージ分析装置3は、本発明の第2の実施の形態としてのメッセージ分析装置2に対して、さらに、クラスタ細分化部35を備える点が異なる。なお、メッセージ分析装置3およびその各機能ブロックは、
図2を参照して説明した本発明の第1の実施の形態と同一のハードウェア要素によって構成可能である。ただし、メッセージ分析装置3および各機能ブロックのハードウェア構成は、上述の構成に限定されない。
【0091】
クラスタ細分化部35は、クラスタリング部21によって生成されたクラスタ内のメッセージ群を、変数部分の重要性に基づいてさらに分割したクラスタを生成する。このとき、クラスタ細分化部35は、変数部分の重要性を、変数部分を構成するフィールドの値の品詞に基づいて判定する。詳細には、クラスタ細分化部35は、変数部分を構成するフィールドの値が文字列として所定の品詞である場合には、そのフィールドが重要であるものとして、その値の違いに基づいてクラスタを細分化する。
【0092】
具体的には、クラスタ細分化部35は、クラスタ内において少なくとも1つのメッセージにおいて値が変異しているフィールドを特定する。そして、クラスタ細分化部35は、特定したフィールドのとる値の文字列としての品詞が、所定の品詞であるか否かに基づいて、そのフィールドの重要性を判定する。なお、クラスタ細分化部35は、特定したフィールドについて、クラスタ内のいずれかのメッセージ(例えば、代表メッセージ)における値に基づき品詞の判定を行ってもよい。また、クラスタ細分化部35は、文字列(単語)の品詞を記憶した辞書を用いて、品詞の判定を行えばよい。そのような辞書は、例えば、メモリ1002にあらかじめ記憶されていてもよい。所定の品詞としては、例えば、動詞、副詞、および、形容詞等が定められる。
【0093】
なお、クラスタの細分化により、分割前のクラスタでは変数部分として識別されていたフィールドのうち、重要であると判定されたフィールドは、分割後のクラスタでは不変部分として識別されることになる。
【0094】
以上のように構成されたメッセージ分析装置3の動作について、
図9を参照して説明する。
【0095】
まず、メッセージ分析装置3は、ステップS21〜S24まで本発明の第2の実施の形態と同様に動作して、形成したクラスタについてフィールドの解析を行い、全体の類似性が所定条件を満たすか否かを判定する。
【0096】
ここで、全体の類似性が所定条件を満たすと判定されたクラスタについて、クラスタ細分化部35は、変数部分のフィールドの値の品詞に基づいて、さらに細分化を行う(ステップS35)。
【0097】
具体的には、前述のように、クラスタ細分化部35は、変数部分を構成するフィールドの値が文字列であり所定の品詞である場合にはそのフィールドが重要であるものと判定する。そして、クラスタ細分化部35は、そのフィールドの値の違いに基づいて、クラスタを細分化する。
【0098】
次に、パターン生成部23は、細分化されたクラスタ、および、細分化されなかったクラスタのそれぞれについて、本発明の第2の実施の形態と同様にステップS25〜S27を実行する。ただし、パターン生成部23は、細分化されたクラスタについて、細分化の基準となったフィールドについては、不変部分としてその値を共通パターンに含める。これにより、パターン生成部23は、必要に応じて細分化された各クラスタについて、共通パターンおよびその変数部分の引数のリストを、メッセージパターンとして生成し出力する。
【0099】
以上で、メッセージ分析装置3は、動作を終了する。
【0100】
次に、メッセージ分析装置3の動作を具体例で示す。
【0101】
ここでは、クラスタリング部21により
図6に示すクラスタAおよびクラスタBが生成され、クラスタAについて
図7に示すフィールド解析結果が生成されているものとする(ステップS21〜S24)。
【0102】
次に、クラスタ細分化部35は、クラスタの細分化を行う(ステップS35)。
【0103】
具体的には、まず、クラスタ細分化部35は、
図7において変数部分であるフィールドID3、7、9、10のうち、代表メッセージMsg1134におけるフィールドID9の値「started」が所定の品詞(動詞)であると判定する。すなわち、クラスタ細分化部35は、フィールドID9は、変異する重要なフィールドであると判定する。
【0104】
一方、クラスタ細分化部35は、代表メッセージMsg1134におけるフィールドID3の値「host03」およびフィールドID7の値「3571」は、所定の品詞(動詞、副詞および形容詞)のいずれでもないと判定する。すなわち、クラスタ細分化部35は、フィールドID3およびフィールドID7は、変異する補助的なフィールドであると判定する。
【0105】
そこで、クラスタ細分化部35は、重要なフィールドであるフィールドID9の値に基づいて、クラスタAを細分化する。
図10に、クラスタAが細分化されたクラスタA1〜A3を示す。
図10に示すように、クラスタ細分化部35は、クラスタAに含まれているメッセージ群のうち、フィールドID9の値が「started」であるMsg1134、Msg1211を、クラスタA1に分類する。また、クラスタ細分化部35は、フィールドID9の値が「stopped」であるMsg2091を、クラスタA2に分類する。また、クラスタ細分化部35は、フィールドID9の値が「terminated」であるMsg4625を、クラスタA3に分類する。
【0106】
また、クラスタ細分化部35は、クラスタBについても同様に、変数部分のフィールドの値の品詞に基づいて分割を行い、細分化されたn個のクラスタB1〜Bn(nは1以上の整数)を生成したものとする。
【0107】
次に、パターン生成部23は、細分化されたクラスタA1〜A3およびクラスタB1〜Bnについて、メッセージパターンを生成する(ステップS25〜S27)。
【0108】
例えば、クラスタA1については、共通パターン「(Date) (Time) * process abc [ * ] started」が生成される。また、さらに、クラスタA1については、変数部分であるフィールドID3の引数のリスト「host03、host02」や、フィールドID7の引数のリスト「3571、2269」が生成される。
【0109】
また、クラスタA2については、共通パターン「(Date) (Time) host02 process abc [ 2269 ] stopped abnormally」が生成される。
【0110】
また、クラスタA3については、共通パターン「(Date) (Time) host03 process abc [ 3571 ] terminated」が生成される。
【0111】
このように、パターン生成部23は、クラスタA1〜A3において、分割の基準となったフィールドID9については、不変部分としてその値を共通パターンに含めている。また、この例では、クラスタA2およびA3において、分割前のクラスタAにおいて変数部分であったフィールドID3、7、10についてもそれぞれ値が同一となっている。そのため、パターン生成部23は、クラスタA2およびA3の共通パターンに、フィールドID3、7、10の値を含めている。ただし、パターン生成部23は、クラスタ細分化部35によって重要でないと判定された変数部分のフィールドについては、分割後のクラスタにおいて値が一致していない場合には、変数部分として共通パターンを生成することになる。
【0112】
パターン生成部23は、クラスタB1〜Bnについても、同様にしてメッセージパターンを生成する。
【0114】
次に、本発明の第3の実施の形態の効果について述べる。
【0115】
本発明の第3の実施の形態としてのメッセージ分析装置は、大量のメッセージをより少数のメッセージパターンの集合として提示する際に、メッセージ中で重要な情報の内容や傾向を、利用者により的確に把握させることができる。
【0116】
その理由について述べる。本実施の形態では、本発明の第2の実施の形態と同様の構成に加えて、クラスタ細分化部が、クラスタに含まれるメッセージ群を、変数部分のフィールドの重要性に基づいてさらに細分化するからである。そして、パターン生成部が、細分化されたクラスタについて、メッセージパターンを生成するからである。
【0117】
これにより、本実施の形態は、重要な変数部分の値をメッセージパターンに明示的に含め、補助的な変数部分の値を含めない。つまり、本実施の形態は、変異する部分のうち、主要な情報と補助的な情報とを区別することができる。その結果、本実施の形態は、変異する部分であっても主要な情報についてはその値をそのままメッセージパターンに反映させることができる。
【0118】
さらに、本発明の第3の実施の形態としてのメッセージ分析装置は、システムから出力される大量のメッセージをより少数のメッセージパターンの集合として提示する際に、システムの振舞いや状況等の内容や傾向を、利用者により的確に把握させることができる。
【0119】
ここで、システムによって記録される大量のメッセージ群の分析をおこなう分析者は、システム上でなにが起きているかを、メッセージ群から推測しなくてはならない。しかしながら、システムの振る舞いや状況を表すフィールドの部分が変数として認識されてしまうとメッセージパターンにその値が現れない。例えば、メッセージ中における動詞や副詞、形容詞といった品詞の部分は、システムの動作や状態を表し重要な意味を持つ可能性が高い。そのような部分の値がメッセージパターンに含まれていないと、解析者にとって、システムの動作や状況を把握しづらくなる。
【0120】
本実施の形態は、メッセージ中の変数部分のフィールドの値が所定の品詞(動詞、副詞および形容詞等)であれば、そのフィールドの値に基づいてクラスタを細分化する。これにより、本実施の形態は、メッセージ中において、システムの動作や状態等を表す重要な情報をそのままメッセージパターンに反映することになる。その結果、本実施の形態を利用する解析者は、メッセージ群の出力元のシステムの振舞いや状況等の重要な情報を、メッセージパターンに基づき正しく把握することが可能となる。
【0121】
(第4の実施の形態)
次に、本発明の第4の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第1から第3の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
【0122】
まず、本発明の第4の実施の形態としてのメッセージ分析装置4の機能ブロック構成を
図11に示す。
図11において、メッセージ分析装置4は、本発明の第3の実施の形態としてのメッセージ分析装置3に対して、クラスタ細分化部35に替えてクラスタ細分化部45を備える点が異なる。
【0123】
クラスタ細分化部45は、本発明の第3の実施の形態におけるクラスタ細分化部35と略同様に、クラスタリング部21によって生成されたクラスタ内のメッセージ群を、変数部分の重要性に基づいてさらに分割したクラスタを生成する。ただし、クラスタ細分化部45は、本発明の第3の実施の形態におけるクラスタ細分化部35に対して、変数部分の重要性を、変数部分を構成するフィールド間の相関に基づいて判定する点が異なる。
【0124】
詳細には、クラスタ細分化部45は、変数部分を構成する複数のフィールド間に相関が有る場合には、それらのフィールドが重要であるものとして、その値の違いに基づいてクラスタを細分化する。
【0125】
具体的には、クラスタ細分化部45は、クラスタ内において少なくとも1つのメッセージにおいて値が変異しているフィールドを特定する。そして、クラスタ細分化部45は、変異しているフィールドの組合せについて、引数間の共起関係を分析する。共起関係があるとは、ある変数(フィールド)の値(引数)と別の変数の値とがあるメッセージに同時に出現することである。
【0126】
そして、クラスタ細分化部45は、そのクラスタ内のメッセージ群において、ある変数の値と別の変数の値とが1対1に対応する場合、各フィールド間に相関があると判定してもよい。また、クラスタ細分化部45は、変数部分を構成するフィールドの組合せについて、引数間の共起確率を算出してもよい。この場合、クラスタ細分化部45は、引数間の共起確率がランダムな確率に比べて有意に高い(例えば、閾値以上である)場合に、フィールド間に相関があると判定してもよい。
【0127】
また、クラスタ細分化部45は、相関があると判定した各フィールドを重要であるとして、それらの値に基づきクラスタを細分化する。
【0128】
以上のように構成されたメッセージ分析装置4の動作について、
図12を参照して説明する。
【0129】
まず、メッセージ分析装置4は、ステップS21〜S24まで本発明の第2の実施の形態と同様に動作して、形成したクラスタについてフィールドの解析を行い、全体の類似性が所定条件を満たすか否かを判定する。
【0130】
次に、クラスタ細分化部45は、全体の類似性が所定条件を満たすと判定されたクラスタについて、変数部分を構成する複数のフィールド間の相関の有無に基づいて、さらに細分化を行う(ステップS45)。
【0131】
具体的には、前述のように、クラスタ細分化部45は、変数部分を構成する複数のフィールドの組合せについて、それらの引数が1対1に対応する(または引数間の共起確率が閾値以上である)場合には、それらのフィールドが重要であるものと判定する。そして、クラスタ細分化部45は、それらのフィールドの値の違いに基づいて、クラスタを細分化する。
【0132】
次に、メッセージ分析装置4は、本発明の第3の実施の形態と同様にステップS25〜S27までを実行する。これにより、パターン生成部23は、必要に応じて細分化された各クラスタについて、共通パターンおよびその変数部分の引数のリストを、メッセージパターンとして生成し出力する。
【0133】
以上で、メッセージ分析装置4は、動作を終了する。
【0134】
次に、メッセージ分析装置4の動作を具体例で示す。
【0135】
ここでは、クラスタリング部21により
図6に示すクラスタAおよびクラスタBが生成され、クラスタBについて
図13に示すフィールド解析結果が生成されているとする(ステップS21〜S24)。
【0136】
次に、クラスタ細分化部45は、フィールド間の相関に基づきクラスタの細分化を行う(ステップS45)。
【0137】
具体的には、まず、クラスタ細分化部45は、クラスタBにおいて変数部分であるフィールドID3、7、11の組合せについて、引数の共起関係を分析する。共起関係の分析結果を模式的に
図14に示す。
図14において、左図は、フィールドID3および7間での引数の共起関係を示している。また、右図は、フィールドID7および11間での引数の共起関係を示している。また、
図14において、矩形は各フィールドの値を示している。また、矩形間を結ぶ線は、共起関係を表している。
【0138】
図14に示したように、フィールドID3および7間では、その値の出現の仕方に規則性がみられない。一方、フィールドID7および11間では、その値が1対1に対応している。つまり、フィールドID7および11間では、引数間の共起確率が100%である。
【0139】
この場合、クラスタ細分化部45は、引数間の共起確率が100%であるフィールドID7および11間に相関があるとみなす。これにより、クラスタ細分化部45は、相関のあるフィールドID7および11を重要なフィールドであると判定する。そして、クラスタ細分化部45は、これらのフィールドID7および11の値(引数)に基づいて、クラスタBを細分化する。
図15に、クラスタBが細分化されたクラスタB1〜B3を示す。
図15に示すように、クラスタ細分化部45は、クラスタBに含まれているメッセージ群のうち、フィールドID7および11の値の組合せが「1197」および「reset」であるMsg327を、クラスタB1に分類する。また、クラスタ細分化部45は、フィールドID7および11の値の組合せが「1190」および「established」であるMsg388およびMsg819を、クラスタB2に分類する。また、クラスタ細分化部45は、フィールドID7および11の値の組合せが「1199」および「broken」であるMsg521を、クラスタB3に分類する。
【0140】
また、クラスタ細分化部45は、クラスタAについても同様に、変数部分のフィールド間の相関に基づいて分割を行い、細分化されたm個のクラスタA1〜Am(mは1以上の整数)を生成したものとする。
【0141】
次に、パターン生成部23は、細分化されたクラスタA1〜AmおよびクラスタB1〜B3について、メッセージパターンを生成する(ステップS25〜S27)。
【0142】
例えば、クラスタB1については、共通パターン「(Date) (Time) host03 < NC − 1197> network connection reset」が生成される。
【0143】
また、クラスタB2については、共通パターン「(Date) (Time) * < NC − 1190> network connection established」が生成される。また、さらに、クラスタB2については、変数部分であるフィールドID3の引数のリスト「host01、host02」が生成される。
【0144】
また、クラスタB3については、共通パターン「(Date) (Time) host02 < NC − 1199> network connection broken」が生成される。
【0145】
このように、パターン生成部23は、クラスタB1〜B3において、分割の基準となったフィールドID7および11については、不変部分としてその値を共通パターンに含めている。また、この例では、クラスタB1およびB3において、分割前のクラスタBにおいて変数部分であったフィールドID3についても値が同一となっている。そのため、パターン生成部23は、クラスタB1およびB3の共通パターンに、フィールドID3の値を含めている。ただし、パターン生成部23は、クラスタ細分化部45によって重要でないと判定された変数部分のフィールドについては、分割後のクラスタにおいて値が一致していない場合には、変数部分として共通パターンを生成することになる。
【0146】
パターン生成部23は、クラスタA1〜Amについても、同様にしてメッセージパターンを生成する。
【0148】
次に、本発明の第4の実施の形態の効果について述べる。
【0149】
本発明の第4の実施の形態としてのメッセージ分析装置は、大量のメッセージをより少数のメッセージパターンの集合として提示する際に、メッセージの設計者の意図を示す情報の内容や傾向を、利用者に的確に把握させることができる。
【0150】
その理由について述べる。本実施の形態では、本発明の第2の実施の形態と同様の構成に加えて、クラスタ細分化部が、クラスタに含まれるメッセージ群を、変数部分のフィールド間の相関の有無に基づいてさらに細分化するからである。そして、パターン生成部が、細分化されたクラスタについて、メッセージパターンを生成するからである。
【0151】
これにより、本実施の形態は、相関のある変数部分の値をメッセージパターンに明示的に含める。つまり、本実施の形態は、変異する部分のうち、相関のある変数部分を主要な情報として、そうでない補助的な情報とを区別することができる。その結果、本実施の形態は、変異する部分であっても、変数間に相関のある主要な情報についてはその値をそのままメッセージパターンに反映させることができる。
【0152】
ここで、このような相関のある変数(フィールド)の値は、メッセージの設計者が、なんらかの意図により事前に設計した情報である可能性が高い。たとえば、システムにより出力されるログでは、メッセージの設計者が、エラーメッセージの種類を表すエラーコードや、エラーメッセージの深刻度を表すエラーレベルなどを、共にメッセージに含めるよう設計することが考えられる。このようなメッセージでは、これらのエラーコードおよびエラーレベルをそれぞれ表すフィールド間には、相関が有ることになる。
【0153】
このように、本実施の形態は、変数部分であるフィールド間の相関の有無を分析することによって、メッセージの設計者の意図した重要な情報をメッセージパターンに反映することができる。その結果、本実施の形態を利用するメッセージの分析者は、メッセージパターンから、メッセージの設計者の意図を把握することが可能となる。
【0154】
なお、上述した本発明の第3および第4の実施の形態において、クラスタ細分化部が、変数部分を構成するフィールドの値の品詞またはフィールド間の相関の有無に基づいて、クラスタを細分化する例について説明した。これに限らず、クラスタ細分化部は、変数部分を構成するフィールドの重要性をその他の情報に基づいて判定し、重要性があると判定したフィールドの値に基づいて細分化を行ってもよい。
【0155】
また、上述した本発明の各実施の形態において、メッセージが、ITシステムの要素により出力されたテキスト情報である例を中心に説明したが、メッセージは、他の要素によって出力された情報であってもよい。また、メッセージは、入力装置を介して入力された情報であってもよい。また、メッセージは、テキスト以外の種類の情報を含んでいてもよい。
【0156】
また、上述した本発明の各実施の形態において、クラスタリング部が、一致するフィールドの割合を類似度として、または一致しないフィールドの割合を距離として、クラスタリングを行う例について説明した。これに限らず、クラスタリング部は、メッセージ間の類似性を表す情報として算出可能な他の情報に基づいて類似度または距離を算出し、クラスタリングを行ってもよい。
【0157】
また、上述した本発明の各実施の形態において、パターン生成部が、不変部分のフィールドの値を表した情報と、変数部分のフィールドを所定の記号で表した情報とを、フィールドの出現順に並べた情報を共通メッセージとして生成する例について説明した。また、パターン生成部が、変数部分のフィールドの取り得る引数のリストを生成する例について説明した。ただし、メッセージパターンの表現形式を限定するものではない。パターン生成部は、クラスタにおいて不変部分を構成するフィールドの値と、変数部分を構成するフィールドのとる引数の値とを認識可能な表現形式であれば、その他の形式でメッセージパターンを生成してもよい。
【0158】
また、上述した本発明の各実施の形態において、メッセージ分析装置の各機能ブロックが、記憶装置またはROMに記憶されたコンピュータ・プログラムを実行するCPUによって実現される例を中心に説明した。これに限らず、各機能ブロックの一部、全部、または、それらの組み合わせが専用のハードウェアにより実現されていてもよい。
【0159】
また、上述した本発明の各実施の形態において、メッセージ分析装置の機能ブロックは、複数の装置に分散されて実現されてもよい。
【0160】
また、上述した本発明の各実施の形態において、各フローチャートを参照して説明したメッセージ分析装置の動作を、本発明のコンピュータ・プログラムとしてコンピュータの記憶装置(記憶媒体)に格納しておいてもよい。そして、係るコンピュータ・プログラムを当該CPUが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコードあるいは記憶媒体によって構成される。
【0161】
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。