スパムをフィルタリングするための単純なベイジアン フィルタリングはどの程度効果的ですか?
スパマーは、スパムに関係のない余分な単語を詰め込んで簡単にバイパスすると聞きました。それを防ぐために、ベイジアン フィルターでどのようなプログラミング手法を使用できますか?
スパムをフィルタリングするための単純なベイジアン フィルタリングはどの程度効果的ですか?
スパマーは、スパムに関係のない余分な単語を詰め込んで簡単にバイパスすると聞きました。それを防ぐために、ベイジアン フィルターでどのようなプログラミング手法を使用できますか?
Paul Graham は、 2002 年 8 月に、彼の最初の記事 A Plan for Spam で、ベイジアンスパムフィルタリングを使用するアイデアを Web 全体に実際に紹介した人物です。それが急に起きました。これらは、このトピックに関する非常に優れた作品です。
2 番目の記事で、Graham はCRM114の使用について言及しています。これは、スペースで区切られた単語だけでなく、はるかに幅広いパターン セットで機能します。CRM114 はクールですが、スパム フィルタリング システムの実装にはあまり助けがありません。
Death2SpamやSpamProbeなど、ベイジアン スパム フィルタリング用のオープンソースのパワーツールがあります。
Gmail アカウントを介してメールをフィルタリングするのとまったく同じように機能するものはありません。楽しい狩り。
おっしゃるスパム攻撃に打ち勝つためには、学習方法ではなく、どのような機能を鍛えるかが重要だと思います。私は非常に成功したフィルタである Fidelis Assis のOSBF-Luaを使用しています。スパム フィルタのコンテストで優勝し続けています。ベイジアン学習を使用していますが、その成功の本当の理由は次の 3 つの原則にあると思います。
単一の単語ではなく、スパース バイグラム(0 ~ 4 個の "don't care" 単語で区切られた単語のペア) でトレーニングします。スパマーはメッセージをどこかに入れる必要があり、スパースバイグラムはそれらをうまく見つけ出すことができます。添付ファイルのスパムも検出します。
スパマーが偽装するのが難しいため、メッセージ ヘッダーに対して追加のトレーニングを行います。例: ネットワークから発信され、ネットワーク外のリレー ホストを通過しないメッセージは、おそらくスパムではありません。
スパム フィルターの分類に関する信頼度が低い場合、人間からの入力を要求します。(実際には、「このメッセージで私を訓練してください」というヘッダー フィールドが追加されます。人間は要求を無視できます。) これは、スパマーが新しい技術を進化させるにつれて、フィルターがそれに合わせて進化することを意味します。
このテクニックの組み合わせは非常に効果的です。
免責事項: 私は Fidelis と協力してソフトウェアの一部をリファクタリングし、通常のメールをグループに分類したり、いつかブログのコメントやその他の場所でスパムを検出したりするなど、他の目的に使用できるようにしました。
私はPopfileを使用してスパムを分類するだけでなく、電子メールをカテゴリに分類し、非常に効果的だと感じています。単純ベイズフィルターを使用します。
そうです、単純なベイジアン フィルターはベイジアン ポイズニングの影響を受けやすくなっています。