来自使用维基语料库训练的 doc2vec 模型的新句子

New sentence from doc2vec model trained with wikicorpus

我正在训练来自法语维基百科的 Doc2Vec 模型。

我的代码基于这个笔记本: https://github.com/RaRe-Technologies/gensim/blob/develop/docs/notebooks/doc2vec-wikipedia.ipynb

实际上是在训练阶段,但是,我不知道之后如何向量化新句子。

我应该只使用:model.infer_vector["Example sentence here"] 吗? 但是在这种情况下,如何进行与维基语料库方法相同的处理呢? (这里就不解释了:https://radimrehurek.com/gensim/corpora/wikicorpus.html

谢谢!

您走在正确的轨道上,但是 infer_vector() 是一种使用参数调用的方法,而不是提供 [] 索引的对象。而且,它需要一个单词标记列表,而不是原始字符串。所以用你的小例句,更好的调用是:

model.infer_vector(['Example', 'sentence', 'here'])

但是,您确实希望以与处理训练数据相同的方式对后面的句子进行预处理和标记化——以便以相同的方式处理大写、标点符号等。 (否则,您尝试推断的许多标记更有可能在模型中没有完全等价的标记,因此会被忽略。)

您可以在以下网址查看 gensim WikiCorpus 功能的来源:

https://github.com/RaRe-Technologies/gensim/blob/f97d0e793faa57877a2bbedc15c287835463eaa9/gensim/corpora/wikicorpus.py#L340

具体来说,您可以在纯文本上重复使用 gensim.utils.tokenize() 函数以匹配其标记化。 (如果您需要进行完整的 "wiki-text" 预处理,您需要匹配或重用该文件中的其他方法)。