加载Doc2Vec模型并获取新句子的向量进行测试

时间:2018-02-06 04:09:17

标签: nlp word2vec gensim doc2vec

我已经阅读了很多关于doc2vec的例子,但我找不到任何答案。就像一个真实的例子,我想用doc2vec构建一个模型,然后用一些ML模型训练它。之后,如何使用精确训练的Doc2vec模型获取原始字符串的向量?因为我需要用我的ML模型预测相同的大小和逻辑向量

1 个答案:

答案 0 :(得分:0)

gensim docs/notebooks目录中有一组示例Jupyter(aka IPython)笔记本。您可以通过以下网址在线查看:

https://github.com/RaRe-Technologies/gensim/tree/develop/docs/notebooks

但是,如果您可以找到适合您当前工作环境的目录,那么它们将位于您的gensim安装目录中。

在其名称中包含doc2vec的人演示了Doc2Vec类的使用。最基本的介绍是在Lee' Lee'与gensim捆绑在一起的语料库,用于单元测试。 (它实际上对于真正的Doc2Vec成功来说太小了,但是通过强制使用较小的模型和许多训练迭代,笔记本电脑几乎无法获得一致的结果。)请参阅:

https://github.com/RaRe-Technologies/gensim/blob/develop/docs/notebooks/doc2vec-lee.ipynb

它包含一个关于推断新文本向量的部分:

https://github.com/RaRe-Technologies/gensim/blob/develop/docs/notebooks/doc2vec-lee.ipynb

请注意,推理是在字符串标记列表上执行的,而不是原始字符串。并且这些令牌应该以与模型的原始训练数据相同的方式进行预处理/标记化,以使词汇表兼容。 (默认忽略新文本中的任何未知单词。)

另请注意,特别是在短文本中,通常有助于为steps提供比infer_vector()可选alpha参数更大的默认值 - 比如50或200而不是默认值5 。提供一个起始{{1}}参数更像是训练默认值0.025而不是方法默认值0.1。