千家信息网

Python短文本如何自动识别个体是否有自杀倾向

发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,Python短文本如何自动识别个体是否有自杀倾向,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。为了简化问题,我们将短文本分为两种类别中的
千家信息网最后更新 2025年02月23日Python短文本如何自动识别个体是否有自杀倾向

Python短文本如何自动识别个体是否有自杀倾向,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

为了简化问题,我们将短文本分为两种类别中的一种,即要么是正常微博、要么是自杀倾向微博。这样,有了上次的微博树洞,训练集和测试集就非常好获得了。由于是短文本二分类问题,可以使用scikit-learn的SVM分类模型。

不过要注意的是,我们的分类器并不能保证分类出来的结果百分百正确,毕竟心理状态是很难通过文本准确识别出来的,我们只能通过文字,大致判断其抑郁情况并加以介入。实际上这是一个宁可错杀一百,不可放过一个的问题。毕竟放过一个,可能就有一条生命悄然流逝。

1.数据准备

数据集整体上分两个部分,一部分是训练集、一部分是测试集。其中,训练集和测试集中还要分为正常微博短文本和自杀倾向短文本。

将上一篇爬取微博树洞的文章中得到的数据进行人工筛选后,挑出300条作为训练集(有点少,其实业界至少也要3000条以上),再根据上次的微博爬虫随意爬取10000条微博作为训练集的正常微博类。另外再分别搜集自杀倾向微博和普通微博各50条作为测试集。

每条微博按行存储在txt文件里。训练集中,正常微博命名为normal.txt, 自杀倾向微博命名为die.txt。测试集存放在后缀为_test.txt的文件中:

此外,接下来我们会使用到一个机器学习工具包叫scikit-learn(sklearn),其打包了许多机器学习模型和预处理的方法,方便我们构建分类器,在CMD/Terminal输入以下命令安装:

         pip install -U scikit-learn

如果你还没有安装Python,请看这篇文章安装Python,然后再执行上述命令安装sklearn.

2.数据预处理

我们使用一个典型的中文自然语言预处理方法:对文本使用结巴分词后将其数字化。

由于具有自杀倾向的微博中,其实类似于"死"、"不想活"、"我走了"等这样的词语比较常见,因此我们可以用TF-IDF将字符串数字化。如果你不了解TF-IDF,请看这篇文章:《文本处理之 tf-idf 算法及其实践》:
https://suool.net/2019/01/26/tf-tdf-exercise/

数字化的部分代码如下。

3.训练

使用scikit-learn的SVM分类模型,我们能很快滴训练并构建出一个分类器:

这里我们忽略了SVM原理的讲解,SVM的原理可以参考这篇文章,《支持向量机(SVM)--原理篇》:
https://zhuanlan.zhihu.com/p/31886934

4.测试

测试的时候,我们要分别计算模型对两个类别的分类精确率和召回率。scikit-learn提供了一个非常好用的函数classification_report来计算它们:

结果:

对自杀倾向微博的分类精确率为100%,但是查全率不够,它只找到了50条里的60%,也就是30条自杀倾向微博。

对于正常微博的分类,其精确率为71%,也就是说有部分正常微博被分类为自杀倾向微博,不过其查全率为100%,也就是不存在不被分类的正常微博。

这是建立在训练集还不够多的情况下的结果。我们的自杀倾向微博的数据仅仅才300条,这是远远不够的,如果能增加到3000条,相信结果会改进不少,尤其是对于自杀倾向微博的查全率有很大的帮助。预估最终该模型的精确率和召回率至少能达到95%。

看完上述内容,你们掌握Python短文本如何自动识别个体是否有自杀倾向的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

倾向 分类 训练 文本 测试 数据 模型 问题 精确 方法 篇文章 结果 不够 也就是 原理 数字 查全率 这是 部分 预处理 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 macos 安装连不上服务器 济宁dell服务器多少钱 本科毕业论文软件开发型 php设置定时访问数据库 网站云服务器 写数据库的线程没反应了 华为泰山服务器回收 网络服务器谁家比较好 大兴区正规软件开发不二之选 软件开发一般多长时间 软件开发数据库多适配 jpa枚举值插入数据库为空 校园活动网络安全周 怒江哪有定制软件开发 arcgis文字数据库 杨某几年内不得从事网络安全管理 计算机软件开发方面的专利 职高专业软件开发河南 江宁区网络技术服务质量保证 网络安全知识 阵亡病毒 边缘数据与通信网络技术 世界土壤数据库下载处理 软件开发入职前课题 手机使用移动网络无法连接服务器 学校网络安全专业培训资料 如何评价青少年网络安全 怎么理解数据库索引 网络安全技术专业的好就业吗 服务器显卡对外接口 吴中区知名服务器优质推荐
0