|
|
|
Похожесть слов по написанию
|
|||
|---|---|---|---|
|
#18+
Есть некий справочник слов. Периодически скачиваются слова, которых в справочнике нет. Поскольку справочник достаточно полный, есть основания предполагать, что загруженные слова в базе уже есть, а новые - это ошибочно написанные старые (ну, или наоборот). Чтобы не плодить дубли и особенно ошибки в справочнике, на обработке сидит человек, который просматривает новые слова и решает - новое оно или уже есть в справочнике, и какой из вариантов написания правильный. Цель - упростить работу оператору и предлагать наиболее похожие слова из уже имеющихся в справочнике. Другими словами, на любое слово показывать топ-10 наиболее похожих из списка. Поделитесь пож. идеями, как это можно реализовать или где про такое можно почитать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2016, 22:43 |
|
||
|
Похожесть слов по написанию
|
|||
|---|---|---|---|
|
#18+
Читать "расстояние Левенштейна". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2016, 22:47 |
|
||
|
Похожесть слов по написанию
|
|||
|---|---|---|---|
|
#18+
Мне больше нравится алгоритм Ratcliff/Obershelp pattern matching ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2016, 00:02 |
|
||
|
Похожесть слов по написанию
|
|||
|---|---|---|---|
|
#18+
Тут большая подборка алгоритмов https://habrahabr.ru/post/114997/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2016, 05:44 |
|
||
|
Похожесть слов по написанию
|
|||
|---|---|---|---|
|
#18+
Conejo, я полностью согласен с предложением по функции Левинштена. Но добавлю наблюдения из практики. В двух ентерпрайзовых системах которые трогал руками использовался нечеткий поиск на основе Soundex и DoubleMetaphone. Их имплементации есть в Postgressql в стандартных пакетах. Надо только доустановить. Я также нагугливал легко их Java-имплементации в apache.commons.* и еще где-то. Обе функции хорошо идут для поиска в справочниках имен физлиц. Они в первую очередь ориентированы на фонетику. Тоесть на созвучные и похожие имена такие как Иван, Иоан, Ион e.t.c. Я не уверен что они тебе помогут. Но попробуй. Обычно резалт этой функции похож на хешкод и его кладут рядом с ФИО и строят индекс по этому полю. Чуть позже если интересно я отпишу 3-й вариант поиска на движке SQLite/. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2016, 12:14 |
|
||
|
Похожесть слов по написанию
|
|||
|---|---|---|---|
|
#18+
Большое спасибо всем! Функция Левенштейна вполне подошла для моей задачи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2016, 17:50 |
|
||
|
Похожесть слов по написанию
|
|||
|---|---|---|---|
|
#18+
там же, в пакете fuzzystrmatch для postgresql, есть вариант функции levenshtein(text,text) которая возвращает количество отличающихся символов в 2 переданных аргументах. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2016, 13:31 |
|
||
|
Похожесть слов по написанию
|
|||
|---|---|---|---|
|
#18+
На App уровне Левенштейн https://commons.apache.org/sandbox/commons-text/jacoco/org.apache.commons.text.similarity/LevenshteinDistance.java.html Soundex https://commons.apache.org/proper/commons-codec/apidocs/org/apache/commons/codec/language/Soundex.html Double Metaphone https://commons.apache.org/proper/commons-codec/apidocs/org/apache/commons/codec/language/DoubleMetaphone.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2016, 18:16 |
|
||
|
|

start [/forum/topic.php?fid=16&gotonew=1&tid=1340734]: |
0ms |
get settings: |
8ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
173ms |
get topic data: |
8ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 483ms |

| 0 / 0 |
