Найти совпадение похожих элементов в двух столбцах в Python - PullRequest
0 голосов
/ 29 октября 2018

У меня есть такой набор данных:

Column1                Column2
 a bc                    cdr
 cd r                    ab c
 bose                    beats
 bea ts                  bo se
 i phone                 sam sung
 samsung                 iphone

Если вы заметили, что оба столбца содержат почти одинаковые слова, но различаются по формату и имеют пробелы в них. Я хочу, чтобы такие методы, как косинусное сходство или сопоставление последовательностей, соответствовали этим столбцам, чтобы результаты выглядели так:

column 1                 column 2 
a bc                      ab c
cd r                      cdr 
bose                      bo se
bea ts                    beats
i phone                   iphone
samsung                   sam sung

Пожалуйста, не надо, это просто пример данных, строки более сложные, чем эти. Как я могу использовать такие пакеты, как Cosine Similarity и Sequence Matcher, чтобы это произошло?

1 Ответ

0 голосов
/ 29 октября 2018

Нет строгого нативного pandas подхода к этой проблеме. Я бы порекомендовал использовать библиотеку fuzzywuzzy для решения этой проблемы. Сначала убедитесь, что вы pip install fuzzywuzzy.

По умолчанию эта библиотека использует расстояние Левенштейна для сходства строк.


from fuzzywuzzy import process

res = [process.extractOne(w, df.Column2)[0] for w in df.Column1]
df.assign(Column2=res)

   Column1   Column2
0     a bc      ab c
1     cd r       cdr
2     bose     bo se
3   bea ts     beats
4  i phone    iphone
5  samsung  sam sung
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...