【发布时间】:2017-04-21 13:16:57
【问题描述】:
我使用 Doc2Vec 标签作为我的文档的唯一标识符,每个文档都有不同的标签并且没有语义含义。我正在使用标签来查找特定文档,以便计算它们之间的相似性。
标签会影响我的模型的结果吗?
在这个tutorial 中,他们讨论了一个参数train_lbls=false,当这个参数设置为false 时,没有学习到标签(标签)的表示。
那个教程有点过时了,我猜这个参数已经不存在了,Doc2Vec 如何处理标签?
【问题讨论】:
我使用 Doc2Vec 标签作为我的文档的唯一标识符,每个文档都有不同的标签并且没有语义含义。我正在使用标签来查找特定文档,以便计算它们之间的相似性。
标签会影响我的模型的结果吗?
在这个tutorial 中,他们讨论了一个参数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']) – 它们来自不同的向量集合。
【讨论】: