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

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

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

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

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

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


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