Answers:
两者都有可能。您可以为每个文档指定唯一的ID(例如序列号)作为doctag,或者为共享字符串doctag表示其他名称,或者同时赋予两者。
TaggedDocument构造函数采用标签列表。(如果您碰巧将自己限制为从0升序的普通整数,则Doc2Vec模型将使用这些整数作为直接索引进入其后备数组,并且将节省大量内存,否则它们将专门用于字符串->索引查找,这对于大型数据集可能很重要。但是您可以使用字符串doctag,甚至可以使用int和字符串doctag的混合物。)
您必须尝试最适合您的需求的东西。
对于某些分类任务,一种有时比我预期的效果更好的方法是完全跳过每个文本的ID,而只是使用已知类的示例训练Doc2Vec模型,并使用所需的类作为doctag。然后,您仅针对类doctag(不是每个文档)获得了“文档向量”,这可能是一个较小的模型。以后为新文本推断向量会导致向量有意义地接近相关的类doc向量。
dm=0, dbow_words=1
。
doc2vec
模型从word2vec
。
在word2vec
没有必要标注的话,因为每个词都有词汇表中的自己的语义。但在的情况下doc2vec
,需要指定多少个单词或句子传达语义,以便算法可以将其标识为单个实体。因此,我们根据所传达的语义水平来指定labels
或指定tags
句子或段落。
如果我们为一个段落中的多个句子指定一个标签,则意味着该段落中的所有句子都必须传达其含义。另一方面,如果我们为段落中的所有句子指定变量标签,则意味着每个句子都传达语义,并且它们之间可能有相似性,也可能没有相似性。
简而言之,label
意味着某种事物的语义含义。
If we specify a single label to multiple sentences in a paragraph, it means that all the sentences in the paragraph are required to convey the meaning.
我不确定我是否正确理解了这一点。从算法POV来看,是语义定义是否需要所有具有相同标签的句子,还是所有具有相同标签的句子都描述相同的事物?在第一种情况下,没有一个句子本身是自给自足的,在第二种情况下,单个句子是自给自足的。