我正在使用WMD计算句子之间的相似度。例如:
distance = model.wmdistance(sentence_obama, sentence_president)
参考:https://markroxor.github.io/gensim/static/notebooks/WMD_tutorial.html
然而,还有基于WMD的相似性方法(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
答案 0 :(得分:3)
我认为更新'你或多或少地回答了你自己的问题。
这是一个距离,另一个是相似性,是两个计算之间的唯一区别。作为笔记本,您可以在relevant section:
中链接备注大规模杀伤性武器是距离的衡量标准。 WmdSimilarity的相似之处仅仅是负距离。小心不要混淆距离和相似之处。两个相似的文件将具有高相似性得分和小距离;两个截然不同的文件将具有较低的相似性得分和较大的距离。
正如您摘录的代码所显示的那样,使用的相似性度量并不完全是“否定”。距离,但缩放,所以所有相似度值从0.0(不包括)到1.0(包括)。 (也就是说,零距离变为1.0相似度,但是越来越大的距离变得越来越接近0.0。)