【问题标题】:Multiple tags for single document in doc2vec. TaggedDocumentdoc2vec 中单个文档的多个标签。标记文档
【发布时间】:2017-09-06 19:52:17
【问题描述】:

是否可以训练单个文档具有多个标签的 doc2vec 模型? 例如,在电影评论中,

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']

【问题讨论】:

    标签: python nlp gensim word2vec doc2vec


    【解决方案1】:

    是的,可以为每个文档提供多个标签,这就是为什么 TaggedDocumenttags 属性应该是一个列表,以及为什么用于引用学习文档向量的键被称为“标签”而不是而不是一个'id'。 (虽然 gensim Doc2Vec 所依据的原始“段落向量”论文仅使用每个文档的一个唯一标识符进行描述,但这是一种自然扩展。)

    要获取任何 doc-vector,您必须通过模型的 docvecs 属性访问它,而不是模型本身。 (模型本身,继承自 Word2Vec 的功能,将包含 word-vectors,而不是 doc-vectors,并且这些 word-vectors 仅在某些 Doc2Vec 模式中有意义。)

    因此,在训练之后,您将通过以下操作获得示例数据的 doc-vectors:

    model.docvecs['UID_1']
    model.docvecs['action']
    

    请记住,当您训练更多向量时,您可能需要更多数据。粗略地说,可以从您的数据中做出的任何有价值的概括都来自将原始数据压缩成更小的表示形式。如果你在相同数量的数据上训练一个更大的模型——更多的词向量文档标签向量作为内部可调参数——结果可能会更加“稀释”甚至“过度拟合”。 (也就是说,它可能会反映训练数据的记忆特性,而不是对下游目的或新文本有用的概括性见解)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多