При написании собственного метода вам придется использовать комбинацию эвристик.
Например, спам-комментарии очень часто имеют 2 или более URL-ссылок.
Iначал бы писать свой фильтр примерно так, используя словарь триггерных слов и заставляя его циклически проходить и использовать их для определения вероятности:
function spamProbability($text){
$probability = 0;
$text = strtolower($text); // lowercase it to speed up the loop
$myDict = array("http","penis","pills","sale","cheapest");
foreach($myDict as $word){
$count = substr_count($text, $word);
$probability += .2 * $count;
}
return $probability;
}
Обратите внимание, что этот метод приведет к множеству ложных срабатываний, в зависимости от вашегонабор слов;Вы могли бы иметь свой флаг для модерации (но он сразу же начинает работать) для сайтов с вероятностью> .3 и <.6, для этого требуется, чтобы> .6 и <.9 входили в очередь на модерацию (где они не появляются)до одобрения), а затем все, что больше> 1, просто отклоняется.
Очевидно, что это все значения, которые вы должны будете изменить, но это должно начать вас с довольно простой системы.Вы можете добавить к нему несколько других классификаторов для увеличения / уменьшения вероятности спама, таких как проверка соотношения плохих слов к словам, изменение веса слов и т. Д.