小编Dio*_*Dio的帖子

Python 将数据集中的相似记录(字符串)分组

我有一个这样的输入表:

In [182]: data_set
Out[182]: 
       name             ID
0  stackoverflow       123      
1  stikoverflow        322      
2  stack, overflow     411      
3  internet.com        531      
4  internet            112      
5  football            001
Run Code Online (Sandbox Code Playgroud)

我想根据模糊模糊对类似的字符串进行分组。因此,在应用模糊匹配后,所有超过某个相似度阈值(如 > %90 相似度)的字符串将组合在一起。所以期望的输出是:

In [182]: output
Out[182]: 
       name             ID     group
0  stackoverflow       123       1
1  stikoverflow        322       1
2  stack, overflow     411       1
3  internet.com        531       2
4  internet            112       2
5  football            001       3
Run Code Online (Sandbox Code Playgroud)

我正在搜索不同的主题,我发现这个这个只是名称匹配而不是聚类。此外,这个只显示了最佳匹配,它对我没有帮助。这个页面也解释了k-means聚类需要预先设置聚类的数量,这在这种情况下是不切实际的。

更新:

我发现包中的process方法可以在fuzzywuzzy某种程度上解决我的问题。但是此方法仅将字符串与列表进行比较,而不是将列表与列表进行比较:

from fuzzywuzzy import …
Run Code Online (Sandbox Code Playgroud)

python cluster-analysis string-matching pandas fuzzywuzzy

5
推荐指数
1
解决办法
1736
查看次数