張子楠,劉 璇,張 蔚,趙蘇鑒,鄭 睿
(中央民族大學 信息工程學院,北京 100081)
隨著我國經濟社會的穩步發展,人們生活水平不斷提升,但同時競爭加劇使當代青年人群心理上承受的壓力比以往任何時代都大[1]。家庭、學校和社會都可能帶給他們困擾,從而使他們產生煩躁緊張的心理狀態,引發敏感、焦慮、偏執、抑郁等一系列心理問題[2-3]。當代青年人群在普遍承受很大壓力的環境下無法找到一種合理的帶有情感交互的壓力宣泄方式。青年是國家的未來和希望,青年的心理健康問題對青年的人生成長至關重要。有指向性的溝通、有判別性的針對,以及合理的情感反饋成為解決青年人群抑郁焦躁心理問題的有效方法,能夠幫助青年人群緩解郁悶、低落等消極情緒[4]。
針對青年人群的心理引導機制常常采用觀察談話、問卷調查、心理咨詢[5]或者進行心理健康普查、開展心理健康教育活動等方式,目前主流心理引導機制為建立心理健康網絡教育平臺[6],定期進行網絡線上心理健康輔導教育,幫助青年人群普及心理健康知識,樹立健康的心理意識。這些方式可在一定程度上提供科學有效的心理援助和心理輔導,但實際運行成本較高、運行周期長,需要大量的人力、物力。青年人群仍然缺乏緩解心理壓力、消除郁悶情緒的有效方式[7]。
為了解決上述問題,本文通過網絡日記情感交互方式,改進傳統青少年心理治療對策在主動引導青少年心理情緒交互方面的不足,采用深度學習算法,結合心理學,設計并實現基于深度學習的小程序日記寫作平臺。通過情感分析、內容智能推薦、虛擬寵物語音交互、四季冥想等功能,以及符合當代青年人群審美潮流的UI 界面,使當代青年人群找到一個合理的情緒交互釋放方式,有效緩解當代青年人群在浮躁迷茫情緒下產生的心理問題。
日記情緒分析寫作平臺基于微信小程序進行開發,微信小程序是一個無需下載和安裝即可使用的應用程序,實現了觸手可及的應用夢想[8]。用戶搜索掃描后即可打開應用程序,方便可靠,日活躍用戶達到兩億。日記書寫方便、快捷、無障礙,能夠以最低的成本到達用戶手中,讓不同受眾可以方便地使用。
基于深度學習的小程序日記寫作平臺利用云服務器部署的深度神經網絡,對小程序客戶端用戶上傳的日記進行情感分析,給予每一位用戶符合心情的推薦和提示,通過小程序的功能渲染達到情感交互目的。日記情感分析寫作平臺主要由四大部分組成,分別是算法模型層、數據存儲層、交互接口層和數據應用層,平臺總體架構如圖1 所示。

Fig.1 Overall architecture diagram of the platform圖1 平臺總體架構
日記情緒分析寫作平臺的算法模型層依賴于百度云云服務器部署,主要通過訓練好的雙向長短記憶神經網絡分析用戶日記數據得到情感值,結合對海量數據進行分析得到在工作、學習、人際交往3 個不同方向標簽的匹配,從云服務器Mysql 數據庫中尋找到符合日記情緒的推薦內容和情感語句,通過Flask 微型Web 框架API 接口將數據以Json 格式返回。
日記寫作平臺數據存儲層涉及數據庫應用,共分為兩大部分:第一部分為微信小程序自帶的云服務器,通過云服務便攜存儲不同微信用戶的OpenID 賬號以及日記的主體信息;第二部分為百度云服務器關系數據庫Mysql,通過Mysql 存儲制作的推薦內容及情感語句庫。數據信息匹配可利用SQL 查詢以提高數據查詢速度[9]。
交互接口層將服務器和數據應用層串聯起來,是數據流通傳遞的橋梁。API 接口為交互層調用接口,一方面通過微信小程序自帶的云服務器WebService 接口實現用戶個人信息以及用戶日記數據的渲染。此外,Flask 是一個使用Python 編寫的輕量級Web 應用框架[10],通過部署與百度云服務器Flask 框架制作情緒分析的API 接口,將從云服務器接收到的數據送達至數據應用層進行頁面渲染。
數據應用層展示本質為前端數據渲染,通過與服務器的交互才能顯示和應用數據[11]。微信小程序中的視圖層是wxml,作用是按照其視圖層樣式設計對邏輯層數據進行渲染處理,并且將視圖層產生的事件傳送到邏輯層;JavaScript 為邏輯層,作用是將交互接口層處理后的數據傳遞給wxml 視圖層進行渲染。數據應用主要體現在:①個人日記展示、上傳、刪除和修改功能;②情感推薦內容和情感分析圖表個性化展示;③虛擬寵物語音交互,通過交互接口層返回的數據進行文字語音化,以語音形式展現。通過上述3 種不同的數據渲染在小程序的前端頁面,結合特色的UI設計,合理清晰地展示數據。
在算法模型層,采用跨平臺的Python 作為開發語言,使用開源機器學習Pytorch 框架以及Python 爬蟲技術爬取到的日記數據進行神經網絡搭建訓練。在交互接口層和數據應用層之間采用開源Flask+Wsgi+Nginx 框架進行接口制作,通過Nginx 進行負載均衡[12],采用關系型數據庫Mysql和云數據庫存儲用戶數據和推薦數據,在數據應用層采用JavaScript+wxml+wxss 進行前端頁面展示。系統功能架構如圖2 所示。

Fig.2 System function architecture diagram圖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 所示。
為了達到智能化情感交互目的,該日記寫作平臺主要采取了深度學習BiLSTM 神經網絡進行情感分析,對日記的文本內容進行正負向判斷,根據情緒值匹配到合理的推薦內容,使用特色化設計的微信小程序功能如情緒分析、語言交互等進行渲染展示。

Fig.6 Sentiment analysis page display圖6 情緒分析頁面展示

Fig.7 Display of personal center page圖7 個人中心頁面展示
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.1 推薦算法及推薦內容設計
隨著信息化浪潮的不斷推進,人們不僅很難從越來越龐雜的信息中找到感興趣的信息,同時信息也越來越難以向對其感興趣的用戶呈現。個性化推薦系統通過建立用戶與信息產品之間的二元關系,利用已有的選擇過程或相似性關系挖掘每個用戶潛在感興趣的對象,進而進行個性化推薦[20]。通過上述神經網絡算法模型可以得到日記情緒傾向,對于年輕人的情感反饋問題,一些緩解用戶情緒的信息被合理準確地匹配并且推送出來解決青年人群的情感反饋問題。
在對海量日記進行統計和分析時,發現青年人群的壓力廣泛集中在3 個領域:工作、學習及社會關系處理。在得到用戶這一篇日記的情感傾向后,為了與之前已經制作在這3 個領域富有特點的推薦內容進行配對,日記平臺采用了基于統計分類的大數據標簽匹配算法,通過之前的大量日記數據分析,得到了在這3 個領域的眾多關鍵字標簽,如期末考試、實習工作、朋友陪伴等一系列大數據標簽,當用戶上傳日記到云服務器數據庫中,進行日記內容與大數據標簽采用正則表達式findall 匹配模式,準確辨識此日記屬于哪一個領域,從而結合情感傾向對用戶進行基于規則的智能化推薦。
界面設計理念主要是符合當代青年群體的潮流,采用暖色色調,將橙、黃、紅、橘色等暖色調巧妙地運用到界面設計中。對大量日記數據進行分析,挑選制作眾多精美的文字圖片,從勵志書籍、冒險傳記到不同學科的學習及工作關系處理等,讓用戶從智能化的情緒推薦內容中獲得情感體驗,緩解壓力情緒,如圖14 所示。

Fig.14 Display of personalized recommended content圖14 個性化推薦內容展示
3.2.2 平臺功能設計
為了更好地實現情緒交互功能,對高校學生壓力釋放方式進行調研。結果顯示,排名靠前的分別為:相互溝通、暖心陪伴、放空心緒等。因此,按照功能需求,對日記寫作平臺分別設計語音交互、虛擬寵物、四季冥想這3 個特殊功能。按照需求分析進行功能設計,經過多元化的情緒交互功能,一定程度地緩解用戶負面情緒。
語音交互功能通過建立情緒語料庫實現,精心編寫合理情感短句,共達300 余句,當用戶心情低落書寫日記時,算法模型分析結果為負向,通過情緒語料庫數據的匹配小程序頁面渲染,將情感短句用慢速溫柔的女聲語音化,起到鼓勵安撫的作用。
四季冥想頁面功能借鑒了微信小程序倒計時的方法,幫助用戶進行適度冥想。冥想可以通過自我調控練習,讓個體逐漸寧靜、明晰和專注,從整體上產生一種心理幸福感[21],達到減壓、釋放情緒的目的。按照冥想的規律和進展,鼓勵用戶進行規定時間的冥想,伴奏流水等白噪音,幫助用戶減輕焦慮、緩解疲勞。
虛擬寵物功能起陪伴作用,通過激發人類的照料行為,為人類帶來快樂和安慰[22]。共設計兩款獨具特色的虛擬寵物,不需要太多的言語交流,與寵物簡單互動,可幫助青年人群減少孤獨感,釋放一定壓力。
功能測試即測試微信小程序設計是否符合功能需求[11]。該日記寫作平臺可以實現日記新建、刪除、修改等基本功能,并且能通過情緒分析模型對日記數據進行情緒分析,實現內容智能化推薦和虛擬寵物語言交互,從而達到緩解青年人群心理壓力的目的。
當新建日記標題為“心情有點難過”,日記主體為“今天的期末考試沒有按照平時的實力發揮,考試很失敗,估計成績在班上中下游,現在很是難過,不知道該如何面對父母老師”時,如圖15 所示,情感分析算法模型分析結果為負向,在日記的標題處顯示顏色為紫色,大數據標簽匹配方向為學習方向,情緒推薦內容為“如何在考試前調整到最好狀態”,虛擬寵物語音交互結果為:”小狗提莫知道,不要因為一時失意而惶惶不安,明天的太陽依然絢爛”。平臺功能測試完成預期,基本滿足常見的情感交互需要。

Fig.15 Platform test effect圖15 平臺測試效果
隨著社會競爭加劇,人們承受的壓力也越來越大,青年人群的心理問題備受關注,如何疏導和緩解青年人群消極負面情緒尤為重要。伴隨著移動設備的不斷普及,利用云端遠程算法模型精確高效地挖掘用戶信息,分析出有價值的數據,實現有指向性的溝通、有判別性的針對,以及合理的情感反饋將有助于青年人群減輕焦慮、緩解壓力。
本文從網絡日記交互的角度,對青年人群的心理問題予以合理解決,設計了一種基于深度學習進行情感分析的小程序日記寫作平臺,幫助青年人群合理緩解壓力,維持良好心理狀況。采用深度神經網絡算法對帶有情感傾向的日記數據進行學習,得到情感傾向分析的算法模型,并提供多種情緒交互方式,為青年人群提供釋放壓力的有效途徑。同時,本文研究也為青年人群心理問題研究提供了新的視角,以及理論和實踐上的參考。