ユーザーが他のユーザーにメッセージを送信できるRailsアプリがあります。問題は、偽のメッセージを送信する多くのスパマーを引き付けるタイプのサイトであるということです。
Akismet( rakismet経由)やDefensio(defender経由)のようないくつかのスパムサービスをすでに知っています。これらの問題は、ユーザーがすでに送信したメッセージを考慮していないように見えることです。私のサイトで見られるスパムの種類は、ユーザーが同じ(または非常に類似した)メッセージを他の多くのユーザーに送信する場所です。そのため、少なくとも少数の過去のメッセージと比較して、スパムと見なされないほど十分に異なっていることを確認できるようにしたいと思います。
これまでのところ、私が遭遇した最高のものは、2つの文字列間の差の数を計算するText::Levenshtein距離の実装です。差の数を文字列の長さで割って計算できると思います。特定のしきい値を超えている場合は、スパムとは見なされません。
私が遭遇したもう1つのことは、 Classifier :: Bayesです。これは、何かがどのカテゴリに分類されるかを最もよく推測します。まだこれについて熟考しています。
私は間違った場所を見ているだけかもしれないと感じています、そして多分そこにこのような何かのためのより良い解決策がすでにあるかもしれません。おそらく私はもう少し便利なものを見つけるために間違った単語を探しています。