给doc2vec中的一堆句子分配相同的标签有什么作用?我有一个文档集合,我想使用 gensim 学习向量以进行“文件”分类任务,其中文件是指给定 ID 的文档集合。我有几种标记方法,我想知道它们之间有什么区别,哪种最好 -
取一个文档 d1,doc1
为标签分配标签并进行训练。为他人重复
取一个文档 d1,doc1
为标签分配标签。然后将文档标记为句子并为其标签分配标签doc1
,然后使用完整文档和单个句子进行训练。为他人重复
例如(忽略句子没有被标记) -
Document - "It is small. It is rare"
TaggedDocument(words=["It is small. It is rare"], tags=['doc1'])
TaggedDocument(words=["It is small."], tags=['doc1'])
TaggedDocument(words=["It is rare."], tags=['doc1'])
doc1
。完整文档包含所有句子标签以及doc1
。例子 -
Document - "It is small. It is rare"
TaggedDocument(words=["It is small. It is rare"], tags=['doc1', 'doc1_sentence1', 'doc1_sentence2'])
TaggedDocument(words=["It is small."], tags=['doc1', 'doc1_sentence1'])
TaggedDocument(words=["It is rare."], tags=['doc1', 'doc1_sentence2'])
我还有一些额外的分类标签要分配。那么最好的方法是什么?
你可以做到这一切!将相同的标签分配给多个文本与将这些文本组合成一个更大的文本并为其分配该标签的效果几乎相同。细微的区别在于Doc2Vec
有上下文窗口的模式 – PV-DM ( dm=1
)。使用单独的文本,永远不会有跨越句子结尾/开头的上下文。
事实上,asgensim
的优化代码路径对文本大小有 10,000 个标记的限制,将较大的文档拆分为子文档,但有时需要重复它们的标签作为解决方法。
你特别提出的,训练完整文档和文档片段都可以,但也会使'doc1'
标签的文本量(因此训练注意力/个人预测示例)加倍, 与更窄的 per-sentence 标签相比。您可能想要,也可能不想要 - 它可能会影响每个的相对质量。
什么最好是不清楚的 - 这取决于你的语料库和最终目标,所以应该通过实验来确定,并有一个明确的最终评估,这样你就可以自动化/系统化对最好的严格搜索。
不过,有一些相关的注意事项:
Doc2Vec
对于每个文档至少有十几个或更多单词的文档,往往效果更好。'words'
需要被标记化-一个列表的串,不是一个字符串。本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句