当前位置:   article > 正文

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

结合bert和rnn的中文文本分类

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个数中最大的数对应的类作为最终预测 [
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/677833
推荐阅读
相关标签
  

闽ICP备14008679号