pytorch bert文本分类_中文文本分类 pytorch实现

该博客介绍了使用PyTorch实现BERT进行中文文本分类的方法,包括对多个中文数据集的应用,探讨了TextCNN、TextRNN、TextRNN+Attention、TextRCNN、FastText、DPCNN和Transformer等模型。
摘要由CSDN通过智能技术生成

514d386d12d48be5992772033682e937.gif

来自 | 知乎   作者 | 胡文星

地址 | https://zhuanlan.zhihu.com/p/73176084

编辑 | 机器学习算法与自然语言处理公众号

本文仅作学术分享,若侵权,请联系后台删文处理

前言

使用pytorch实现了TextCNN,TextRNN,FastText,TextRCNN,BiLSTM_Attention,DPCNN,Transformer。 github:Chinese-Text-Classification-Pytorch,开箱即用。

中文数据集:

我从THUCNews中抽取了20万条新闻标题,文本长度在20到30之间。一共10个类别,每类2万条。以字为单位输入模型,使用了预训练词向量:搜狗新闻 Word+Character 300d。类别:财经、房产、股票、教育、科技、社会、时政、体育、游戏、娱乐。数据集、词表及对应的预训练词向量已上传至github,开箱即用。 模型效果:
a1f7f9fbc84d0946bdad2d12e424c171.png
bert,ERNIE代码: Bert-Chinese-Text-Classification-Pytorch

1.TextCNN

3d39af951dc7edaec322a03ccf762200.pngTextCNN整体结构
数据处理:所有句子padding成一个长度:seq_len1.模型输入: [batch_size, seq_len]2.经过embedding层:加载预训练词向量或者随机初始化, 词向量维度为embed_size: [batch_size, seq_len, embed_size]3.卷积层:NLP中卷积核宽度与embed-size相同,相当于一维卷积。
3个尺寸的卷积核:(2, 3, 4),每个尺寸的卷积核有100个。卷积后得到三个特征图: [batch_size, 100, seq_len-1] [batch_size, 100,  seq_len-2] [batch_size, 100,  seq_len-3]4.池化层:对三个特征图做最大池化 [batch_size, 100] [batch_size, 100] [batch_size, 100]5.拼接: [batch_size, 300]6.全连接:num_class是预测的类别数 [batch_size, num_class]7.预测:softmax归一化,将num_class个数中最大的数对应的类作为最终预测 [b
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值