只需阅读gensim页面上的doc2vec命令即可。

我对命令“intersect_word2vec_format”感到好奇。

我对该命令的理解是,它使我可以将预训练的word2vec模型中的向量值注入到doc2vec模型中,然后使用预训练的word2vec值来训练doc2vec模型,而不是从文档语料库中生成词向量值。结果是,我得到了一个更准确的doc2vec模型,因为我使用的是预训练的w2v值,该值是由相对于较小的文档语料库而言更大的数据语料库生成的。

我对这个命令的理解正确还是不正确? ;-)

最佳答案

是的,intersect_word2vec_format()将使您可以将来自外部文件的矢量带入已经初始化了自己的词汇表的模型中(就像通过build_vocab()一样)。也就是说,它将只加载那些在本地词汇表中已经有单词的向量。

此外,默认情况下,它将锁定那些加载的矢量,以防在后续训练期间进行任何进一步的调整,尽管现有词汇中的其他单词可能会继续更新。 (您可以通过提供lockf=1.0值而不是默认值0.0来更改此行为。)

但是,最好将其视为一项实验功能,它可能提供的好处(取决于任何功能)将取决于您设置的许多特定条件。

dm=0参数相对应的PV-DBOW Doc2Vec模式通常在速度和doc-vector质量上表现最佳,并且根本不使用或训练单词向量-因此,任何预先加载向量都不会有任何作用。

PV-DM模式由默认的dm=1设置启用,它在与文档向量训练同时训练所需的任何单词向量。 (也就是说,没有单独的阶段会首先创建单词向量,因此对于相同的iter通过,PV-DM训练花费的时间是相同的,无论单词向量是从默认随机值开始还是从预先加载在模型中预先植入其他地方的某些单词向量可能会帮助或损害最终质量-它可能取决于您的语料库,元参数和目标的具体情况,以及这些外部向量是否代表单词中的词义与当前语料/目标同步。

关于nlp - gensim doc2vec“intersect_word2vec_format”命令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46013294/

10-12 18:13