Gensim's Doc2Vec期望您提供与示例TaggedDocument类相同对象形状的文本示例:同时具有words
和tags
属性。
words
是文本的字符串标记的有序序列 - 它们可能是一个单独的文本,或者一个段落或一个长文档,这取决于您。
tags
是从文本中学习的标签列表 - 例如纯整数或字符串标记,以某种方式命名相应的文本。在原来的“段落向量”纸,他们只是每个文本唯一的ID - 如整数从0单调递增(所以第一TaggedDocument可能只是一个[0]
tags
,下[1]
等)
该算法仅适用于大量文本,并不知道文章/段落/文档等可能是什么。 (为了Doc2Vec的目的,只要将它们全部视为“文档”,您就可以决定从您的语料库中选择正确的“文档”)。标记化将标点符号(如句子之间的句点)保留为独立标记。经由infer_vector()
方法,它接受一个强制参数doc_words
,这应该是发生
推断列表的字符串的令牌就这样在训练期间被提供作为文本words
那些。
您不会在推断的文本上提供任何标签:Doc2Vec只会给您一个原始矢量,该矢量在模型学习的关系中很好地适合文本。 (也就是说:矢量很好地预测了文本的单词,就像在批量训练期间学习的矢量和内部模型权重在预测训练文本的单词方面一样。)
请注意,很多人已经发现更好通过增加可选的steps
参数(并且可能将开始alpha
的推断减少为更像是开始α的批量训练,0.025至0.05)推断的结果。
doc2vec-IMDB演示笔记本尝试复制原始Paragraph Vectors文件中的一个实验,因此它遵循这里描述的内容以及其中一位作者(Mikolov)发布的演示脚本。由于'测试'文档(没有他们的目标标签/已知情绪)在培训时可能仍然可用,为了帮助改进文本建模,在无监督的Doc2Vec培训期间包含其原始文本可能是合理的。 (它们的已知标签是而不是,用于训练使用doc-vectors的分类器时使用)。
(请注意,此刻,2017年2月,doc2vec-IMDB演示笔记本有点过期相比目前的gensim Doc2Vec默认&最佳做法 - 尤其是模型没有给出正确的显式iter=1
值,以使后面的手动循环和train()
只做正确的训练通行证。)