LINUX.ORG.RU

Как оценить вероятность равенства 2х строк?


1

2

Предположим есть 2 строки:
1 : «abcde»
2 : «avcde»

Как можно определить численно насколько похожа 2ая строка на первую?

Может есть какой-нибудь алгоритм?

Просто имеется список, который нужно расширить, включив в него элементы из другого списка.
Проблема в том, что в обоих списках есть опечатки и нужно сделать проверку, чтобы не включить повторяющиеся строки в списке, где скажем различие в 1-2 буквы или одна из строк не завершена, а вывести на экран «похожие» строки, чтобы юзер сам смог выбрать, это строка с опечаткой или принципиально другая строка.

Может быть кто-то делал что-то подобное?

Перемещено beastie из general

gestalt pattern matching

anonymous
()

Посмотри, может Levenstein-distance подойдет.

anonymous
()

Может подойдет банальный поиск наибольшей общей подстроки? Наивный алгоритм с матрицей быстро и просто реализуется.

yoghurt ★★★★★
()

Посмотри в википедии статью про diff, там описан алгоритм, который применим и в твоём случае.

anonymous
()

«Что-то подобное» маленькие кодерята проходят ещё в детском садике. Пойди-ка ты и удавись, вместо того, чтобы программировать.

anonymous
()

Levenstein-distance

this

anonymous
()
Ответ на: комментарий от anonymous

«Что-то подобное» маленькие кодерята проходят ещё в детском садике. Пойди-ка ты и удавись, вместо того, чтобы программировать.

хорошо конечно, если папа инженер, если он подарил чаду компьютер в младших классах и отправил его на 5 лет в ИТ-факультет хорошего вуза города милионника.
такие везунчики особенно яростно утверждают, что они всего «сами добились»

но у других людей жизнь часто не такая шоколадная

anonymous
()

Если списки небольшие - можно agrep (пакет tre), иначе нужно по какой-нибудь дистанции строить дерево по первому файлу и добавлять или отбрасывать (если найдутся близкие) строки из второго.

anonymous
()

Как можно определить численно насколько похожа 2ая строка на первую?

u(x,y) = 1, x == y
u(x,y) = 0, x != y

anonymous
()

Гугль как-то ищет по строкам с опечатками и ошибками. Наверное, стоит рыть в эту сторону.

Deleted
()
Ответ на: комментарий от Deleted

curl-ить каждую строчку и парсить ответ, в точку!

minakov ★★★★★
()
Ответ на: комментарий от invy

И дальше по ссылкам.

это на самом деле несколько другое, хотя и близко. Твоя ссылка даёт ответ на вопрос «то-ли там карова, то-ли корова», а моя - «сколько от коровы до китая?»

drBatty ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.