doc2vec如何为句子创建向量

时间:2018-10-31 03:47:40

标签: python machine-learning data-science word2vec doc2vec

我正在使用Doc2vec进行文本分类。它正在为给定大小的句子(例如:100,向量的长度)创建向量。我无法理解它如何创建该长度的向量。

我正在关注this link。在这里,他们正在为句子创建一个向量,该向量将保存在doc2v模型中,由于新句子没有向量,因此我无法将此模型用于新数据(生产数据)进行测试。显示新数据时出错

  

KeyError:“在训练语料库中未看到标签'Test_2028'/无效”

2 个答案:

答案 0 :(得分:0)

Doc2Vec概念

doc2vec的目标是创建文档的数字表示形式,而不论其长度如何。但是与单词不同的是,文档不是以单词之类的逻辑结构出现的,因此必须找到另一种方法。

Mikolov和Le使用的概念很简单,但是很聪明:他们使用了word2vec模型,并添加了另一个文档唯一的向量paragraph_ID。现在,我们不仅使用单词来预测下一个单词,还添加了另一个特征向量。

因此,当训练单词向量W时,文档向量paragraph_ID也被训练,并且在训练结束时,它保持了文档的数字表示形式。

您可以详细了解here

答案 1 :(得分:0)

如果您已经使用训练数据创建了gensim Doc2Vec模型,那么它将仅知道训练数据中存在的文档标签的训练向量。

但是,还有一种方法infer_vector()可以为新文本推断兼容的文档向量。新文本应与训练数据一样被标记化,并作为一个字符串标记列表传递给infer_vector()