doc2vec 如何为句子创建向量
How doc2vec creates vector for sentence
我正在研究用于文本分类的 Doc2vec。它正在为具有给定大小(例如:100,向量长度)的句子创建向量。我无法理解它如何创建该长度的矢量。
我正在关注 this link。在这里,他们正在为将保存在 doc2v 模型中的句子创建一个向量,我不能使用这个模型来测试新数据(生产数据),因为没有新句子的向量。显示新数据时出错
KeyError: "tag 'Test_2028' not seen in training corpus/invalid"
Doc2Vec 概念:
doc2vec 的目标是创建文档的数字表示,而不考虑其长度。但是与word不同的是,document并没有像word这样的逻辑结构,所以还得另辟蹊径。
Mikolov 和 Le 使用的概念简单而巧妙:他们使用了 word2vec 模型,并添加了另一个向量 paragraph_ID
,这是文档唯一的。现在,我们不仅使用单词来预测下一个单词,还添加了另一个特征向量。
因此,在训练词向量 W
时,文档向量 paragraph_ID
也被训练,并且在训练结束时,它保存了文档的数字表示。
您可以阅读更多相关信息here
如果您使用训练数据创建了 gensim
Doc2Vec
模型,它将只知道训练数据中存在的文档标签的训练向量。
但是,还有方法 infer_vector()
可以为新文本推断出兼容的文档向量。新文本应该与训练数据一样被标记化,并作为字符串标记列表传递给 infer_vector()
.
我正在研究用于文本分类的 Doc2vec。它正在为具有给定大小(例如:100,向量长度)的句子创建向量。我无法理解它如何创建该长度的矢量。
我正在关注 this link。在这里,他们正在为将保存在 doc2v 模型中的句子创建一个向量,我不能使用这个模型来测试新数据(生产数据),因为没有新句子的向量。显示新数据时出错
KeyError: "tag 'Test_2028' not seen in training corpus/invalid"
Doc2Vec 概念:
doc2vec 的目标是创建文档的数字表示,而不考虑其长度。但是与word不同的是,document并没有像word这样的逻辑结构,所以还得另辟蹊径。
Mikolov 和 Le 使用的概念简单而巧妙:他们使用了 word2vec 模型,并添加了另一个向量 paragraph_ID
,这是文档唯一的。现在,我们不仅使用单词来预测下一个单词,还添加了另一个特征向量。
因此,在训练词向量 W
时,文档向量 paragraph_ID
也被训练,并且在训练结束时,它保存了文档的数字表示。
您可以阅读更多相关信息here
如果您使用训练数据创建了 gensim
Doc2Vec
模型,它将只知道训练数据中存在的文档标签的训练向量。
但是,还有方法 infer_vector()
可以为新文本推断出兼容的文档向量。新文本应该与训练数据一样被标记化,并作为字符串标记列表传递给 infer_vector()
.