Ich habe eine Rails-App, in der Benutzer Nachrichten an andere Benutzer senden können. Das Problem ist, dass es die Art von Website ist, die viele Spammer anzieht, die falsche Nachrichten senden.
Ich kenne bereits ein paar Spam-Dienste wie Akismet (über rakismet ) und Defensio (über Verteidiger ). Das Problem dabei ist, dass sie anscheinend nicht die Nachrichten berücksichtigen, die der Nutzer bereits gesendet hat. Die Art von Spam, die ich auf meiner Website erkenne, besteht darin, dass der Benutzer die gleichen (oder sehr ähnliche) Nachrichten an viele andere Benutzer sendet. Daher möchte ich zumindest eine Handvoll früherer Nachrichten vergleichen können, um sicherzustellen, dass sie sich genug unterscheiden, um nicht als Spam zu gelten.
Das Beste, was ich bisher gefunden habe, ist die Text::Levenshtein-Abstand Implementierung, die die Anzahl der Unterschiede zwischen zwei Zeichenketten berechnet. Ich nehme an, ich könnte die Anzahl der Unterschiede geteilt durch die Länge der Zeichenkette berechnen, und wenn sie über einem bestimmten Schwellenwert liegt, wird sie nicht als Spam angesehen.
Eine andere Sache, auf die ich gestoßen bin, ist Klassifikator::Bayes die eine Vermutung darüber anstellt, in welche Kategorie etwas fällt. Ich grüble noch darüber nach.
Ich habe das Gefühl, dass ich an der falschen Stelle suche, und vielleicht gibt es bereits eine bessere Lösung für so etwas da draußen. Vielleicht suche ich nach den falschen Worten, um etwas Nützlicheres zu finden.