張 娜,喬德聰
(河南城建學院 計算機與數(shù)據(jù)科學學院,河南 平頂山 467036)
文本情感分析又稱為意見挖掘、傾向性分析等,是對主觀性文本進行挖掘、分析和推理的過程。研究來自在線學習平臺的文本情感分析可以指導個性化教學。在大數(shù)據(jù)背景下,應用個性化教學的國內外研究項目日趨增多,如表1所示。
這些經(jīng)典的研究項目可分為以下3類[1]:個性化學習與教學類數(shù)據(jù)挖掘技術、學習預測與評估類以及學習互動分析。主要分析方法有5類:(1)統(tǒng)計分析方法:用以分析學習者的成績達到課程目標的百分比,學習時長及觀看知識點情況,以及他們之間的關系;李帥[2]分析了東北大學MOOC平臺上的學習行為數(shù)據(jù);(2)內容分析法:分析學習者的知識掌握情況,在線互動情況,產(chǎn)生困難的原因;(3)社交網(wǎng)絡分析法:分析學習者之間的互動關系,分析其對于學習者情感和認知的影響;(4)話語分析法,用于分析學習者在線學習平臺上的語言,進而分析學習者的學習特征和情感態(tài)度情況;(5)文本分析法:分析目前網(wǎng)絡學習環(huán)境中以文本為主的非結構化數(shù)據(jù)。文本數(shù)據(jù)挖掘的典型研究如表2所示。這5類方法分別從認知、行為、情感這3個維度,對學習者的具體學習情況進行分析。
表1 社交網(wǎng)絡相關的研究
表2 文本數(shù)據(jù)挖掘技術相關的研究
文章利用統(tǒng)計分析和文本分析兩種方法,通過分析MOOC平臺課程評論的極性程度,將好評和差評信息及時反饋給授課教師,針對性地幫助教師改善課程內容,提高課程質量;同時,平臺也可以從整體觀察不同學科的好評比例,在引進和改善師資力量方面提供有效參考。
1.1.1 軟件環(huán)境
在設計過程中,需要使用用于爬取數(shù)據(jù)的PyCharm軟件、具有良好穩(wěn)定性的Chrome瀏覽器、用于保存信息的數(shù)據(jù)庫Mysql、動態(tài)爬取信息用到的Selenium WebDriver庫和一些BeautifulSoup、PyQuery、time等常用庫。詳細信息見表3。
表3 軟件配置信息
1.1.2 設計總流程
程序初始化后,打開慕課網(wǎng)課程分類頁面(http://www.icourse163.org/category/all),構建link_list,觀察任意課程頁面,將想要捕捉的內容分為課程信息和評論信息。其中,課程信息包括:學科大類、課程名、授課教師和網(wǎng)頁地址;評論信息包括:學生的昵稱、學習者的評論內容、對課程的評分、發(fā)表評論時間、開課班次以及評論點贊數(shù)。爬取的過程,當頁信息獲取完畢后,將自動跳轉到下一頁,在最后一頁時停止。采集到的信息通過insert語句儲存到Mysql數(shù)據(jù)庫中。整體的流程如圖1所示。
圖1 MOOC爬取流程
1.1.3 爬取內容
本次共爬取到有效數(shù)據(jù)68 367條,包括來自國家精品、計算機、社會科學、生物醫(yī)學等12種領域的學科課程,數(shù)千位講師、副教授、教授主講的千余門課程信息和近七萬條評價,將爬取到的所有信息,保存在Mysql數(shù)據(jù)庫中,部分數(shù)據(jù)如圖2所示。
圖2 數(shù)據(jù)舉例
1.2.1 數(shù)據(jù)清洗
數(shù)據(jù)清洗是一個重新檢查和驗證數(shù)據(jù)的過程,目的在于清除某些錯誤的數(shù)據(jù)、不合格的數(shù)據(jù)以及不合理的數(shù)據(jù),即“臟”數(shù)據(jù),例如:拼寫錯誤、空值等。數(shù)據(jù)清洗可以剔除格式錯誤、不滿足要求的數(shù)據(jù),從而提高數(shù)據(jù)分析的效率。
1.2.2 數(shù)據(jù)預處理過程
首先引入需要用到的基本庫,如正則表達式re庫,讀文件的Pandas庫、分詞工具jieba庫和編碼轉換codecs庫等。具體步驟為:
(1)利用正則表達式。將有意義的字母、數(shù)字、漢字輸出,命令如下:
leave_valid_pattern = re.compile("[^/u4e00-/u9fa5^a-z^A-Z^0-9]")
(2)調整文本的格式和字符。去除無關符號和特殊字符,保留有價值的中文文本。
(3)去除停用詞并分詞。停用詞是指在檢索的過程中,移除某些特定的字或者詞,從而使NLP數(shù)據(jù)、文本變得更有效率,同時也節(jié)省了存儲空間。預處理的效果如圖3所示。
圖3 預處理效果舉例
圖4 總樣本極性比例情況
1.2.3 情感詞性標注
詞性標注是指在給定句子中分析每個詞的語法類別,確定其詞性并加以標注的過程??梢允刮谋驹谠~性標注后,方便進行分類分析和統(tǒng)計,帶來更多便利,發(fā)揮良好作用。詞性標注可以照搬分詞的工作,在漢語中,多數(shù)詞僅一個詞性,結果更加準確;不同于英文,相同的單詞可能有著積極和消極兩種詞意,或是多種詞性分別表示不同的意思,容易產(chǎn)生歧義。
本文采用Python中的SnowNLP庫完成中文情感詞性標注任務,閾值設置為threshold=0.5。
1.2.4 樣本統(tǒng)計
通過分類上一步詞性標注結果,將label值為1的數(shù)據(jù)定義為積極(positive),不為1的數(shù)據(jù)定義為消極(negative),同時使用seaborn可視化庫輸出積極和消極的柱狀圖,如圖4所示。結果顯示超過6萬的好評數(shù)據(jù),大幅超過小于一萬的差評數(shù)據(jù)。
由圖4可知,極性比例嚴重失衡,這會導致訓練結果出現(xiàn)較大誤差,因此需要調整正、負樣本的配比,平衡兩種樣本。首先將閾值調整為0.6,設置percent(多數(shù)類別下采樣的數(shù)量相對于少數(shù)類別樣本數(shù)量的比例)的值為1.5,使用len()函數(shù)從低到高返回一個隨機整型數(shù),采取上采樣的方法,再次使用seaborn方法輸出平衡后的極性比例柱狀圖,如圖5所示。
圖5 調整閾值后樣本極性比例情況
圖6 關鍵詞云圖
由圖5可以看出:消極數(shù)據(jù)選取接近8 000條,積極數(shù)據(jù)10 000多條,兩者比例適中,可以進行下一步詞向量的訓練。最后用shape()方法了解到,全部數(shù)據(jù)為17 125條,每條各有14個屬性。
1.2.5 云圖制作
詞云是詞語頻率可視化的一種方法,其基于Python的WorldCloud庫,同時也用到了matplotlib.pyplot方法來制作。其過程為:根據(jù)輸入的字符串,對詞頻進行統(tǒng)計,并用不同的大小顯示出來,輸出為指定的圖片。詞云的樣式由參數(shù)設定,本次設計采用白色底部,楷體字,圖片為10×10的矩形,其他參數(shù)如最大、最小字體的字號,顯示的最大單詞量等均為默認設置。最后使用plt.show()方法輸出詞云,效果如圖6所示。
由圖6可以看出:出現(xiàn)頻次較多的關鍵詞,其在詞云圖中的位置越靠近中間,且字體越大。因此可以推斷出,頻次較多的詞越多,生成的詞云圖將會越密集,詞與詞、文字本身的空隙會越來越少。
Word2Vec是Google團隊發(fā)布的開源詞向量工具,主要包含詞袋模型和跳字模型兩種模型,可以將文本詞匯轉化成含有一定語義信息的高維實數(shù)向量,更好地表達不同詞之間的相似和類比關系。
參數(shù)的設置作用于結果,這里參考較為常見的參數(shù)設置方法以及訓練文本的特征,對表4參數(shù)進行設置。
表4 TextCNN超參數(shù)
文中采用準確率(Accuracy)、精確率(Precision)、召回率(Recall)和F值(F1-Measure)作為評價指標來權衡文本情感分析的結果。四種指標的公式見式(1)~式(4)。其中,TP 指積極預測為積極情感的數(shù)量,F(xiàn)P 指消極預測為積極情感的數(shù)量,F(xiàn)N指積極預測為消極情感的數(shù)量,TN 指消極預測為消極情感的數(shù)量。
(1)
(2)
(3)
(4)
在對數(shù)據(jù)的爬取以及對數(shù)據(jù)樣本標注情感閾值之后,統(tǒng)計得到本次共爬取到有效數(shù)據(jù)68 367條,包括來自國家精品、計算機、社會科學、生物醫(yī)學、教學方法、農學、外語、法律、藝術設計等12種領域的學科課程,數(shù)千位講師、副教授、教授帶領的千余門課程信息和近七萬條的評價,對數(shù)據(jù)進行清理、標注情感后,保留了有效數(shù)據(jù)17 125條,其中積極數(shù)據(jù)有11 294條,占總數(shù)據(jù)的65.95%;消極數(shù)據(jù)有5 831條,占總數(shù)據(jù)的34.05%。其中占比最多的學科為teaching-method,共有11 506條評論數(shù)據(jù),占總數(shù)據(jù)的67.19%;占比最少的學科為agriculture,共有43條數(shù)據(jù),占總數(shù)據(jù)的0.25%。12門課程具體評論數(shù)及其所占的比例如圖7所示。
圖7 課程分類占比圖
在確定使用的數(shù)據(jù)中,通過劃分好的情感極性,對這12種課程大類的極性進行分析,并繪制成柱形圖,如圖8所示。
圖8 樣本總體極性分布
由圖8可以看出:絕大部分課程大類中,積極評論數(shù)量都高于消極的評論數(shù)量,再根據(jù)各大類學科積極評論的比例,繪制柱狀圖如圖9所示。
由圖9可以看出:historiography大類積極評論的比例最高,達到了68.84%;而law大類積極評論占比最低,僅為47.13%,是12個學科中,唯一占比低于50%的學科。其中有8個學科的積極占比都超過了60%,排除數(shù)據(jù)數(shù)量較小的law學科(87條數(shù)據(jù))和agriculture學科(43條數(shù)據(jù))外,可以總結出:
(1)慕課網(wǎng)中teaching-method大類的受眾學生群體比例最高,也是慕課網(wǎng)中最受歡迎的學科分類,學生十分積極;law和agriculture大類的受眾學生群體比例最低,可以推斷出這兩個專業(yè)學生活躍度較低。
(2)根據(jù)積極評論的占比可以得出,大部分學生給予了認可;而負面評論的學生部分因為設備無法連接網(wǎng)絡、沒有聲音等技術問題給出了差評,其他意見也將幫助授課教師更好地完善課程內容。
(3)對于17 125條評論中僅出現(xiàn)87條的law學科和43條的agriculture學科,平臺可以針對性地分析這兩門學科的課程設置,提供多樣化學習方案,吸引更多學生加入學習。
圖9 各大類學科積極評論占比圖
為了解決深度學習過程中,損失值波動無法達到最小的問題,設計采用ReduceLROnPlateau方法調整學習率,監(jiān)測損失值的變化,當評價指標趨于穩(wěn)定時,降低學習率。
同時,防止過擬合是訓練模型中的核心任務,為了改善過擬合泛化性能較差的特點,本次設計中采用Early stopping方法,通過切斷迭代次數(shù)來防止過擬合,即訓練停止于迭代收斂之前,無須等到驗證集誤差最小化。同時,在網(wǎng)絡結構的定義中,加入Dropout層,以0.4的概率隨機斷開輸入神經(jīng)元,起到防止過擬合的作用。
為了保證對比結果的準確性,在調參方面,3種模型采用相同的詞向量維度、文本定長、dropout等參數(shù),以及相同的編譯模型方式,在網(wǎng)絡層的調參和全連接層的激活函數(shù)方面存在不同;另一方面,本次設計按照73的比例設置訓練集和驗證集,在13 700條總數(shù)據(jù)中,包含9 590個訓練樣本以及4 110個驗證樣本,迭代次數(shù)epoch設置為10,同時作用于3種模型。
3.3.1 TextCNN訓練結果
導入劃分好的訓練集和驗證集,加入降低學習率和防止過擬合方法,使用model.fit()輸入訓練模型,設置好各項參數(shù),使用print方法輸出精確率、準確率、召回率、F1值和損失值。經(jīng)歷了10次迭代之后,該模型的準確率由85.76%提高到了99.22%,并趨于穩(wěn)定;loss值由最初的1.07降到了0.04;精確值由86.73%提高到了99.59%;召回率由93.72%提高到99.24%;F1值由89.68%提高到99.41%。X軸表示迭代次數(shù),Y軸表示損失值,點表示訓練損失,折線代表驗證損失,繪制點折圖,如圖10所示。再以迭代次數(shù)為橫坐標,準確值為縱坐標,點表示訓練F1值,折線代表驗證F1值,繪制點折圖,如圖11所示。
圖10 訓練集和驗證集loss值點折圖
圖11 訓練集和驗證集F1點折圖
3.3.2 LSTM訓練結果
采用與TextCNN相同的訓練模型過程,經(jīng)過迭代后,得到該模型的準確率穩(wěn)定在65.81%;loss值由最初的0.648降到了0.643;精確值由65.38%提高到了65.81%;召回率穩(wěn)定在1.0;F1值由78.72%提高到79.23%。訓練集和驗證集損失值的點折圖如圖12所示,其F1點折圖如圖13所示。
圖12 訓練集和驗證集loss值點折圖
圖13 訓練集和驗證集F1點折圖
3.3.3 BiLSTM-Self-Attention訓練結果
經(jīng)歷了10次迭代之后,該模型的準確率由78.70%提高到94.97%;loss值由最初的0.445降到了0.127;精確值由80.94%提高到了96.10%;召回率由90.51%提高到了96.28%;F1值由84.87%提高到96.14%。訓練集和驗證集的損失值如圖14所示,訓練集合驗證集的F1點折圖如圖15所示。
圖14 訓練集和驗證集loss值點折圖
圖15 訓練集和驗證集F1點折圖
將3個模型的各項數(shù)據(jù)結果繪制成表格,綜合對比,結果如表5所示。
表5 實驗結果對比
在訓練時間方面,TextCNN和LSTM所用時間較短,平均40 s可以完成一次epoch,而BiLSTM完成一次epoch平均需要95 s。結合表5的信息,可以得出:
(1)TextCNN充分發(fā)揮其提取文本局部特征的特點,利用不同大小的卷積核來獲取句子中的核心信息,以及較強的特征抽取能力[14],在本次實驗中,有著較短的訓練時間、較高的準確率和較低的損失值,有效地處理空間信息,是本次實驗中的最優(yōu)模型。
(2)LSTM實驗結果沒有達到預期,映射出調參中存在問題,作為損失函數(shù)的BinaryCrosse-ntropy在這里似乎并不合適;另一方面,由于LSTM自身只能學習當前詞的上文信息,無法利用文本的下文信息,然而一個詞的語義同時連接著上下文的內容,與下文信息也密不可分[15],所以這個特點也將影響最終的準確率。
(3)為了改善LSTM結構特點的不足,特引入BiLSTM,其由正向 LSTM 和反向 LSTM 組成,兩者上下疊加,前者用于學習過去的信息,后者用于學習未來的信息,在某一時刻t,同時存在兩個方向相反的門,既能夠利用t-1時刻的信息,又能夠利用到t+1時刻的信息[16]。算法實現(xiàn)上采用merge層融合,解決了LSTM不能學習后續(xù)文本的問題。同時,自注意力機制的加入,可以直接計算依賴關系,忽略詞間距,學習一個句子的內部結構,增加計算的并行性,提高訓練效率[17]?;谶@兩點的改進,BiLSTM-self-Attention在本次實驗中充分發(fā)揮其提取文本全局特征的特點,獲得了較高的準確率,結果優(yōu)于LSTM模型,在實際應用中,具有較大的使用價值。
文章從教育大數(shù)據(jù)挖掘視角出發(fā),研究基于深度學習的在線學習評論情感分析。對MOOC平臺進行評論數(shù)據(jù)爬取,并對文本數(shù)據(jù)做去除停用詞等預處理,采用SnowNLP庫完成中文情感詞性標注,用TextCNN、LSTM和BiLSTM-self-Attention分布等算法對深度學習模型進行訓練。實驗結果表明,改進后的包含自注意力機制的BiLSTM模型優(yōu)于LSTM模型,不僅能獲得較高的準確率,而且使得語言模型更加完整。