私が働いている会社はたくさんのメールを送っており、その見返りにたくさんのバウンスがあります。
現在、それらを並べ替える良い方法がなく、重要なものを人間の目の前に置いて、日常的なものをアーカイブするのに役立っています。
ビューの形式から、これらの電子メールバウンスは適切に構造化されていませんが、ある種のパターンがあります。
現在取り組んでいる予備的なシステムがありますが、それは複雑な正規表現の管理不可能なコレクションになりつつあります。
バウンスの一部を家に持ち帰らせるように会社を説得しました。自由な時間にバウンスを処理するためのより良い方法を見つけたいと思っています。何か面白いことを学び、何か価値のあることをする機会でもあります。
この問題にどのようにアプローチしますか?この状況に適したメソッドまたはアルゴリズムのクラスはありますか?
ありがとうございました。
4つの単語: ベイズ分類器 スコア付き。
ベイズ分類器:「正しい」結果(つまり、アーカイブされているか、人間が見ている)がわかっているデータのセットが大量にあるため、次を使用できます。分類器の初期トレーニングを提供します。テストとして、セット全体で各アイテムを実行し、それらが適切に分類されているかどうかを確認してから、不明なアイテムのバッチを実行して、分類子がそれらに対してどのように機能するかを確認できます。
分類されたアイテムを人間に与えると、分類者が間違った決定をしたときにフィードバックを提供するメカニズムがあるように、彼らが使用するシステムを調整することが重要です。
...またはそれが正しい決定をしたとき(アイテムに関するフィードバックがない場合、これらは暗黙的である必要があります):
ベイズ分類器は、両方の種類の情報を使用してトレーニングする必要があり、ポジティブな例とネガティブな例が積み重なるにつれて、正しくなるようになります。
スコアリング:これはおそらく正規表現で現在行っていることであり、分類子が処理できない人間の専門知識をすべて統合する場所です。各アイテムはゼロ(「ニュートラル」)のスコアで始まり、一致した各ルールは、ルールがアイテムをアーカイブするか表示するかによって、正または負の方向にプルします。これらのルールの1つは、分類子が返すものに基づいてスコアを調整し、[0.0,0.5)
の確率に負のスコア、0.5
にゼロ、(0.5,1.0]
の値に正のスコアを適用する必要があります。分類器のパフォーマンスを把握したら、確率が範囲内のどこにあるかに基づいてスコア調整の大きさを調整できます。あなたができるもう一つのことは、見られるためのしきい値を下げることです。そうすれば、中心の周りのより広い範囲の確率(「わからない」範囲)がスクリーニングされ、分類器がより良くできるようにするフィードバックを集めることができます。その範囲外の決定。
実装:良いニュースは、これらすべてを自分で開発する必要がないことです。あなたは電子メールを扱っているので、 SpamAssassin はあなたのためにほとんどすべてのうなり声の仕事をすることができ、あなたのアプリケーションに合うように適応するために熟しています。 (データを巧妙に再パッケージ化することで、電子メールを含まないアプリケーションにも使用できます。)必要なのは、すべての組み込みルールを破棄し、独自のセットに置き換えることだけです。 SpamAssassinの他の便利な機能の1つは、各アイテムのヘッダーに直接一致したものに関するレポートを追加できることです。これにより、収集したフィードバックを使用して、誤分類に最も頻繁に関与するルールを見つけ、それに応じて調整することができます。
補足:物事nの方法で分類する必要があるアプリケーションの場合、入力の各ビットを複数のフィルターで実行し、最高のスコアを返すものを選択します。