|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andrey Sapozhnikov 2:5020/400 05 Apr 2000 20:38:03 To : All Subject : Re: Сравнение текстов -------------------------------------------------------------------------------- Michael Samanov wrote: > Хотелось бы поспрошать о наличии какой-нибудь хэш-функции, которая > бы давала сходный результат для сходных текстов. 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; > } [skiped] Боюсь, что это невозможно принципиально. Результат анализа схожести строк есть вектор, с несколькими величинами. Свернуть их без потери "качества" сравнения в скаляр невозможно. Впрочем, вектор можно описать как несколько полей в таблице и проверять на попадание в интервалы всех полей с разными весовыми коэффициентами для каждой характеристики или использовать БД понимающую вектора. Пример такого вектора: (длина_строки,буквосочетание1,буквосочетание2,...) и выборка WHERE slen>=25 slen<=30 AND combPRO>=2 AND ... крайне не тривиально. Может упростить это и использовать оракловую ConText option? Андрей --- ifmail v.2.15dev4 * Origin: Chelindbank (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/91178419e279.html, оценка из 5, голосов 10
|