Nlp 如何使用Bert进行长文本分类?
我们知道,BERT的最大长度限制为令牌=512,因此如果一篇文章的长度远大于512,例如文本中的10000个令牌Nlp 如何使用Bert进行长文本分类?,nlp,text-classification,bert-language-model,Nlp,Text Classification,Bert Language Model,我们知道,BERT的最大长度限制为令牌=512,因此如果一篇文章的长度远大于512,例如文本中的10000个令牌 如何使用BERT?您基本上有三种选择: 您将较长的文本切掉,只使用前512个标记。最初的BERT实现(可能还有其他实现)自动截断较长的序列。对于大多数情况,此选项已足够 您可以将文本拆分为多个子文本,对每个子文本进行分类,然后将结果重新组合在一起(例如,选择针对大多数子文本预测的类)。这种选择显然更昂贵 您甚至可以将每个子文本的输出标记(如选项2所示)馈送到另一个网络(但无法微调),
如何使用BERT?您基本上有三种选择:
我建议尝试选择1,只有当这还不够好来考虑其他选择时, < P>本文比较了几种不同的策略: 在IMDb movie review数据集上,他们发现切掉文本的中间部分(而不是截断开头或结尾)效果最好!它甚至优于更复杂的“层次”方法,包括将文章分成若干块,然后重新组合结果
另一件轶事是,我将BERT应用于Wikipedia人身攻击数据集,发现简单的截断效果足够好,以至于我没有动机尝试其他方法:)除了将数据分块并传递给BERT之外,请检查以下新方法 对于长文档分析有新的研究。正如您所要求的那样,ALLEN NLP()最近提供了一个类似的经过预培训的变压器“Longform”。请查看本文的链接
相关工作部分还提到了一些以前关于长序列的工作。谷歌也可以。我建议至少通过Transformer XL()。据我所知,它是长序列的初始模型之一,所以在进入“长形”之前最好用它作为基础。 < P>有一种方法用于预防神经假新闻()< < /P>
他们的生成模型是产生1024个令牌的输出,他们希望使用BERT进行人类与机器的生成。他们扩展了BERT使用的序列长度,只需初始化512个嵌入并在数据集上微调BERT时对其进行训练。有两种主要方法:
- 将“short”BERT合并在一起(最多由512个令牌组成)
- 构造一个真正的长BERT(CogLTX、分块BERT、Longformer、bigbird)
您可以在此处对所有方法进行概述。您可以利用HuggingFace Transformers库,该库包括以下可处理长文本(超过512个令牌)的转换器列表:
- :将变压器的建模能力与可在长序列上高效执行的架构相结合
- :具有随序列长度线性扩展的注意机制,可以轻松处理数千个或更长令牌的文档