Вам необходимо определить правила соответствия для ваших строк.Что определяет «похожую строку»
- количество совпадающих символов
- количество несовпадающих символов
- аналогичная длина
- опечатки или фонетические ошибки
- бизнес-аббревиатуры
- должен начинаться с одной и той же подстроки
- должен заканчиваться той же подстрокой
Я сделал довольно многоЯ работаю с алгоритмами сопоставления строк, и мне еще предстоит найти любую существующую библиотеку или код, который отвечает моим конкретным требованиям.Просмотрите их, позаимствуйте идеи у них, но вам непременно придется настраивать и писать свой собственный код.
Алгоритм Левенштейна хорош, но немного медленен.Я имел некоторый успех с обоими алгоритмами Смита-Уотермана и Джаро-Винклера, но лучшее, что я нашел для своих целей, - это Монж (по памяти).Однако стоит прочитать оригинальное исследование и определить, почему они написали свои алгоритмы и целевой набор данных.
Если вы не определите, что вы хотите сопоставить и измерить, то вы найдете высокие оценки нанеожиданные совпадения и низкие оценки ожидаемых совпадений.Соответствие строки очень зависит от домена.Если вы не правильно определите свой домен, то вы как рыбак без понятия, разбрасывая крючки и надеясь на лучшее.