使用 Levenshtein 距离在 Python 中实现层次聚类
Implementing hierarchical clustering in Python using Levenshtein distance
根据我之前的问题,我已经使用 Python 和 Levenshtein 距离为大量字符串实现了聚类算法。但是完成聚类需要很长时间。有什么建议吗?
<>
在 for 循环中遍历列表
对于列表中的每个项目
运行 再次遍历列表,求相似度百分比
如果相似度 > 阈值,移动到集群
循环结束
首先,使用分析器查看大部分时间花在了哪些地方。我怀疑它在实际的 Levenshtein 计算中,但可以肯定。 如果是:
- 用 Cython 实现 Levenshtein 函数。这会给你一个巨大的加速。
- 计算多线程中的对。例如。如果你有 1000 个字符串,你有 1000000 对,所以你可以让 8 个线程中的每一个执行 125000 个对。
根据我之前的问题,我已经使用 Python 和 Levenshtein 距离为大量字符串实现了聚类算法。但是完成聚类需要很长时间。有什么建议吗?
<> 在 for 循环中遍历列表 对于列表中的每个项目 运行 再次遍历列表,求相似度百分比 如果相似度 > 阈值,移动到集群 循环结束
首先,使用分析器查看大部分时间花在了哪些地方。我怀疑它在实际的 Levenshtein 计算中,但可以肯定。 如果是:
- 用 Cython 实现 Levenshtein 函数。这会给你一个巨大的加速。
- 计算多线程中的对。例如。如果你有 1000 个字符串,你有 1000000 对,所以你可以让 8 个线程中的每一个执行 125000 个对。