pandas - 在 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 距离,因此它被单独对待。
解决方案
推荐阅读
- c++ - 如何在 C++ 中转义白色字符
- python - Selenium Python 简单自动化任务
- python - 从一个二维数组,从第一个数组(行之间不共享的值)中创建唯一(非重复)随机选择值的第二个二维数组,而不使用循环
- node.js - Mongoose - 解决依赖于其他模型的复杂验证
- python - Raspberry PI 和 Arduino 与 Python 的串行通信
- c++ - PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY 有什么作用?
- c++ - AddSymbolicGradients 在递归实现中失败
- vue.js - 如何在 codeanywhere 上访问 VueJS
- encryption - Libsodium 和完美的前向保密
- java - 如何在 Android 中单击通知后重新启动而不是重新创建 Activity?