Есть ли более точный алгоритм, чем алгоритм «Левенштейн расстояния»? http://en.wikipedia.org/wiki/Levenshtein_distanceНасколько похожи эти два слова
ответ
Существует Damerau–Levenshtein distance, который добавляет поддержку символьных транспозиций и обеспечивает больший охват для общих опечаток.
Чтобы получить процент сходства для Левенштейн или Damerau-Левенштейна сделать что-то вроде этого:
int relative_similarity = 1.0 - 1.0/((len(x) + len(y))/2) * lev(x, y); //untested
В качестве альтернативы вы можете взглянуть на longest common subsequence как метрики подобия.
Далее есть
которые являются фонетические алгоритмы согласования.
Хотя Smith
и его немецкий коллега Schmidt
бы оказаться совершенно иным использованием редактирования расстояния (a.k.a Левенштейн), Саундэкс и Metaphone рассмотрит их фонетически сходные или даже эквивалентны.
Но без вас рассказывал нам, что неправильно о чистом расстояния Левенштейна это трудно угадать лучший алгоритм.
Дамеру-Левенштейн расстояние более точно, чем (классический) Левенштейн
Levenshtein возвращает плохие результаты с помощью слов сортировки –
@AymanJitan: Damerau-Levenshtein также не является истинной метрикой текста (так как он не соответствует неравенству треугольника), что в случае BKTrees, например может быть довольно плохой. Без того, чтобы вы давали нам больше информации о том, что не так с общими алгоритмами, невозможно дать полезные рекомендации. «Подобный» может означать почти что угодно: wordlength, wordhape, фонетика, смысловое значение, ... – Regexident
- 1. Насколько похожи Unix и Linux?
- 2. Как определить, что два предложения похожи?
- 3. Сравните, если два элемента из os.listdir похожи?
- 4. Как судить, похожи ли два временных ряда?
- 5. два кода похожи, почему первое неправильно?
- 6. Эти два цикла эквивалентны?
- 7. Два отдельных UserControls похожи на один экземпляр
- 8. Функция «Исключить эти слова»
- 9. Эти два XML одинаковы?
- 10. эти три вопроса, которые похожи, но не одинаковы. как?
- 11. Как эти два определения отличаются от компилятора?
- 12. Объедините эти два метода
- 13. Эти два вопроса идентичны?
- 14. Эти два эквивалента?
- 15. Эти два вопроса одинаковы?
- 16. Эти два эквивалента xml?
- 17. Эти два значения одинаковы?
- 18. Насколько я использую эти таблицы в lua?
- 19. Насколько лучше вы можете переписать эти лямбды?
- 20. Какие слова будут лучше выражать эти состояния?
- 21. Почему эти два выражения не равны?
- 22. Создать Android UI похожи на ключевые слова в StackOverflow
- 23. Насколько высока идея слова над клавиатурой?
- 24. общие предпочтения не похожи
- 25. Объединить эти два MySql запросов
- 26. Почему эти два сюжета отличаются?
- 27. Почему эти два объекта null?
- 28. Как сравнить эти два массива?
- 29. Как эти два Гида отличаются?
- 30. Эти два повторных записи одинаковы?
Это зависит от того, как вы определяете точность. –
Почему Levenshtein вам не подходит? – kol
Какое понятие подобия вы после? Не зная, чего вы хотите, невозможно предложить другие меры. –