Python 如何基于相似矩阵对大量字符串进行聚类?

Python 如何基于相似矩阵对大量字符串进行聚类?,python,cluster-analysis,Python,Cluster Analysis,我需要根据相似性对500K+字符串进行聚类 我计算了他们的成对Levenshtein距离,并制作了一个稀疏相似矩阵。此矩阵包含二进制相似性:小距离的值设置为1.0,其他值设置为0.0 我不知道什么样的集群对我有好处。我事先不知道聚类的数量,但它可能相当大,因为相似性矩阵非常稀疏(约0.1%的值为非零)。您考虑过这样做吗?这种算法的优点是相似的词具有相同的规范形式。例如,“Robert”和“Rupert”都返回相同的字符串“R163”。然后,您的集群可以归结为一个映射,如: clusters =

我需要根据相似性对500K+字符串进行聚类

我计算了他们的成对Levenshtein距离,并制作了一个稀疏相似矩阵。此矩阵包含二进制相似性:小距离的值设置为1.0,其他值设置为0.0


我不知道什么样的集群对我有好处。我事先不知道聚类的数量,但它可能相当大,因为相似性矩阵非常稀疏(约0.1%的值为非零)。

您考虑过这样做吗?这种算法的优点是相似的词具有相同的规范形式。例如,“Robert”和“Rupert”都返回相同的字符串“R163”。然后,您的集群可以归结为一个映射,如:

clusters = { canonical_form: [list of similar words] }

当然,您可以根据自己的领域调整Soundex规则。

您考虑过这样做吗?这种算法的优点是相似的词具有相同的规范形式。例如,“Robert”和“Rupert”都返回相同的字符串“R163”。然后,您的集群可以归结为一个映射,如:

clusters = { canonical_form: [list of similar words] }

当然,你可以根据你的领域调整Soundex规则。

只是为了确保,你已经用500K字符串计算了成对LD,这意味着你有一个500K x 500K大小的矩阵?有点像。LDs已计算但未存储。我只使用
scipy.sparse.lil_matrix
存储了稀疏二进制相似性矩阵。可以肯定的是,您已经用500K字符串计算了成对LD,这意味着您有一个500K x 500K大小的矩阵?有点像。LDs已计算但未存储。我只使用
scipy.sparse.lil_matrix
存储稀疏二进制相似性矩阵。这个算法很有趣。我的字符串不是拼音的,但我可以找到类似的规则。谢谢。这个算法很有趣。我的字符串不是拼音的,但我可以找到类似的规则。谢谢