深度学习下小程序日记写作平台情感分析平台

2021-06-25 14:18张子楠赵苏鉴
软件导刊 2021年6期
关键词:日记准确率神经网络

张子楠,刘 璇,张 蔚,赵苏鉴,郑 睿

(中央民族大学 信息工程学院,北京 100081)

0 引言

随着我国经济社会的稳步发展,人们生活水平不断提升,但同时竞争加剧使当代青年人群心理上承受的压力比以往任何时代都大[1]。家庭、学校和社会都可能带给他们困扰,从而使他们产生烦躁紧张的心理状态,引发敏感、焦虑、偏执、抑郁等一系列心理问题[2-3]。当代青年人群在普遍承受很大压力的环境下无法找到一种合理的带有情感交互的压力宣泄方式。青年是国家的未来和希望,青年的心理健康问题对青年的人生成长至关重要。有指向性的沟通、有判别性的针对,以及合理的情感反馈成为解决青年人群抑郁焦躁心理问题的有效方法,能够帮助青年人群缓解郁闷、低落等消极情绪[4]。

针对青年人群的心理引导机制常常采用观察谈话、问卷调查、心理咨询[5]或者进行心理健康普查、开展心理健康教育活动等方式,目前主流心理引导机制为建立心理健康网络教育平台[6],定期进行网络线上心理健康辅导教育,帮助青年人群普及心理健康知识,树立健康的心理意识。这些方式可在一定程度上提供科学有效的心理援助和心理辅导,但实际运行成本较高、运行周期长,需要大量的人力、物力。青年人群仍然缺乏缓解心理压力、消除郁闷情绪的有效方式[7]。

为了解决上述问题,本文通过网络日记情感交互方式,改进传统青少年心理治疗对策在主动引导青少年心理情绪交互方面的不足,采用深度学习算法,结合心理学,设计并实现基于深度学习的小程序日记写作平台。通过情感分析、内容智能推荐、虚拟宠物语音交互、四季冥想等功能,以及符合当代青年人群审美潮流的UI 界面,使当代青年人群找到一个合理的情绪交互释放方式,有效缓解当代青年人群在浮躁迷茫情绪下产生的心理问题。

1 平台架构

日记情绪分析写作平台基于微信小程序进行开发,微信小程序是一个无需下载和安装即可使用的应用程序,实现了触手可及的应用梦想[8]。用户搜索扫描后即可打开应用程序,方便可靠,日活跃用户达到两亿。日记书写方便、快捷、无障碍,能够以最低的成本到达用户手中,让不同受众可以方便地使用。

基于深度学习的小程序日记写作平台利用云服务器部署的深度神经网络,对小程序客户端用户上传的日记进行情感分析,给予每一位用户符合心情的推荐和提示,通过小程序的功能渲染达到情感交互目的。日记情感分析写作平台主要由四大部分组成,分别是算法模型层、数据存储层、交互接口层和数据应用层,平台总体架构如图1 所示。

Fig.1 Overall architecture diagram of the platform图1 平台总体架构

1.1 算法模型层

日记情绪分析写作平台的算法模型层依赖于百度云云服务器部署,主要通过训练好的双向长短记忆神经网络分析用户日记数据得到情感值,结合对海量数据进行分析得到在工作、学习、人际交往3 个不同方向标签的匹配,从云服务器Mysql 数据库中寻找到符合日记情绪的推荐内容和情感语句,通过Flask 微型Web 框架API 接口将数据以Json 格式返回。

1.2 数据存储层

日记写作平台数据存储层涉及数据库应用,共分为两大部分:第一部分为微信小程序自带的云服务器,通过云服务便携存储不同微信用户的OpenID 账号以及日记的主体信息;第二部分为百度云服务器关系数据库Mysql,通过Mysql 存储制作的推荐内容及情感语句库。数据信息匹配可利用SQL 查询以提高数据查询速度[9]。

1.3 交互接口层

交互接口层将服务器和数据应用层串联起来,是数据流通传递的桥梁。API 接口为交互层调用接口,一方面通过微信小程序自带的云服务器WebService 接口实现用户个人信息以及用户日记数据的渲染。此外,Flask 是一个使用Python 编写的轻量级Web 应用框架[10],通过部署与百度云服务器Flask 框架制作情绪分析的API 接口,将从云服务器接收到的数据送达至数据应用层进行页面渲染。

1.4 数据应用层

数据应用层展示本质为前端数据渲染,通过与服务器的交互才能显示和应用数据[11]。微信小程序中的视图层是wxml,作用是按照其视图层样式设计对逻辑层数据进行渲染处理,并且将视图层产生的事件传送到逻辑层;JavaScript 为逻辑层,作用是将交互接口层处理后的数据传递给wxml 视图层进行渲染。数据应用主要体现在:①个人日记展示、上传、删除和修改功能;②情感推荐内容和情感分析图表个性化展示;③虚拟宠物语音交互,通过交互接口层返回的数据进行文字语音化,以语音形式展现。通过上述3 种不同的数据渲染在小程序的前端页面,结合特色的UI设计,合理清晰地展示数据。

2 平台设计与实现

2.1 软件系统总体设计

在算法模型层,采用跨平台的Python 作为开发语言,使用开源机器学习Pytorch 框架以及Python 爬虫技术爬取到的日记数据进行神经网络搭建训练。在交互接口层和数据应用层之间采用开源Flask+Wsgi+Nginx 框架进行接口制作,通过Nginx 进行负载均衡[12],采用关系型数据库Mysql和云数据库存储用户数据和推荐数据,在数据应用层采用JavaScript+wxml+wxss 进行前端页面展示。系统功能架构如图2 所示。

Fig.2 System function architecture diagram图2 系统功能架构

2.2 功能详细设计与说明

2.2.1 心情日记

心情日记有3 个功能入口:新增日记、查看日记以及天气展示。新增日记功能主要是将用户写好的日记正文先调用文本安全鉴别接口识别,若识别失败则提示用户需要修改日记,识别成功则调用交互接口层的API 接口进行情感分析,将日记数据包括日记标题正文、情绪值和上传图片等结构化信息上传到云服务器进行存储,若情感分析调用识别失败,则存储本次状态等待下一次接口调用,流程如图3 所示。查看日记功能是通过云服务器WebService 接口实现不同用户日记的获取,渲染到小程序前端页面供用户查看;天气展示功能是结合地理位置获得当前区域的天气,从而展示个性化的诗句,如图4 所示。

Fig.3 Flow of writing diary图3 撰写日记流程

2.2.2 四季冥想

四季冥想功能入口主要有3 个:四季计时、语音交互以及虚拟宠物互动。四季冥想是针对于四季变换设置固定的冥想时间,让用户静心冥想放松心神,当用户点击四季变化时,页面会按照四季更迭进行变化,点击冥想计时按钮则进入到冥想页面,用户可以设置喜欢的颜色,在特定时间进行冥想。语音交互功能调用了交互接口层,通过用户的日记信息进行标签匹配,从而在情感语料库匹配到符合用户情绪的哲理短句进行数据应用层的页面渲染,通过文字和语音方式让用户进行情感互动。虚拟宠物互动则是在页面下端放置一只暖心陪伴的宠物犬,用户可以和宠物犬进行简单交互,如图5 所示。

Fig.4 Display of the composing diary page图4 撰写日记页面展示

Fig.5 Display of the four seasons meditation page图5 四季冥想页面展示

2.2.3 情绪分析

推荐内容的设计与制作是根据当代青年人群的潮流趋向,从色彩的心理效应、色彩偏好和流行色等元素出发,融合心理学知识进行深入研究[13],日记写作平台提供一系列具有特色的书单以及对应不同领域的合理解决方案。当用户通过Tab 选项进入此页面,小程序自动加载云数据库中最近3 篇日记的情绪值以及对应的标签领域,进行云服务器Mysql 数据库推荐内容匹配,合理准确地展示推荐内容。此外,针对用户情感的分析总结,通过Pyeharts 绘制心情值变化图,将用户日记情绪变化合理展示给用户,如图6 所示。

2.2.4 个人中心

该日记写作平台使用微信的开放平台接口,在用户授权后便可以采集到该微信用户的身份标识、微信昵称以及微信头像,用户可以自己设置背景页面,查看通知和日记心情值,用户个人中心如图7 所示。

3 平台关键技术分析

为了达到智能化情感交互目的,该日记写作平台主要采取了深度学习BiLSTM 神经网络进行情感分析,对日记的文本内容进行正负向判断,根据情绪值匹配到合理的推荐内容,使用特色化设计的微信小程序功能如情绪分析、语言交互等进行渲染展示。

Fig.6 Sentiment analysis page display图6 情绪分析页面展示

Fig.7 Display of personal center page图7 个人中心页面展示

3.1 情感分析算法模型设计

3.1.1 训练日记数据采集

本文选定了某在线日记网站,对上面公开无隐私的中文日记数据进行分析,编写Python 爬虫脚本程序对其海量日记数据进行爬取,将爬取到的中文日记数据利用Pandas库存储在csv 文件中,初步获得没有加工的中文日记数据4万余条。之后,利用Jieba 库进行分词操作,采用StopwordsCN 停用词表和正则表达式过滤其中对情感分析影响小的词语、英文数字和标点符号,采用人工手动标注方式,共完成2.5 万个日记数据标签制作,并进行标签复核,最后得到一份含有情感标签的日记训练数据集。

3.1.2 神经网络搭建

考虑到在对情绪日记进行情感分类时,日记文本数据对上下文具有较强的依赖性,同时日记文本数据相对于一般数据要庞大冗长,传统的机器学习算法模型不能很好地处理该问题。因此,日记写作平台采用深度学习神经网络算法,选取双向长短神经网络(Bidirectional Long Short-Term Memory)。该神经网络是为了解决基于长文本序列的模型训练过程中的梯度消失和梯度爆炸等问题而提出的[14],同时使用输入门和输出门让信息选择式通过。输入门、输出门和遗忘门以及Memory Cell 设计,使得BiLSTM 单元具备了保存、读取、重置和更新长距离历史信息的能力[15]。

针对爬取的大量日记信息,在BiLSTM 神经网络训练中,经过训练轮数变化、失活层变化、神经网络节点数变化、神经网络模型结构变化4 个方面的模型参数调整后,设计了一个6 层的深度学习神经网络算法模型,整个算法模型涉及的参数近1 000 万个,针对中文日记数据识别的准确率在87%。该算法模型可以高效、准确地进行情感倾向判断,如图8 所示。

Fig.8 BiLSTM neural network model图8 BiLSTM 神经网络模型

3.1.3 神经网络训练调优

深度神经网络训练调优工作主要由4 个方面组成:改变模型训练次数、改变模型失活层比重、改变模型结点个数、改变模型网络结构。通过这4 个方面参数变化,寻找最合适、最准确的深度神经网络模型进行日记数据情感分析。

(1)网络训练轮数变化。在相同的参数情况下,参数设计如图9 所示,分别训练5 次和50 次,找到训练集准确率最大,以及出现过拟合时训练的轮数、准确率变化如图10所示。在这样的参数配置下,通过观察不同训练次数准确率对比图可知,实验验证集最大的准确率在81.5%左右,当训练轮数在15 轮以上,训练集过拟合现象明显。

Fig.9 Initial experiment parameter setting图9 初试实验参数设置

Fig.10 Comparison of accuracy of training times图10 训练次数准确率对比

(2)网络失活层比重变化。在上述实验基础上位于BiLSTM 层和LSTM 层之间增加一层失活系数为0.3 的失活层,准确率变化如图11 所示,与之前实验相比,验证集的准确率提升0.5%~1%,准确率变化不大,验证集的准确率在80%左右。

Fig.11 Increased accuracy change image of deactivated layer图11 增加失活层准确率变化图像

(3)网络结点数目变化。在上述实验基础上将BiLSTM层和LSTM 层的神经元节点数都扩大1 倍,准确率对比如图12 所示,将Bi-LSTM 和LSTM 层神经元结点的数目扩大了1倍,效果准确率提高3%,达83%左右。

Fig.12 Changes in accuracy of expanded network nodes图12 扩大网络结点准确率变化

(4)网络模型结构变化。在上述实验基础上将最后LSTM 层之后增加一层神经元结点数为128 的全连接层,并调整失活层的系数,动态调整学习率变化,准确率对比如图13 所示,模型准确率得到一定提升,稳定在87%左右,因此采用此神经网络算法结构模型进行日记情感倾向分析。

Fig.13 Change of the accuracy rate after increasing the fully connected layer图13 增加全连接层准确率变化

3.1.4 情感分析算法模型评估

情感分析又称观点挖掘,研究人们在文本中表达的情感、态度和观点[16]。文本情感分析方法主要有情感词典方法和机器学习方法[17],对于情感分析的效果评价和测试,针对本文中文日记数据集,采用3 种不同的方式对相同中文文本数据集的准确率进行对比。第一种方法是传统基于情感词典进行的情感分析,利用事先准备的基准词以及获得的大量情感正负特征词语对文本进行分析,对于有感情词的句子,采用计算感情值判别其感情倾向及感情程度[18];第二种方法是基于机器学习朴素贝叶斯进行情感分析,朴素贝叶斯是一种基于概率的学习算法,它基于假设的先验概率,给定假设下观察不同特征的概率[19];第三种方法是目前使用的BiLSTM 深度学习神经网络进行的情感分析,使用上述数据集抽离出来的单独5 000 条测试集,采用不同情感分析方法进行准确率效果对比,如表1 所示。

Table 1 Accuracy comparison表1 准确率对比

通过结果可以看到,BiLSTM 神经网络的准确率达87%左右,相较于传统的情感字典和机器学习中的朴素贝叶斯分类,准确率有一定提升,在中文日记数据集上取得了不错的分类效果。

3.2 用户情感交互功能设计

3.2.1 推荐算法及推荐内容设计

随着信息化浪潮的不断推进,人们不仅很难从越来越庞杂的信息中找到感兴趣的信息,同时信息也越来越难以向对其感兴趣的用户呈现。个性化推荐系统通过建立用户与信息产品之间的二元关系,利用已有的选择过程或相似性关系挖掘每个用户潜在感兴趣的对象,进而进行个性化推荐[20]。通过上述神经网络算法模型可以得到日记情绪倾向,对于年轻人的情感反馈问题,一些缓解用户情绪的信息被合理准确地匹配并且推送出来解决青年人群的情感反馈问题。

在对海量日记进行统计和分析时,发现青年人群的压力广泛集中在3 个领域:工作、学习及社会关系处理。在得到用户这一篇日记的情感倾向后,为了与之前已经制作在这3 个领域富有特点的推荐内容进行配对,日记平台采用了基于统计分类的大数据标签匹配算法,通过之前的大量日记数据分析,得到了在这3 个领域的众多关键字标签,如期末考试、实习工作、朋友陪伴等一系列大数据标签,当用户上传日记到云服务器数据库中,进行日记内容与大数据标签采用正则表达式findall 匹配模式,准确辨识此日记属于哪一个领域,从而结合情感倾向对用户进行基于规则的智能化推荐。

界面设计理念主要是符合当代青年群体的潮流,采用暖色色调,将橙、黄、红、橘色等暖色调巧妙地运用到界面设计中。对大量日记数据进行分析,挑选制作众多精美的文字图片,从励志书籍、冒险传记到不同学科的学习及工作关系处理等,让用户从智能化的情绪推荐内容中获得情感体验,缓解压力情绪,如图14 所示。

Fig.14 Display of personalized recommended content图14 个性化推荐内容展示

3.2.2 平台功能设计

为了更好地实现情绪交互功能,对高校学生压力释放方式进行调研。结果显示,排名靠前的分别为:相互沟通、暖心陪伴、放空心绪等。因此,按照功能需求,对日记写作平台分别设计语音交互、虚拟宠物、四季冥想这3 个特殊功能。按照需求分析进行功能设计,经过多元化的情绪交互功能,一定程度地缓解用户负面情绪。

语音交互功能通过建立情绪语料库实现,精心编写合理情感短句,共达300 余句,当用户心情低落书写日记时,算法模型分析结果为负向,通过情绪语料库数据的匹配小程序页面渲染,将情感短句用慢速温柔的女声语音化,起到鼓励安抚的作用。

四季冥想页面功能借鉴了微信小程序倒计时的方法,帮助用户进行适度冥想。冥想可以通过自我调控练习,让个体逐渐宁静、明晰和专注,从整体上产生一种心理幸福感[21],达到减压、释放情绪的目的。按照冥想的规律和进展,鼓励用户进行规定时间的冥想,伴奏流水等白噪音,帮助用户减轻焦虑、缓解疲劳。

虚拟宠物功能起陪伴作用,通过激发人类的照料行为,为人类带来快乐和安慰[22]。共设计两款独具特色的虚拟宠物,不需要太多的言语交流,与宠物简单互动,可帮助青年人群减少孤独感,释放一定压力。

4 平台功能测试

功能测试即测试微信小程序设计是否符合功能需求[11]。该日记写作平台可以实现日记新建、删除、修改等基本功能,并且能通过情绪分析模型对日记数据进行情绪分析,实现内容智能化推荐和虚拟宠物语言交互,从而达到缓解青年人群心理压力的目的。

当新建日记标题为“心情有点难过”,日记主体为“今天的期末考试没有按照平时的实力发挥,考试很失败,估计成绩在班上中下游,现在很是难过,不知道该如何面对父母老师”时,如图15 所示,情感分析算法模型分析结果为负向,在日记的标题处显示颜色为紫色,大数据标签匹配方向为学习方向,情绪推荐内容为“如何在考试前调整到最好状态”,虚拟宠物语音交互结果为:”小狗提莫知道,不要因为一时失意而惶惶不安,明天的太阳依然绚烂”。平台功能测试完成预期,基本满足常见的情感交互需要。

Fig.15 Platform test effect图15 平台测试效果

5 结语

随着社会竞争加剧,人们承受的压力也越来越大,青年人群的心理问题备受关注,如何疏导和缓解青年人群消极负面情绪尤为重要。伴随着移动设备的不断普及,利用云端远程算法模型精确高效地挖掘用户信息,分析出有价值的数据,实现有指向性的沟通、有判别性的针对,以及合理的情感反馈将有助于青年人群减轻焦虑、缓解压力。

本文从网络日记交互的角度,对青年人群的心理问题予以合理解决,设计了一种基于深度学习进行情感分析的小程序日记写作平台,帮助青年人群合理缓解压力,维持良好心理状况。采用深度神经网络算法对带有情感倾向的日记数据进行学习,得到情感倾向分析的算法模型,并提供多种情绪交互方式,为青年人群提供释放压力的有效途径。同时,本文研究也为青年人群心理问题研究提供了新的视角,以及理论和实践上的参考。

猜你喜欢
日记准确率神经网络
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
神经网络抑制无线通信干扰探究
高速公路车牌识别标识站准确率验证法
成长日记
里约日记
成长日记
基于神经网络的拉矫机控制模型建立
成长日记
复数神经网络在基于WiFi的室内LBS应用
基于支持向量机回归和RBF神经网络的PID整定