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

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

1.准备

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

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

当然,我更推荐大家用编辑器,把本文代码Copy下来,在编辑器下方的终端装依赖模块,多舒服的一件事啊:。

然后,我们需要安装百度的, 进入他们的官方网站就有详细的指引:

文本分类模型构建流程_文本分类模型_文本模型分类有哪些

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

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

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

然后你还需要安装:

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

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

《》

2. 数据预处理

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

2.1 去重去脏

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

文本分类模型_文本模型分类有哪些_文本分类模型构建流程

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

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

文本模型分类有哪些_文本分类模型构建流程_文本分类模型

2.2 分词

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

文本分类模型_文本分类模型构建流程_文本模型分类有哪些

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

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

3.训练

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

文本分类模型_文本模型分类有哪些_文本分类模型构建流程

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

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

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

文本分类模型构建流程_文本分类模型_文本模型分类有哪些

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

文本分类模型_文本模型分类有哪些_文本分类模型构建流程

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

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

文本模型分类有哪些_文本分类模型_文本分类模型构建流程

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

文本模型分类有哪些_文本分类模型_文本分类模型构建流程

输入以下语句开始训练

sh run.sh train

文本模型分类有哪些_文本分类模型构建流程_文本分类模型

4.测试

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

文本分类模型构建流程_文本模型分类有哪些_文本分类模型

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

sh run.sh eval

文本分类模型构建流程_文本分类模型_文本模型分类有哪些

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

5.预测

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

sh run.sh test

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

  1. 好崩溃每天都是折磨真的生不如死

  2. 姐姐   我可以去找你吗

  3. 内心阴暗至极……

  4. 大家今晚都是因为什么没睡

  5. 既然儿子那么好     那就别生下我啊     生下我又把我扔下     让我自生自灭     这算什么

  6. 走饭小姐姐怎么办我该怎么办每天都心酸心如刀绞每天都有想要死掉的念头我不想那么痛苦了

  7. 你凭什么那么轻松就说出这种话

  8. 一闭上眼睛脑子里浮现的就是他的脸和他的各种点点滴滴好难受睡不着啊好难受为什么吃了这么多东西还是不快乐呢

  9. 以前我看到那些有手有脚的人在乞讨我都看不起他们   我觉得他们有手有脚的不应该乞讨他们完全可以凭自己的双手挣钱   但是现在我有手有脚我也想去人多的地方乞讨…我不想努力了…

  10. 熬过来吧求求你了好吗

  11. 是在说我们合肥吗?

  12. 这歌可以啊

  13. 用一个更坏的消息掩盖这一个坏消息

  14. 请尊重他人隐私这种行为必须严惩不贷

  15. 这个要转发

  16. 保佑咱们国家各个省千万别再有出事的也别瞒报大家一定要好好的坚持到最后加油

  17. 我在家比在学校有钱   在家吃饭零食水果奶都是我妈天天给我买   每天各种水果   还可以压榨我弟跑腿   买衣服也是   水乳也是   除了化妆品反正现在也用不上   比学校的日子过得好多了

  18. 广西好看的是柳州的满城紫荆花

  19. 加油一起共同度过这次难关我们可以

  20. 平安平安老天保佑

得到结果如下:

Final test result:
0 0.999999 0.000001
0 0.994013 0.005987
0 0.997636 0.002364
0 0.999975 0.000025
0 1.000000 0.000000
0 1.000000 0.000000
0 0.999757 0.000243
0 0.999706 0.000294
0 0.999995 0.000005
0 0.998472 0.001528
1 0.000051 0.999949
1 0.000230 0.999770
1 0.230227 0.769773
1 0.000000 1.000000
1 0.000809 0.999191
1 0.000001 0.999999
1 0.009213 0.990787
1 0.000003 0.999997
1 0.000363 0.999637
1 0.000000 1.000000

第一列是预测结果(0代表抑郁文本),第二列是预测为抑郁的可能性,第三列是预测为正常微博的可能性。可以看到,基本预测正确,而且根据这个分数值,我们还可以将文本的抑郁程度分为:轻度、中度、重度,如果是重度抑郁,应当加以干预,因为其很可能会发展成自杀倾向。

我们可以根据这个模型,构建一个自杀预测监控系统,一旦发现重度抑郁的文本迹象,即可实行干预,不过这不是我们能一下子做到的事情,需要随着时间推移慢慢改进这个识别算法,并和相关机构联动实行干预。

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

如果你喜欢今天的 教程,请持续关注实用宝典,如果对你有帮助,麻烦在下面点一个赞/在看

文本分类模型_文本模型分类有哪些_文本分类模型构建流程

,有任何问题都可以在下方留言,我们会耐心解答的!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注