我使用 Doc2Vec 标签作为我的文档的唯一标识符,每个文档都有不同的标签并且没有语义含义。我正在使用标签来查找特定文档,以便计算它们之间的相似性。
标签会影响我的模型的结果吗?
在本教程中,他们讨论了一个参数train_lbls=false
,将其设置为 false 时,没有为标签(标签)学习表示。
该教程有些过时了,我猜该参数不再存在,Doc2Vec 如何处理标签?
对于 gensim 的 Doc2Vec,您的文本示例必须是类似于示例TaggedDocument
类的对象:具有words
和tags
属性。该tags
属性应该是一个“标签”列表,作为将从相应文本中学习的文档向量的键。
在经典/原始案例中,每个文档都有一个标签——本质上是该文档的唯一 ID。(标签可以是字符串,但对于非常大的语料库,如果您使用纯 Python 整数的标签,Doc2Vec 将使用更少的内存,从 0 开始,没有跳过的值。)
标签用于在训练后查找学习的向量。如果您在训练期间有一个带有单个标签的文档'mars'
,您将使用以下命令查找学习的向量:
model.docvecs['mars']
如果你model.docvecs.most_similar['mars']
打电话,结果也将通过他们的标签键报告。
标签只是doc-vectors 集合中的键——它们没有语义意义,即使文本中的单词标记重复了一个字符串,这个标签键和单词之间也没有必然的关系。
也就是说,如果您有一个文档,其单个 ID 标签为“mars”,则通过该键 ( model.docvecs['mars']
) 访问的学习文档向量与使用相同字符串键 ( model.wv['mars']
) 访问的任何学习词向量之间没有本质关系——它们'来自不同的向量集合。