gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 11:48:00 32 4
gpt4 key购买 nike

我有一个这样的输入表:

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

我想根据模糊模糊对类似的字符串进行分组。因此,在应用模糊匹配后,所有具有超过某个相似度阈值(如 > %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

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

更新:

我想通了 process fuzzywuzzy 中的方法包会在某种程度上解决我的问题。但是此方法仅将字符串与列表进行比较,而不是将列表与列表进行比较:
from fuzzywuzzy import process

with open("data-set.txt", "r") as f:
data = f.read().split("\n")
process.extract("stackoverflow",data, limit=3)

输出:
[('stackoverflow', 100), ('stack, overflow', 93), ('stikoverflow', 88)]

但仍然不知道如何使用它进行集群。

最佳答案

这可以使用 string-grouper 来完成。 :

    from string_grouper import group_similar_strings
group_similar_strings(data_set['name'])
string-grouper

关于Python 将数据集中的相似记录(字符串)分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50918421/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com