2024-10-02 14:30:57 发布
网友
我正在研究Doc2vec的文本分类。它是为给定大小的句子创建一个向量(例如:100,向量长度)。我不明白它是怎么产生这么长的向量的。在
我正在跟踪this link。在这里,他们正在为句子创建一个向量,这个向量将保存在doc2v模型中,我不能用这个模型来测试新数据(生产数据),因为没有新句子的向量。显示新数据时出错
KeyError: "tag 'Test_2028' not seen in training corpus/invalid"
Doc2Vec概念:
无论文档的长度如何,文档的目标都是创建一个数字表示。但与单词不同的是,文档不是以单词这样的逻辑结构出现的,因此必须找到另一种方法。在
Mikolov和Le使用的概念很简单,但很聪明:他们使用了word2vec模型,并添加了另一个向量paragraph_ID,这是文档唯一的。现在,我们不再使用单词来预测下一个单词,而是添加了另一个特征向量。在
paragraph_ID
因此,在训练单词向量W时,文档向量{}也会被训练,并且在训练的最后,它保存文档的数字表示。在
W
你可以阅读更多关于它的here
如果您已经用训练数据创建了gensimDoc2Vec模型,那么它将只知道训练数据中存在的文档标记的训练向量。在
gensim
Doc2Vec
然而,还有一个方法infer_vector(),它可以为新文本推断出兼容的文档向量。新文本应该与训练数据一样被标记化,并作为字符串标记的列表传递给infer_vector()。在
infer_vector()
Doc2Vec概念:
无论文档的长度如何,文档的目标都是创建一个数字表示。但与单词不同的是,文档不是以单词这样的逻辑结构出现的,因此必须找到另一种方法。在
Mikolov和Le使用的概念很简单,但很聪明:他们使用了word2vec模型,并添加了另一个向量
paragraph_ID
,这是文档唯一的。现在,我们不再使用单词来预测下一个单词,而是添加了另一个特征向量。在因此,在训练单词向量}也会被训练,并且在训练的最后,它保存文档的数字表示。在
W
时,文档向量{你可以阅读更多关于它的here
如果您已经用训练数据创建了
gensim
Doc2Vec
模型,那么它将只知道训练数据中存在的文档标记的训练向量。在然而,还有一个方法
infer_vector()
,它可以为新文本推断出兼容的文档向量。新文本应该与训练数据一样被标记化,并作为字符串标记的列表传递给infer_vector()
。在相关问题 更多 >
编程相关推荐