Записать связь, используя методы сходства строк
Мы работаем над проектом Record Linkage. Мы наблюдаем странное поведение всех стандартных техник, таких как Яро Винклер, Левенштейн, Н-Грам, Дамерау-Левенштейн, Жаккард, Соренсен-Дайс
Скажем,
String 1= МИНИ-ШЛИФОВАЛЬНЫЙ КОМПЛЕКТ
String 2= Комплект принадлежностей для мини-шлифмашины Weiler 13001, для использования с небольшими прямоугольными шлифмашинами
Строка 3= видеобороскоп Милуоки, вращающийся осмотр, серия: M-SPECTOR 360, 2,7 х 640 х 480 пикселей, ЖК-дисплей высокого разрешения, пластиковый, черный / красный
В приведенном выше случае строка 1 и строка 2 связаны счетом всех методов, как показано ниже.
Яро Винклер -> 0.391666651
Левенштейн -> 75
N-грамм, -> 0,9375
Дамерау -> 75
Жакард индекс -> 0
Соренсен-Кости -> 0
Косинус -> 0
Но строка 1 и строка 3 совсем не связаны, но метод расстояния дает очень высокий балл.
Яро Винклер -> 0.435714275
Левенштейн -> 133
N-грамм, -> 0,953571439
Дамерау -> 133
Жакард индекс -> 1
Соренсен-Кости -> 0
Косинус -> 0
Какие-нибудь мысли.?
2 ответа
Все оценки расстояния учитывают регистр. Следовательно, приведите их всех в один и тот же случай. Тогда вы сможете увидеть расчет баллов соответствующим образом.
Я считаю, что ваша цель - проверить, одинаковы ли эти два продукта или нет. Я полагаю, что данные взяты из разных источников, в случае таких данных вам нужно выяснить, какое самое важное упоминание стоит сравнить?! Название бренда, характеристики и т. Д.
Эти метрики следуют за очень грубым понятием сходства!, а не просто подавать данные таким образом.
Поэтому сначала очистите (удалите знаки препинания, не важные слова), разбейте (разбейте его на отдельные слова), затем, возможно, вы сможете использовать fuzzywuzzy, чтобы найти лучшее соответствие.