- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用默认设置的 train(..) 训练了一个 doc2vec 模型。这有效,但现在我想知道 infer_vector 如何组合输入单词,它只是单个单词向量的平均值吗?
model.random.seed(0)
model.infer_vector(['cat', 'hat'])
model.random.seed(0)
model.infer_vector(['cat'])
model.infer_vector(['hat']) #doesn't average up to the ['cat', 'hat'] vector
model.random.seed(0)
model.infer_vector(['hat'])
model.infer_vector(['cat']) #doesn't average up to the ['cat', 'hat'] vector
这些不相符,所以我想知道我误解了什么。
最佳答案
infer_vector()
不会组合给定标记的向量 - 并且在某些模式下根本不考虑这些标记的向量。
相反,它认为整个 Doc2Vec 模型被卡住以防止内部更改,然后假设您提供的标记是示例文本,带有之前未经训练的标签。我们将这个隐含但未命名的标签称为X。
使用类似训练的过程,它尝试为X找到一个好的向量。也就是说,它从一个随机向量开始(就像在原始训练中对所有标签所做的那样),然后查看该向量作为模型输入预测文本单词的效果如何(通过检查模型神经网络对输入 X 的预测) )。然后,通过增量梯度下降,它使 X 的候选向量能够越来越好地预测文本的单词。
经过足够多的此类推理训练后,向量在预测文本单词方面将尽可能好(考虑到卡住模型的其余部分)。因此,即使您提供该文本作为方法的“输入”,在模型内部,您提供的内容也用于选择算法的目标“输出”以进行优化。
请注意:
infer_vector()
默认 steps=5
相比,它可能有助于执行更多的训练推理周期 - 有些报告报告了数十或数百个 步骤
最适合他们,对短文本使用更多步骤
可能特别有值(value)alpha
进行推理,更像是批量训练中使用的 (alpha=0.025
),而不是 infer_vector()
默认 (alpha=0.1
)关于python - doc2vec.infer_vector 如何跨单词组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44163836/
我正在尝试遵循此处提到的官方 Doc2Vec Gensim 教程 - https://github.com/RaRe-Technologies/gensim/blob/develop/docs/not
我使用默认设置的 train(..) 训练了一个 doc2vec 模型。这有效,但现在我想知道 infer_vector 如何组合输入单词,它只是单个单词向量的平均值吗? model.random.s
程序应该返回列表中最相似的第二个文本,因为它是相同的单词。但这里的情况并非如此。 import gensim from nltk.tokenize import word_tokenize from
遇到一个试图使用 Gensim 的 doc2vec 的拦截器。 我导入 gensim.models.doc2vec.Doc2Vec 并在一组推文上成功训练它。我可以使用模型 ['DOC_[0123..
我使用 Gensim 的 doc2vec 为大型语料库创建了文档向量。 sentences=gensim.models.doc2vec.TaggedLineDocument('file.csv') m
我有一个使用 gensim 中的 doc2vec 的工作应用程序。我知道KeyedVector现在是推荐的方法,并尝试移植,但我不确定 Doc2Vec 中的 infer_vector 方法的等效方法是
在 gensim 中,当我输入字符串作为训练 doc2vec 模型的输入时,出现此错误: TypeError('don\'t know how to handle uri %s' % repr(uri
使用 Gensim 的 Doc2Vec 如何找到 Doctag 和 infer_vector() 之间的距离? 非常感谢 最佳答案 Doctag 是文档向量键的内部名称。 infer_vector()
我是一名优秀的程序员,十分优秀!