在Python中集群~100,000个短字符串

135*_*498 14 python numpy cluster-analysis levenshtein-distance

我希望通过像q-gram距离或简单的"包距离"或者Python中的Levenshtein距离来聚集~100,000个短字符串.我打算填写距离矩阵(100,000选择2比较),然后用pyCluster进行分层聚类.但是我甚至在开始之前遇到了一些记忆问题.例如,距离矩阵太大而不适合numpy.

aa = numpy.zeros((100000, 100000))
ValueError: array is too big.
Run Code Online (Sandbox Code Playgroud)

这看起来像是一件合理的事吗?或者我注定要在这项任务中记忆问题?谢谢你的帮助.

tom*_*m10 8

100,000*100,000*32bits = 40 GBytes,这将是很多 RAM,所以是的,你需要找到另一种方式.(即使你可以将这些数据放入内存中,计算也需要很长时间.)

一个常见且简单的捷径是聚类数据的一个小的随机子集,在找到该子集的聚类之后,只需将其余的点放入最适合的聚类中.

  • 你的机器没有4096GB的内存吗? (3认同)