0

テキスト形式のトレース情報 (ログ) をログ ファイルに生成するアプリがいくつかあります。トレース情報は、典型的な printf() スタイルです。つまり、似ている (printf の同じフォーマット引数) が、フォーマット文字列がパラメータを持っていた場所が異なる多くのログ エントリがあります。

ログエントリを分析し、それらを複数のビン/コンテナに分類できるアルゴリズム (URL、書籍、記事など) は何でしょうか。各ビンには 1 つの関連付けられた形式があります。
基本的に、私が望むのは、生のログ エントリを (formatA, arg0 ... argN) インスタンスに変換することです。ここで、formatA は多くのログ エントリ間で共有されます。formatA は、エントリを生成するために使用される正確な形式である必要はありません (アルゴリズムが単純になる場合はなおさらです)。

私が見つけた文献や Web 情報のほとんどは、完全一致、部分文字列の最大一致、または k 差 (k は既知/事前に固定) を扱っています。また、(長い) 文字列のペア、または単一のビン出力 (すべての入力の中で 1 つの一致) の一致に焦点を当てています。私の場合は、(十分な) 一致 (通常は不連続な文字列のシーケンス) を表すものを発見し、各入力エントリを発見された一致の 1 つに分類する必要があるため、多少異なります。

最後に、私は完璧なアルゴリズムを探しているのではなく、シンプルで維持しやすいものを探しています。

ありがとう!

4

1 に答える 1

1

有名なBag of Wordsテクニックを使用して、各行でテキストを表す疎行列を使用してテキストをグループ化することができます (通常、より良い結果を得るために、テキストはポーター ステマーでステミングされます)各単語がテキストの各部分に出現する回数と、行列の合計を行と列で計算する 各セルのtf-idfを計算して、テキストの角度距離に注意を払うそれが最も効果的です。このすべてを行った後、関連するテキストをグループ化するクラスタリング アルゴリズムを実行できます。ここからテキストの主要なキーワードを抽出することもできます。clutoと呼ばれるこれらすべてを自動的に行うプログラムがあります。、強くお勧めします。

于 2010-12-26T09:46:51.963 に答える