(57)【要約】  本発明は、メッセージ間で変異する部分をあらかじめ定義する必要なく、多数のメッセージの内容や傾向を表す情報を提示することができる。  メッセージ分析装置１は、クラスタリング部１１と、フィールド解析部１２と、パターン生成部１３とを備える。クラスタリング部１１は、１つ以上のフィールドからなるメッセージの集合であるメッセージ群を、メッセージ間の類似性に基づいてクラスタに分類する。フィールド解析部１２は、クラスタ内のメッセージ群を構成する各フィールドについて、その値が変異している変数部分と、変異していない不変部分とを識別する。パターン生成部１３は、変数部分および不変部分に基づいて、クラスタ内のメッセージ群に共通するメッセージパターンを生成する。
2016199433.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上のフィールドからなるメッセージの集合であるメッセージ群を、前記メッセージ間の類似性に基づいてクラスタに分類するクラスタリング手段と、
前記クラスタ内のメッセージ群を構成する各フィールドについて、その値が変異している変数部分と、変異していない不変部分とを識別するフィールド解析手段と、
前記変数部分および前記不変部分に基づいて、前記クラスタ内のメッセージ群に共通するメッセージパターンを生成するパターン生成手段と、
を備えたメッセージ分析装置。
【請求項２】
前記クラスタを、前記変数部分の重要性に基づいてさらに分割したクラスタを生成するクラスタ細分化手段をさらに備えたことを特徴とする請求項１に記載のメッセージ分析装置。
【請求項３】
前記クラスタ細分化手段は、前記変数部分の重要性を、前記変数部分を構成するフィールドの値の品詞に基づいて判定することを特徴とする請求項２に記載のメッセージ分析装置。
【請求項４】
前記クラスタ細分化手段は、前記変数部分の重要性を、前記変数部分を構成するフィールド間の相関に基づいて判定することを特徴とする請求項２に記載のメッセージ分析装置。
【請求項５】
前記クラスタリング手段は、前記メッセージと、該メッセージに対して類似性が所定条件を満たす他のメッセージとを同一クラスタに分類することを特徴とする請求項１から請求項４のいずれか１項に記載のメッセージ分析装置。
【請求項６】
前記クラスタ内におけるメッセージ群全体の類似性が所定条件を満たすか否かを判定するクラスタ類似性判定手段をさらに備え、
前記パターン生成手段は、前記クラスタ類似性判定手段によって前記全体の類似性が所定条件を満たすと判定されたクラスタについて、前記メッセージパターンを生成することを特徴とする請求項１から請求項５のいずれか１項に記載のメッセージ分析装置。
【請求項７】
前記クラスタリング手段は、前記各メッセージにおいて所定のフィールドパターンに合致する部分を、前記メッセージ間で互いに類似するフィールドとみなして前記メッセージ群を前記クラスタに分類し、
前記フィールド解析手段は、前記フィールドパターンに合致する値を持つフィールドを、不変部分として識別することを特徴とする請求項１から請求項６のいずれか１項に記載のメッセージ分析装置。
【請求項８】
コンピュータ装置を用いて、
１つ以上のフィールドからなるメッセージの集合であるメッセージ群を、前記メッセージ間の類似性に基づいてクラスタに分類し、
前記クラスタ内のメッセージ群を構成する各フィールドについて、その値が変異している変数部分と、変異していない不変部分とを識別し、
前記変数部分および前記不変部分に基づいて、前記クラスタ内のメッセージ群に共通するメッセージパターンを生成するメッセージ分析方法。
【請求項９】
１つ以上のフィールドからなるメッセージの集合であるメッセージ群を、前記メッセージ間の類似性に基づいてクラスタに分類するクラスタリングステップと、
前記クラスタ内のメッセージ群を構成する各フィールドについて、その値が変異している変数部分と、変異していない不変部分とを識別するフィールド解析ステップと、
前記変数部分および前記不変部分に基づいて、前記クラスタ内のメッセージ群に共通するメッセージパターンを生成するパターン生成ステップと、
をコンピュータ装置に実行させるメッセージ分析プログラムを記憶した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多数のメッセージを分析する技術に関する。
【背景技術】
【０００２】
一般に、装置やサービスでは、その動作状況や利用状況の履歴として、ログと呼ばれるメッセージが大量に記録される。また、インターネット上のソーシャルネットワークサービス等では、多数のユーザによりメッセージが入力され記録される。このような多数のメッセージを分析する分析者には、大量のメッセージの中に含まれる情報の内容や傾向を把握することが求められる。【０００３】
メッセージを分析する技術の一例が、特許文献１に記載されている。特許文献１に記載された関連技術は、ログに含まれるメッセージから、他のメッセージと共通する共通部分と、他のメッセージと相違する相違部分とを抽出する。そして、この関連技術は、抽出した共通部分に識別情報を付与して共通部分情報として格納し、抽出した相違部分に識別情報を付与して相違部分情報として格納する。そして、この関連技術は、各メッセージを、共通部分の識別情報および相違部分の識別情報と関連付けて格納する。この関連技術を用いれば、メッセージの分析者は、大量のメッセージの中の共通部分および相違部分を把握することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１３／１３６４１８号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載された関連技術は、共通部分および相違部分を抽出するために、相違部分を構成する変数の定義を必要とする。例えば、オペレーティングシステムの動作記録としてのログに含まれるメッセージに関して、プロセスＩＤを表す変数として、一文字以上の数字列が定義される。また、ＩＰ（Internet Protocol）アドレスを表す変数として、ピリオドで区切られた数字列が定義される。そして、この関連技術は、メッセージのうち変数の定義に一致する部分を相違部分として抽出し、その他の部分を共通部分として抽出する。このように、この関連技術は、あらかじめ変数を定義しておかなければ、大量のメッセージの共通部分および相違部分を抽出することができず、その内容や傾向を表す情報として提示できない。【０００６】
本発明は、上述の課題を解決するためになされたものである。すなわち、本発明は、メッセージ間で変異する部分をあらかじめ定義する必要なく、多数のメッセージの内容や傾向を表す情報を提示する技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明のメッセージ分析装置は、１つ以上のフィールドからなるメッセージの集合であるメッセージ群を、前記メッセージ間の類似性に基づいてクラスタに分類するクラスタリング手段と、前記クラスタ内のメッセージ群を構成する各フィールドについて、その値が変異している変数部分と、変異していない不変部分とを識別するフィールド解析手段と、前記変数部分および前記不変部分に基づいて、前記クラスタ内のメッセージ群に共通するメッセージパターンを生成するパターン生成手段と、を備える。【０００８】
また、本発明のメッセージ分析方法は、コンピュータ装置を用いて、１つ以上のフィールドからなるメッセージの集合であるメッセージ群を、前記メッセージ間の類似性に基づいてクラスタに分類し、前記クラスタ内のメッセージ群を構成する各フィールドについて、その値が変異している変数部分と、変異していない不変部分とを識別し、前記変数部分および前記不変部分に基づいて、前記クラスタ内のメッセージ群に共通するメッセージパターンを生成する。【０００９】
また、本発明の記憶媒体は、１つ以上のフィールドからなるメッセージの集合であるメッセージ群を、前記メッセージ間の類似性に基づいてクラスタに分類するクラスタリングステップと、前記クラスタ内のメッセージ群を構成する各フィールドについて、その値が変異している変数部分と、変異していない不変部分とを識別するフィールド解析ステップと、前記変数部分および前記不変部分に基づいて、前記クラスタ内のメッセージ群に共通するメッセージパターンを生成するパターン生成ステップと、をコンピュータ装置に実行させるメッセージ分析プログラムを記憶している。
【発明の効果】
【００１０】
本発明は、メッセージ間で変異する部分をあらかじめ定義する必要なく、多数のメッセージの内容や傾向を表す情報を提示する技術を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１の実施の形態としてのメッセージ分析装置の構成を示すブロック図である。
【図２】本発明の第１の実施の形態としてのメッセージ分析装置のハードウェア構成の一例を示す図である。
【図３】本発明の第１の実施の形態としてのメッセージ分析装置の動作を説明するフローチャートである。
【図４】本発明の第２の実施の形態としてのメッセージ分析装置の構成を示すブロック図である。
【図５】本発明の第２の実施の形態としてのメッセージ分析装置の動作を説明するフローチャートである。
【図６】本発明の第２の実施の形態におけるクラスタリング結果の具体例を示す図である。
【図７】本発明の第２の実施の形態におけるフィールド解析結果の具体例を示す図である。
【図８】本発明の第３の実施の形態としてのメッセージ分析装置の構成を示すブロック図である。
【図９】本発明の第３の実施の形態としてのメッセージ分析装置の動作を説明するフローチャートである。
【図１０】本発明の第３の実施の形態において細分化されたクラスタの具体例を示す図である。
【図１１】本発明の第４の実施の形態としてのメッセージ分析装置の構成を示すブロック図である。
【図１２】本発明の第４の実施の形態としてのメッセージ分析装置の動作を説明するフローチャートである。
【図１３】本発明の第４の実施の形態におけるフィールド解析結果の具体例を示す図である。
【図１４】本発明の第４の実施の形態におけるフィールド間の相関の有無を模式的に説明する図である。
【図１５】本発明の第４の実施の形態において細分化されたクラスタの具体例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【００１３】
（第１の実施の形態）
本発明の第１の実施の形態としてのメッセージ分析装置１の機能ブロック構成を図１に示す。図１において、メッセージ分析装置１は、クラスタリング部１１と、フィールド解析部１２と、パターン生成部１３とを備える。メッセージ分析装置１は、メッセージ群を分析してその内容や傾向を示すメッセージパターンを生成する装置である。
【００１４】
ここで、メッセージとは、装置やサービスまたは人間等によって記録される情報の単位をいう。例えば、メッセージは、装置やサービス等の動作状況や利用状況の履歴を表すログデータに含まれる情報の単位であってもよい。この場合、メッセージは、サーバやクライアントといったＩＴ（Information Technology）システムの構成要素によって、所定のタイミング毎に生成され、ログデータに追加される単位の情報であってもよい。この場合、メッセージは、そのメッセージが出力された時刻や出力元の名称等を含んでいることが多い。また、この場合、メッセージは、ログデータを表すファイルに含まれる１行分のテキストデータであることが多い。ただし、１つのメッセージは、複数行にわたっていてもよい。あるいは、複数のメッセージが、１行に含まれていてもよい。例えば、ログデータを表すファイルにおいて、複数行に渡る１つのメッセージに含まれる改行コードを空白文字に変換する前処理や、１行に含まれる複数のメッセージ間の空白文字を改行コードに変換する前処理等が行われることを想定してもよい。この場合、メッセージは、ログデータを表すファイルの１行によって構成されるとみなすことができる。
【００１５】
その他、メッセージは、ログデータに含まれる情報に限らず、任意のサービスに対して入力装置やネットワークを介して入力され、記録される情報の単位であってもよい。
【００１６】
また、メッセージは、１つ以上のフィールドによって構成される。フィールドは、例えば、セパレータによって区切られた情報であってもよい。例えば、「April 1 13:31:52 logging start」というメッセージは、空白をセパレータとして、５つのフィールド「April」、「1」、「13:31:52」、「logging」、「start」から構成される。あるいは、日本語で構成されるメッセージのように、空白等のセパレータで区切られていないメッセージがある。このようなメッセージは、単語や形態素、カタカナやひらがな、漢字といった文字種で分離する前処理により、１つ以上のフィールドによって構成されるとみなすことができる。
【００１７】
つまり、本実施の形態におけるメッセージが、１つ以上のフィールドから構成されるという前提は、本実施の形態において処理可能なメッセージの種類を限定するものではない。どのような種類のメッセージであっても、必要に応じて前処理を施すことにより、１つ以上のフィールドから構成されるものとして処理可能である。
【００１８】
また、メッセージに対する前処理として、１つのフィールドを複数のフィールドに分割する処理も考えられる。例えば、あるフィールドの値が、あるメッセージでは「abc&def」であり、他のメッセージでは「abc&ghi」であったとする。また、メッセージの内容について、abc、defおよびghiが個別の対象を表すことが定義されていたとする。このような場合、「abc&def」は、１つのフィールドではなく、「abc」、「＆」および「def」のように３つのフィールドとして処理されるのに適している。メッセージに対する前処理には、このような処理が含まれ得る。
【００１９】
本実施の形態では、必要に応じて上述した前処理が施された１つ以上のフィールドからなるメッセージの集合（対象のメッセージ群）が、メッセージ分析装置１に対して入力されるものとする。例えば、対象のメッセージ群は、各メッセージについてそのフィールドの値（文字列、数値、記号等）をテーブル形式で表した情報として、あらかじめ記憶装置に格納されていてもよい。
【００２０】
次に、メッセージ分析装置１のハードウェア構成の一例を図２に示す。図２において、メッセージ分析装置１は、ＣＰＵ（Central Processing Unit）１００１、メモリ１００２、出力装置１００３、および、入力装置１００４を含む。メモリ１００２は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、補助記憶装置（ハードディスク等）等によって構成される。出力装置１００３は、ディスプレイ装置やプリンタ等のように、情報を出力する装置によって構成される。入力装置１００４は、キーボードやマウス等のように、ユーザ操作の入力を受け付ける装置によって構成される。この場合、メッセージ分析装置１の各機能ブロックは、メモリ１００２に格納されるコンピュータ・プログラムを読み込んで実行するとともに出力装置１００３、入力装置１００４の各部を制御するＣＰＵ１００１によって構成される。なお、メッセージ分析装置１およびその各機能ブロックのハードウェア構成は、上述の構成に限定されない。
【００２１】
次に、メッセージ分析装置１の各機能ブロックの詳細について説明する。
【００２２】
クラスタリング部１１は、対象のメッセージ群を、メッセージ間の類似性に基づいてクラスタに分類する。クラスタ数は、メッセージ数以下となる。なお、対象のメッセージ群は、前述のように、必要に応じて前処理を施された、１つ以上のフィールドからなるメッセージの集合である。例えば、クラスタリング部１１は、メモリ１００２にあらかじめ記憶された対象のメッセージ群を取得して、クラスタに分類してもよい。複数の情報をそれらの間の類似性に基づいて分類する手法には、公知の技術を採用可能である。
【００２３】
フィールド解析部１２は、クラスタ内のメッセージ群を構成する各フィールドについて、その値が変異している変数部分と、変異していない不変部分とを識別する。具体的には、フィールド解析部１２は、クラスタ内の全てのメッセージに渡って、その値が一致しているフィールドを不変部分として識別してもよい。また、フィールド解析部１２は、クラスタ内の全てのメッセージのうち、少なくともいずれかで値が異なるフィールドを変数部分として識別してもよい。
【００２４】
パターン生成部１３は、フィールドの変数部分と不変部分とに基づいて、クラスタ内のメッセージ群に共通するメッセージパターンを生成する。例えば、パターン生成部１３は、変数部分のフィールドを所定の記号（例えば、アスタリスク「＊」）で表した情報と、不変部分のフィールドをその値で表した情報とを、フィールドの出現順に並べた情報を、共通パターンとして生成してもよい。そして、パターン生成部１３は、そのクラスタに含まれるメッセージ群において、変数部分のフィールドがとる値のリストを抽出する。以降、変数部分として識別されたフィールドを変数と呼び、変数がとり得る値を引数と呼ぶことにする。そして、パターン生成部１３は、各クラスタについて、共通パターンおよび各変数の引数のリストを、メッセージパターンとして生成すればよい。
【００２５】
以上のように構成されたメッセージ分析装置１の動作について、図３を参照して説明する。
【００２６】
まず、クラスタリング部１１は、対象のメッセージ群を、メッセージ間の類似性に基づいてクラスタに分類する（ステップＳ１）。
【００２７】
次に、フィールド解析部１２は、ステップＳ１で生成された各クラスタについて、クラスタ内のメッセージ群を構成する各フィールドのうち、その値が変異している変数部分と、変異していない不変部分とを識別する（ステップＳ２）。
【００２８】
次に、パターン生成部１３は、各クラスタについて、変数部分と不変部分とに基づいて、クラスタ内のメッセージ群に共通するメッセージパターンを生成する（ステップＳ３）。
【００２９】
前述のように、パターン生成部１３は、メッセージパターンとして、共通パターンおよび変数の引数のリストを生成してもよい。
【００３０】
以上で、メッセージ分析装置１は、動作を終了する。
【００３１】
次に、本発明の第１の実施の形態の効果について述べる。
【００３２】
本発明の第１の実施の形態としてのメッセージ分析装置は、メッセージ間で変異する部分をあらかじめ定義する必要なく、多数のメッセージの内容や傾向を表す情報を提示することができる。
【００３３】
その理由について述べる。本実施の形態では、クラスタリング部が、メッセージ群を、メッセージ間の類似性に基づいてクラスタに分類する。そして、フィールド解析部が、クラスタ内のメッセージ群を構成する各フィールドについて、その値が変異している変数部分と、変異していない不変部分とを識別する。そして、パターン生成部が、フィールドの変数部分と不変部分とに基づいて、クラスタ内のメッセージ群に共通するメッセージパターンを生成するからである。
【００３４】
このように、本実施の形態は、メッセージ群において変異する部分の定義を必要とせずに、変異部分および不変部分を抽出可能である。これにより、本実施の形態は、事前の変数定義がなくても、類似するメッセージ群を、それらの間で不変の部分と変異する部分とを認識可能に利用者に提示することができる。その結果、本実施の形態を利用する利用者は、大量のメッセージ群の内容や傾向をより容易に把握することができる。
【００３５】
（第２の実施の形態）
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第１の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
【００３６】
まず、本発明の第２の実施の形態としてのメッセージ分析装置２の機能ブロック構成を図４に示す。図４において、メッセージ分析装置２は、本発明の第１の実施の形態としてのメッセージ分析装置１に対して、次の点が異なる。すなわち、メッセージ分析装置２は、クラスタリング部１１に替えてクラスタリング部２１と、フィールド解析部１２に替えてフィールド解析部２２と、パターン生成部１３に替えてパターン生成部２３とを備え、さらに、クラスタ類似性判定部２４を備える。なお、メッセージ分析装置２およびその各機能ブロックは、図２を参照して説明した本発明の第１の実施の形態と同一のハードウェア要素によって構成可能である。ただし、メッセージ分析装置２および各機能ブロックのハードウェア構成は、上述の構成に限定されない。
【００３７】
次に、メッセージ分析装置２の各機能ブロックの詳細について説明する。
【００３８】
クラスタリング部２１は、あるメッセージと、そのメッセージに対して類似性が所定条件を満たす他のメッセージとを、同一クラスタに分類する。
【００３９】
例えば、クラスタリング部２１は、２つのメッセージ間の類似性として、各メッセージを構成するフィールド数に対して一致するフィールド数の割合に基づく値（類似度）を用いてもよい。この場合、類似度が高いほど、２つのメッセージ間の類似性は高くなる。例えば、２つのメッセージが共に１０個のフィールドで構成され、そのうちの７個が一致する場合、これらのメッセージ間の類似度は、７／１０＝０．７と算出される。この場合、クラスタリング部２１は、あるメッセージと、そのメッセージに対して類似度が閾値以上の他の各メッセージとを、同一クラスタに分類してもよい。
【００４０】
あるいは、クラスタリング部２１は、２つのメッセージ間の類似性として、各メッセージを構成するフィールド数に対して一致しないフィールド数の割合に基づく値（距離）を用いてもよい。この場合、距離が大きいほど、２つのメッセージ間の類似性は低くなる。例えば、２つのメッセージが共に１０個のフィールドで構成され、そのうちの３個が不一致の場合、これらのメッセージ間の距離は、３／１０＝０．３と算出される。この場合、クラスタリング部２１は、あるメッセージと、そのメッセージに対して距離が閾値以下の他の各メッセージとを、同一クラスタに分類してもよい。
【００４１】
なお、２つのメッセージのフィールド数が異なる場合、類似度または距離を算出する際の分母としては、多い方または少ない方のいずれかのフィールド数を採用することを、あらかじめ定めておけばよい。例えば、多い方のフィールド数を採用すると定められていることを想定する。このとき、９個のフィールドからなるメッセージと、１０個のフィールドからなるメッセージとの間で、６個のフィールドが等しいとする。この場合、これらのメッセージ間の類似度は、前述の計算手法の場合、６／１０＝０．６０と算出される。また、これらのメッセージ間の距離は、前述の計算手法の場合、４／１０＝０．４０と算出される。
【００４２】
また、クラスタリング部２１は、各メッセージにおいて所定のフィールドパターンに合致する部分を、メッセージ間で互いに類似するフィールドとみなして、メッセージ群をクラスタに分類する。ここで、所定のフィールドパターンとは、メッセージにおいて、値が異なっていても類似するフィールドであるとみなすことが可能な部分がとり得る値のパターンである。そのようなフィールドパターンは、あらかじめ定義されていてもよい。例えば、日付や日時等は、値が異なっていても類似するフィールドであるとみなすことができる。そこで、クラスタリング部２１は、日付形式や日時形式に合致するフィールドパターンをあらかじめ記憶しておいてもよい。そして、クラスタリング部２１は、上述の類似度や距離を算出する際に、これらのフィールドパターンに合致する部分については、値が異なっていても一致するフィールドであるとして算出を行えばよい。
【００４３】
クラスタ類似性判定部２４は、各クラスタについて、そのクラスタにおけるメッセージ群全体の類似性が所定条件を満たすか否かを判定する。以降、クラスタにおけるメッセージ群全体の類似性を、単に全体の類似性とも記載する。例えば、クラスタ類似性判定部２４は、クラスタ内におけるメッセージ群を構成するフィールドのうち、不変部分を構成するフィールドの割合を、全体の類似性として用いてもよい。この場合、所定条件とは、全体の類似性を表す値が閾値以上であることであってもよい。また、全体の類似性を表す値の閾値は、クラスタリング部２１によって２つのメッセージ間の類似性の判断に用いられた類似度の閾値と同一の値であってもよい。
【００４４】
具体的には、クラスタ類似性判定部２４は、クラスタ内における不変部分を構成するフィールドの個数を、クラスタ内のメッセージのうちの最大フィールド数で除した値を、全体の類似性を表す値として算出してもよい。そして、この場合、クラスタ類似性判定部２４は、全体の類似性を表す値が閾値以上であるか否かを判定する。
【００４５】
ここで、クラスタリング部２１によって類似度または距離の閾値に基づき生成されたクラスタであっても、全体の類似性が所定条件を満たさない場合がある。これは、分類の際に基準としたメッセージに対して類似性があると判定された他の各メッセージによって、変異するフィールドが大きく異なる場合があるためである。そのようなクラスタは、メッセージパターンを生成する分類として適切ではないことが多い。そこで、クラスタ類似性判定部２４は、メッセージパターンの生成対象として適切でないクラスタを除外するために備えられた機能ブロックである。
【００４６】
なお、クラスタ類似性判定部２４によって全体の類似性が所定条件を満たさないと判定されたクラスタがあっても、全体の類似性が所定条件を満たすと判定された他のクラスタを対象として、後述のパターン生成部２３が処理を行ってもよい。あるいは、クラスタ類似性判定部２４によって全体の類似性が所定条件を満たさないと判定されたクラスタがある場合、クラスタリング部２１が、類似度の閾値を変更して再度クラスタリング処理をやり直してもよい。
【００４７】
その場合、閾値の変更方法としては、閾値を上げる（大きくする）方法と、下げる（小さくする）方法がある。例えば、類似度に関する閾値を上げると、実際に出力されているメッセージ数に近い多数の細かいクラスタが得られる。つまり、最終的に得られるメッセージパターン数は、メッセージ数に対してより近くなる。また、類似度に関する閾値を下げると、実際に出力されているメッセージ数より少数の粗いクラスタが得られる。つまり、最終的に得られるメッセージパターン数は、メッセージ数に比べてより少なくなる。閾値の変更方法は、メッセージパターンの用途、メッセージ量、メッセージパターンの種類数等に応じて決定されてもよい。
【００４８】
パターン生成部２３は、クラスタ類似性判定部２４によって全体の類似性が所定条件を満たすと判定されたクラスタについて、本発明の第１の実施の形態におけるパターン生成部１３と同様にメッセージパターンを生成する。
【００４９】
以上のように構成されたメッセージ分析装置２の動作について、図５を参照して説明する。
【００５０】
まず、クラスタリング部２１は、メッセージ群をクラスタリングする際の閾値を取得する（ステップＳ２１）。例えば、クラスタリング部２１は、入力装置１００４を介して閾値を取得してもよい。
【００５１】
次に、クラスタリング部２１は、対象のメッセージ群のうち、あるメッセージと、そのメッセージに対して類似度が閾値以上または距離が閾値以下の他の各メッセージとを、同一のクラスタに分類する（ステップＳ２２）。
【００５２】
具体的には、前述のように、クラスタリング部２１は、メッセージの集合からメッセージを１つ取り出し、このメッセージと、他の各メッセージとの間でそれぞれ類似度（または距離）を計算する。そして、クラスタリング部２１は、取り出したメッセージと、そのメッセージに対して閾値以上の類似度（または閾値以下の距離）が算出された各メッセージとによって、１つのクラスタを形成すればよい。
【００５３】
そして、クラスタリング部２１は、１つのクラスタを算出したのち、まだ分類していない残りのメッセージについて同様の処理を行い、別のクラスタを形成する。そして、メッセージ分析装置２は、各クラスタについて、ステップＳ２３〜Ｓ２７の処理を行う。
【００５４】
なお、メッセージ分析装置２は、まず全てのメッセージをいずれかのクラスタに分類してから、各クラスタについてステップＳ２３〜Ｓ２７の処理を繰り返してもよい。あるいは、メッセージ分析装置２は、１つのクラスタを形成する度にそのクラスタについてステップＳ２３〜Ｓ２７の処理を実行することを繰り返してもよい。
【００５５】
ここでは、まず、フィールド解析部２２は、クラスタ内の全てのメッセージに渡って値が一致しているフィールドと、フィールドパターンに一致するフィールドとを、不変部分として識別する。また、フィールド解析部２２は、少なくとも１つのメッセージにおいて値が異なるフィールドを、変数部分として識別する（ステップＳ２３）。
【００５６】
次に、クラスタ類似性判定部２４は、このクラスタにおける全体の類似性が、所定条件を満たすか否かを判断する（ステップＳ２４）。
【００５７】
前述のように、クラスタ類似性判定部２４は、このクラスタ中の不変部分を構成するフィールドの個数を最大フィールド数で除した値を、クラスタにおける全体の類似性を表す値として算出してもよい。そして、クラスタ類似性判定部２４は、このクラスタにおける全体の類似性を表す値が、閾値を超えるか否かを判断すればよい。
【００５８】
もし、このクラスタ全体の類似性が所定条件を満たさないと判断された場合、メッセージ分析装置２は、当該クラスタに関してメッセージパターンの生成に失敗した旨を出力して、処理を終了する。
【００５９】
一方、このクラスタ全体の類似性が所定条件を満たすと判断された場合、パターン生成部２３は、このクラスタの共通パターンを生成する（ステップＳ２５）。
【００６０】
具体的には、パターン生成部２３は、変数部分のフィールドを所定の記号（例えばアスタリスク「＊」）で表した情報と、不変部分のフィールドを表す情報とを、フィールドの出現順に並べた情報を共通パターンとして生成する。なお、パターン生成部２３は、不変部分のうちフィールドパターンに一致するフィールドについては、その値の代わりに、所定の文字列を用いて共通パターンを生成してもよい。例えば、パターン生成部２３は、日付のフィールドパターンに一致するフィールドを「（Ｄａｔｅ）」と表し、時刻のフィールドパターンに一致するフィールドを「（Ｔｉｍｅ）」と表して、共通パターンを生成してもよい。
【００６１】
次に、パターン生成部２３は、共通パターンのうち変数部分のフィールドについて、引数のリストを生成する（ステップＳ２６）。
【００６２】
そして、パターン生成部２３は、共通パターンおよび各変数部分の引数のリストを、このクラスタのメッセージパターンとして出力する（ステップＳ２７）。なお、出力先は、出力装置１００３、メモリ１００２、または、ネットワークを介して接続された他の装置等であってもよい。
【００６３】
以上で、メッセージ分析装置２は、動作を終了する。
【００６４】
次に、メッセージ分析装置２の動作を具体例で示す。
【００６５】
この具体例では、メッセージ分析装置２は、メッセージ間の類似性の判断に前述の類似度を用いるものとする。
【００６６】
ここでは、まず、クラスタリング部２１は、類似度の閾値として０．６を取得する（ステップＳ２１）。
【００６７】
次に、クラスタリング部２１は、対象のログメッセージ群のうち、あるメッセージと、そのメッセージに対する他の各メッセージとの類似度を算出することにより、図６に示すクラスタＡおよびクラスタＢを形成する（ステップＳ２２）。
【００６８】
図６において、各行は、１つのメッセージを表す。また、点線の楕円は、フィールドを示している。この例では、日付および時刻を表すフィールドパターンが定められている。クラスタリング部２１は、日付のフィールドパターンに一致している部分を日付フィールドとして、メッセージ間において互いに一致するものとみなす。また、クラスタリング部２１は、時刻のフィールドパターンに一致している部分を時刻フィールドとして、メッセージ間において互いに一致するものとみなす。この場合、クラスタＡでは、１行目のメッセージに対して、２行目のメッセージは、９つのフィールドのうち７つが一致している。したがって、クラスタリング部２１は、１、２行目のメッセージ間の類似度として、７／９≒０．７７を算出する。このように、クラスタリング部２１は、１行目のメッセージと、１行目のメッセージに対して類似度が０．６以上の２〜４行目の各メッセージとを、クラスタＡとして分類している。クラスタＢについても同様である。
【００６９】
次に、メッセージ分析装置２は、クラスタＡについて、ステップＳ２３〜Ｓ２７の処理を行う。
【００７０】
ここでは、フィールド解析部２２は、クラスタＡについて、不変部分のフィールドと、変数部分のフィールドとを識別し、図７に示す識別処理結果を生成する（ステップＳ２３）。
【００７１】
図７において、まず、フィールド解析部２２は、識別処理結果を格納する表を作成する。識別処理結果を格納する表は、１列目（最も左の列）に、フィールドに付与したＩＤを含む。また、この表は、１行目（最も上の行）に、メッセージの識別情報を含む。また、この表は、２列目以降の各列に、各メッセージの解析結果を格納可能となっている。
【００７２】
次に、フィールド解析部２２は、クラスタＡに含まれるメッセージの１つ（一例としてＭｓｇ１１３４）を代表メッセージとして識別処理を行う。まず、フィールド解析部２２は、代表メッセージＭｓｇ１１３４を構成する各フィールドの値を、図７の表の２列目に格納する。ただし、フィールド解析部２２は、日付のフィールドパターンに一致する日付フィールドについては、値の代わりに、日付を表す情報「（Ｄａｔｅ）」を格納する。また、フィールド解析部２２は、時刻のフィールドパターンに一致する時刻フィールドについては、値の代わりに、時刻を表す情報「（Ｔｉｍｅ）」を格納する。
【００７３】
次に、フィールド解析部２２は、クラスタＡに含まれる次のメッセージＭｓｇ１２１１を構成する各フィールドの値のうち、代表メッセージと値が異なるフィールドについて、３列目にその値を格納する。ただし、フィールド解析部２２は、日付フィールドおよび時刻フィールドについては、代表メッセージと値が一致するものとして、値を格納しない。そして、フィールド解析部２２は、クラスタＡの残りのメッセージＭｓｇ２０９１およびＭｓｇ４６２５についても同様に、代表メッセージと値が異なるフィールドについてその値を４列目および５列目に格納する。このようにして、フィールド解析部２２は、クラスタＡの全てのメッセージについて表に値を格納する処理を行い、図７の表を生成する。
【００７４】
次に、フィールド解析部２２は、図７の表の３列目以降において少なくとも１つの列に値が格納されている４個のフィールド（フィールドＩＤ３、７、９、１０）を、クラスタＡの変数部分として識別する。また、フィールド解析部２２は、図７の表の３列目以降において値が格納されていない６個のフィールド（フィールドＩＤ１、２、４、５、６、８）を、クラスタＡの不変部分として識別する。
【００７５】
次に、クラスタ類似性判定部２４は、クラスタＡにおける全体の類似性を表す値が、閾値以上であるか否かを判断する（ステップＳ２４）。
【００７６】
図７を参照すると、クラスタＡでは、Ｍｓｇ２０９１を構成するフィールド数が最大で１０個である。また、ステップＳ２３において、６個のフィールド（フィールドＩＤ１、２、４、５、６、８）が、クラスタＡの不変部分として識別されている。したがって、クラスタ類似性判定部２４は、クラスタＡにおける全体の類似性を表す値として、６／１０＝０．６０を算出する。ここで、閾値が０．６であるため、クラスタ類似性判定部２４は、クラスタＡにおける全体の類似性を表す値は、閾値以上であると判断する。
【００７７】
そこで、パターン生成部２３は、クラスタＡの共通パターンを生成するため、不変部分のフィールドＩＤ１、２、４、５、６、８をその値またはフィールドパターンを表す情報で表現する。また、パターン生成部２３は、変数部分のフィールドＩＤ３、７、９、１０を所定の記号「＊」で表す。そして、パターン生成部２３は、これらの情報をフィールドＩＤの順に並べて、クラスタＡの共通パターン「（Ｄａｔｅ）  （Ｔｉｍｅ）  ＊  ｐｒｏｃｅｓｓ  ａｂｃ  ［  ＊  ］  ＊  ＊」を生成する（ステップＳ２５）。
【００７８】
次に、パターン生成部２３は、クラスタＡの共通パターンのうち変数部分のフィールドＩＤ３，７，９，１０について、それぞれ引数のリストを生成する（ステップＳ２６）。
【００７９】
例えば、パターン生成部２３は、図７の表におけるフィールドＩＤ３の行を参照することにより、フィールドＩＤ３の引数のリスト「ｈｏｓｔ０１、ｈｏｓｔ０２、ｈｏｓｔ０３」を生成する。同様に、パターン生成部２３は、図７の表におけるフィールドＩＤ７、９、１０の行をそれぞれ参照することにより、引数のリストを生成する。
【００８０】
そして、パターン生成部２３は、クラスタＡの共通パターンおよび各変数部分の引数のリストを、メッセージパターンとして出力する（ステップＳ２７）。
【００８１】
そして、メッセージ分析装置２は、クラスタＢについてもステップＳ２３〜Ｓ２７を実行する。
【００８２】
以上で、具体例の説明を終了する。
【００８３】
次に、本発明の第２の実施の形態の効果について述べる。
【００８４】
本発明の第２の実施の形態としてのメッセージ分析装置は、大量のメッセージを、より少数のメッセージパターンの集合として提示することができ、メッセージの内容や傾向を利用者に対してより素早く把握させるよう支援することができる。
【００８５】
その理由について述べる。本実施の形態では、クラスタリング部が、メッセージ中の所定のフィールドパターンに一致する部分については類似するフィールドとみなしてクラスタリングを行うからである。また、フィールド解析部が、所定のフィールドパターンに一致する部分については不変部分とみなして共通メッセージを生成するからである。
【００８６】
これにより、本実施の形態は、複数のメッセージ間における軽微な相違については類似するものとみなすことができ、軽微な相違も変数部分とみなす場合と比べて、より少数の共通するメッセージパターンを生成することができる。
【００８７】
また、他の理由について述べる。本実施の形態では、クラスタ類似性判定部が、クラスタにおける全体の類似性が所定条件を満たすか否かを判断するからである。そして、パターン生成部が、全体の類似性が所定条件を満たすクラスタについて、メッセージパターンを生成するからである。
【００８８】
これにより、本実施の形態は、全体の類似性が適正なクラスタについてメッセージパターンを生成するので、メッセージ群の内容と傾向をより精度よく反映したメッセージパターンを提示することができる。
【００８９】
（第３の実施の形態）
次に、本発明の第３の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第１および第２の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
【００９０】
まず、本発明の第３の実施の形態としてのメッセージ分析装置３の機能ブロック構成を図８に示す。図８において、メッセージ分析装置３は、本発明の第２の実施の形態としてのメッセージ分析装置２に対して、さらに、クラスタ細分化部３５を備える点が異なる。なお、メッセージ分析装置３およびその各機能ブロックは、図２を参照して説明した本発明の第１の実施の形態と同一のハードウェア要素によって構成可能である。ただし、メッセージ分析装置３および各機能ブロックのハードウェア構成は、上述の構成に限定されない。
【００９１】
クラスタ細分化部３５は、クラスタリング部２１によって生成されたクラスタ内のメッセージ群を、変数部分の重要性に基づいてさらに分割したクラスタを生成する。このとき、クラスタ細分化部３５は、変数部分の重要性を、変数部分を構成するフィールドの値の品詞に基づいて判定する。詳細には、クラスタ細分化部３５は、変数部分を構成するフィールドの値が文字列として所定の品詞である場合には、そのフィールドが重要であるものとして、その値の違いに基づいてクラスタを細分化する。
【００９２】
具体的には、クラスタ細分化部３５は、クラスタ内において少なくとも１つのメッセージにおいて値が変異しているフィールドを特定する。そして、クラスタ細分化部３５は、特定したフィールドのとる値の文字列としての品詞が、所定の品詞であるか否かに基づいて、そのフィールドの重要性を判定する。なお、クラスタ細分化部３５は、特定したフィールドについて、クラスタ内のいずれかのメッセージ（例えば、代表メッセージ）における値に基づき品詞の判定を行ってもよい。また、クラスタ細分化部３５は、文字列（単語）の品詞を記憶した辞書を用いて、品詞の判定を行えばよい。そのような辞書は、例えば、メモリ１００２にあらかじめ記憶されていてもよい。所定の品詞としては、例えば、動詞、副詞、および、形容詞等が定められる。
【００９３】
なお、クラスタの細分化により、分割前のクラスタでは変数部分として識別されていたフィールドのうち、重要であると判定されたフィールドは、分割後のクラスタでは不変部分として識別されることになる。
【００９４】
以上のように構成されたメッセージ分析装置３の動作について、図９を参照して説明する。
【００９５】
まず、メッセージ分析装置３は、ステップＳ２１〜Ｓ２４まで本発明の第２の実施の形態と同様に動作して、形成したクラスタについてフィールドの解析を行い、全体の類似性が所定条件を満たすか否かを判定する。
【００９６】
ここで、全体の類似性が所定条件を満たすと判定されたクラスタについて、クラスタ細分化部３５は、変数部分のフィールドの値の品詞に基づいて、さらに細分化を行う（ステップＳ３５）。
【００９７】
具体的には、前述のように、クラスタ細分化部３５は、変数部分を構成するフィールドの値が文字列であり所定の品詞である場合にはそのフィールドが重要であるものと判定する。そして、クラスタ細分化部３５は、そのフィールドの値の違いに基づいて、クラスタを細分化する。
【００９８】
次に、パターン生成部２３は、細分化されたクラスタ、および、細分化されなかったクラスタのそれぞれについて、本発明の第２の実施の形態と同様にステップＳ２５〜Ｓ２７を実行する。ただし、パターン生成部２３は、細分化されたクラスタについて、細分化の基準となったフィールドについては、不変部分としてその値を共通パターンに含める。これにより、パターン生成部２３は、必要に応じて細分化された各クラスタについて、共通パターンおよびその変数部分の引数のリストを、メッセージパターンとして生成し出力する。
【００９９】
以上で、メッセージ分析装置３は、動作を終了する。
【０１００】
次に、メッセージ分析装置３の動作を具体例で示す。
【０１０１】
ここでは、クラスタリング部２１により図６に示すクラスタＡおよびクラスタＢが生成され、クラスタＡについて図７に示すフィールド解析結果が生成されているものとする（ステップＳ２１〜Ｓ２４）。
【０１０２】
次に、クラスタ細分化部３５は、クラスタの細分化を行う（ステップＳ３５）。
【０１０３】
具体的には、まず、クラスタ細分化部３５は、図７において変数部分であるフィールドＩＤ３、７、９、１０のうち、代表メッセージＭｓｇ１１３４におけるフィールドＩＤ９の値「started」が所定の品詞（動詞）であると判定する。すなわち、クラスタ細分化部３５は、フィールドＩＤ９は、変異する重要なフィールドであると判定する。
【０１０４】
一方、クラスタ細分化部３５は、代表メッセージＭｓｇ１１３４におけるフィールドＩＤ３の値「ｈｏｓｔ０３」およびフィールドＩＤ７の値「３５７１」は、所定の品詞（動詞、副詞および形容詞）のいずれでもないと判定する。すなわち、クラスタ細分化部３５は、フィールドＩＤ３およびフィールドＩＤ７は、変異する補助的なフィールドであると判定する。
【０１０５】
そこで、クラスタ細分化部３５は、重要なフィールドであるフィールドＩＤ９の値に基づいて、クラスタＡを細分化する。図１０に、クラスタＡが細分化されたクラスタＡ１〜Ａ３を示す。図１０に示すように、クラスタ細分化部３５は、クラスタＡに含まれているメッセージ群のうち、フィールドＩＤ９の値が「ｓｔａｒｔｅｄ」であるＭｓｇ１１３４、Ｍｓｇ１２１１を、クラスタＡ１に分類する。また、クラスタ細分化部３５は、フィールドＩＤ９の値が「ｓｔｏｐｐｅｄ」であるＭｓｇ２０９１を、クラスタＡ２に分類する。また、クラスタ細分化部３５は、フィールドＩＤ９の値が「ｔｅｒｍｉｎａｔｅｄ」であるＭｓｇ４６２５を、クラスタＡ３に分類する。
【０１０６】
また、クラスタ細分化部３５は、クラスタＢについても同様に、変数部分のフィールドの値の品詞に基づいて分割を行い、細分化されたｎ個のクラスタＢ１〜Ｂｎ（ｎは１以上の整数）を生成したものとする。
【０１０７】
次に、パターン生成部２３は、細分化されたクラスタＡ１〜Ａ３およびクラスタＢ１〜Ｂｎについて、メッセージパターンを生成する（ステップＳ２５〜Ｓ２７）。
【０１０８】
例えば、クラスタＡ１については、共通パターン「（Ｄａｔｅ）  （Ｔｉｍｅ）  ＊  ｐｒｏｃｅｓｓ  ａｂｃ  ［  ＊  ］  ｓｔａｒｔｅｄ」が生成される。また、さらに、クラスタＡ１については、変数部分であるフィールドＩＤ３の引数のリスト「ｈｏｓｔ０３、ｈｏｓｔ０２」や、フィールドＩＤ７の引数のリスト「３５７１、２２６９」が生成される。
【０１０９】
また、クラスタＡ２については、共通パターン「（Ｄａｔｅ）  （Ｔｉｍｅ）  ｈｏｓｔ０２  ｐｒｏｃｅｓｓ  ａｂｃ  ［  ２２６９  ］  ｓｔｏｐｐｅｄ  ａｂｎｏｒｍａｌｌｙ」が生成される。
【０１１０】
また、クラスタＡ３については、共通パターン「（Ｄａｔｅ）  （Ｔｉｍｅ）  ｈｏｓｔ０３  ｐｒｏｃｅｓｓ  ａｂｃ  ［  ３５７１  ］  ｔｅｒｍｉｎａｔｅｄ」が生成される。
【０１１１】
このように、パターン生成部２３は、クラスタＡ１〜Ａ３において、分割の基準となったフィールドＩＤ９については、不変部分としてその値を共通パターンに含めている。また、この例では、クラスタＡ２およびＡ３において、分割前のクラスタＡにおいて変数部分であったフィールドＩＤ３、７、１０についてもそれぞれ値が同一となっている。そのため、パターン生成部２３は、クラスタＡ２およびＡ３の共通パターンに、フィールドＩＤ３、７、１０の値を含めている。ただし、パターン生成部２３は、クラスタ細分化部３５によって重要でないと判定された変数部分のフィールドについては、分割後のクラスタにおいて値が一致していない場合には、変数部分として共通パターンを生成することになる。
【０１１２】
パターン生成部２３は、クラスタＢ１〜Ｂｎについても、同様にしてメッセージパターンを生成する。
【０１１３】
以上で、具体例の説明を終了する。
【０１１４】
次に、本発明の第３の実施の形態の効果について述べる。
【０１１５】
本発明の第３の実施の形態としてのメッセージ分析装置は、大量のメッセージをより少数のメッセージパターンの集合として提示する際に、メッセージ中で重要な情報の内容や傾向を、利用者により的確に把握させることができる。
【０１１６】
その理由について述べる。本実施の形態では、本発明の第２の実施の形態と同様の構成に加えて、クラスタ細分化部が、クラスタに含まれるメッセージ群を、変数部分のフィールドの重要性に基づいてさらに細分化するからである。そして、パターン生成部が、細分化されたクラスタについて、メッセージパターンを生成するからである。
【０１１７】
これにより、本実施の形態は、重要な変数部分の値をメッセージパターンに明示的に含め、補助的な変数部分の値を含めない。つまり、本実施の形態は、変異する部分のうち、主要な情報と補助的な情報とを区別することができる。その結果、本実施の形態は、変異する部分であっても主要な情報についてはその値をそのままメッセージパターンに反映させることができる。
【０１１８】
さらに、本発明の第３の実施の形態としてのメッセージ分析装置は、システムから出力される大量のメッセージをより少数のメッセージパターンの集合として提示する際に、システムの振舞いや状況等の内容や傾向を、利用者により的確に把握させることができる。
【０１１９】
ここで、システムによって記録される大量のメッセージ群の分析をおこなう分析者は、システム上でなにが起きているかを、メッセージ群から推測しなくてはならない。しかしながら、システムの振る舞いや状況を表すフィールドの部分が変数として認識されてしまうとメッセージパターンにその値が現れない。例えば、メッセージ中における動詞や副詞、形容詞といった品詞の部分は、システムの動作や状態を表し重要な意味を持つ可能性が高い。そのような部分の値がメッセージパターンに含まれていないと、解析者にとって、システムの動作や状況を把握しづらくなる。
【０１２０】
本実施の形態は、メッセージ中の変数部分のフィールドの値が所定の品詞（動詞、副詞および形容詞等）であれば、そのフィールドの値に基づいてクラスタを細分化する。これにより、本実施の形態は、メッセージ中において、システムの動作や状態等を表す重要な情報をそのままメッセージパターンに反映することになる。その結果、本実施の形態を利用する解析者は、メッセージ群の出力元のシステムの振舞いや状況等の重要な情報を、メッセージパターンに基づき正しく把握することが可能となる。
【０１２１】
（第４の実施の形態）
次に、本発明の第４の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第１から第３の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
【０１２２】
まず、本発明の第４の実施の形態としてのメッセージ分析装置４の機能ブロック構成を図１１に示す。図１１において、メッセージ分析装置４は、本発明の第３の実施の形態としてのメッセージ分析装置３に対して、クラスタ細分化部３５に替えてクラスタ細分化部４５を備える点が異なる。
【０１２３】
クラスタ細分化部４５は、本発明の第３の実施の形態におけるクラスタ細分化部３５と略同様に、クラスタリング部２１によって生成されたクラスタ内のメッセージ群を、変数部分の重要性に基づいてさらに分割したクラスタを生成する。ただし、クラスタ細分化部４５は、本発明の第３の実施の形態におけるクラスタ細分化部３５に対して、変数部分の重要性を、変数部分を構成するフィールド間の相関に基づいて判定する点が異なる。
【０１２４】
詳細には、クラスタ細分化部４５は、変数部分を構成する複数のフィールド間に相関が有る場合には、それらのフィールドが重要であるものとして、その値の違いに基づいてクラスタを細分化する。
【０１２５】
具体的には、クラスタ細分化部４５は、クラスタ内において少なくとも１つのメッセージにおいて値が変異しているフィールドを特定する。そして、クラスタ細分化部４５は、変異しているフィールドの組合せについて、引数間の共起関係を分析する。共起関係があるとは、ある変数（フィールド）の値（引数）と別の変数の値とがあるメッセージに同時に出現することである。
【０１２６】
そして、クラスタ細分化部４５は、そのクラスタ内のメッセージ群において、ある変数の値と別の変数の値とが１対１に対応する場合、各フィールド間に相関があると判定してもよい。また、クラスタ細分化部４５は、変数部分を構成するフィールドの組合せについて、引数間の共起確率を算出してもよい。この場合、クラスタ細分化部４５は、引数間の共起確率がランダムな確率に比べて有意に高い（例えば、閾値以上である）場合に、フィールド間に相関があると判定してもよい。
【０１２７】
また、クラスタ細分化部４５は、相関があると判定した各フィールドを重要であるとして、それらの値に基づきクラスタを細分化する。
【０１２８】
以上のように構成されたメッセージ分析装置４の動作について、図１２を参照して説明する。
【０１２９】
まず、メッセージ分析装置４は、ステップＳ２１〜Ｓ２４まで本発明の第２の実施の形態と同様に動作して、形成したクラスタについてフィールドの解析を行い、全体の類似性が所定条件を満たすか否かを判定する。
【０１３０】
次に、クラスタ細分化部４５は、全体の類似性が所定条件を満たすと判定されたクラスタについて、変数部分を構成する複数のフィールド間の相関の有無に基づいて、さらに細分化を行う（ステップＳ４５）。
【０１３１】
具体的には、前述のように、クラスタ細分化部４５は、変数部分を構成する複数のフィールドの組合せについて、それらの引数が１対１に対応する（または引数間の共起確率が閾値以上である）場合には、それらのフィールドが重要であるものと判定する。そして、クラスタ細分化部４５は、それらのフィールドの値の違いに基づいて、クラスタを細分化する。
【０１３２】
次に、メッセージ分析装置４は、本発明の第３の実施の形態と同様にステップＳ２５〜Ｓ２７までを実行する。これにより、パターン生成部２３は、必要に応じて細分化された各クラスタについて、共通パターンおよびその変数部分の引数のリストを、メッセージパターンとして生成し出力する。
【０１３３】
以上で、メッセージ分析装置４は、動作を終了する。
【０１３４】
次に、メッセージ分析装置４の動作を具体例で示す。
【０１３５】
ここでは、クラスタリング部２１により図６に示すクラスタＡおよびクラスタＢが生成され、クラスタＢについて図１３に示すフィールド解析結果が生成されているとする（ステップＳ２１〜Ｓ２４）。
【０１３６】
次に、クラスタ細分化部４５は、フィールド間の相関に基づきクラスタの細分化を行う（ステップＳ４５）。
【０１３７】
具体的には、まず、クラスタ細分化部４５は、クラスタＢにおいて変数部分であるフィールドＩＤ３、７、１１の組合せについて、引数の共起関係を分析する。共起関係の分析結果を模式的に図１４に示す。図１４において、左図は、フィールドＩＤ３および７間での引数の共起関係を示している。また、右図は、フィールドＩＤ７および１１間での引数の共起関係を示している。また、図１４において、矩形は各フィールドの値を示している。また、矩形間を結ぶ線は、共起関係を表している。
【０１３８】
図１４に示したように、フィールドＩＤ３および７間では、その値の出現の仕方に規則性がみられない。一方、フィールドＩＤ７および１１間では、その値が１対１に対応している。つまり、フィールドＩＤ７および１１間では、引数間の共起確率が１００％である。
【０１３９】
この場合、クラスタ細分化部４５は、引数間の共起確率が１００％であるフィールドＩＤ７および１１間に相関があるとみなす。これにより、クラスタ細分化部４５は、相関のあるフィールドＩＤ７および１１を重要なフィールドであると判定する。そして、クラスタ細分化部４５は、これらのフィールドＩＤ７および１１の値（引数）に基づいて、クラスタＢを細分化する。図１５に、クラスタＢが細分化されたクラスタＢ１〜Ｂ３を示す。図１５に示すように、クラスタ細分化部４５は、クラスタＢに含まれているメッセージ群のうち、フィールドＩＤ７および１１の値の組合せが「１１９７」および「ｒｅｓｅｔ」であるＭｓｇ３２７を、クラスタＢ１に分類する。また、クラスタ細分化部４５は、フィールドＩＤ７および１１の値の組合せが「１１９０」および「ｅｓｔａｂｌｉｓｈｅｄ」であるＭｓｇ３８８およびＭｓｇ８１９を、クラスタＢ２に分類する。また、クラスタ細分化部４５は、フィールドＩＤ７および１１の値の組合せが「１１９９」および「ｂｒｏｋｅｎ」であるＭｓｇ５２１を、クラスタＢ３に分類する。
【０１４０】
また、クラスタ細分化部４５は、クラスタＡについても同様に、変数部分のフィールド間の相関に基づいて分割を行い、細分化されたｍ個のクラスタＡ１〜Ａｍ（ｍは１以上の整数）を生成したものとする。
【０１４１】
次に、パターン生成部２３は、細分化されたクラスタＡ１〜ＡｍおよびクラスタＢ１〜Ｂ３について、メッセージパターンを生成する（ステップＳ２５〜Ｓ２７）。
【０１４２】
例えば、クラスタＢ１については、共通パターン「（Ｄａｔｅ）  （Ｔｉｍｅ）  ｈｏｓｔ０３  ＜  ＮＣ  −  １１９７＞  ｎｅｔｗｏｒｋ  ｃｏｎｎｅｃｔｉｏｎ  ｒｅｓｅｔ」が生成される。
【０１４３】
また、クラスタＢ２については、共通パターン「（Ｄａｔｅ）  （Ｔｉｍｅ）  ＊  ＜  ＮＣ  −  １１９０＞  ｎｅｔｗｏｒｋ  ｃｏｎｎｅｃｔｉｏｎ  ｅｓｔａｂｌｉｓｈｅｄ」が生成される。また、さらに、クラスタＢ２については、変数部分であるフィールドＩＤ３の引数のリスト「ｈｏｓｔ０１、ｈｏｓｔ０２」が生成される。
【０１４４】
また、クラスタＢ３については、共通パターン「（Ｄａｔｅ）  （Ｔｉｍｅ）  ｈｏｓｔ０２  ＜  ＮＣ  −  １１９９＞  ｎｅｔｗｏｒｋ  ｃｏｎｎｅｃｔｉｏｎ  ｂｒｏｋｅｎ」が生成される。
【０１４５】
このように、パターン生成部２３は、クラスタＢ１〜Ｂ３において、分割の基準となったフィールドＩＤ７および１１については、不変部分としてその値を共通パターンに含めている。また、この例では、クラスタＢ１およびＢ３において、分割前のクラスタＢにおいて変数部分であったフィールドＩＤ３についても値が同一となっている。そのため、パターン生成部２３は、クラスタＢ１およびＢ３の共通パターンに、フィールドＩＤ３の値を含めている。ただし、パターン生成部２３は、クラスタ細分化部４５によって重要でないと判定された変数部分のフィールドについては、分割後のクラスタにおいて値が一致していない場合には、変数部分として共通パターンを生成することになる。
【０１４６】
パターン生成部２３は、クラスタＡ１〜Ａｍについても、同様にしてメッセージパターンを生成する。
【０１４７】
以上で、具体例の説明を終了する。
【０１４８】
次に、本発明の第４の実施の形態の効果について述べる。
【０１４９】
本発明の第４の実施の形態としてのメッセージ分析装置は、大量のメッセージをより少数のメッセージパターンの集合として提示する際に、メッセージの設計者の意図を示す情報の内容や傾向を、利用者に的確に把握させることができる。
【０１５０】
その理由について述べる。本実施の形態では、本発明の第２の実施の形態と同様の構成に加えて、クラスタ細分化部が、クラスタに含まれるメッセージ群を、変数部分のフィールド間の相関の有無に基づいてさらに細分化するからである。そして、パターン生成部が、細分化されたクラスタについて、メッセージパターンを生成するからである。
【０１５１】
これにより、本実施の形態は、相関のある変数部分の値をメッセージパターンに明示的に含める。つまり、本実施の形態は、変異する部分のうち、相関のある変数部分を主要な情報として、そうでない補助的な情報とを区別することができる。その結果、本実施の形態は、変異する部分であっても、変数間に相関のある主要な情報についてはその値をそのままメッセージパターンに反映させることができる。
【０１５２】
ここで、このような相関のある変数（フィールド）の値は、メッセージの設計者が、なんらかの意図により事前に設計した情報である可能性が高い。たとえば、システムにより出力されるログでは、メッセージの設計者が、エラーメッセージの種類を表すエラーコードや、エラーメッセージの深刻度を表すエラーレベルなどを、共にメッセージに含めるよう設計することが考えられる。このようなメッセージでは、これらのエラーコードおよびエラーレベルをそれぞれ表すフィールド間には、相関が有ることになる。
【０１５３】
このように、本実施の形態は、変数部分であるフィールド間の相関の有無を分析することによって、メッセージの設計者の意図した重要な情報をメッセージパターンに反映することができる。その結果、本実施の形態を利用するメッセージの分析者は、メッセージパターンから、メッセージの設計者の意図を把握することが可能となる。
【０１５４】
なお、上述した本発明の第３および第４の実施の形態において、クラスタ細分化部が、変数部分を構成するフィールドの値の品詞またはフィールド間の相関の有無に基づいて、クラスタを細分化する例について説明した。これに限らず、クラスタ細分化部は、変数部分を構成するフィールドの重要性をその他の情報に基づいて判定し、重要性があると判定したフィールドの値に基づいて細分化を行ってもよい。
【０１５５】
また、上述した本発明の各実施の形態において、メッセージが、ＩＴシステムの要素により出力されたテキスト情報である例を中心に説明したが、メッセージは、他の要素によって出力された情報であってもよい。また、メッセージは、入力装置を介して入力された情報であってもよい。また、メッセージは、テキスト以外の種類の情報を含んでいてもよい。
【０１５６】
また、上述した本発明の各実施の形態において、クラスタリング部が、一致するフィールドの割合を類似度として、または一致しないフィールドの割合を距離として、クラスタリングを行う例について説明した。これに限らず、クラスタリング部は、メッセージ間の類似性を表す情報として算出可能な他の情報に基づいて類似度または距離を算出し、クラスタリングを行ってもよい。
【０１５７】
また、上述した本発明の各実施の形態において、パターン生成部が、不変部分のフィールドの値を表した情報と、変数部分のフィールドを所定の記号で表した情報とを、フィールドの出現順に並べた情報を共通メッセージとして生成する例について説明した。また、パターン生成部が、変数部分のフィールドの取り得る引数のリストを生成する例について説明した。ただし、メッセージパターンの表現形式を限定するものではない。パターン生成部は、クラスタにおいて不変部分を構成するフィールドの値と、変数部分を構成するフィールドのとる引数の値とを認識可能な表現形式であれば、その他の形式でメッセージパターンを生成してもよい。
【０１５８】
また、上述した本発明の各実施の形態において、メッセージ分析装置の各機能ブロックが、記憶装置またはＲＯＭに記憶されたコンピュータ・プログラムを実行するＣＰＵによって実現される例を中心に説明した。これに限らず、各機能ブロックの一部、全部、または、それらの組み合わせが専用のハードウェアにより実現されていてもよい。
【０１５９】
また、上述した本発明の各実施の形態において、メッセージ分析装置の機能ブロックは、複数の装置に分散されて実現されてもよい。
【０１６０】
また、上述した本発明の各実施の形態において、各フローチャートを参照して説明したメッセージ分析装置の動作を、本発明のコンピュータ・プログラムとしてコンピュータの記憶装置（記憶媒体）に格納しておいてもよい。そして、係るコンピュータ・プログラムを当該ＣＰＵが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコードあるいは記憶媒体によって構成される。
【０１６１】
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
【産業上の利用可能性】
【０１６２】
本発明は、大量のメッセージの中から、複数のメッセージの共通部分および変異部分を、あらかじめ変異部分を定義する必要なく抽出することができ、メッセージの内容や傾向の分析を提示する装置として好適である。また、本発明は、システムのログ監視業務において、通知の不要なログをフィルタリングするログ監視ツールにおいて、フィルタリング対象となるメッセージパターンの定義を機械的に生成する装置として好適である。また、本発明は、システム異常時のログ分析作業時において、異常時に大量に発生するエラーメッセージ群から特徴的なログを抽出して分析する作業を支援する装置として好適である。また、本発明は、インターネット上のソーシャルネットワークサービス等にユーザが書き込む大量のメッセージにおいて、ユーザのトレンドや状況把握等の分析を支援する装置として好適である。【０１６３】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。【０１６４】
この出願は、２０１５年６月１１日に出願された日本出願特願２０１５−１１８２１７を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１６５】
１、２、３、４    メッセージ分析装置
１１、２１    クラスタリング部
１２、２２    フィールド解析部
１３、２３    パターン生成部
２４    クラスタ類似性判定部
３５、４５    クラスタ細分化部
１００１  ＣＰＵ
１００２  メモリ
１００３  出力装置
１００４  入力装置
【図１】
2016199433.tif 000003
【図２】
2016199433.tif 000004
【図３】
2016199433.tif 000005
【図４】
2016199433.tif 000006
【図５】
2016199433.tif 000007
【図６】
2016199433.tif 000008
【図７】
2016199433.tif 000009
【図８】
2016199433.tif 000010
【図９】
2016199433.tif 000011
【図１０】
2016199433.tif 000012
【図１１】
2016199433.tif 000013
【図１２】
2016199433.tif 000014
【図１３】
2016199433.tif 000015
【図１４】
2016199433.tif 000016
【図１５】
2016199433.tif 000017
【国際調査報告】
2016199433.tif 000018
2016199433.tif 000019
2016199433.tif 000020
2016199433.tif 000021