6

我使用 Doc2Vec 标签作为我的文档的唯一标识符,每个文档都有不同的标签并且没有语义含义。我正在使用标签来查找特定文档,以便计算它们之间的相似性。

标签会影响我的模型的结果吗?

在本教程中,他们讨论了一个参数train_lbls=false,将其设置为 false 时,没有为标签(标签)学习表示。

该教程有些过时了,我猜该参数不再存在,Doc2Vec 如何处理标签?

4

1 回答 1

16

对于 gensim 的 Doc2Vec,您的文本示例必须是类似于示例TaggedDocument类的对象:具有wordstags属性。该tags属性应该是一个“标签”列表,作为将从相应文本中学习的文档向量的键。

在经典/原始案例中,每个文档都有一个标签——本质上是该文档的唯一 ID。(标签可以是字符串,但对于非常大的语料库,如果您使用纯 Python 整数的标签,Doc2Vec 将使用更少的内存,从 0 开始,没有跳过的值。)

标签用于在训练后查找学习的向量。如果您在训练期间有一个带有单个标签的文档'mars',您将使用以下命令查找学习的向量:

model.docvecs['mars']

如果你model.docvecs.most_similar['mars']打电话,结果也将通过他们的标签键报告。

标签只是doc-vectors 集合中的键——它们没有语义意义,即使文本中的单词标记重复了一个字符串,这个标签键和单词之间也没有必然的关系。

也就是说,如果您有一个文档,其单个 ID 标签为“mars”,则通过该键 ( model.docvecs['mars']) 访问的学习文档向量与使用相同字符串键 ( model.wv['mars']) 访问的任何学习词向量之间没有本质关系——它们'来自不同的向量集合。

于 2017-05-16T05:30:47.603 回答