#python #pandas #nlp #salesforce #fuzzy-comparison
Вопрос:
У меня есть записи Salesforce, которые я хочу дедуплицировать, используя методы нечеткого сопоставления строк с взвешиванием по разным полям.
Я хочу настроить сценарии, такие как взвешивания по определенным столбцам в строке, которые увеличивают или уменьшают общую метрику сходства. Существенное изменение веса позволяет мне расставлять приоритеты в своих колонках на разных уровнях.
Я описываю сценарии как набор правил для того, как я хочу сравнивать записи.
Ниже приведен пример набора данных:
Первый | фамилия | Электронная почта |
---|---|---|
Мэтт | Метро | name@example.com |
Алекс | Два | Три |
Мэтью | Meos | name@example.com |
В этом сценарии у нас есть 3 функции для каждой строки данных.
Каждая функция имеет вес 10, что дает мне общий балл 30
Особенность | Счет |
---|---|
Имя Кулака | 10 |
фамилия | 10 |
Электронная почта | 10 |
весь | 30 |
Таким образом, точное соответствие по всем трем полям даст результат 30/30 (т. е. 100% — ная оценка сходства).
Теперь предположим, что я хочу, чтобы вес электронной почты был в 3 раза мощнее. Модель должна выглядеть так:
Особенность | Счет |
---|---|
Имя Кулака | 10 |
фамилия | 10 |
Электронная почта | 30 |
весь | 50 |
Таким образом, точное совпадение с электронной почтой будет иметь значительно больший вес в оценке сходства.
Я пытаюсь выяснить пакеты Python, которые могут помочь мне достичь этого динамического взвешивания, и алгоритм, который я должен использовать для сходства.
For the Algorithm, I was thinking of using
- Расстояние Левенштейна
Для взвешивания различных полей между записями:
- Фрейм данных Python
Каков наиболее эффективный способ достижения такого типа нечеткого сопоставления строк в Python?