[sa-conf] Вопрос по токенизатору в SpamAssassin

Alexander Shikoff minotaur на crete.org.ua
Чт Апр 15 19:27:33 EEST 2010


On Thu, Apr 15, 2010 at 06:13:56PM +0300, Alexander Shikoff wrote:
> Приветствую!
> 
> Копаясь с искодниках Bayes, обнаружил следующую интересную вещь:
> sub _tokenize_line {
>   my $self = $_[0];
>   my $tokprefix = $_[2];
>   my $region = $_[3];
>   local ($_) = $_[1];
> 
>   my @rettokens;
> 
>   # include quotes, .'s and -'s for URIs, and [$,]'s for Nigerian-scam strings,
>   # and ISO-8859-15 alphas.  Do not split on @'s; better results keeping it.
>   # Some useful tokens: "$31,000,000" "www.clock-speed.net" "f*ck" "Hits!"
>   tr/-A-Za-z0-9,\@\*\!_'"\$.\241-\377 / /cs;
> 
> [...]
> 
> Получается, что если включена опция normalize_charset и кодировка письма 
> преобразовывается в utf-8, то tr//-оператор просто уничтожает весь текст,
> оставляя только 
> "quotes, .'s and -'s for URIs, and [$,]'s for Nigerian-scam strings,
>  and ISO-8859-15 alphas",
> следовательно Bayes не учит кириллические письма.
> 
> Кто-то пытался это победить? Спасибо.

Пока придумал такой костыль: 
  tr/-A-Za-z0-9,\@\*\!_'"\$.\241-\377\x{0410}-\x{044F} / /cs;

Не знаю, насколько правильно - тесты покажут.

-- 
MINO-RIPE




Подробная информация о списке рассылки sa-conf