使用 Levenshtein 距离在 Python 中实现层次聚类

Implementing hierarchical clustering in Python using Levenshtein distance

根据我之前的问题,我已经使用 Python 和 Levenshtein 距离为大量字符串实现了聚类算法。但是完成聚类需要很长时间。有什么建议吗?

<> 在 for 循环中遍历列表 对于列表中的每个项目 运行 再次遍历列表,求相似度百分比 如果相似度 > 阈值,移动到集群 循环结束

首先,使用分析器查看大部分时间花在了哪些地方。我怀疑它在实际的 Levenshtein 计算中,但可以肯定。 如果是:

  1. 用 Cython 实现 Levenshtein 函数。这会给你一个巨大的加速。
  2. 计算多线程中的对。例如。如果你有 1000 个字符串,你有 1000000 对,所以你可以让 8 个线程中的每一个执行 125000 个对。