只需阅读gensim页面上的doc2vec命令。
我对命令“intersect_word2vec_format”很好奇。
我对这个命令的理解是,它允许我将经过预先训练的word2vec模型中的向量值注入到我的doc2vec模型中,然后使用预训练的word2vec值来训练我的doc2vec模型,而不是从我的文档语料库生成单词向量值。结果是,我得到了一个更精确的doc2vec模型,因为我使用的是经过预先训练的w2v值,与相对较小的文档语料库相比,该值是从更大的数据集生成的。
我对这个命令的理解是否正确?
发布于 2017-09-03 20:54:19
是的,intersect_word2vec_format()将允许您将来自外部文件的向量带到已经初始化了自己的词汇表的模型中(就像由build_vocab()初始化)。也就是说,它只会加载那些在本地词汇表中已经有单词的向量。
此外,在默认情况下,它将锁定那些加载的向量,以防止后续培训期间的任何进一步调整,尽管先前存在的词汇表中的其他词汇可能会继续更新。(您可以通过提供一个lockf=1.0值而不是默认的0.0来改变这种行为。)
然而,这是一个最好的实验功能,如果有什么好处,它可能提供将取决于许多特定于您的设置。
PV Doc2Vec模式,对应于dm=0参数,在速度和文档向量质量方面通常表现最好,根本不使用或训练字向量,因此任何矢量的预加载都不会产生任何效果。
PV模式,通过默认的dm=1设置启用,训练它需要的任何文字向量,同时进行文档向量训练。(也就是说,不存在首先创建单词向量的独立阶段,因此对于相同的iter传递,无论单词向量是以缺省随机值开始还是从其他地方预加载,PV-DM培训都需要相同的时间。)预置来自其他地方的一些字向量可能有助于或损害最终质量这可能取决于您的语料库、元参数和目标的具体内容,以及这些外部向量是否代表与当前语料库/目标同步的词义。
https://stackoverflow.com/questions/46013294
复制相似问题