1
是否有一个库将获取文档列表并一次性计算距离的nxn矩阵 - 在哪里提供word2vec模型?我可以看到genism允许您在两个文档之间执行此操作 - 但我需要对所有文档进行快速比较。像sklearns cosine_similarity。所有文档中的成对地球移动器距离(word2vec表示法)
是否有一个库将获取文档列表并一次性计算距离的nxn矩阵 - 在哪里提供word2vec模型?我可以看到genism允许您在两个文档之间执行此操作 - 但我需要对所有文档进行快速比较。像sklearns cosine_similarity。所有文档中的成对地球移动器距离(word2vec表示法)
根据每个文档中的每个单词,“移动器的距离”(应用于词向量组的地球移动器的距离)是相当复杂的优化计算。
我不知道有什么技巧可以帮助它在一次计算多个时更快 - 即使是到同一文档的许多距离。
因此,计算成对距离所需的唯一东西就是嵌套循环,以考虑每个(排序忽略唯一)配对。
例如,假设您的文件列表(每一个列表的字)是docs
,在model
一个gensim字矢量模型,并numpy
导入为np
,你可以计算成对距离d与数组:
D = np.zeros((len(docs), len(docs)))
for i in range(len(docs)):
for j in range(len(docs)):
if i == j:
continue # self-distance is 0.0
if i > j:
D[i, j] = D[j, i] # re-use earlier calc
D[i, j] = model.wmdistance(docs[i], docs[j])
这可能需要一段时间,但那么你就必须在阵列中的所有成对距离D.
嵌套循环在Python慢 - 可以切换到Java。尽管如此,谢谢你的答复。 – pythOnometrist