是否有一个库可以获取文档列表并集中计算距离的nxn矩阵 - 其中提供了word2vec模型?我可以看到genism允许你在两个文档之间执行此操作 - 但我需要对所有文档进行快速比较。像sklearns cosine_similarity。
答案 0 :(得分:1)
“动词移动距离”(地球移动器应用于单词向量组的距离)是一个相当复杂的优化计算,取决于每个文档中的每个单词。
我不知道有任何技巧可以帮助它在一次计算多个时更快 - 甚至与同一文档的距离很远。
因此,计算成对距离所需的唯一事情是嵌套循环,以考虑每个(顺序忽略唯一)配对。
例如,假设您的文档列表(每个单词列表)为docs
,model
中的gensim字矢量模型和numpy
导入为{np
1}},你可以用:
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中拥有所有成对距离。
答案 1 :(得分:0)