基于BERT的超长文本分类模型

0.Abstract

本文实现了一个基于BERT+LSTM超长文本分类的模型, 评估方法使用准确率和F1 Score.
项目代码github地址: https://github.com/neesetifa/bert_classification

1.任务介绍

用BERT做文本分类是一个比较常见的项目.
但是众所周知BERT对于文本输入长度有限制. 对于超长文本的处理, 最简单暴力无脑高效的办法是直接截断, 就取开头这部分送入BERT. 但是也请别看不起这种做法, 往往最简单,最Naive的方法效果反而比一顿操作猛如虎 复杂模型来得好.

这里多提一句为什么. 通常长文本的文章结构都比较明确, 文章前面一两段基本都是对于后面的概述. 所以等于作者已经帮你提取了文章大意, 所以直接取前面一部分理论上来说是有意义的.
当然也有最新研究表明取文章中间部分效果也很不错. 在此不展开.

本文实现的是一种基于HIERARCHICAL(级联)思想的做法, 把文本切成多片处理. 该方法来自于这篇论文 <Hierarchical Transformers for Long Document Classification>.
文中提到这么做还能降低self-attention计算的时间复杂度.
假设原句子长为n, 每个分段的长度是k. 我们知道最原始的BERT计算时间复杂度是O(n2), 作者认为,这么做可以把时间复杂度降低到O(nk). 因为我们把n分数据分割成k小份, 那么我们一共要做n/k次, 每次我们的时间复杂度是k2, 即O(n/k * k2) = O(nk)

数据集

这次我们测试该模型在两种语言上的效果. 分别是中文数据集和英语数据集.
中文数据集依旧是我们的老朋友ChineseNLPCorps提供的不同类别商品的评论.
中文数据集传送门
英语数据集来源于Kaggle比赛, 用户对于不同金融产品的评论.
英语数据集传送门
由于两种数据集训练预测上没有什么本质区别, 下文会用英语数据集来演示.

评估方法

本项目使用的评估方法是准确率和F1 Score. 非常常见的分类问题评价标准.

测试集

此项目中直接取了数据集里一小部分作为测试集.

2.数据初步处理

数据集里有55W条数据,18个features.
在这里插入图片描述
我们需要的部分是product(即商品类别)以及consumer complaint narrative.

  • 26
    点赞
  • 165
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值