前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NLP实战二:Pytorch实现TextRNN文本分类

NLP实战二:Pytorch实现TextRNN文本分类

作者头像
机器学习AI算法工程
发布2024-07-04 13:35:24
970
发布2024-07-04 13:35:24
举报

向AI转型的程序员都关注公众号 机器学习AI算法工程

中文数据集

我从THUCNews中抽取了20万条新闻标题,已上传至github,文本长度在20到30之间。一共10个类别,每类2万条。

类别:财经、房产、股票、教育、科技、社会、时政、体育、游戏、娱乐。

数据集划分:

数据集

数据量

训练集

18万

验证集

1万

测试集

1万

更换自己的数据集

  • 如果用字,按照我数据集的格式来格式化你的数据。
  • 如果用词,提前分好词,词之间用空格隔开,python run.py --model TextCNN --word True
  • 使用预训练词向量:utils.py的main函数可以提取词表对应的预训练词向量。

数据集、词表及对应的预训练词向量,已经打包好,详见THUCNews文件夹。

效果

完整项目和数据集代码获取地址:

关注微信公众号 datayx 然后回复 NLP实战 即可获取。

Python环境及安装相应依赖包

  • python 3.7以上
  • pytorch 1.1 以上
  • tqdm
  • sklearn
  • tensorboardX

TextRNN

分析:

LSTM能更好的捕捉长距离语义关系,但是由于其递归结构,不能并行计算,速度慢。

原理图如下:

终端运行下面命令,进行训练和测试:

python run.py --model TextRNN

训练过程如下:

训练及测试结果如下:使用CPU版本pytorch,耗时18分54秒,准确率90.90%

TextRNN_Att

模型说明

分析:

其中4~6步是attention机制计算过程,其实就是对lstm每刻的隐层进行加权平均。比如句长为4,首先算出4个时刻的归一化分值:[0.1, 0.3, 0.4, 0.2],然后

原理图如下:

终端运行下面命令,进行训练和测试:

代码语言:javascript
复制
python run.py --model TextRNN_Att

训练过程如下:

训练及测试结果如下:

使用CPU版本pytorch,耗时10分48秒,准确率89.89%

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习AI算法工程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 中文数据集
    • 更换自己的数据集
    • TextRNN
    • TextRNN_Att
      • 模型说明
      相关产品与服务
      腾讯云服务器利旧
      云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档