2012-02-20 3 views
1

私が関与しているネットワークに起因する虐待行為について詳しく説明している電子メールは、ほんのわずかです。これらは通常、次のいずれかを含みます。Python + Scattergraphs + Other Nonsense

a)侵害されたとみなされるURL。

または

b)は、スパムと見なされるメールのコピー。

これらのほとんどは自動化されており、一般的にARFにはうまく対応していません。

私が必要とするのは自動データ抽出ですが、電子メールの構造が変わって予測できないときにはどうすればよいか分かりません。私は現時点で抽出するために探しています何

は次のとおりです。

a)は、ほとんどの輸出入/ qmailの中で示されているスパムのための発信メールサーバー(およびUID /ユーザー名は、ヘッダーを受信)

B私はいくつかを使用していない汗でこれを行うことができます)ドメイン名妥協サイト

d)の電子メールアドレス

ため

C)のURL正規表現と他の迷惑なビットがありますが、基本的には信頼できません。電子メールの本文を解析すると、5つのIP、3つのURL、3つの電子メールアドレスで終わることがあります。自動的にベストフィットを選択する方法は不明です。

正しいデータが何であるかを自動的に判断するために、私が研究したい/探しているべきことについて何らかの方向性が必要です。私は10万件を超える過去のレポートメールを持っているので、テストデータが不足しているわけではありません。この問題を解決するには、どうやって始めたらいいか、何を調べるべきかを知る必要があります。

  • Insersecting:これを読むために時間を割いて

    おかげで、私が何かを見逃しているか、他の質問:)

    がある場合はFYI、私は次のことを検討しているなら、私に知らせてくださいこの差出人からの複数の過去の電子メールを分類してから、新しい電子メールとの差を設定します。私はPythonのセット+リストを使っていくつかのアルゴリズムをハードコーディングする以外に、これを行う最善の方法については全く知らない。

  • 私の以前のすべてのデータを様々な形態のスキャッタプール/ヒストグラムにプロットする。私は、既存のデータと比較して新しい電子メールをテストし、グラフ内で最も一般的ではない詳細を選ぶことができます。もう一度、私はここで何を探していなければならないのか分かりません。

  • サンプルデータを使用して、以前に見られたアイテムに対して重みを付けます。私。以前の1000個のサンプルのページを作成し、決して正しいとは思われないIPを「マークダウン」し、正しいIPをマークアップするとします。

  • ホスト名を解決してアイテムを一致させるために、ソケットルックアップを含むコードが複雑になります。私はこれが実行に集中することを知っていますが、最も良い結果を得る可能性が最も高いでしょう。

乾杯!

+0

私はあなたに優れた結果をもたらす簡単なアプローチがあるとは思っていますが、転送された電子メールのパターンを検出するために何かを書こうとします。ほとんどの電子メールソフトウェアは、転送されたメッセージに非常に予測可能な機能を追加します。このようなメッセージを特定すると、すでに抽出できるUID/URL /ドメイン/アドレスに* context *が与えられます。 – Beta

答えて

0

あなたは既に考えているアイデアのいくつかを正しく理解しています。

まず、「真実」または適切に分類されたサンプルデータセットを構築し、問題のIP、URL、電子メールアドレスなどをリストする必要があります。したがって、いくつかのカテゴリといくつかの関連データを定義し、 。それは楽しいことではありませんが、必要です。

この時点で、ベイジアンに移動して動作するかどうかを判断したり、フィーチャエンジニアリングを実行して他の方法を試すことができます。

ベイジアン分類は、テストデータの束(たとえば1/2または2/3)を入力し、残りの部分で訓練された分類子がどのように機能するかを確認するためのブラックボックスです。あなたが90%プラスの範囲で何かを得るなら、あなたは本質的に完了しています、それは十分速いです。あなたが出力すべき1つの機能は、電子メール内のすべての "トークン"です。空白で分割します。あなたはここに起動することができます。

http://nltk.googlecode.com/svn/trunk/doc/api/nltk.classify-module.html

をフィーチャーエンジニアリングを行うことを決定した場合、今あなたが探索段階に入ります。機械学習やパターン分類を行うときはいつでも、ソースデータから抽出できる「フィーチャ」を定義する必要があります。あなたが言ったように、正規表現を使って電子メールアドレス、IP、URLを得ることができます。それらはすべて優れた機能です。他にどのような機能を見つけることができますか?多分タイムスタンプのいくつか(時間的関係はありますか?誰が知っていますか?)。

メールのヘッダーの一部は、MIMEバージョン、SenderID、ContentType、X-Spam-Level、文字セットなどのように役に立ちます。何が起こっているのかを判断するために個人的に使用する機能を決定したら、上記のベイジアン分類子を使用して、コンピュータにこれらの決定を行う方法を教えることができます。

新しい機能が多数定義されているため、トレーニングを50%で実行し、その結果を他の50%と比較してどのように実行したかを確認できます。あなたが高い精度を得るなら、素晴らしい!あなたは終わった。それでもまだ低い場合は、クラシファイアが適切に識別できるように他の機能を定義する必要があります。あなただけが、どのくらいの高さが高いか、どのくらい低いかを決めることができます。

関連する問題