首页 > 解决方案 > 在 levenshtein distance/ Fuzz Score 上查找相似词

问题描述

我正在尝试清除从网站上抓取的搜索词。由于搜索词来自电子商务网站,因此无法使用 PYspellchecker 进行更正。经过研究,我知道我们可以使用 levenshtein 距离,但我不知道如何在单个列上实现它。我有 300K 搜索词,唯一可能的方法是使用 df 的转置。但它不起作用,因为我遇到了内存超出范围的错误。

from pandas import DataFrame

Cars = {'Words': ['Walmart','Walnart','Audi','Aoudi','udi','Falmart','Audi A4'],
        'count': [22000,300,27000,300,50,300,3000]
        }

df = DataFrame(Cars,columns= ['Words', 'count'])

字数 Walmart 22000 Walnart 300 Audi 27000 Aoudi 300 udi 50 Falmart 300 Audi A4 3000

我想要如下结果

Words   Similar_word    Score
Walmart Walmart 100
Walnart Walmart 90
Audi    Audi    100
Aoudi   Audi    90
udi Audi    85
Falmart Walmart 85
Audi A4 Audi A4 100

我的逻辑不会将沃尔玛与奥迪进行比较。其次,奥迪 A4 相距 3 levenshtein 距离,因此它被单独对待。

标签: pandasspell-checkinglevenshtein-distance

解决方案


推荐阅读