您可以使用 TaggedLineDocument 为文档提供额外的标签吗?

Can you provide additional tags for documents using TaggedLineDocument?

TaggedDocument class 中使用语料库训练 doc2vec 模型时,您可以提供标签列表。训练 doc2vec 模型时,它会学习标签的向量表示。例如,您可以用一个标签代表文档,另一个标签代表可以在文档之间共享的一些 class化。

如何在使用 TaggedLineDocument 流式传输语料库时提供额外的标签?

TaggedLineDocument class 仅将文档视为每行一个,并带有一个标记,即行号。

如果您想要更多标签,则必须提供您自己的可迭代对象。它应该只是几行代码,具体取决于您的其他标签的来源。您可以使用 TaggedLineDocument 的源代码——它本身只有 9 行 Python 代码——作为构建模型的模型:

https://github.com/RaRe-Technologies/gensim/blob/e4199cb4e9a90df44ca59c1d0505b138caa21951/gensim/models/doc2vec.py#L1126

注意:虽然为每个文档提供多个标签是原始 'Paragraph Vectors' 方法的自然延伸,并且通常可以提供好处,但有时它也会 'dilutes' 每个标签向量的显着性 –随着每个文档的平均标签数量增长,或者模型获取的标签比唯一文档多得多,这将是一个特别的问题。因此,请务必比较评估任何多标签策略在不同模式下是有益还是有害,以及诸如已知类别之类的东西作为额外标签​​或已知标签对于后续步骤是否更有效。