powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Похожесть слов по написанию
8 сообщений из 8, страница 1 из 1
Похожесть слов по написанию
    #39224257
Conejo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть некий справочник слов. Периодически скачиваются слова, которых в справочнике нет.
Поскольку справочник достаточно полный, есть основания предполагать, что загруженные слова в базе уже есть, а новые - это ошибочно написанные старые (ну, или наоборот). Чтобы не плодить дубли и особенно ошибки в справочнике, на обработке сидит человек, который просматривает новые слова и решает - новое оно или уже есть в справочнике, и какой из вариантов написания правильный.
Цель - упростить работу оператору и предлагать наиболее похожие слова из уже имеющихся в справочнике. Другими словами, на любое слово показывать топ-10 наиболее похожих из списка.
Поделитесь пож. идеями, как это можно реализовать или где про такое можно почитать.
...
Рейтинг: 0 / 0
Похожесть слов по написанию
    #39224261
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читать "расстояние Левенштейна".
...
Рейтинг: 0 / 0
Похожесть слов по написанию
    #39224287
__Avenger__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне больше нравится алгоритм Ratcliff/Obershelp pattern matching
...
Рейтинг: 0 / 0
Похожесть слов по написанию
    #39224322
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут большая подборка алгоритмов https://habrahabr.ru/post/114997/
...
Рейтинг: 0 / 0
Похожесть слов по написанию
    #39224634
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Conejo, я полностью согласен с предложением по функции Левинштена.

Но добавлю наблюдения из практики. В двух ентерпрайзовых системах
которые трогал руками использовался нечеткий поиск на основе
Soundex и DoubleMetaphone. Их имплементации есть в Postgressql
в стандартных пакетах. Надо только доустановить.

Я также нагугливал легко их Java-имплементации в apache.commons.*
и еще где-то.

Обе функции хорошо идут для поиска в справочниках имен физлиц.
Они в первую очередь ориентированы на фонетику. Тоесть на созвучные
и похожие имена такие как Иван, Иоан, Ион e.t.c. Я не уверен что они
тебе помогут. Но попробуй.

Обычно резалт этой функции похож на хешкод и его кладут рядом с ФИО
и строят индекс по этому полю.

Чуть позже если интересно я отпишу 3-й вариант поиска на движке SQLite/.
...
Рейтинг: 0 / 0
Похожесть слов по написанию
    #39225009
Conejo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо всем! Функция Левенштейна вполне подошла для моей задачи
...
Рейтинг: 0 / 0
Похожесть слов по написанию
    #39225573
fortress
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
там же, в пакете fuzzystrmatch для postgresql, есть вариант функции
levenshtein(text,text) которая возвращает количество отличающихся
символов в 2 переданных аргументах.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Похожесть слов по написанию
    #39226026
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Похожесть слов по написанию
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]