【问题标题】:how to use bert for long sentences? [duplicate]如何在长句中使用bert? [复制]
【发布时间】:2020-12-19 14:09:01
【问题描述】:

我正在尝试将给定文本分类为新闻、点击诱饵或其他。我的训练课文很长。distribution of lengths is shown here. 现在,问题是我应该修剪中间的文本并使其长度为 512 个标记吗?但是,我什至有大约 10,000 字的文档,所以我不会因为截断而失去要点吗?或者,我应该将我的文本拆分为 512 长度的子文本。如果是这样,那么一个文本的子文本可能与另一个文本的子文本相似,但标签会不同。它不会变成嘈杂的数据吗?或者,我应该在这里使用双向 LSTM 并填充到 max_len 吗?

【问题讨论】:

    标签: deep-learning nlp bert-language-model


    【解决方案1】:

    您的类似问题的答案可以在论文here中找到。

    如果您将文本分类为新闻或点击诱饵,为什么您认为同一文档的各个块会有不同的标签?您可以将文本分块并遵循如何Fine-Tune BERT for Text Classification? 中提出的截断方法的想法。作者表明,头+尾截断可提供高精度。感谢Github页面和文档,我多次使用它并获得了很好的效果。

    您可以选择带有标志的截断方法 --trunc_medium 有以下选项:

    1. -2 表示仅头部(保留前 512 个标记),
    2. -1 表示仅尾部(保留最后 512 个标记),
    3. 0 表示 head-half + tail-half(例如:head256+tail256),
    4. 其他自然数 k 表示 head-k + tail-rest(例如:head-k + tail-(512-k))。

    然后,您可以将块的结果汇集起来,为您拥有的长文本创建汇集嵌入。

    在这里,我还将继续讨论使用 BERT 对 Big BIRD 进行长文本分类的最先进方法(请参阅 article)。来自 Google 的研究人员建立在 LongformersExtended Transformers Construction 的想法之上。基本上,他们提出将 Longformers 和 Randomized Attention 的想法结合起来,将对序列长度的二次依赖性降低到线性。您甚至可以尝试 10000 字的文本。然而,这种方法很有趣,它需要具有更多层的架构。

    请检查stackoverflow question

    【讨论】:

      猜你喜欢
      • 2020-01-22
      • 2021-12-08
      • 2020-02-26
      • 2013-05-25
      • 2013-10-08
      • 1970-01-01
      • 1970-01-01
      • 2012-11-29
      相关资源
      最近更新 更多