|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Michael Samanov 2:550/5068.1515 05 Apr 2000 15:09:36 To : All Subject : Сравнение текстов -------------------------------------------------------------------------------- Hello, All! Хотелось бы поспрошать о наличии какой-нибудь хэш-функции, которая бы давала сходный результат для сходных текстов. Hадо это для составления индекса таблицы. Использовать предполагается совместно с String::Approx. Вот как я примерно это вижу, если обозвать функцию myhash: my $hash = myhash($text); my $sth = $dbh->prepare("SELECT text FROM table WHERE hash<=? AND hash >=?"); $sth->execute($hash+100, $hash-100); while(my $t = $sth->fetchrow_arrayref) { next unless amatch($text, $$t); print "Match: $$t\n"; last; } База предполагается не очень маленькая, поэтому просто в лоб юзать amatch - не хватит ни памяти, ни ресурсов, так что обязательно нужен хэш для сужения области поиска. Hа CPAN-е нашел только Text-Metaphone-1.96.tar.gz String-Approx-3.09.tar.gz Lingua-EN-Squeeze-1998.1204.tar.gz Text-Trie-0.21.tar.gz Hо это не то, что надо, хотя без String::Approx, конечно, не обойдесси. CRC и MD5, очевидно, отдыхают, потому что дают сильный разброс при малых различиях в исходных текстах. Hужно это, как водится, еще вчера, а лучше - позавчера :-) Sincerely yours, Michael (mailto:mike@vlink.ru). --- ifmail v.2.14 * Origin: Home (2:550/5068.1515@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/7949c82127b7.html, оценка из 5, голосов 10
|