gensim.models.FatText.wv.wmdistance如何计算两个文档之间的距离?

问题描述 投票:0回答:1

我已经有一个带有gensim的fastText训练模型,并且我可以得到两个句子之间的距离,如下所述,

sentence_1 = "Today is very cold."  
sentence_2 = "I'd like something to drink."    

print(model.wv.wmdistance(sentence_1.split(" "), sentence_2.split(" ")))
# 0.8446287678977793  # for example

但是vmdistance如何计算该值?我想知道公式。

API文档:https://radimrehurek.com/gensim/models/keyedvectors.html#gensim.models.keyedvectors.Doc2VecKeyedVectors.distance

python-3.x gensim fasttext
1个回答
0
投票

wmdistance()函数计算两组词之间的“移词器距离”。

您可以通过将运筹学中一个名为“地球移动者距离”的较旧思想应用于文本,来查看创造“移动词距离”(WMD)度量的学术论文,网址为:

[From Word Embeddings To Document Distances,由Matt Kusner等人撰写

您可以在以下位置查看gensim的wmdistance()函数使用的确切代码:

https://github.com/RaRe-Technologies/gensim/blob/de0dcc39fee0ae4eaf45d79bd5418d32780f9aa5/gensim/models/keyedvectors.py#L677

大规模杀伤性武器的计算非常耗时,因为它涉及对“含义”的许多可能的“转移”进行搜索以寻求最小支出的方法。随着文本的变长,它变得特别耗时。 (短句子比完整段落或文档更实用。)

通常,文本是通过对单词向量进行平均,或者通过浅文本到向量算法(例如Doc2Vec)或深度学习模型(BERT,ELMo等)来汇总为单个向量。然后可以通过简单的余弦相似度更快地比较这些单个向量。 (这就是gensim向量模型的普通similarity()distance()方法。)

© www.soinside.com 2019 - 2024. All rights reserved.