wmd(单词移动器距离)和基于WMD的相似性有什么区别?



我正在使用WMD来计算句子之间的相似性尺度。例如:

distance = model.wmdistance(sentence_obama, sentence_president)

参考: https://markroxor.github.io/gensim/static/notebooks/WMD_tutorial.html

但是,也有基于大规模杀伤性武器的相似性方法(WmdSimilarity).

参考: https://markroxor.github.io/gensim/static/notebooks/WMD_tutorial.html

两者之间除了一个是距离和另一个相似之外有什么区别?

更新:除了表示形式不同外,两者完全相同。

n_queries = len(query)
result = []
for qidx in range(n_queries):
# Compute similarity for each query.
qresult = [self.w2v_model.wmdistance(document, query[qidx]) for document in self.corpus]
qresult = numpy.array(qresult)
qresult = 1./(1.+qresult)  # Similarity is the negative of the distance.
# Append single query result to list of all results.
result.append(qresult)

https://github.com/RaRe-Technologies/gensim/blob/develop/gensim/similarities/docsim.py

我认为通过"更新",您或多或少地回答了自己的问题。

一个是距离,另一个是相似性,这是两个计算之间的唯一区别。作为笔记本,您在相关部分中链接笔记:

大规模杀伤性武器是距离的量度。WmdSimilarity中的相似性只是负距离。注意不要混淆距离和相似之处。两个相似的文档将具有高相似度分数和小距离;两个非常不同的文档的相似性得分较低,距离较远。

如您摘录的代码所示,此处使用的相似性度量并不完全是"负"距离,而是缩放后,所有相似性值都在 0.0(不包括(到 1.0(含(之间。(也就是说,零距离变为 1.0 相似性,但距离越大越接近 0.0。

最新更新