Paddle是一个比较高级的深度学习开发框架,其内置了许多方便的计算单元可供使用,我们之前写过PaddleHub相关的文章:

1.Python 识别文本情感就这么简单

2.比PS还好用!Python 20行代码批量抠图

3.Python 20行代码检测人脸是否佩戴口罩

在这些文章里面,我们基于PaddleHub训练好的模型直接进行预测,用起来特别方便。不过,我并没提到如何用自己的数据进行训练,因此本文将弥补前几篇文章缺少的内容,讲解如何使用paddle训练、测试、推断自己的数据。

1.准备

开始之前,你要确保Python和pip已经成功安装在电脑上噢,如果没有,请访问这篇文章:超详细Python安装指南 进行安装。

Windows环境下打开Cmd(开始—运行—CMD),苹果系统环境下请打开Terminal(command+空格输入Terminal),准备开始输入命令安装依赖。

当然,我更推荐大家用VSCode编辑器,把本文代码Copy下来,在编辑器下方的终端装依赖模块,多舒服的一件事啊:Python 编程的最好搭档—VSCode 详细指南。

然后,我们需要安装百度的paddlepaddle, 进入他们的官方网站就有详细的指引:
https://www.paddlepaddle.org.cn/install/quick

根据你自己的情况选择这些选项,最后一个CUDA版本,由于本实验不需要训练数据,也不需要太大的计算量,所以直接选择CPU版本即可。选择完毕,下方会出现安装指引,不得不说,Paddlepaddle这些方面做的还是比较贴心的(就是名字起的不好)。

要注意,如果你的Python3环境变量里的程序名称是Python,记得将python3 xxx 语句改为Python xxx 如下进行安装:

python -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple

然后你还需要安装paddlehub:

pip install -i https://mirror.baidu.com/pypi/simple paddlehub

如果你需要本文的抑郁文本数据,请在Python实用宝典后台回复【微博抑郁文本】下载,总计9000条,如果不够你使用,可以参考下面这篇文章爬取数据:

《Python 爬取“微博树洞”详细教程》

2. 数据预处理

这次实验,我使用了8000条走饭下面的评论和8000条其他微博的正常评论作为训练集,两个分类分别使用1000条数据作为测试集。

2.1 去重去脏

在这一步,我们需要先去除重复数据,并使用正则表达式@.* 和 ^@.*\n 去除微博@的脏数据。如果你是使用Vscode的,可以使用sort lines插件去除重复数据:

如果不是Vscode,请用Python写一个脚本,遍历文件,将每一行放入集合中进行去重。比较简单,这里不赘述啦。

正则表达式去除脏数据,我这里数据量比较少,直接编辑器解决了:

2.2 分词

首先,需要对我们的文本数据进行分词,这里我们采用结巴分词的形式进行:

然后需要在分词的结果后面使用\t隔开加入标签,我这里是将有抑郁倾向的句子标为0,将正常的句子标为1. 此外,还需要将所有词语保存起来形成词典文件,每个词为一行。

并分别将训练集和测试集保存为 train.tsv 和 dev.tsv, 词典文件命名为word_dict.txt, 方便用于后续的训练。

3.训练

下载完Paddle模型源代码后,进入 models/PaddleNLP/sentiment_classification文件夹下,这里是情感文本分类的源代码部分。

在开始训练前,你需要做以下工作:

1. 将train.tsv、dev.tsv及word_dict.txt放入senta_data文件夹.

2. 设置senta_config.json的模型类型,我这里使用的是gru_net:

3. 修改run.sh相关的设置:

如果你的paddle是CPU版本的,请把use_cuda改为false。此外还有一个save_steps要修改,代表每训练多少次保存一次模型,还可以修改一下训练代数epoch,和 一次训练的样本数目 batch_size.

4. 如果你是windows系统,还要新建一个save_models文件夹,然后在里面分别以你的每训练多少次保存一次的数字再新建文件夹。。没错,这可能是因为他们开发这个框架的时候是基于linux的,他们写的保存语句在linux下会自动生成文件夹,但是windows里不会。

现在可以开始训练了,由于训练启动脚本是shell脚本,因此我们要用powershell或git bash运行指令,Vscode中可以选择默认的终端,点击Select Default Shell后选择一个除cmd外的终端即可。

输入以下语句开始训练

sh run.sh train

4.测试

恭喜你走到了这一步,作为奖励,这一步你只需要做两个操作。首先是将run.sh里的MODEL_PATH修改为你刚保存的模型文件夹:

我这里最后一次训练保存的文件夹是step_1200,因此填入step_1200,要依据自己的情况填入。然后一句命令就够了:

sh run.sh eval

可以看到我的模型准确率大概有98%,还是挺不错的。

5.预测

我们随意各取10条抑郁言论和普通言论,命名为test.txt存入senta_data文件夹中,输入以下命令进行预测:

sh run.sh test

这二十条句子如下,前十条是抑郁言论,后十条是普通言论:

好崩溃每天都是折磨真的生不如死
姐姐   我可以去找你吗
内心阴暗至极……
大家今晚都是因为什么没睡
既然儿子那么好     那就别生下我啊     生下我又把我扔下     让我自生自灭     这算什么
走饭小姐姐怎么办我该怎么办每天都心酸心如刀绞每天都有想要死掉的念头我不想那么痛苦了
你凭什么那么轻松就说出这种话
一闭上眼睛脑子里浮现的就是他的脸和他的各种点点滴滴好难受睡不着啊好难受为什么吃了这么多东西还是不快乐呢
以前我看到那些有手有脚的人在乞讨我都看不起他们   我觉得他们有手有脚的不应该乞讨他们完全可以凭自己的双手挣钱   但是现在我有手有脚我也想去人多的地方乞讨…我不想努力了…
熬过来吧求求你了好吗
是在说我们合肥吗?
这歌可以啊
用一个更坏的消息掩盖这一个坏消息
请尊重他人隐私这种行为必须严惩不贷
这个要转发
												

Python 教你训练一个98%准确率的微博抑郁文本分类模型(含数据)相关推荐

  1. 独家 | 教你用Pytorch建立你的第一个文本分类模型!

    作者:Aravind Pai 翻译:王威力 校对:张一豪 本文约3400字,建议阅读10+分钟 本文介绍了利用Pytorch框架实现文本分类的关键知识点,包括使用如何处理Out of Vocabula ...

  2. 如何兼容自训练与预训练:更高效的半监督文本分类模型

    论文标题: Neural Semi-supervised Learning for Text Classification Under Large-Scale Pretraining 论文作者: Zi ...

  3. 15 分钟搭建一个基于XLNET的文本分类模型——keras实战

    今天笔者将简要介绍一下后bert 时代中一个又一比较重要的预训练的语言模型--XLNET ,下图是XLNET在中文问答数据集CMRC 2018数据集(哈工大讯飞联合实验室发布的中文机器阅读理解数据,形 ...

  4. 手把手教你如何用 TensorFlow 实现基于 DNN 的文本分类

    许多开发者向新手建议:如果你想要入门机器学习,就必须先了解一些关键算法的工作原理,然后再开始动手实践.但我不这么认为. 我觉得实践高于理论,新手首先要做的是了解整个模型的工作流程,数据大致是怎样流动的 ...

  5. python文本分类模型_下载 | 最全中文文本分类模型库,上手即用

    原标题:下载 | 最全中文文本分类模型库,上手即用 本文转自『大数据文摘』 如何选择合适的模型上手进行中文文本分类呢? 别慌,福利来了,GitHub上一位名为"huwenxing" ...

  6. 从零开始构建基于textcnn的文本分类模型(上),word2vec向量训练,预训练词向量模型加载,pytorch Dataset、collete_fn、Dataloader转换数据集并行加载

    伴随着bert.transformer模型的提出,文本预训练模型应用于各项NLP任务.文本分类任务是最基础的NLP任务,本文回顾最先采用CNN用于文本分类之一的textcnn模型,意在巩固分词.词向量 ...

  7. python tensorflow 文本提取_如何在tensorflow中保存文本分类模型?

    阅读tensorflow documentation进行文本分类时,我在下面建立了一个脚本,用于训练文本分类模型(正/负).有一件事我不确定.如何保存模型以便以后重用?另外,如何测试我拥有的输入测试集 ...

  8. R语言构建文本分类模型并使用LIME进行模型解释实战:文本数据预处理、构建词袋模型、构建xgboost文本分类模型、基于文本训练数据以及模型构建LIME解释器解释多个测试语料的预测结果并可视化

    R语言构建文本分类模型并使用LIME进行模型解释实战:文本数据预处理.构建词袋模型.构建xgboost文本分类模型.基于文本训练数据以及模型构建LIME解释器解释多个测试语料的预测结果并可视化 目录

  9. 实战|手把手教你训练一个基于Keras的多标签图像分类器

    图片来自 pexels,作者:Jean-Christophe André 2019 年第 63 篇文章,总第 87 篇文章 原文链接:https://www.pyimagesearch.com/201 ...

最新文章

  1. python 面向对象(类)--学习笔记
  2. WCF六大步的前三步
  3. gdb x命令_详解gdb的使用技巧
  4. 关闭edge任务栏预览_如何在Microsoft Edge中关闭选项卡预览
  5. Java分布式篇5——FastDFS
  6. 面向IT专业人员的8个新兴AI工作
  7. Android 功耗(24)---功耗相关因子
  8. 想尝试搭建图像识别系统?这里有一份TensorFlow速成教程
  9. web文件被更改crawlergo怎么解决_hscan:一款集成crawlergo和xray的src漏洞挖掘利器
  10. wps文档怎么画流程图6_wps文字如何绘制流程图图文教程
  11. 衍射在微波遥感中的作用
  12. 2022年的1024
  13. 德国IT民工找工有感
  14. 迅雷极速版 win10 奔溃、闪退,官方补丁无法安装解决办法
  15. Oracle题目求帮助
  16. 网易云信短信接口java_网易云短信接口测试
  17. kalibr使用笔记
  18. 2018信息学奥赛NOIP全套视频 最新最全,分享给大家
  19. Android OpenGLES Camera2绿幕抠图
  20. 重心和面积以及坐标的关系

热门文章

  1. 网站优化入门SEO图文五大步骤
  2. 划水摸鱼的时候写一篇自己是怎么划水摸鱼的
  3. 申宝投资-市场行情整体比较差
  4. 阿里云ECS问题大全【转自阿里云社区】
  5. WorldFirst公布本地化品牌名称,跨境收款万里汇!
  6. 东方财富股票交易接口数据怎么执行出来?
  7. 改纸盒大小_如何DIY纸盒人图解教程(含各细节详细尺寸)
  8. pythonocc安装_PythonOCC开发-如何搭建开发环境和一个创建圆台例子
  9. 微型计算机硬盘接口有哪些,什么是硬盘(硬盘接口有哪些)
  10. OSPF路由协议详解与实战演练