大数据实战项目 -- 推文情绪分析与心理疾病预测

本文介绍了一个使用大数据进行推文情绪分析和心理疾病预测的项目。通过对社交媒体言论的数据采集、预处理、情感分析和模型训练,预测用户的心理稳定状况和疾病概率,为心理干预提供依据。项目采用BERT模型进行情感分析,结果显示模型正确率高达85.51%。
摘要由CSDN通过智能技术生成

推文情绪分析与心理疾病预测

[摘要]

随着生活节奏变快,人与人的线下交流变少,人们逐渐喜欢在线上发表个人情感,我们通过人们在网络发表的语言进行数据采集,随即进行数据预处理,对数据进行拆分,通过拆分的数据去训练我们建立好的模型,在用拆分好的另一半数据对训练好的模型进行测试,最终通过数据分析,分析其不同年龄阶层、不同性别、不同国籍以及不同职业等人的心理稳定状况,在对其会出现心理疾病的概率进行预测,其预测的结果可以给心理人工干预提供支持。

一、 项目概述

 1.1 项目背景

世界卫生组织公布的数据:全球60亿人口,17%左右存在精神心理疾病,76-85%的患者急需专业的精神心理科医师给予干预。抑郁症3亿多,焦虑症2.6亿多,双相障碍6000万,精神分裂症2100万,痴呆4750万。只抑郁症和焦虑症每年造成的经济损失就高达10000亿美元(中国2001年全国GDP)。2020年,精神心理疾病将占据中国疾病总负担的1/4。

随着人类社会的进步发展,生活节奏快,人人趋利,犹如工作机器,休息时间短,相聚时间少,交流谈心更是奢望。人与人之间彼此冷漠不关心,各自自顾不暇,疲于奔波,每个人都是一座孤岛,独自反复体验自己的伤。最终,难以承受、难以忍受的个体如火山爆发,如脱缰野马,不知自我,不计后果。张国荣、乔任梁如此,拉斯维加斯的枪击事件嫌疑犯亦如此,很多类似的事件都在表明,心理问题将是人类最大的健康问题和社会问题。

谁的心灵都有“感冒期”,倾诉可以释放压力,也可以缓解情绪,早日发现“感冒期”,可以避免“感冒”发展加重,从而演变成严重精神心理疾病。我们的项目正是从其下手,预测其心理疾病的发生概率,早日发现“感冒期”使其发生概率降低。

1.2 项目简介

在这样一个大数据时代,如果我们能够早点发现身边朋友的情绪异样,就能尽早避免这样的事情发生,而我们的项目就是从人们在空间、朋友圈、个人博客以及微博中的言论,分析其情绪的稳定性,来预测抑郁症、社交恐惧症以及个人社会承压能力等负面情绪引发的消极事件的发生概率,以达到降低负面情绪引发消极事件发生概率的目的。我们的项目通过人们在网络发表的语言进行数据采集,随即进行数据预处理,对数据进行拆分,通过拆分的数据去训练我们建立好的模型,在用拆分好的另一半数据对训练好的模型进行测试,最终通过数据分析,分析其不同年龄阶层、不同性别、不同国籍以及不同职业等人的心理稳定状况,在对其会出现心理疾病的概率进行预测,其预测的结果可以给心理人工干预提供支持。

1.3 项目环境

项目运行环境为:

ide: pycharm2020.03operation system:win11python pakages:    pandas~=1.3    numpy~=1.21    bert-tensorflow    tensorflow > 1.12     tensorflow-hub

1.4 项目配置

data_path = r'data/data.csv' # 数据集路径train_data_path = r'data/train.csv' # 训练数据集路径test_data_path = r'data/test.csv' # 测试数据集路径train_data_percent = 0.9 # 数据集和测试集划分比例

二、数据处理及可视化

2.1 数据分析

在我们的项目中,我们的数据来源于全球知名的机器学习竞赛网站,总共包含27000余条数据,除数据编号字段外,每条数据分为textID,text,selected_text,sentiment,age,sex,country,profession八个字段,分别指推文id,内容,包含情感倾向的文本,标注的情感,用户年龄,用户性别,用户国别或用户职业。

在我们的项目中,我们将这个数据集按照9成训练数据1成测试数据的比例分为train.csv和test.csv两个数据集,其中train.csv数据来构造模型,并预测test.csv数据。

def partition():
    data = pd.read_csv(data_path, encoding='utf-8')
    _len = data.shape[0]
    try:
        train_data = data.head(int(_len * train_data_percent))
        test_data = data.tail(int(_len * (1 - train_data_percent)))
        train_data.to_csv(train_data_path)
        test_data.to_csv(test_data_path)
    except:
        return False
    return True

2.2 数据检查

2.2.1 查看数据字段信息

data = pd.read_csv(data_path)# 查看数据字段信息print(data.info())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值