Doc2vec 模型的语义和句法性能

semantic and syntactic performance of Doc2vec model

我正在尝试检查 doc2vec 模型的语义和句法性能 - doc2vec_model.accuracy(questions-words),但它似乎不起作用,因为 models.deprecated.doc2vec – Deep learning with paragraph2vec 说它自 3.3.0 版以来已被弃用gensim package.It 给出此错误消息

AttributeError: 'Doc2Vec' object has no attribute 'accuracy'

虽然它可以很好地与 word2vec 模型配合使用,但除了 doc2vec_model.accuracy(questions-words) 之外,还有什么方法可以完成它吗?还是不可能?

一些注意事项:

那个 'accuracy()' 测试 只是 类比问题的词向量测试 – 对 运行 的简单评估,在许多论文中使用,但不是关于一组词向量是否比其他词向量更好用于特定目的的最终权威。 (当我有一个特定于项目的评分方法时,有时在特定于项目的目标上得分最高的词向量在这些类比上得分最高——特别是如果词向量被用于分类或信息——检索任务。)

此外,流行且快速的 PV-DBOW Doc2Vec 模式(gensim 中的 dm=0)根本不会训练词向量,除非您添加另一个设置(dbow_words=1 ).这些未经训练的词向量将位于随机位置,在类比准确性上得分很低。

但是,使用 PV-DM (dm=1) 模式,或将 dbow_words=1 添加到 PV-DBOW,将从 Doc2Vec 中获取词向量,您可能仍然需要到运行类比测试。幸运的是,类比评估选项已被保留,甚至在 Doc2Vec wv 属性 中的 KeyedVectors 对象上进行了扩展。您可以在那里调用旧的 accuracy() 方法:

https://radimrehurek.com/gensim/models/keyedvectors.html#gensim.models.keyedvectors.Word2VecKeyedVectors.accuracy

但得分也略有不同 evaluate_word_pairs():

https://radimrehurek.com/gensim/models/keyedvectors.html#gensim.models.keyedvectors.WordEmbeddingsKeyedVectors.evaluate_word_pairs

(在 4.0.0 版本中,将有一个 [evaluate_word_analogies()][1] 替换 `accuracy()。)