Forum Webscript.Ru

Программирование => Perl => Тема начата: kosm от 21 Августа 2003, 10:54:50

Название: Сравнение не идентичных строк
Отправлено: kosm от 21 Августа 2003, 10:54:50
Уважаемые мастера. Подскажите плиз метод сравнения двух не одинаково написанных строк. Т.е.:
--
МАША ЕЛА КАШУ == ЕЛА КАШУ, МАША

Какие есть методы их сравнить и считать идентичныи?

На вскидку есть:
1.Желание убрать все знаки припинания.
2.Сразу попробовать сравнить на точное соответствие
3.Затем на кол-во входящих слов

И чем дальше, тем строку считать больее не подходящей.

Есть еще решения такой задачи?

СПАСИБО!
Название: Сравнение не идентичных строк
Отправлено: NeoNox от 21 Августа 2003, 11:38:33
Первый придуманый вариант:
Разбить на слова - положить одно предложение в один хеш а другое в другой.
Далее срастить хеши и если количество элементов до сращивания и после одинаково - то это похожие предложения.
Еще нужно вставить счетчик на каждый элемент хеша и его тоже сравнивать.
Это для исключения разного количества одного и того же слова.
Название: Сравнение не идентичных строк
Отправлено: kosm от 21 Августа 2003, 12:46:58
NeoNox
Спасибо! Интересный способ. Попробую.
А нет чего-нить подобного в библах? Типа SOUNDEX для БД. Это конечно немного не то, но мож чего уже готовое есть?
Название: Сравнение не идентичных строк
Отправлено: arto от 21 Августа 2003, 20:31:53
есть. искать на cpan
Название: Сравнение не идентичных строк
Отправлено: kosm от 22 Августа 2003, 14:05:17
Спасибо! Состряпал ф-цию. Вроде работает как хотел :)