Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Doc2Vec:区分句子和文档_Python_Gensim_Doc2vec - Fatal编程技术网

Python Doc2Vec:区分句子和文档

Python Doc2Vec:区分句子和文档,python,gensim,doc2vec,Python,Gensim,Doc2vec,我只是在玩gensim的Doc2Vec,分析stackexchange转储,分析问题的语义相似性,以识别重复项 上的教程似乎将输入描述为带标记的句子 但原著:声称该方法可用于推断段落/文档的固定长度向量 有没有人能解释一下在这种情况下句子和文档之间的区别,以及我将如何推断段落向量 因为一个问题有时可以跨越多个句子, 我想,在训练过程中,我会给同一个问题产生的句子加上相同的标签,但是我怎么才能推断出未知问题的向量呢 还有这个笔记本: 似乎是训练文档和测试文档上的训练向量,有人能解释一下这背后的原理

我只是在玩gensim的Doc2Vec,分析stackexchange转储,分析问题的语义相似性,以识别重复项

上的教程似乎将输入描述为带标记的句子

但原著:声称该方法可用于推断段落/文档的固定长度向量

有没有人能解释一下在这种情况下句子和文档之间的区别,以及我将如何推断段落向量

因为一个问题有时可以跨越多个句子, 我想,在训练过程中,我会给同一个问题产生的句子加上相同的标签,但是我怎么才能推断出未知问题的向量呢

还有这个笔记本:


似乎是训练文档和测试文档上的训练向量,有人能解释一下这背后的原理吗?我应该这样做吗?

Gensim的Doc2Vec希望您提供与示例TaggedDocument类相同的对象形状的文本示例:既有
单词
又有
标记
属性

单词
是文本的字符串标记的有序序列–它们可能是一个句子,或者一个段落,或者一个长文档,由您决定

标记
是一个从文本中学习的标记列表,例如普通整数或字符串标记,它们以某种方式命名相应的文本。在最初的“段落向量”论文中,它们只是每个文本的唯一ID——比如从0单调递增的整数。(因此,第一个TaggedDocument可能有一个仅为
[0]
标记,下一个
[1]
等。)

该算法只适用于文本块,不知道句子/段落/文档等可能是什么。(仅仅考虑他们所有的‘文档’,为了DOC2VEC的目的,你决定从你的语料库中得到什么样的‘文档’。即使是标点符号,比如句子之间的句点,作为独立的记号,这也是很常见的。”p> 推理通过
infere_vector()
方法进行,该方法采用一个强制参数
doc_words
,该参数应该是一个字符串标记列表,就像在培训期间作为text
words
提供的字符串标记一样

您不需要在推断文本上提供任何标记:Doc2Vec只会返回一个原始向量,在模型学习到的关系中,该向量非常适合文本。(也就是说:向量擅长预测文本的单词,就像批量训练中学习的向量和内部模型权重擅长预测训练文本的单词一样。)

注意,许多人通过增加可选的
步骤
参数(并可能减少推理开始的
alpha
更像批量训练开始的alpha,0.025到0.05),从推理中发现了更好的结果

doc2vec IMDB演示笔记本试图复制原始段落向量论文中的一个实验,因此它遵循了那里描述的内容,以及一位作者(Mikolov)曾经发布的演示脚本。由于“测试”文档(没有其目标标签/已知情绪)在培训时可能仍然可用,以帮助改进文本建模,因此在无监督的Doc2Vec培训期间包含其原始文本是合理的。(在训练使用文档向量的分类器时,不使用它们的已知标签。)

(请注意,目前,2017年2月,doc2vec IMDB演示笔记本与当前gensim doc2vec默认值和最佳实践相比有点过时,尤其是没有为模型提供正确的显式
iter=1
值,以进行后续手动循环和-
train()
进行正确数量的培训。)