Привет DEV сообщество!
У меня есть идея проекта, которую я хотел бы погрузиться, но мне нужна ваша помощь, определяющая некоторые основные очки.
Проект о сопоставлении строк до самой похожей строки в другом наборе данных (таблиц) в Python.
Например: Таблица 1 Имя / город, страна Марк Смит / Нью-Йорк, США Мирко Ухмылков / Нью-Йорк, США Джон Э. Доу / Париж, США Джейн Доу / Париж, Франция
Таблица 2 Имя / город, страна Мирко С. / NYC, США Марк С. / NYC, США Джейн Д / Париж, Франция Дж. Доу / Париж, нас
Идея состоит в том, чтобы сопоставить каждого человека с собой на другой таблице. Например, строка 1 первой таблицы будет правильно соответствовать строке 2 второй таблицы.
Как видите, нет идеальных совпадений, а иногда это может сопоставить первый столбец, но не второй. Второй столбец должен иметь больше веса в решении.
Я впервые подумал о подходе на основе Левенштейн Расстояние Для расчета различий между последовательностями с использованием Fuzzywuzed Package. Но я столкнулся с множеством вопросов, таких как следующие: Таблица 1 : Франклин Делано Рузвельт Франклин да черепаха
Таблица 2 : Фдраво
Расстояние Левенштейна скажет, что Франклин да черепаха лучше чем Франклин Делано Рузвельт для FDR Так как у него есть меньше персонажей для сравнения.
В реальных данных у меня будет много столбцов, чтобы подтвердить достоверность решения, но я все равно застрял.
Есть ли лучший подход? Я впервые подумал о некотором векторе NLP, но не моя область знаний.
Любые идеи будут хорошо приняты.
Оставьте свой комментарий, если вы знаете что-то лучше, чем Fuzzywuzzy подход.
Оригинал: “https://dev.to/biaus_/need-help-python-text-matching-7l0”