Python doc2vec中单个文档的多个标记。标记文件
在一个文档中有多个标记的情况下,是否可以训练doc2vec模型? 比如,在电影评论中Python doc2vec中单个文档的多个标记。标记文件,python,nlp,gensim,word2vec,doc2vec,Python,Nlp,Gensim,Word2vec,Doc2vec,在一个文档中有多个标记的情况下,是否可以训练doc2vec模型? 比如,在电影评论中 doc0 = doc2vec.TaggedDocument(words=review0,tags=['UID_0','horror','action']) doc1 = doc2vec.TaggedDocument(words=review1,tags=['UID_1','drama','action','romance']) 在这种情况下,如果每个文档都有一个唯一的标记(UID)和多个分类标记,那么在培训后
doc0 = doc2vec.TaggedDocument(words=review0,tags=['UID_0','horror','action'])
doc1 = doc2vec.TaggedDocument(words=review1,tags=['UID_1','drama','action','romance'])
在这种情况下,如果每个文档都有一个唯一的标记(UID)和多个分类标记,那么在培训后如何访问向量?例如,调用最合适的语法是什么
model['UID_1']
是的,每个文档可以提供多个标记,这就是为什么
TaggedDocument
的tags
属性应该是一个列表,以及为什么用于引用已学习文档向量的键被称为“标记”而不是“id”。(虽然gensimDoc2Vec
所基于的原始“段落向量”文件仅使用每个文档的一个唯一标识符进行描述,但这是一个自然的扩展。)
要获取任何文档向量,必须通过模型的docvecs
属性访问它,而不是模型本身。(从Word2Vec
继承功能的模型本身将包含单词向量,而不是文档向量,并且这些单词向量仅在某些Doc2Vec
模式下有意义。)
因此,在培训之后,您可以通过如下操作获得示例数据的文档向量:
model.docvecs['UID_1']
model.docvecs['action']
请记住,当您训练更多向量时,可能需要更多数据。从粗略的意义上讲,从您的数据中可以得到的任何有价值的概括都来自于将原始数据压缩成更小的表示形式。如果在相同数量的数据上训练一个更大的模型——更多的单词向量将标记向量作为内部可调参数记录下来——结果可能会更“稀释”甚至“过度拟合”。(也就是说,它可能会反映训练数据的记忆特质,而不是对下游目的或新文本有用的概括性见解)