我有一个类似的数据集:
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
请不要,这只是一个示例数据,字符串比这些更复杂。 如何利用余弦相似度和序列匹配器之类的软件包来实现这一目标?
答案 0 :(得分:3)
没有强大的本地pandas
方法可解决此问题。我建议使用fuzzywuzzy
库来解决此问题。确保先pip install fuzzywuzzy
。
默认情况下,该库使用Levenshtein distance来实现字符串相似性。
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