如何基于通用内容对列表进行聚类?

问题描述 投票:1回答:1

我正在寻找一种能够对内容几乎相同的字符串列表进行分组的算法。

这是列表的示例。总共有5个不同的词。

A = [‘first, ‘second, ‘third’]

B = [‘first’, ‘forth’]

C = [‘second, ‘third’]

D = [‘first, ‘third’]

E = [‘first’, ‘fifth’]

F = [‘fourth, ‘fifth’]

[您可以看到A,C和D有很多共同点,还有B,E和F。

我想到了一种聚类算法,它能够为几乎相同的列表提供相同的聚类。

我想要两个群集,以确保一个单词至少在一个群集中。

在此示例中,列表A,C和D应该具有群集1

以及B,E和F群集2。

Python中是否存在可用于此类问题的算法(或机器学习)?

python algorithm sorting machine-learning cluster-analysis
1个回答
0
投票

IMO首先,您应该使用距离量度,该距离量度将通知您群集之间的相似性。虚拟指标将是常见元素的数量,但是为了比较是否存在,它们是其他类似Jaccard的元素。然后,您将获得一个距离矩阵,该矩阵汇总了列表之间的距离。在这一点上,您可以随意使用任何想要的集群(请查看scipy或sklearn以获取用于集群的python库)

#A dummy code
l = [..] # list with all your list
distance_matrix = distance_funtion(l)
clustering(distance_matrix)
© www.soinside.com 2019 - 2024. All rights reserved.