(57)【特許請求の範囲】
【請求項１】
システムから出力されたテキストログに含まれるメッセージを種別ごとに分類し、分類した各メッセージに、種別ごとに設定されたＩＤを付与する分類部と、
前記メッセージに付された発生日時に基づいて、所定の時間幅ごとの前記メッセージの前記テキストログにおける出現状況を、前記ＩＤごとに表した行列を作成する作成部と、
前記作成部によって作成された行列から、前記ＩＤの組み合わせであるパターンを複数抽出するパターン抽出部と、
前記行列から前記パターンの一部又は全部を除去する除去部と、
前記複数のパターンそれぞれに含まれる要素それぞれについて重要度を計算し、前記重要度が所定の閾値以上であるか否かを判定する判定部と、
前記テキストログから、前記判定部によって前記重要度が前記所定の閾値以上であると判定された要素に関する所定の情報を抽出する情報抽出部と、
を有することを特徴とする分析装置。
【請求項２】
前記判定部は、前記複数のパターンそれぞれに含まれるＩＤそれぞれについて前記重要度を計算し、前記重要度が所定の閾値以上であるか否かを判定し、
前記情報抽出部は、前記判定部によって、前記重要度が所定の閾値以上であると判定されたＩＤがどのような順序で出現しているのかを表すシーケンスから、特定のシーケンスを抽出することを特徴とする請求項１に記載の分析装置。
【請求項３】
システムから出力されたテキストログに含まれるメッセージを種別ごとに分類し、分類した各メッセージに、種別ごとに設定されたＩＤを付与する分類部と、
前記メッセージに付された発生日時に基づいて、所定の時間幅ごとの前記メッセージの前記テキストログにおける出現状況を、前記ＩＤごとに表した行列であるログ行列を作成する作成部と、
前記ログ行列を分解し、前記ＩＤの組み合わせであるパターンを列ベクトルにもつ基底行列と、前記パターンが前記所定の時間幅ごとにどの程度出現したかを表す行ベクトルをもつ重み行列とを抽出するパターン抽出部と、
前記ログ行列から前記パターンの一部又は全部を除去する除去部と、
を有することを特徴とする分析装置。
【請求項４】
前記パターン抽出部は、非負値行列因子分解によって前記ログ行列を分解することを特徴とする請求項３に記載の分析装置。
【請求項５】
前記パターン抽出部は、前記除去部によって前記パターンが除去されたログ行列から、さらにパターンを抽出することを特徴とする請求項３又は４に記載の分析装置。
【請求項６】
前記除去部は、前記基底行列と前記重み行列の各パターンの要素のうち値が所定の閾値より小さい要素の値を０に置き換えた有意重み行列との積と、前記基底行列の各パターンの要素のうち値が所定の閾値より小さい要素の値を０に置き換えた有意基底行列と前記重み行列との積と、前記有意基底行列と前記有意重み行列との積と、のうちのいずれか１つを前記ログ行列から差し引くことで、前記パターンを除去することを特徴とする請求項３乃至５のいずれか１項に記載の分析装置。
【請求項７】
前記除去部は、前記基底行列と前記重み行列の各パターンの要素のうち値が所定の閾値以上である要素の値を０に置き換えた非有意重み行列との積と、前記基底行列の各パターンの要素のうち値が所定の閾値以上である要素の値を０に置き換えた非有意基底行列と前記重み行列との積と、前記非有意基底行列と前記非有意重み行列との積と、のうちのいずれか１つを前記ログ行列から前記パターンを除去した行列とすることを特徴とする請求項３乃至５のいずれか１項に記載の分析装置。
【請求項８】
各行の項目としてアイテムインデックスを持ち、各列の項目としてインスタンスインデックスを持つ入力行列を、２つの行列の積に分解する分析装置であって、
前記アイテムインデックスの組み合わせであるパターンを列ベクトルに複数持つ基底行列と、それぞれの前記パターンの前記インスタンスインデックスにおける重みを各行ベクトルに持つ重み行列と、を抽出するパターン抽出部と、
前記複数のパターンそれぞれに含まれる前記アイテムインデックスそれぞれについて、重要度を計算し、前記重要度が所定の閾値以上であるか否かを判定する判定部と、
を有することを特徴とする分析装置。
【請求項９】
前記判定部は、前記重要度として該パターンに含まれる前記基底行列のアイテムインデックスごとの要素の値を用い、前記閾値として該パターンに含まれる全ての前記基底行列のアイテムインデックスごとの要素の値を基に、大津の手法を用いて計算した閾値を用いることを特徴とする請求項８に記載の分析装置。
【請求項１０】
前記判定部は、該パターンの前記基底行列のアイテムインデックスごとの要素の値が高いほど高くなり、かつ、該基底行列のアイテムインデックスを含む前記パターンが多いほど低くなるように前記重要度を計算することを特徴とする請求項８に記載の分析装置。
【請求項１１】
前記判定部は、前記基底行列のアイテムインデックスごとの要素の値を基に、大津の手法を用いて第１の閾値を計算し、前記要素の値が前記第１の閾値以上であるアイテムインデックスについて、前記重要度を計算することを特徴とする請求項１０に記載の分析装置。
【請求項１２】
前記パターン抽出部は、前記パターンの所定の重み行列のインスタンスインデックスごとの要素の値をさらに抽出し、
前記判定部は、前記パターンの前記所定の重み行列のインスタンスインデックスそれぞれについて第２の重要度を計算し、前記第２の重要度が所定の第２の閾値以上であるか否かをさらに判定することを特徴とする請求項８乃至１１のいずれか１項に記載の分析装置。
【請求項１３】
前記判定部は、前記第２の重要度として該パターンの前記所定の重み行列のインスタンスインデックスごとの要素の値を用い、前記第２の閾値として前記要素の値を基に、大津の手法を用いて計算した閾値を用いることを特徴とする請求項１２に記載の分析装置。
【請求項１４】
前記判定部は、該パターンの前記所定の重み行列のインスタンスインデックスごとの要素の値が高いほど高くなり、かつ、該所定の重み行列のインスタンスインデックスに要素の値を持つ前記パターンが多いほど低くなるように前記第２の重要度を計算することを特徴とする請求項１２に記載の分析装置。
【請求項１５】
前記判定部は、前記所定の重み行列のインスタンスインデックスごとの要素の値を基に、大津の手法を用いて第３の閾値を計算し、前記所定の重み行列のインスタンスインデックスごとの要素の値が前記第３の閾値以上であるインスタンスインデックスについて、前記第２の重要度を計算することを特徴とする請求項１４に記載の分析装置。
【請求項１６】
システムから出力されたテキストログに含まれるメッセージを種別ごとに分類し、分類した各メッセージに、種別ごとに設定されたＩＤを付与する分類部と、
前記メッセージに付された発生日時に基づいて、所定の時間幅ごとの前記メッセージの前記テキストログにおける出現状況を、前記ＩＤごとに表した行列を作成する作成部と、
前記作成部によって作成された行列から、前記ＩＤの組み合わせであるパターンを複数抽出するパターン抽出部と、
前記複数のパターンそれぞれに含まれるＩＤそれぞれについて重要度を計算し、前記重要度が所定の閾値以上であるか否かを判定する判定部と、
前記テキストログの各メッセージを前記分類部で付与されたＩＤに置換したログから、前記判定部が前記所定の閾値以上であると判定したＩＤのみを抜き出した有意ログを生成する有意ログ抽出部と、
前記重要度の高いＩＤがどのような順序で出現しているのかを表すシーケンスのそれぞれの出現回数を、前記生成した有意ログからカウントし、当該出現回数が所定の閾値以上でかつ所定の条件を満たすシーケンスを抽出するシーケンス抽出部と、
を有することを特徴とする分析装置。
【請求項１７】
前記パターン抽出部は、前記パターンの前記所定の時間幅ごとの出現の程度をさらに抽出し、
前記判定部は、前記パターンの前記所定の時間幅それぞれについて第２の重要度を計算し、前記第２の重要度が所定の第２の閾値以上であるか否かをさらに判定し、
前記有意ログ抽出部は、前記判定部が前記所定の第２の閾値以上であると判定した所定の時間幅のみを抜き出した有意ログを生成する
ことを特徴とする請求項１６に記載の分析装置。
【請求項１８】
分析装置で実行される分析方法であって、
システムから出力されたテキストログに含まれるメッセージを種別ごとに分類し、分類した各メッセージに、種別ごとに設定されたＩＤを付与する分類工程と、
前記メッセージに付された発生日時に基づいて、所定の時間幅ごとの前記メッセージの前記テキストログにおける出現状況を、前記ＩＤごとに表した行列を作成する作成工程と、
前記作成工程によって作成された行列から、前記ＩＤの組み合わせであるパターンを複数抽出するパターン抽出工程と、
前記行列から前記パターンの一部又は全部を除去する除去工程と、
前記複数のパターンそれぞれに含まれる要素それぞれについて重要度を計算し、前記重要度が所定の閾値以上であるか否かを判定する判定工程と、
前記テキストログから、前記判定工程によって前記重要度が前記所定の閾値以上であると判定された要素に関する所定の情報を抽出する情報抽出工程と、
を含んだことを特徴とする分析方法。
【請求項１９】
分析装置で実行される分析方法であって、
システムから出力されたテキストログに含まれるメッセージを種別ごとに分類し、分類した各メッセージに、種別ごとに設定されたＩＤを付与する分類工程と、
前記メッセージに付された発生日時に基づいて、所定の時間幅ごとの前記メッセージの前記テキストログにおける出現状況を、前記ＩＤごとに表した行列であるログ行列を作成する作成工程と、
前記ログ行列を分解し、前記ＩＤの組み合わせであるパターンを列ベクトルにもつ基底行列と、前記パターンが前記所定の時間幅ごとにどの程度出現したかを表す行ベクトルをもつ重み行列とを抽出するパターン抽出工程と、
前記ログ行列から前記パターンの一部又は全部を除去する除去工程と、
を含んだことを特徴とする分析方法。
【請求項２０】
各行の項目としてアイテムインデックスを持ち、各列の項目としてインスタンスインデックスを持つ入力行列を、２つの行列の積に分解する分析装置で実行される分析方法であって、
前記アイテムインデックスの組み合わせであるパターンを列ベクトルに複数持つ基底行列と、それぞれの前記パターンの前記インスタンスインデックスにおける重みを各行ベクトルに持つ重み行列と、を抽出するパターン抽出工程と、
前記複数のパターンそれぞれに含まれる前記アイテムインデックスそれぞれについて、重要度を計算し、前記重要度が所定の閾値以上であるか否かを判定する判定工程と、
を含んだことを特徴とする分析方法。
【請求項２１】
分析装置で実行される分析方法であって、
システムから出力されたテキストログに含まれるメッセージを種別ごとに分類し、分類した各メッセージに、種別ごとに設定されたＩＤを付与する分類工程と、
前記メッセージに付された発生日時に基づいて、所定の時間幅ごとの前記メッセージの前記テキストログにおける出現状況を、前記ＩＤごとに表した行列を作成する作成工程と、
前記作成工程によって作成された行列から、前記ＩＤの組み合わせであるパターンを複数抽出するパターン抽出工程と、
前記複数のパターンそれぞれに含まれるＩＤそれぞれについて重要度を計算し、前記重要度が所定の閾値以上であるか否かを判定する判定工程と、
前記テキストログの各メッセージを前記分類工程で付与されたＩＤに置換したログから、前記判定工程が前記所定の閾値以上であると判定したＩＤのみを抜き出した有意ログを生成する有意ログ抽出工程と、
前記重要度の高いＩＤがどのような順序で出現しているのかを表すシーケンスのそれぞれの出現回数を、前記生成した有意ログからカウントし、当該出現回数が所定の閾値以上でかつ所定の条件を満たすシーケンスを抽出するシーケンス抽出工程と、
を有することを特徴とする分析方法。
【請求項２２】
コンピュータを、請求項１から１７のいずれか１項に記載の分析装置として機能させるための分析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分析装置、分析方法及び分析プログラムに関する。
【背景技術】
【０００２】
従来、サーバシステムやネットワークシステムにおける異常検知や状態分析のために、ｓｙｓｌｏｇやＭＩＢ（Management  Information  Base）情報等のテキストログを用いたシステムの監視が行われている。例えば、システムに障害が発生した際に、人手によって特定のキーワードでテキストログを検索し、当該キーワードを含んだメッセージをクリティカルなメッセージとして抽出することが行われている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】山西健司、「データマイニングによる異常検知」、2009年、共立出版
【非特許文献２】澤田  宏、「非負値行列因子分解NMFの基礎とデータ/信号解析への応用」、電子情報通信学会誌Vol.95  No.9、pp.829-833、2012年9月
【非特許文献３】Tatsuaki  Kimura,  et  al.  "Spatio-temporal  factorization  of  log  data  for  understanding  network  events."  IEEE  INFOCOM  2014-IEEE  Conference  on  Computer  Communications.  IEEE,  2014.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のテキストログを用いたシステムの監視には、大量のテキストログを効率的に分析し、有用な情報を得ることが困難であるという問題があった。例えば、システム構成の大規模化や複雑化に伴いテキストログの種類及び量が膨大になった場合、人手によって効率的な分析を行うことは困難である。また、特定のキーワードで検索することでクリティカルなメッセージを抽出する場合、抽出されなかったメッセージに含まれる有用な情報が見過ごされることがある。
【課題を解決するための手段】
【０００５】
本発明の分析装置は、システムから出力されたテキストログに含まれるメッセージを種別ごとに分類し、分類した各メッセージに、種別ごとに設定されたＩＤを付与する分類部と、前記メッセージに付された発生日時に基づいて、所定の時間幅ごとの前記メッセージの前記テキストログにおける出現状況を、前記ＩＤごとに表した行列を作成する作成部と、前記作成部によって作成された行列から、前記ＩＤの組み合わせであるパターンを複数抽出するパターン抽出部と、前記行列から前記パターンの一部又は全部を除去する除去部と、前記複数のパターンそれぞれに含まれる要素それぞれについて重要度を計算し、前記重要度が所定の閾値以上であるか否かを判定する判定部と、前記テキストログから、前記判定部によって前記重要度が前記所定の閾値以上であると判定された要素に関する所定の情報を抽出する情報抽出部と、を有することを特徴とする。【０００６】
本発明の分析方法は、分析装置で実行される分析方法であって、システムから出力されたテキストログに含まれるメッセージを種別ごとに分類し、分類した各メッセージに、種別ごとに設定されたＩＤを付与する分類工程と、前記メッセージに付された発生日時に基づいて、所定の時間幅ごとの前記メッセージの前記テキストログにおける出現状況を、前記ＩＤごとに表した行列を作成する作成工程と、前記作成工程によって作成された行列から、前記ＩＤの組み合わせであるパターンを複数抽出するパターン抽出工程と、前記行列から前記パターンの一部又は全部を除去する除去工程と、前記複数のパターンそれぞれに含まれる要素それぞれについて重要度を計算し、前記重要度が所定の閾値以上であるか否かを判定する判定工程と、前記テキストログから、前記判定工程によって前記重要度が前記所定の閾値以上であると判定された要素に関する所定の情報を抽出する情報抽出工程と、を含んだことを特徴とする。
【発明の効果】
【０００７】
本発明によれば、大量のテキストログを効率的に分析し、有用な情報を得ることができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、第１の実施形態に係る分析装置の構成の一例を示す図である。
【図２】図２は、第１の実施形態に係るテキストログの一例を示す図である。
【図３】図３は、第１の実施形態に係る辞書情報のデータ構成の一例を示す図である。
【図４】図４は、第１の実施形態に係るテンプレートの作成について説明するための図である。
【図５】図５は、第１の実施形態に係る分類済みテキストログの一例を示す図である。
【図６】図６は、第１の実施形態に係るログ行列の一例を示す図である。
【図７】図７は、第１の実施形態に係る１ヶ月分のテキストログを、１時間の時間幅のログ行列として可視化した画像の一例を示す図である。
【図８】図８は、第１の実施形態に係るログ行列の分解について説明するための図である。
【図９】図９は、第１の実施形態に係る基底行列を可視化した画像の一例を示す図である。
【図１０】図１０は、第１の実施形態に係る重み行列を可視化した画像の一例を示す図である。
【図１１】図１１は、第１の実施形態に係る高頻度パターンの除去について説明するための図である。
【図１２】図１２は、第１の実施形態に係る高頻度パターンの除去について説明するための図である。
【図１３】図１３は、第１の実施形態に係る高頻度パターンを除去した後の基底行列を可視化した画像の一例を示す図である。
【図１４】図１４は、第１の実施形態に係る高頻度パターンを除去した後の重み行列を可視化した画像の一例を示す図である。
【図１５】図１５は、第１の実施形態に係るテキストログのプロファイリングについて説明するための図である。
【図１６】図１６は、第１の実施形態に係るシーケンスの抽出について説明するための図である。
【図１７】図１７は、実施形態に係る分析装置の処理の流れを示すフローチャートである。
【図１８】図１８は、その他の実施形態に係る辞書情報のデータ構成の一例を示す図である。
【図１９】図１９は、プログラムが実行されることにより分析装置が実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【０００９】
以下に、本願に係る分析装置、分析方法及び分析プログラムの実施形態を図面に基づいて詳細に説明する。なお、本発明は、以下に説明する実施形態により限定されるものではない。
【００１０】
［第１の実施形態の構成］
まず、図１を用いて、第１の実施形態に係る分析装置の構成について説明する。図１は、第１の実施形態に係る分析装置の構成の一例を示す図である。図１に示すように、分析装置１０は、通信部１１、入力部１２、出力部１３、記憶部１４及び制御部１５を有する。
【００１１】
通信部１１は、ネットワークを介して、他の装置との間でデータ通信を行う。例えば、通信部１１はＮＩＣ（Network  Interface  Card）である。入力部１２は、ユーザからのデータの入力を受け付ける。入力部１２は、例えば、マウスやキーボード等の入力装置である。出力部１３は、画面の表示等により、データを出力する。出力部１３は、例えば、ディスプレイ等の表示装置である。
【００１２】
記憶部１４は、ＨＤＤ（Hard  Disk  Drive）、ＳＳＤ（Solid  State  Drive）、光ディスク等の記憶装置である。なお、記憶部１４は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ、ＮＶＳＲＡＭ（Non  Volatile  Static  Random  Access  Memory）等のデータを書き換え可能な半導体メモリであってもよい。記憶部１４は、分析装置１０で実行されるＯＳ（Operating  System）や各種プログラムを記憶する。さらに、記憶部１４は、プログラムの実行で用いられる各種情報を記憶する。また、記憶部１４は、出力ログ情報１４１及び辞書情報１４２を記憶する。
【００１３】
記憶部１４は、システムから出力されたテキストログを出力ログ情報１４１として記憶する。ここで、テキストログは、例えば、計算機システムを構成するサーバマシン、パーソナルコンピュータ、ストレージ等から出力される。また、テキストログは、例えば、ネットワークシステムを構成するルータ、ファイアウォール、ロードバランサ、光伝送装置、光伝送中継器等から出力される。また、出力されるテキストログは、システム全体に関するものであってもよいし、システムを構成する装置に関するものであってもよい。さらに、テキストログは、計算機システムやネットワークシステムが仮想化された環境において出力されたものであってもよい。
【００１４】
また、テキストログは、プラントや発電機、工作機械から出力されたものであってもよい。また、テキストログは、乗用車、飛行機、電車等の乗用機器から出力されたものであってもよい。また、テキストログは、家電、携帯電話、スマートフォン等の小型電子機器から出力されたものであってもよい。また、テキストログは、人間や動物等の生体及び当該生体の生体情報を測定するセンサ機器から出力されたものであってもよい。
【００１５】
テキストログは、例えば、ＯＳのシスログ、アプリケーション及びデータベースの実行ログ、エラーログ、操作ログ、ネットワーク機器から得られるＭＩＢ情報、監視システムのアラート、行動ログ、動作状態ログ等である。
【００１６】
図２は、第１の実施形態に係るテキストログの一例を示す図である。図２に示すように、テキストログ５１の各レコードは、メッセージとメッセージに付された発生日時とを含む。例えば、テキストログ５１の１行目のレコードは、メッセージ「LINK-UP  Gigabitethernet  0/0/0」と、発生日時「2016/12/01T15:01:31」とを含む。なお、メッセージには、ホストやログレベルといった付加情報を含んでも構わない。
【００１７】
記憶部１４は、テキストログのメッセージを分類するためのデータを辞書情報１４２として記憶する。図３は、第１の実施形態に係る辞書情報のデータ構成の一例を示す図である。図３に示すように、辞書情報１４２は、ＩＤ及びテンプレートを含む。ＩＤは、テキストログのメッセージが分類される種別を識別するための情報である。テンプレートは、テキストログのメッセージの分類に用いられる文字列である。例えば、ＩＤが「６０１」である種別にメッセージが分類されるか否かは、テンプレート「LINK-UP  Interface  *」を用いて判定される。なお、辞書情報１４２を用いたメッセージの分類は分類部１５１によって行われる。分類部１５１の具体的な処理については後述する。
【００１８】
制御部１５は、分析装置１０全体を制御する。制御部１５は、例えば、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）等の電子回路や、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路である。また、制御部１５は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、内部メモリを用いて各処理を実行する。また、制御部１５は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部１５は、分類部１５１、作成部１５２、パターン抽出部１５３、除去部１５４、判定部１５５、有意ログ抽出部１５６及びシーケンス抽出部１５７を有する。
【００１９】
分類部１５１は、システムから出力されたテキストログに含まれるメッセージを種別ごとに分類し、分類した各メッセージに、種別ごとに設定されたＩＤを付与する。これ以降、分類した各メッセージをテンプレートと表記する。前述の通り、分類部１５１は、辞書情報１４２を用いて分類を行う。
【００２０】
ここで、辞書情報１４２は、分類部１５１によって作成されてもよい。例えば、分類部１５１は、メッセージからパラメータを削除することで得られる文字列を基にテンプレートを作成することができる。ここで、図４を用いて、テキストログに基づいたテンプレートの作成方法について説明する。図４は、第１の実施形態に係るテンプレートの作成について説明するための図である。
【００２１】
図４に示すように、分類部１５１は、例えば、「数値/数値/数値」と表される文字列をパラメータとみなし、メッセージからパラメータを削除した文字列をテンプレートとすることができる。この場合、分類部１５１は、図２のテキストログ５１に含まれるメッセージ「LINK-UP  Interface  1/0/17」、又はメッセージ「LINK-UP  Interface  0/0/0」から、「LINK-UP  Interface」というテンプレートを作成する。さらに、分類部１５１は、作成したテンプレートにＩＤを設定し、記憶部１４の辞書情報１４２に追加する。このとき、分類部１５１は、パラメータを削除した部分に「*」等のワイルドカードを追加してもよい。
【００２２】
なお、分類部１５１がパラメータとみなす文字列は上記の例に限られない。分類部１５１は、例えば、全ての数値をパラメータとみなしてもよいし、アドレスを表す文字列をパラメータとみなしてもよい。また、分類部１５１は、メッセージの分類を行う際に、いずれのテンプレートにも一致しないメッセージが見つかった場合、当該メッセージを基に新たなテンプレートを作成してもよい。
【００２３】
また、本実施形態において、辞書情報１４２のテンプレートは、分類部１５１によって作成されたものである必要はなく、あらかじめユーザにより作成されたものや、分析装置１０以外の装置によって自動的に作成されたものであってもよい。
【００２４】
分類部１５１は、辞書情報１４２のテンプレートがテキストログのメッセージに一致するか否かを判定することにより、メッセージの分類を行う。このとき、分類部１５１は、テンプレートがメッセージに完全一致する場合、又は、部分一致する場合に、テンプレートがメッセージに一致すると判定する。そして、分類部１５１は、メッセージに対し、一致すると判定されたテンプレートのＩＤを付与する。
【００２５】
例えば、図３のＩＤが「６０２」であるテンプレート「LINK-UP  Gigabitethernet  *」が、図２のテキストログ５１の１行目のメッセージ「LINK-UP  Gigabitethernet  0/0/0」に部分一致するため、分類部１５１はテンプレート「LINK-UP  Gigabitethernet  *」がメッセージ「LINK-UP  Gigabitethernet  0/0/0」に一致すると判定し、メッセージ「LINK-UP  Gigabitethernet  0/0/0」にＩＤ「６０２」を付与する。
【００２６】
また、例えば、図３のＩＤが「７０１」であるテンプレート「network_monitor:[INFO]:network  monitor  detection  started.」が、図２のテキストログ５１の２行目のメッセージ「network_monitor:[INFO]:network  monitor  detection  started.」に完全一致するため、分類部１５１はテンプレート「network_monitor:[INFO]:network  monitor  detection  started.」がメッセージ「network_monitor:[INFO]:network  monitor  detection  started.」に一致すると判定し、メッセージ「network_monitor:[INFO]:network  monitor  detection  started.」にＩＤ「７０１」を付与する。
【００２７】
テンプレートの作成やメッセージとの一致の判定は、上記の方法に限定するものではなく、クラスタリング等の機械学習アルゴリズムによって行われてもよい。例えば、上記の判定は、ログのクラスタリングに関する既知の手法（参考文献１：特開２０１５−３６８９１号公報）によって行われてもよい。
【００２８】
分類部１５１は、メッセージの分類及びＩＤの付与を行うことで、分類済みテキストログ５２を作成する。図５は、第１の実施形態に係る分類済みテキストログの一例を示す図である。図５に示すように、分類済みテキストログ５２の各レコードは、メッセージのＩＤ及び発生日時を含む。例えば、分類済みテキストログ５２の１行目のレコードは、メッセージ「LINK-UP  Gigabitethernet  0/0/0」に付与されたＩＤ「６０２」と、発生日時「2016/12/01T15:01:31」とを含む。また、例えば、分類済みテキストログ５２の２行目のレコードは、メッセージ「network_monitor:[INFO]:network  monitor  detection  started.」に付与されたＩＤ「７０１」と、発生日時「2016/12/01T15:01:53」とを含む。
【００２９】
また、図２の１行目のメッセージ「LINK-UP  Gigabitethernet  0/0/0」と、４行目のメッセージ「LINK-UP  Gigabitethernet  0/2/5」とは互いに異なるが、いずれもテンプレート「LINK-UP  Gigabitethernet  *」と一致するため、分類部１５１は、両方のメッセージにＩＤ「６０２」を付与する。
【００３０】
作成部１５２は、メッセージに付された発生日時に基づいて、所定の時間幅ごとのテキストログ５１におけるメッセージの出現状況を、ＩＤごとに表した行列であるログ行列を作成する。出現状況は、具体的にはＩＤごとの出現頻度や、出現頻度の対数を取る等の加工をした値、又は出現有無（出現時に１、非出現時に０を取る値）等が考えられるが、この例に限定されるものではない。以下の実施例では、出現状況として出現頻度を用いた例を示す。作成部１５２は、ログ行列の作成に用いるメッセージの発生日時及びＩＤを、分類済みテキストログ５２から取得する。
【００３１】
図６は、第１の実施形態に係るログ行列の一例を示す図である。ログ行列の各行は、辞書情報１４２のＩＤに対応している。また、ログ行列の各列は、１０分間の所定の日時間に対応している。以降の説明において、図６に示すログ行列Ｙの上側の部分の各行を、それぞれ６０１行目〜６０４行目とし、下側の部分の各行を、それぞれ７０１行目〜７０６行目とする。また、ログ行列Ｙのｐ行目のｑ列目の要素を、要素（ｐ，  ｑ）のように表すこととする。例えば、ログ行列Ｙの要素（６０１，１）の値は「２」である。
【００３２】
ログ行列Ｙの６０１行目は、ＩＤ「６０１」に対応している。また、ログ行列Ｙの６０２行目は、ＩＤ「６０２」に対応している。また、ログ行列Ｙの７０１行目は、ＩＤ「７０１」に対応している。また、ログ行列Ｙの７０２行目は、ＩＤ「７０２」に対応している。また、ログ行列Ｙの１列目は2016/12/01T15:00:01〜2016/12/01T15:10:00の間の１０分間に対応している。また、ログ行列Ｙの２列目は2016/12/01T15:10:01〜2016/12/01T15:20:00の間の１０分間に対応している。また、図５には、発生日時が2016/12/01T15:00:01〜2016/12/01T15:10:00であるメッセージのＩＤ及び発生日時が全て示されていることとする。
【００３３】
ログ行列は、どのＩＤが何行目に対応しているのかがわかれば行番号とＩＤは一致していなくても構わない。また、ログ行列において、ＩＤや時間が連続している必要もなく、抜けているＩＤや時間があっても構わない。
【００３４】
作成部１５２は、１０分ごとのメッセージの出現数をＩＤごとに集計し、ログ行列Ｙの各要素の値とする。例えば、図５に示すように、発生日時が2016/12/01T15:00:01〜2016/12/01T15:10:00の間であるメッセージのうち、ＩＤが「６０１」であるメッセージは２個である。このため、図６に示すように、作成部１５２は、ログ行列Ｙの要素（６０１,  １）の値を「２」とする。また、例えば、図５に示すように、発生日時が2016/12/01T15:00:01〜2016/12/01T15:10:00の間であるメッセージのうち、ＩＤが「７０１」であるメッセージは１個である。このため、図６に示すように、作成部１５２は、ログ行列Ｙの要素（７０１,  １）の値を「１」とする。同様に、作成部１５２は、各ＩＤ及び各時間幅についてメッセージの出現数を集計し、ログ行列Ｙの各要素の値を設定する。
【００３５】
出力部１３は、ログ行列Ｙを可視化した画像を出力する。図７は、第１の実施形態に係る１ヶ月分のテキストログを、１時間の時間幅のログ行列として可視化した画像の一例を示す図である。図７の縦軸はＩＤを表している。また、図７の横軸は時間を表している。また、図７では、メッセージの出現状況が高い要素ほど濃い色で表される。
【００３６】
また、ログ行列Ｙは、複数の異なる性質のテキストログに基づいて作成される場合がある。例えば、ログ行列Ｙは、ｓｙｓｌｏｇに従って出力されたテキストログ、及び、ＯｐｅｎＳｔａｃｋのシステムから出力されたテキストログに基づいて作成される場合がある。このような場合であっても、出力部１３は、図７に示すように、ログ行列Ｙを１つの画像として可視化することができる。
【００３７】
図７の領域５３１には、１日ごとに出力されていることから、日次処理等の定期処理に基づくＩＤ群が現れていることがわかる。同様に、領域５３２には、常時実行されている処理に基づくＩＤ群が現れている。また、領域５３３には、２日を除く５日間に出力されていることから、平日の業務に関連した処理に基づくＩＤ群が現れていることがわかる。一方、このシステムでは、２日にシステム故障が発生しており、領域５３４には、故障に起因して出力されたとみられるＩＤ群が現れている。このため、異常検知のためには、特に、領域５３４に現れているようなＩＤ群を抽出することが重要である。
【００３８】
パターン抽出部１５３は、作成部１５２によって作成されたログ行列から、ＩＤの組み合わせを、パターンとして抽出する。具体的には、パターン抽出部１５３は、非負値行列因子分解（ＮＭＦ：Nonnegative  Matrix  Factorization）によってログ行列を分解し、ＩＤの組み合わせであるパターンを列ベクトルにもつ基底行列と、パターンが所定の時間幅ごとにどの程度出現したかを表す行ベクトルをもつ重み行列を、パターンとして抽出する。ＮＭＦによる行列分解では、比較的高頻度に出現するパターンが抽出される特性があることが知られている。なお、行列分解の方法としては、主成分分析や独立成分分析等の方法を用いることもでき、ＮＭＦのみに限定されるものではない。
【００３９】
なお、行列が非負値のみを含む場合は、行列分解の方法として、Non-negative  Principal  Component  AnalysisやNon-negative  Independent  Component  Analysis等の方法を用いることもできる。
【００４０】
まず、図８を用いて、ログ行列の分解について説明する。図８は、第１の実施形態に係るログ行列の分解について説明するための図である。パターン抽出部１５３は、ＮＭＦを用いて、ログ行列Ｙを、基底行列Ｈと重み行列Ｕとに分解する。パターン抽出部１５３は、例えば非特許文献２に記載された方法でＮＭＦを行うことができる。なお、本実施形態におけるログ行列Ｙ、基底行列Ｈ、重み行列Ｕは、それぞれ、非特許文献２に記載された行列Ｘ、行列Ｔ、行列Ｖに対応する。また、ログ行列Ｙ、基底行列Ｈ及び重み行列Ｕの関係は、Ｅを誤差行列として、式（１）のように表すことができる。
【００４１】
【数１】
0006714152.tif 000002
【００４２】
基底行列Ｈの各行は、ログ行列Ｙの各行、すなわちＩＤに対応している。重み行列Ｕの各列は、ログ行列Ｙの各列、すなわち時間幅に対応している。また、基底行列Ｈの各列、及び、重み行列Ｕの各行は、ＩＤの組み合わせである各パターンに対応している。一例として、本実施形態における基底行列Ｈの列数は１０であり、基底行列Ｈの１〜１０列目に現れるＩＤの組み合わせには、基底番号１〜１０が設定されることとする。
【００４３】
また、基底行列Ｈには、同時に繰り返し現れるメッセージ群に対応するＩＤの組み合わせであるパターンにどのＩＤがどの程度含まれているかが現れるということができる。また、重み行列Ｕには、基底行列Ｈの各列に現れるＩＤの組み合わせであるパターンがどの時間帯にどの程度発生したかが現れるということができる。
【００４４】
出力部１３は、図９のように基底行列Ｈを可視化した画像を出力することができる。図９は、第１の実施形態に係る基底行列を可視化した画像の一例を示す図であり、図７のログ行列にＮＭＦを実行して得られた基底行列を表す。図７の領域５３２のように、ログ行列で常時現れているようなＩＤ群は、基底番号１から１０のどのパターンにも含まれていることが図９から確認される。例えば、基底番号１のパターンは、図７の領域５３１のＩＤ群が含まれている。また、基底番号４のパターンは領域５３３のＩＤ群が含まれている。このように、出現の多いＩＤ群はパターンとして抽出されているが、図７の領域５３４のような、出現の少ないＩＤ群（故障等）は抽出されていない。
【００４５】
出力部１３は、図１０のように重み行列Ｕを可視化した画像を出力することができる。図１０は、第１の実施形態に係る重み行列を可視化した画像の一例を示す図であり、図７のログ行列にＮＭＦを実行して得られた重み行列を表す。図１０に示すように、基底番号１のパターンは、日次で出現するパターンであることが示されており、図９からこのパターンが日次処理のＩＤ群を含んでいると確認したことと合致する。また、基底番号４のパターンは、大きく５回の出現の後に間を開けてまた５回出現していることから、平日に出現しており、図９からこのパターンが平日の業務に関連したＩＤを含んでいると確認したことと合致する。平日に出現しているパターンは、基底番号４の他に、６と９も該当する。一方、基底番号７、８、１０のパターンは常時出現するパターンであることがわかる。
【００４６】
定期的に、又は常時発生するような出現が多いＩＤ群については、出現タイミングが図１０に明確に現れている。一方で、図７の領域５３４のような、故障等の異常に基づいて発生しているＩＤ群ついては、出現タイミングが図１０に明確に現れていない。図９にも図７の領域５３４に含まれるＩＤ群が現れておらず、パターンとして抽出できていないことがわかる。
【００４７】
除去部１５４は、ログ行列から高頻度パターンを除去する。具体的には、除去部１５４は、基底行列と重み行列の各パターンの要素のうち値が所定の閾値より小さい要素の値を０に置き換えた有意重み行列との積と、基底行列の各パターンの要素のうち値が所定の閾値より小さい要素の値を０に置き換えた有意基底行列と重み行列との積と、有意基底行列と有意重み行列との積と、のうちのいずれか１つをログ行列から差し引くことで、パターンを除去する。なお、この計算の際にログ行列の要素がマイナスになる場合には、０で置き換えることで非負値にすることもできる。
【００４８】
例えば、除去部１５４は、式（２）によってログ行列から高頻度パターンを除去する。ただし、Ｙはログ行列、Ｈは基底行列、Ｕは重み行列、Ｅ誤差行列である。また、Ｙ＝ＨＵ＋Ｅと分解されるとする。また、Ｈｆｒｅｑは、Ｈの各列について、値が所定の閾値より小さい行の値を０に置き換えたもの、すなわち有意基底行列である。また、Ｕｆｒｅｑは、Ｕの各行について、値が所定の閾値より小さい列の値を０に置き換えたもの、すなわち有意重み行列である。また、Ｙ´e１は頻出パターン除去後のログ行列である。
【００４９】
【数２】
0006714152.tif 000003
【００５０】
式（２）に示すように、Ｈe１は、Ｈ又はＨｆｒｅｑのいずれかである。また、Ｕe１は、Ｕ又はＵｆｒｅｑのいずれかである。ただし、Ｈe１がＨである場合はＵe１はＵｆｒｅｑであることとし、また、Ｕe１がＵである場合はＨe１はＨｆｒｅｑであることとする。つまり、式（２）のＨe１Ｕe１には、有意基底行列又は有意重み行列のうち少なくとも一方が含まれる。これより、式（２）のＨe１Ｕe１は、ＨｆｒｅｑＵ、ＨＵｆｒｅｑ、ＨｆｒｅｑＵｆｒｅｑのいずれかで表される。
【００５１】
例えば、Ｈe１をＨとし、Ｕe１をＵｆｒｅｑとした場合、除去部１５４は、式（３）を用いて高頻度パターンの除去を行う。ただし、Ｙ´は、高頻度パターンを除去した後のログ行列、すなわちＹ´e１である。
【００５２】
【数３】
0006714152.tif 000004
【００５３】
図１１及び１２は、第１の実施形態に係る高頻度パターンの除去について説明するための図である。ここでは、基底行列と有意重み行列を使って式（３）により除去を行う例を説明する。図１１に示すように、まず、除去部１５４は、基底行列Ｈと除去しない要素の値を０とした有意重み行列Ｕｆｒｅｑとの積ＨＵｆｒｅｑを計算する。
【００５４】
次に、除去部１５４は、図１２に示すように、高頻度パターン除去のためのログ行列ＨＵｆｒｅｑを、ログ行列Ｙから引く。これにより、除去部１５４は、高頻度パターンを除去したログ行列Ｙ´を得る。ここで、パターン抽出部１５３は、除去部１５４によって高頻度パターンが除去されたログ行列から、さらに高頻度パターンを抽出する。このとき、ログ行列Ｙ´からパターン抽出部１５３が抽出した基底行列及び重み行列を、それぞれＨ´及びＵ´とする。
【００５５】
出力部１３は、図１３のように基底行列Ｈ´を可視化した画像を出力することができる。図１３は、第１の実施形態に係る高頻度パターンを除去した後の基底行列を可視化した画像の一例を示す図であり、図７のログ行列から、図９と図１０として得られたパターンを除去したログ行列を使って、２回目のパターン抽出を行った結果得られた基底行列を表す。１回目の図９のパターンと比べると、１回目では現れていなかった２００から５００のＩＤが基底番号８のパターンに現れている。これらのＩＤは２日のシステム故障の時にしか現れていなかったＩＤ群である。
【００５６】
出力部１３は、図１４のように重み行列Ｕ´を可視化した画像を出力することができる。図１４は、第１の実施形態に係る高頻度パターンを除去した後の重み行列を可視化した画像の一例を示す図であり、図７のログ行列から、図９と図１０として得られたパターンを除去したログ行列を使って、２回目のパターン抽出を行った結果得られた重み行列を表す。図１４に示すように、図１３で故障時のＩＤ群を含んでいた基底番号８のパターンが２日に現れている。また、基底番号５のパターンも、主に２日に強く現れており、故障と関連する可能性のあるパターンと言える。
【００５７】
有意基底行列又は有意重み行列を用いて高頻度パターンを除去する場合について説明したが、除去部１５４は、非有意基底行列又は非有意重み行列を用いて高頻度パターンを除去することもできる。具体的には、除去部１５４は、基底行列と重み行列の各パターンの要素のうち値が所定の閾値以上である要素の値を０に置き換えた非有意重み行列との積と、基底行列の各パターンの要素のうち値が所定の閾値以上である要素の値を０に置き換えた非有意基底行列と重み行列との積と、非有意基底行列と非有意重み行列との積と、のうちのいずれか１つをログ行列からパターンを除去した行列とする。なお、この計算の際にログ行列の要素がマイナスになる場合には、０で置き換えることで非負値にすることもできる。
【００５８】
具体的には、除去部１５４は、式（４）によってログ行列から高頻度パターンを除去する。ただし、式（３）と同様に、Ｙはログ行列、Ｈは基底行列、Ｕは重み行列、Ｅ誤差行列である。また、Ｙ＝ＨＵ＋Ｅと分解されるとする。また、Ｈｒａｒｅは、Ｈの各列について、値が所定の閾値以上である行の値を０に置き換えたもの、すなわち非有意基底行列である。また、Ｕｒａｒｅは、Ｕの各行について、値が所定の閾値以上である列の値を０に置き換えたもの、すなわち非有意重み行列である。また、Ｙ´e２は頻出パターン除去後のログ行列である。
【００５９】
【数４】
0006714152.tif 000005
【００６０】
式（４）に示すように、Ｈe２は、Ｈ又はＨｒａｒｅのいずれかである。また、Ｕe２は、Ｕ又はＵｒａｒｅのいずれかである。ただし、Ｈe２がＨである場合はＵe２はＵｒａｒｅであることとし、また、Ｕe２がＵである場合はＨe２はＨｒａｒｅであることとする。つまり、式（４）のＨe２Ｕe２には、非有意基底行列又は非有意重み行列のうち少なくとも一方が含まれる。これより、式（４）のＨe２Ｕe２は、ＨｒａｒｅＵ、ＨＵｒａｒｅ、ＨｒａｒｅＵｒａｒｅのいずれかで表される。
【００６１】
除去部１５４は、ログ行列Ｙ´からさらに高頻度パターンを除去してもよい。その場合、パターン抽出部１５３は、除去部１５４によって高頻度パターンが除去されたログ行列から、さらに高頻度パターンを抽出する。また、パターン抽出部１５３及び除去部１５４は、高頻度パターンの抽出及び高頻度パターンの除去を、所定の条件が満たされるまで繰り返すようにしてもよい。
【００６２】
判定部１５５は、ログ行列から、パターン抽出部１５３によって抽出された高頻度パターンに含まれる要素のそれぞれについて、重要度を計算し、重要度が所定の閾値以上であるか否かを判定する。また、判定部１５５は、除去部１５４によって高頻度パターンの除去が行われたログ行列から、パターン抽出部１５３によってさらに抽出された高頻度パターンに含まれる要素のそれぞれについても重要度をさらに計算し、重要度が所定の閾値以上であるか否かを判定するようにしてもよい。なお、ここでは、判定部１５５が、高頻度パターンに含まれる要素のうち、ＩＤのそれぞれについて重要度を計算する場合の例について説明する。
【００６３】
基底行列の各列を特徴付けるＩＤを抽出する場合、値が大きい要素に対応するＩＤを優先的に抽出することができる。しかしながら、複数の列に含まれるＩＤは、各列を特徴付けるＩＤとして適当でない場合がある。例えば、高頻度パターンを除去する前又は後において、常に高頻度で出現し続けるＩＤがある場合、当該ＩＤは基底行列の複数の列に含まれる場合がある。これは図９からも容易に確認される。このようなＩＤを抽出したとしても、異常の検知等に活かすことは難しい。
【００６４】
そこで、判定部１５５は、高頻度パターンに含まれるＩＤそれぞれについて、パターンのＩＤごとの要素の値が高いほど高くなり、かつ、当該ＩＤを含む高頻度パターンが多いほど低くなるように重要度を計算し、重要度が所定の閾値以上であるか否かを判定する。このような重要度に基づく判定手法の一例として、ＴＦ−ＩＤＦ（参考文献２：“tf-idf”、［online］、ウィキペディア、［平成２９年１月２６日検索］、インターネット＜URL：https://ja.wikipedia.org/wiki/Tf-idf＞）がある。判定部１５５は、ＴＦ−ＩＤＦに基づく方法で重要度の計算を行うことができる。例えば、基底行列Ｈを行列Ｄとすると、判定部１５５は、式（５−１）〜（５−３）を用いて、行列Ｄの列ｄにおけるＩＤがｔの重要度ｔｆｉｄｆ（ｔ，ｄ，Ｄ）を計算する。
【００６５】
【数５】
0006714152.tif 000006
【００６６】
ただし、ｆｔ，ｄは、列ｄにおけるＩＤがｔである要素の値である。また、Ｎは、基底数、すなわち基底行列Ｈの列数である。また、ｎｔは、基底行列Ｈにおける、ＩＤの要素の値がその列で所定の閾値以上であるような列数である。
【００６７】
また、判定部１５５は、特定のＩＤについてのみ重要度を計算するようにしてもよい。判定部１５５は、基底行列Ｈの各列ベクトルの全要素値に対して大津の手法（参考文献３：Nobuyuki  Otsu:  "A  threshold  selection  method  from  gray-level  histograms,"  Automatica  11.285-296  (1975),  pp.23-27）を用いて第１の閾値を計算し、要素の値が第１の閾値以上であるＩＤについてのみ、重要度を計算してもよい。
【００６８】
また、判定部１５５は、各パターンの所定の時間幅ごとの出現頻度、すなわち重み行列を基に、各行ベクトルの全要素値に対して大津の手法を用いて第２の閾値を計算し、所定の時間幅ごとの出現頻度が第２の閾値以上であるか否かを判定するようにしてもよい。
【００６９】
また、判定部１５５は、時間についても重要度を計算するようにしてもよい。すなわち、重み行列Ｕを行列Ｄとすると、判定部１５５は式（５−１）〜（５−３）を用いて、行列Ｄの行ｄにおける時間がｔの重要度ｔｆｉｄｆ（ｔ，ｄ，Ｄ）を計算する。
【００７０】
ただし、ｆｔ，ｄは、行ｄにおける時間がｔである要素の値である。また、Ｎは、基底数、すなわち重み行列Ｈの行数である。また、ｎｔは、重み行列Ｕにおける、時間の要素の値がその行で所定の閾値以上であるような行数である。
【００７１】
また、判定部１５５は、特定の時間についてのみ重要度を計算するようにしてもよい。判定部１５５は、重み行列Ｕの各行ベクトルの全要素に対して大津の手法を用いて第３の閾値を計算し、要素の値が第３の閾値以上である時間についてのみ、重要度を計算してもよい。
【００７２】
上記の重要度の計算、又は閾値を用いた判定を行うことで、図１５に示すようなプロファイリングを行うことが可能となる。図１５は、第１の実施形態に係るテキストログのプロファイリングについて説明するための図である。
【００７３】
例えば、重み行列について第２の閾値を用いた判定を行い、第２の閾値以上である時間幅を主要要素として抽出し、故障発生時刻といった外部情報と付き合わせることでパターンの種類の推定等を行うことができる。これにより、各パターンを、故障前パターン、故障後パターン、定期パターン、故障と無関係な不定期パターン等に分類することができる。
【００７４】
また、基底行列から重要度が所定値以上であるＩＤを抽出し、主要要素のＩＤの各メッセージ（すなわち辞書情報１４２のテンプレート）と故障内容や故障箇所といった外部情報と付き合わせることで、故障に関係するパターンであるかどうかの推定を行うことができる。例えば、重み行列から故障前パターンと分類されたパターンが、故障の予兆を表す故障予兆パターンであったかどうか、故障後パターンと分類されたパターンが故障の影響を表す故障波及パターンであったかとうか、定期パターンと分類されたパターンが正常な処理を表す定常処理パターンであったかどうか、故障と無関係な不定期パターンと分類されたパターンが工事が行われたことを表す工事パターンであったかどうか等を判断することができる。
【００７５】
ここで、有意ログ抽出部１５６及びシーケンス抽出部１５７は、分類済みテキストログ５２から、主要要素に関する所定の情報を抽出する。なお、有意ログ抽出部１５６及びシーケンス抽出部１５７は、情報抽出部の一例である。
【００７６】
有意ログ抽出部１５６は、分類済みテキストログ５２から、判定部１５５が抽出した基底行列の主要要素であるＩＤのみを含むレコード抜き出し、有意ログを生成する。また、有意ログ抽出部１５６は、主要要素であるＩＤに加え、判定部１５５が抽出した重み行列の主要要素である時間幅に該当する時間に限定して有意ログを生成しても構わない。また、有意ログ抽出部１５６は、有意ログをパターンごとに生成しても構わない。また、有意ログ抽出部１５６は、発生日時をＵＮＩＸ（登録商標）時間などの他の時刻形式に変換して有意ログを生成しても構わない。
【００７７】
シーケンス抽出部１５７は、有意ログ抽出部１５６によって生成された有意ログから、ＩＤがどのような順序で出現しているのかを表すシーケンスのうち、特定のシーケンスを抽出する。
【００７８】
具体的には、シーケンス抽出部１５７は、有意ログに含まれるＩＤのシーケンスそれぞれの出現回数をカウントし、当該出現回数が多いシーケンスを抽出する。シーケンスの抽出は、最も出現回数が多いシーケンス、出現回数が多い上位ｋ個のシーケンス、出現回数が指定された回数以上であるシーケンスなど、どの方法を用いて決定しても構わない。
【００７９】
また、シーケンス抽出部１５７は、出現回数が多いシーケンスのうち、所定の条件を満たすと判定されたシーケンスのみを抽出してもよい。所定の条件とは、シーケンスの長さやシーケンスの最初のＩＤから最後のＩＤまでの経過時間を表すシーケンス経過時間などであり、これに限定されるものではない。これらの条件についても、出現回数同様に閾値を決定して抽出の範囲を限定しても構わない。
【００８０】
例えば、シーケンス抽出部１５７は、判定部１５５によって計算された重要度が所定値以上であるＩＤとして、「７０４」、「７０５」及び「７０６」が抽出されたとすると、有意ログ抽出部１５６は、分類済みテキストログ５２から、ＩＤが「７０４」、「７０５」及び「７０６」を含むレコードを抜き出し、有意ログを生成する。さらに、シーケンス抽出部１５７は、有意ログから、出現回数が高いシーケンスを抽出する。
【００８１】
シーケンス抽出部１５７は、シーケンスを抽出する手法として、シーケンシャルパターンマイニング（参考文献４：J.Pei  et  al.  "PrefixSpan:  Mining  Sequential  Patterns  Efficiently  by  Prefix-Projected  Pattern  Growth,"  Proc.  of  The  17th  Int'l  Conf.  on  Data  Engineering,  pp.215-224  (2001)  http://idb.csie.ncku.edu.tw/tsengsm/COURSE/DM/Paper/PrefixSpan.pdf）や、エピソードマイニング（参考文献５：A.  Achar  et  al.  "Pattern-growth  based  frequent  serial  episode  discovery,"  Data  and  Knowledge  Engineering,  87:pp.91-108  (2013)）のアルゴリズムを用いることができる。
【００８２】
図１６は、第１の実施形態に係るシーケンスの抽出について説明するための図である。この例では重複を許さないＩＤの数え方によるシーケンスの抽出例を示す。図１６に示すように、ＩＤが「７０４」、「７０５」及び「７０６」であるメッセージのシーケンスは、３！通り、すなわち６通り存在する。シーケンス抽出部１５７は、これらのシーケンスのそれぞれの出現回数をカウントする。最も多い出現回数のシーケンスを抽出する場合、シーケンス抽出部１５７は、出現回数が１０であるシーケンス「７０５−７０４−７０６」を抽出する。ユーザは、シーケンス抽出部１５７によって抽出されたシーケンスを基に、故障原因等を推定することができる。
【００８３】
［第１の実施形態の処理］
図１７を用いて、分析装置１０の処理の流れについて説明する。図１７は、実施形態に係る分析装置の処理の流れを示すフローチャートである。図１７に示すように、まず、分類部１５１は、テキストログのメッセージを種別ごとに分類し、ＩＤを付与する（ステップＳ１０１）。そして、作成部１５２は、テキストログの発生日時と分類部１５１によって付与されたＩＤを基に、ログ行列を作成する（ステップＳ１０２）。
【００８４】
次に、パターン抽出部１５３は、ログ行列を分解し、基底行列と重み行列を抽出する（ステップＳ１０３）。例えば、パターン抽出部１５３は、ＮＭＦによってログ行列を分解し、ＩＤの組み合わせであるパターンを列ベクトルにもつ基底行列、及び、パターンが所定の時間幅ごとにどの程度出現したかを表す列ベクトルをもつ重み行列を抽出する。
【００８５】
ここで、所定の条件が満たされることにより、パターンの除去が必要であると判定された場合（ステップＳ１０４、Ｙｅｓ）、除去部１５４は、ログ行列から高頻度パターンを除去する（ステップＳ１０５）。例えば、除去部１５４は、基底行列と、重み行列の各要素のうち値が所定の閾値より小さい要素の値を０に置き換えた有意重み行列と、の積をログ行列から引くことで、高頻度パターンを除去する。あるいは、基底行列と、重み行列の各要素のうち値が所定の値以上の要素の値を０に置き換えた非有意重み行列と、の積をとることで、高頻度パターンを除去する。そして、パターン抽出部１５３は、さらにパターンを抽出する（ステップＳ１０３）。
【００８６】
ここで、所定の条件が満たされることにより、高頻度パターンの除去が必要であると判定されなかった場合（ステップＳ１０４、Ｎｏ）、判定部１５５は、基底行列または重み行列、あるいは両方の行列の主要要素を判定する（ステップＳ１０６）。例えば、判定部１５５は、パターンに含まれるＩＤそれぞれについて、当該ＩＤの要素の値が高いほど高くなり、かつ、当該ＩＤを含む高頻度パターンが多いほど低くなるように重要度を計算し、重要度が所定の閾値以上であるか否かを判定し、基底行列の主要要素を抽出する。また、判定部１５５は、パターンに含まれる時間幅それぞれに対して、大津の手法を用いて第２の閾値を計算し、所定の時間幅ごとの要素の値が第２の閾値以上であるか否かを判定し、重み行列の主要要素を抽出する。
【００８７】
有意ログ抽出部１５６は、分類済みテキストログ５２から、判定部１５５が抽出した基底行列の主要要素であるＩＤのみを含むレコードを抜き出し、有意ログを生成する。
【００８８】
また、シーケンス抽出部１５７は、有意ログ抽出部１５６によって生成された有意ログからシーケンスを抽出する（ステップＳ１０７）。例えば、シーケンス抽出部１５７は、パターンに含まれるＩＤの組み合わせについて、ＩＤのシーケンスのうち、要素の値、すなわち出現回数が所定の閾値以上でかつ所定の条件を満たすシーケンスを抽出する。
【００８９】
［第１の実施形態の効果］
分類部１５１は、システムから出力されたテキストログに含まれるメッセージを種別ごとに分類し、分類した各メッセージに、種別ごとに設定されたＩＤを付与する。また、作成部１５２は、メッセージに付された発生日時に基づいて、所定の時間幅ごとのメッセージのテキストログにおける出現状況を、ＩＤごとに表した行列を作成する。また、パターン抽出部１５３は、作成部１５２によって作成された行列から、ＩＤの組み合わせであるパターンを複数抽出する。また、除去部１５４は、行列からパターンの一部又は全部を除去する。また、判定部１５５は、複数のパターンそれぞれに含まれる要素それぞれについて重要度を計算し、重要度が所定の閾値以上であるか否かを判定する。また、有意ログ抽出部１５６及びシーケンス抽出部１５７は、分類済みテキストログ５２から、主要要素に関する所定の情報を抽出する。
【００９０】
本実施形態の分析装置１０は、複数のメッセージの出現状況を基に行列を作成するので、複数のメッセージに基づくパターンを抽出することができ、メッセージ間の関係を考慮した監視を行うことができる。このため、例えば、障害発生時における一連の予兆パターンや波及パターンを監視し、障害の予防保全や原因推定に活用することができる。また、メッセージ間の関係を考慮した監視を行うことで、狼アラート、すなわち実際には異常が発生していない場合に異常が発生したとする誤検知に基づくアラートの発生を抑制することもできる。
【００９１】
また、本実施形態の分析装置１０は、収集したテキストログ全体から行列を作成するので、テキストログ全体の情報が行列に反映され、例えば、個別のメッセージを監視するだけでは見過ごされてきた有用な情報をテキストログから得ることができる。
【００９２】
また、テキストログを分類したうえで行列化し計算を行うことで、大量のテキストログを効率的に分析することが可能となる。また、高頻度パターンの除去を行うことで、定常処理等に関するパターンの存在により高頻度パターンとして抽出されなかったパターンや、誤差に含まれていたパターンを抽出することができるようになり、異常検知等に有用な情報を得ることができるようになる。また、高頻度パターンに含まれる要素について、主要な要素であるか否かの判定を行うことで、テキストログの中から重要なメッセージを抽出することができるようになる。さらに、抽出した重要なメッセージに関する情報を抽出することで、メッセージの分析に要する計算量や処理時間を削減することができる。
【００９３】
例えば、判定部１５５は、複数のパターンそれぞれに含まれるＩＤそれぞれについて重要度を計算し、重要度が所定の閾値以上であるか否かを判定することができる。このとき、シーケンス抽出部１５７は、判定部１５５によって、重要度が所定の閾値以上であると判定されたＩＤがどのような順序で出現しているのかを表すシーケンスから、特定のシーケンスを抽出する。このように、主要なメッセージのシーケンスを抽出することで、シーケンスの抽出のための計算量や処理時間を削減し、メッセージのシーケンスに基づく分析を容易にすることができる。
【００９４】
分類部１５１は、システムから出力されたテキストログに含まれるメッセージを種別ごとに分類し、分類した各メッセージに、種別ごとに設定されたＩＤを付与する。また、作成部１５２は、メッセージに付された発生日時に基づいて、所定の時間幅ごとのメッセージのテキストログにおける出現状況を、ＩＤごとに表した行列であるログ行列を作成する。また、パターン抽出部１５３は、ログ行列を分解し、ＩＤの組み合わせであるパターンを列ベクトルにもつ基底行列と、パターンが所定の時間幅ごとにどの程度出現したかを表す行ベクトルをもつ重み行列とを抽出する。また、除去部１５４は、ログ行列からパターンの一部又は全部を除去する。
【００９５】
本実施形態の分析装置１０は、関連する複数のメッセージをパターンとして抽出するので、システムに発生した事象の特定が容易になる。また、パターン除去を行うことにより、システム故障などの発生頻度が少ない事象を表すパターンを抽出し、監視に生かすことができる。例えば、抽出された障害予兆パターンを監視し、障害の予防保全に活用したり、障害発生時の波及パターンを特定し、原因推定に活用したりすることができる。また、メッセージ間の関係を考慮した監視を行うことで、狼アラート、すなわち実際には異常が発生していない場合に異常が発生したとする誤検知に基づくアラートの発生を抑制することもできる。
【００９６】
また、本実施形態の分析装置１０は、テキストログを分類することで、数千、数億のメッセージを人が把握することが可能な数百、数千オーダーの種類にまで圧縮することができる。また、収集したテキストログ全体から行列を作成するので、膨大なログの情報が１つの行列に反映され、例えば、個別のメッセージを監視するだけでは見過ごされ、アーカイブされるだけで活用されなかったテキストログから有用な情報を得ることができる。
【００９７】
また、パターン抽出部１５３は、非負値行列因子分解によってログ行列を分解してもよい。このように、テキストログを分類したうえで行列化し計算を行うことで、大量のテキストログを効率的に分析することが可能となる。また、パターンの除去を行うことで出現頻度が低いパターン、すなわち定常処理等に関するパターンの存在により抽出されなかったパターンや、１回目のパターン抽出では誤差に埋もれていたパターンを抽出することができるようになり、異常検知等に有用な情報を得ることができるようになる。
【００９８】
また、除去部１５４は、基底行列と重み行列の各パターンの要素のうち値が所定の閾値より小さい要素の値を０に置き換えた有意重み行列との積と、基底行列の各パターンの要素のうち値が所定の閾値より小さい要素の値を０に置き換えた有意基底行列と重み行列との積と、有意基底行列と有意重み行列との積と、のうちのいずれか１つをログ行列から差し引くことで、パターンを除去することができる。また、除去部１５４は、基底行列と重み行列の各パターンの要素のうち値が所定の閾値以上である要素の値を０に置き換えた非有意重み行列との積と、基底行列の各パターンの要素のうち値が所定の閾値以上である要素の値を０に置き換えた非有意基底行列と重み行列との積と、非有意基底行列と非有意重み行列との積と、のうちのいずれか１つをログ行列からパターンを除去した行列とすることができる。これにより、定常処理等に関するパターンの影響のうち、大きさが一定以上であるものを除去することができる。
【００９９】
また、パターン抽出部１５３は、除去部１５４によって高頻度パターンが除去された行列から、さらに高頻度パターンを抽出してもよい。これにより、１度の高頻度パターンの除去では、定常処理等に関するパターンの影響を除去しきれなかった場合であっても、定常処理等に関するパターンの影響をさらに除去し、頻度の少ないパターンを抽出することができる。
【０１００】
分類部１５１は、システムから出力されたテキストログに含まれるメッセージを種別ごとに分類し、分類した各メッセージに、種別ごとに設定されたＩＤを付与する。また、作成部１５２は、メッセージに付された発生日時に基づいて、所定の時間幅ごとのメッセージのテキストログにおける出現頻度を、ＩＤごとに表した行列を作成する。また、パターン抽出部１５３は、作成部１５２によって作成された行列から、同一の時間幅におけるメッセージの出現頻度が所定の高さ以上であるＩＤの組み合わせを、高頻度パターンとして抽出する。また、除去部１５４は、行列から高頻度パターンを除去する。また、判定部１５５は、除去部１５４によって高頻度パターンの除去が行われた行列から、パターン抽出部１５３によってさらに抽出された高頻度パターンに含まれるＩＤのそれぞれについて、対応するメッセージのテキストログにおける出現頻度が、所定の条件を満たすか否かを判定する。また、シーケンス抽出部１５７は、判定部１５５によって、テキストログにおける出現頻度が所定の条件を満たすと判定されたＩＤのシーケンスのうち、特定のシーケンスを抽出する。
【０１０１】
また、本実施形態の分析装置１０は、複数のメッセージの出現頻度を基に行列を作成するので、複数のメッセージに基づくパターンを抽出することができ、メッセージ間の関係を考慮した監視を行うことができる。このため、例えば、障害発生時における一連の予兆パターンや波及パターンを監視し、障害の予防保全や原因推定に活用することができる。また、メッセージ間の関係を考慮した監視を行うことで、狼アラート、すなわち実際には異常が発生していない場合に異常が発生したとする誤検知に基づくアラートの発生を抑制することもできる。
【０１０２】
また、行列化されたテキストログから抽出された高頻度パターンに含まれる要素について、主要な要素であるか否かの判定を行うことで、テキストログの中から重要なメッセージを抽出することができるようになる。
【０１０３】
また、判定部１５５は、ＩＤごとのメッセージの出現頻度を基に、大津の手法を用いて第１の閾値を計算し、メッセージの出現頻度が第１の閾値以上であるＩＤについて、重要度を計算してもよい。これにより、重要度の計算のための負荷を減少させることができる。
【０１０４】
また、パターン抽出部１５３は、組み合わせに係るメッセージの所定の時間幅ごとの出現頻度をさらに抽出してもよい。このとき、判定部１５５は、組み合わせに係るメッセージの所定の時間幅ごとの出現頻度を基に、大津の手法を用いて第２の閾値を計算し、所定の時間幅ごとに、メッセージの出現頻度が第２の閾値以上であるか否かを判定してもよい。これにより、メッセージの内容に基づく分析だけでなく、メッセージの発生日時に基づく分析も行うことが可能となる。
【０１０５】
また、テキストログを分類したうえで行列化し計算を行うことで、大量のテキストログを効率的に分析することが可能となる。また、高頻度パターンの除去を行うことで、定常処理等に関するパターンの存在により高頻度パターンとして抽出されなかったパターンや、誤差に含まれていたパターンを抽出することができるようになり、異常検知等に有用な情報を得ることができるようになる。また、高頻度パターンに含まれる要素について、主要な要素であるか否かの判定を行うことで、テキストログの中から重要なメッセージを抽出することができるようになる。また、主要なメッセージのシーケンスを抽出することで、シーケンスの抽出のための計算量や処理時間を削減し、メッセージのシーケンスに基づく分析を容易にすることができる。
【０１０６】
分類部１５１は、システムから出力されたテキストログに含まれるメッセージを種別ごとに分類し、分類した各メッセージに、種別ごとに設定されたＩＤを付与する。また、作成部１５２は、メッセージに付された発生日時に基づいて、所定の時間幅ごとのメッセージのテキストログにおける出現状況を、ＩＤごとに表した行列を作成する。また、パターン抽出部１５３は、作成部１５２によって作成された行列から、ＩＤの組み合わせであるパターンを複数抽出する。また、判定部１５５は、複数のパターンそれぞれに含まれるＩＤそれぞれについて重要度を計算し、重要度が所定の閾値以上であるか否かを判定する。また、有意ログ抽出部１５６は、テキストログの各メッセージを分類部１５１で付与されたＩＤに置換したログから、判定部が所定の閾値以上であると判定したＩＤのみを抜き出した有意ログを生成する。また、シーケンス抽出部１５７は、重要度の高いＩＤがどのような順序で出現しているのかを表すシーケンスのそれぞれの出現回数を、生成した有意ログからカウントし、当該出現回数が所定の閾値以上でかつ所定の条件を満たすシーケンスを抽出する。
【０１０７】
本実施形態の分析装置１０は、複数のメッセージの出現頻度を基に行列を作成するので、複数のメッセージに基づくパターンを抽出することができ、メッセージ間の関係を考慮した監視を行うことができる。このため、例えば、障害発生時における一連の予兆パターンや波及パターンを監視し、障害の予防保全や原因推定に活用することができる。また、メッセージ間の関係を考慮した監視を行うことで、狼アラート、すなわち実際には異常が発生していない場合に異常が発生したとする誤検知に基づくアラートの発生を抑制することもできる。
【０１０８】
また、行列化されたテキストログから抽出されたパターンに含まれる主要なメッセージのシーケンスを抽出することで、シーケンスの抽出のための計算量や処理時間を削減し、シーケンスに基づくメッセージの分析を容易にすることができる。
【０１０９】
また、パターン抽出部１５３は、パターンの所定の時間幅ごとの出現の程度をさらに抽出してもよい。このとき、判定部１５５は、パターンの所定の時間幅それぞれについて第２の重要度を計算し、第２の重要度が所定の第２の閾値以上であるか否かをさらに判定する。そして、有意ログ抽出部１５６は、判定部１５５が所定の第２の閾値以上であると判定した所定の時間幅のみを抜き出した有意ログを生成する。
【０１１０】
これにより、パターン抽出の時点でシステムの事象に関連するＩＤがある程度事象ごとに特定されているため、パターンごとに有意ログを生成し、そこからシーケンスを抽出することにより、抽出されたシーケンスからシステムの事象を解釈するのが容易になる。
【０１１１】
［第２の実施形態］
本発明における行列分解の方法は、第１の実施形態で説明したＮＭＦに限定されない。本発明では、行列分解の方法として、例えば主成分分析や独立成分分析等の非負値以外を含んだ行列を対象とした手法を用いてもよい。ここで、第２の実施形態として、ＮＭＦ以外の手法を用いて行列分解を行う場合の例について説明する。
【０１１２】
第２の実施形態において、除去部１５４は、主成分分析や独立成分分析等の手法を用いて、ログ行列を基底行列と重み行列とに分解する。ここで、第２の実施形態では、有意基底行列、有意重み行列、非有意基底行列、及び非有意重み行列の作成方法が第１の実施形態と異なる。第１の実施形態において、除去部１５４は、基底行列の要素のうち値が所定の閾値より小さい要素の値を０に置き換えたものを有意基底行列とし、重み行列の要素のうち値が所定の閾値より小さい要素の値を０に置き換えたものを有意重み行列としていた。
【０１１３】
一方、第２の実施形態において、除去部１５４は、要素の値の絶対値が閾値より大きいか否かにより、当該要素の値を０に置き換えるか否かを判定する。つまり、除去部１５４は、基底行列の要素のうち値の絶対値が所定の閾値より小さい要素の値を０に置き換えたものを有意基底行列とし、重み行列の要素のうち値の絶対値が所定の閾値より小さい要素の値を０に置き換えたものを有意重み行列とする。
【０１１４】
また、第２の実施形態において、除去部１５４は、要素の値が正である場合は正の閾値を用い、要素の値が負である場合は負の閾値を用いて要素の値を０に置き換えるか否かを判定するようにしてもよい。つまり、除去部１５４は、基底行列の要素のうち、値が正かつ当該値が正の閾値より小さい要素と、値が負かつ当該値が負の閾値より大きい要素と、の値を０に置き換えたものを有意基底行列とし、重み行列の要素のうち、値が正かつ当該値が正の閾値より小さい要素と、値が負かつ当該値が負の閾値より大きい要素と、の値を０に置き換えたものを有意重み行列とすることができる。
【０１１５】
なお、第２の実施形態において、除去部１５４は、有意基底行列及び有意重み行列を作成する際に、値が０に置き換えられない要素の値を０に置き換えることで、非有意基底行列及び非有意重み行列を作成する。つまり、除去部１５４は、基底行列の要素のうち値の絶対値が所定の閾値以上である要素の値を０に置き換えたものを非有意基底行列とし、重み行列の要素のうち値の絶対値が所定の閾値以上である要素の値を０に置き換えたものを非有意重み行列とすることができる。
【０１１６】
また、除去部１５４は、基底行列の要素のうち、値が正かつ当該値が正の閾値以上である要素と、値が負かつ当該値が負の閾値以下である要素と、の値を０に置き換えたものを非有意基底行列とし、重み行列の要素のうち、値が正かつ当該値が正の閾値以上である要素と、値が負かつ当該値が負の閾値以上である要素と、の値を０に置き換えたものを非有意重み行列とすることができる。
【０１１７】
［第３の実施形態］
本発明の分析装置は、各行の項目としてアイテムインデックスを持ち、各列の項目としてインスタンスインデックスを持つ入力行列を、２つの行列の積に分解することができる。この場合、入力行列は、システムから出力されたテキストログに含まれるメッセージを基に作成したログ行列に限られない。
【０１１８】
入力行列は、例えば、それぞれの顧客がどの商品を買ったかという購入情報を持つ購買ログを基に、それぞれの顧客が買った個数を商品ごとに表した購買ログ行列であってもよい。この場合、入力行列のアイテムインデックスは、商品を識別可能なＩＤ等である。また、入力行列のインスタンスインデックスは、顧客を識別可能なＩＤ等である。また、入力行列の要素の値は商品の購入情報である。購入情報は、購入個数や購入個数の対数を取る等の加工をした値、または購入有無（購入時に１、非購入時に０をとる値）等が考えられるが、この例に限定されるものではない。以下の実施例では、購入情報として購入個数を用いた例を示す。
【０１１９】
第３の実施形態において、パターン抽出部１５３は、アイテムインデックスの組み合わせであるパターンを列ベクトルに複数持つ基底行列と、それぞれのパターンのインスタンスインデックスにおける重みを各行ベクトルに持つ重み行列と、を抽出する。また、判定部１５５は、複数のパターンそれぞれに含まれるアイテムインデックスそれぞれについて、重要度を計算し、重要度が所定の閾値以上であるか否かを判定する。
【０１２０】
［第３の実施形態の処理］
ここで、図１７を用いて、第３の実施形態に係る分析装置の処理の流れを説明する。なお、図１７は、第１の実施形態の分析装置の処理の流れを説明する際にも用いたが、第３の実施形態の分析装置は第１の実施形態の分析装置と同様の流れで処理を行うため、ここでも図１７を用いて説明を行う。
【０１２１】
まず、分類部１５１は、それぞれの顧客がどの商品を買ったかという情報を持つ購買ログを商品ごとに分類し、商品ＩＤを付与する（ステップＳ１０１）。そして、作成部１５２は、購買ログの顧客に関する情報と分類部１５１によって付与された顧客ＩＤとを基に、それぞれの顧客の購入個数を商品ごとに表した購買ログ行列、すなわち入力行列を作成する（ステップＳ１０２）。
【０１２２】
なお、第３の実施形態において、分析装置１０は、ステップＳ１０１及びＳ１０２に示すログ行列の作成を行ってもよいし、行わなくてもよい。分析装置１０がログ行列の作成を行わない場合、入力行列は外部から入力されたものであってもよい。また、以降の説明では、購買ログ行列の各行の項目であるアイテムインデックスを商品ＩＤ、各列の項目であるインスタンスインデックスを顧客ＩＤとする。
【０１２３】
次に、パターン抽出部１５３は、購買ログ行列を分解し、基底行列と重み行列を抽出する（ステップＳ１０３）。例えば、パターン抽出部１５３は、ＮＭＦによって購買ログ行列を分解し、多くの顧客に購入されるような商品ＩＤの組み合わせであるパターンを表す基底行列、及び、パターンに該当する商品を購入している顧客ＩＤの組み合わせを表す重み行列を、パターンとして抽出する。
【０１２４】
なお、第３の実施形態において、分析装置１０は、ステップＳ１０４及びＳ１０５に示す高頻度パターンの除去を行ってもよいし、行わなくてもよい。高頻度パターンの除去を行わない場合、分析装置１０は、ステップＳ１０３の実行後、ステップＳ１０５を実行せずにステップＳ１０６を実行する（ステップＳ１０４、Ｎｏ）。
【０１２５】
次に、判定部１５５は、基底行列の各要素が主要要素であるか否かを判定する（ステップＳ１０６）。このとき、判定部１５５は、複数のパターンそれぞれに含まれる商品ＩＤそれぞれについて、重要度を計算し、重要度が所定の閾値以上であるか否かを判定する。また、第３の実施形態において、分析装置１０は、ステップＳ１０７に示すシーケンスの抽出を行ってもよいし、行わなくてもよい。
【０１２６】
ここで、判定部１５５は、重要度の計算及び主要要素の判定を行う際には、第１の実施形態と同様に、ＴＦ−ＩＤＦに基づく重要度の計算方法や、大津の手法による閾値の計算方法を個別に、又は組み合わせて適宜用いることができる。
【０１２７】
例えば、判定部１５５は、重要度としてパターンに含まれる商品ＩＤごとの要素の値を用い、閾値としてパターンに含まれる商品ＩＤごとの要素の値を基に、大津の手法を用いて計算した閾値を用いることができる。
【０１２８】
また、判定部１５５は、パターンに含まれる商品それぞれについて、商品ごとの要素の値が高いほど高くなり、かつ、当該商品を含むパターンが多いほど低くなるように重要度を計算することができる。
【０１２９】
また、判定部１５５は、各パターンの商品ＩＤごとの要素の値、すなわち、基底行列の各列ベクトルの全要素に対して、大津の手法を用いて第１の閾値を計算し、要素の値が第１の閾値以上である商品ＩＤについて、重要度を計算することができる。
【０１３０】
また、パターン抽出部１５３は、パターンに該当する商品を購入した顧客ＩＤをさらに抽出してもよい。このとき、判定部１５５は、各パターンの顧客ＩＤそれぞれ、すなわち、重み行列の行ベクトルの全要素について第２の重要度を計算し、第２の重要度が所定の第２の閾値以上であるか否かをさらに判定する。
【０１３１】
また、判定部１５５は、第２の重要度として該パターンの顧客ＩＤごとの要素の値を用い、第２の閾値として該パターンに含まれる顧客ＩＤごとの要素の値を基に、大津の手法を用いて計算した閾値を用いることができる。
【０１３２】
また、判定部１５５は、該パターンの所定の顧客ＩＤごとの要素の値が高いほど高くなり、かつ、該所定の顧客ＩＤを含むパターンが多いほど低くなるように第２の重要度を計算する。
【０１３３】
判定部１５５は、各パターンの顧客ＩＤごとの要素の値を基に、大津の手法を用いて第３の閾値を計算し、要素の値が第３の閾値以上である顧客ＩＤについて、第２の重要度を計算する。
【０１３４】
［第３の実施形態の効果］
パターン抽出部１５３は、アイテムインデックスの組み合わせであるパターンを列ベクトルに複数持つ基底行列と、それぞれのパターンのインスタンスインデックスにおける重みを各行ベクトルに持つ重み行列と、を抽出する。また、判定部１５５は、複数のパターンそれぞれに含まれるアイテムインデックスそれぞれについて、重要度を計算し、重要度が所定の閾値以上であるか否かを判定する。これにより、本実施形態の分析装置１０によれば、入力行列のサイズが非常に大きい場合であっても、重要なアイテムの抽出を効率的に行うことが可能となる。
【０１３５】
特に、入力行列のアイテムインデックスを商品ＩＤ、インスタンスインデックスを顧客ＩＤ、各要素の値を購入個数とした場合、本実施形態の分析装置１０は、複数の商品に基づくパターンを抽出することができ、同じ顧客が購入する可能性が高い商品群を抽出することができる。このため、例えば、同じ顧客に購入されやすい商品Ａと商品Ｂのうち、商品Ａのみを購入している顧客が購入する可能性がある他の商品として商品Ｂがあることが分かり、それを顧客に推薦することができる。以降、入力行列のアイテムインデックスを商品ＩＤ、インスタンスインデックスを顧客ＩＤ、各要素の値を購入個数とした場合の効果について説明するが、本発明によれば、各行の項目としてアイテムインデックスを持ち、各列の項目としてインスタンスインデックスを持つ任意の入力行列を対象として同様の効果を得ることができる。
【０１３６】
判定部１５５は、重要度としてパターンに含まれる商品ＩＤごとの要素の値を用い、閾値としてパターンに含まれる商品ＩＤごとの要素の値を基に、大津の手法を用いて計算した閾値を用いることができる。これにより、重要度の高い商品を抽出することが可能となる。
【０１３７】
また、判定部１５５は、該パターンの所定の顧客ＩＤごとの要素の値が高いほど高くなり、かつ、該所定の顧客ＩＤを含むパターンが多いほど低くなるように第２の重要度を計算する。これにより、パターンごとに特徴的な商品を抽出することができる。
【０１３８】
また、判定部１５５は、各パターンの商品ＩＤごとの要素の値、すなわち、基底行列の各列ベクトルの全要素に対して、大津の手法を用いて第１の閾値を計算し、要素の値が第１の閾値以上である商品ＩＤについて、重要度を計算することができる。これにより、重要度の計算のための負荷を減少させることができる。
【０１３９】
また、パターン抽出部１５３は、パターンに該当する商品を購入した顧客ＩＤをさらに抽出してもよい。このとき、判定部１５５は、各パターンの顧客ＩＤそれぞれ、すなわち、重み行列の行ベクトルの全要素について第２の重要度を計算し、第２の重要度が所定の第２の閾値以上であるか否かをさらに判定する。これにより、重要度の高い顧客を抽出することが可能となる。
【０１４０】
また、判定部１５５は、第２の重要度として該パターンの顧客ＩＤごとの要素の値を用い、第２の閾値として該パターンに含まれる顧客ＩＤごとの要素の値を基に、大津の手法を用いて計算した閾値を用いることができる。これにより、重要度の計算のための負荷を減少させることができる。
【０１４１】
また、判定部１５５は、該パターンの所定の顧客ＩＤごとの要素の値が高いほど高くなり、かつ、該所定の顧客ＩＤを含むパターンが多いほど低くなるように第２の重要度を計算する。これにより、パターンごとに特徴的な商品を抽出することができる。
【０１４２】
判定部１５５は、各パターンの顧客ＩＤごとの要素の値を基に、大津の手法を用いて第３の閾値を計算し、要素の値が第３の閾値以上である顧客ＩＤについて、第２の重要度を計算する。これにより、重要度の計算のための負荷を減少させることができる。
【０１４３】
［その他の実施形態］
テキストログ５１を基に作成される辞書情報１４２は、図３のものに限られない。例えば、図１８に示すように、さらに短い文字列をテンプレートとしてもよい。図１８は、その他の実施形態に係る辞書情報のデータ構成の一例を示す図である。また、分析対象のテキストログに、いずれのテンプレートにも一致しないメッセージが含まれていた場合、分析装置１０は、当該メッセージを随時辞書情報１４２に追加していくようにしてもよい。
【０１４４】
［システム構成等］
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、ＣＰＵ及び当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１４５】
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１４６】
［プログラム］
一実施形態として、分析装置１０は、パッケージソフトウェアやオンラインソフトウェアとして上記の分析を実行する分析プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の分析プログラムを情報処理装置に実行させることにより、情報処理装置を分析装置１０として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やＰＨＳ（Personal  Handyphone  System）等の移動体通信端末、さらには、ＰＤＡ（Personal  Digital  Assistant）等のスレート端末等がその範疇に含まれる。
【０１４７】
また、分析装置１０は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の分析に関するサービスを提供する分析サーバ装置として実装することもできる。例えば、分析サーバ装置は、テキストログを入力とし、抽出したＩＤを出力とする分析サービスを提供するサーバ装置として実装される。この場合、分析サーバ装置は、Ｗｅｂサーバとして実装することとしてもよいし、アウトソーシングによって上記の分析に関するサービスを提供するクラウドとして実装することとしても構わない。
【０１４８】
図１９は、プログラムが実行されることにより分析装置が実現されるコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【０１４９】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【０１５０】
ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、分析装置１０の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、分析装置１０における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤにより代替されてもよい。
【０１５１】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【０１５２】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３及びプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３及びプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【０１５３】
１０  分析装置
１１  通信部
１２  入力部
１３  出力部
１４  記憶部
１５  制御部
１４１  出力ログ情報
１４２  辞書情報
１５１  分類部
１５２  作成部
１５３  パターン抽出部
１５４  除去部
１５５  判定部
１５６  有意ログ抽出部
１５７  シーケンス抽出部
【図１】
0006714152.tif 000007
【図２】
0006714152.tif 000008
【図３】
0006714152.tif 000009
【図４】
0006714152.tif 000010
【図５】
0006714152.tif 000011
【図６】
0006714152.tif 000012
【図７】
0006714152.tif 000013
【図８】
0006714152.tif 000014
【図９】
0006714152.tif 000015
【図１０】
0006714152.tif 000016
【図１１】
0006714152.tif 000017
【図１２】
0006714152.tif 000018
【図１３】
0006714152.tif 000019
【図１４】
0006714152.tif 000020
【図１５】
0006714152.tif 000021
【図１６】
0006714152.tif 000022
【図１７】
0006714152.tif 000023
【図１８】
0006714152.tif 000024
【図１９】
0006714152.tif 000025