胡榮, 崔榮一, 趙亞慧
( 延邊大學(xué) 工學(xué)院, 吉林 延吉 133002 )
情感分析是指通過機(jī)器學(xué)習(xí)或者自然語言處理技術(shù),從文本中分析出人們對實體或?qū)傩运磉_(dá)的觀點、情感、評價、態(tài)度和情緒[1].目前,情感分析被廣泛應(yīng)用于消費(fèi)產(chǎn)品分析、社會輿情監(jiān)控、股票市場預(yù)測和客戶反饋跟蹤等領(lǐng)域.其主要的分析方法為基于語義的方法和基于機(jī)器學(xué)習(xí)的方法.基于語義的方法主要是通過情感詞典計算文本的情感值,以此為依據(jù)確定文本的情感傾向[2].基于機(jī)器學(xué)習(xí)的方法主要是通過提取文本中的特征,利用機(jī)器學(xué)習(xí)中的分類算法預(yù)測文本的情感傾向[3].近年來,有關(guān)情感分析的相關(guān)研究取得了一些成果.例如:張磊[4]提出了一種基于主題的評價信息分類方法,在評價信息明確的情況下該方法可以取得較好的分類效果,但存在少數(shù)評價信息和主題不相關(guān)的情況.楊伊態(tài)[5]提出了一種基于半監(jiān)督學(xué)習(xí)的細(xì)粒度屬性獲取模型對評價信息進(jìn)行屬性分類的方法,該分類算法獲取細(xì)粒度屬性集和分類的效率雖然較好,但過于依賴數(shù)據(jù)的質(zhì)量.劉磊等[6]提出了一種基于集成學(xué)習(xí)的情感模糊計算分類方法,該方法的分類效果優(yōu)于單分類器,但需要構(gòu)造極性量化情感字典和量化情感詞典.
截至2016年,大規(guī)模在線課程(Massive Open Online Course,簡稱MOOCs)平臺上已匯集了700多所學(xué)校的6 850多門課程,約有58萬學(xué)習(xí)者利用該平臺進(jìn)行了學(xué)習(xí)[7].對MOOCs評論進(jìn)行情感分析不僅有助于教育者了解學(xué)生的需要,學(xué)習(xí)者選擇適合自己學(xué)習(xí)的課程,還有助于管理者進(jìn)行平臺的建設(shè)和改善.目前,針對MOOCs評論進(jìn)行文本情感分析的研究較少,例如馮君[8]提出了一種基于規(guī)則的情感單元提取算法,該方法雖然能夠正確提取在線文本的情感單元,但不能有效提取不在規(guī)則內(nèi)的內(nèi)容.基于此,本文提出一種基于屬性權(quán)重對MOOCs評論進(jìn)行情感分析的方法,并通過某高校教務(wù)部門的應(yīng)用,驗證本文方法的合理性和準(zhǔn)確性.
為了對課程評論進(jìn)行情感分析,首先需要根據(jù)情感分析的目的對評論文本進(jìn)行屬性分類.本文經(jīng)過調(diào)研分析,將課件、語速、上課方式、時間安排、學(xué)習(xí)感受和接受度作為課程指標(biāo).綜合MOOCs評論的顯式評價對象抽取結(jié)果與調(diào)研課程指標(biāo),制定出5個適用于MOOCs課程評論的屬性,分別為視頻(V)、課件(C)、學(xué)習(xí)者(L)、平臺(P)和授課方式(M).通過分類器訓(xùn)練,將每個課程評論劃分為概率最大的所屬類別.另外,為了保證屬性分類的正確性,引入信息熵,即通過計算文本的信息熵,判斷某一評論屬于某一類別是否具有合理性,以及是否需要實行軟分類.
Word2vec模型是Mikolov提出的一種基于大規(guī)模語料庫計算詞向量的工具[9],它包括CBOW和Skip-gram 2個訓(xùn)練模型.這2個模型結(jié)構(gòu)相似,都包括輸入層、隱含層和輸出層[10],如圖1所示.因CBOW模型能夠精確地度量詞與詞之間的關(guān)系,挖掘詞與詞之間的聯(lián)系,因此本文選用該模型作為文本的表示模型.CBOW模型的目標(biāo)是最大化平均對數(shù)似然函數(shù)L:
(1)
公式(1)表示在上下文為wt-k,…,wt+k時,模型對當(dāng)前詞wt進(jìn)行預(yù)測的可能性.
圖1 CBOW和Skip-gram模型結(jié)構(gòu)
應(yīng)用TextCNN作為分類器對課程評論進(jìn)行分類,以此得到評價句所對應(yīng)的屬性類別.Textcnw模型主要包括4個層面:數(shù)據(jù)預(yù)處理層、卷積層、池化層和softmax分類層,層與層之間的關(guān)系是底層為上層提供服務(wù)[11].因TextCNN結(jié)構(gòu)中的卷積層對信息敏感,連續(xù)的卷積池化層可以獲取局部的敏感信息,加之其網(wǎng)絡(luò)結(jié)構(gòu)高效、簡單且降維速度快,因此本文選取卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行文本分類[12].使用卷積神經(jīng)網(wǎng)絡(luò)模型進(jìn)行分類的步驟如下:
1)將評論語句向量化.利用詞嵌入的方法得到每個詞xi的向量表示,向量的維度為K.對于長度為n的句子,其向量表示為
x1:n=x1⊕x2⊕…⊕xn.
(2)
用矩陣T(n×k)表示評論短文本,其中n是文本的長度,k是詞嵌入的維度.
2)將帶有多個卷積核的卷積層進(jìn)行特征提取及特征映射.利用卷積核操作進(jìn)行特征提取,映射得到特征輸出,為:
ci=f(w·xi:i+h-1+b).
(3)
其中w表示卷積核,對于包含h個單詞的滑動窗口可表示為xi:i+h-1.每次通過滑動h個單詞,得到特征ci, 每個卷積核對句子進(jìn)行h個單詞的窗口滑動,分別得到對應(yīng)的特征映射,為:
c=[c1,c2,…,cn-h+1].
(4)
3)選擇文本特征.采用最大池化處理進(jìn)行特征選擇,即在每個卷積核得到的特征映射向量中分別挑選出最大值,其目的是提取出每個特征映射中最重要的信息.最大池化處理公式為
C*=maxi{ci}.
(5)
4)利用全連接層獲得類別概率.將池化層得到的特征通過全連接softmax層后,可得到每個類別的概率p.全連接的輸入是特征向量,輸出的是判斷的類別概率,其計算公式為
p=softmax(wcv+bc).
(6)
熵值H的計算公式為
(7)
熵值越小,確定性越好,實例的分類可信度越高[13].
為了確定每個評論文本的情感傾向性,需要對每個文本進(jìn)行基于情感詞典的極性計算.首先通過極性計算可以統(tǒng)計正向文本、負(fù)向文本、中評文本和無效文本在某一課程評論中(按授課方式、視頻、平臺、課件和學(xué)習(xí)者5個屬性)所占的比例,然后從教育者角度、學(xué)習(xí)者角度和平臺3個方面對該課程進(jìn)行評分.
目前我國還沒有通用的情感詞典,相關(guān)研究大多是在某一情感詞典(如HowNet中英文情感詞典、大連理工大學(xué)的中文情感詞匯本體庫、臺灣大學(xué)的NTUSD和知網(wǎng)的情感分析用詞語集)的基礎(chǔ)上進(jìn)行融合和擴(kuò)展[14].由于這些詞典都是根據(jù)中文的正式用語制定的,難以完全適用于網(wǎng)絡(luò)文本的情感分析,因此本文基于知網(wǎng)的情感分析用詞語集[15],從課程評論語料中添加部分領(lǐng)域的情感詞,以此構(gòu)建MOOCs課程評論的情感詞典.部分課程評論領(lǐng)域情感傾向的詞語示例如表1所示.
表1 課程評論基礎(chǔ)情感詞表
本文依據(jù)否定詞詞典、副詞詞典和課程評論基礎(chǔ)情感詞典中的情感詞的極性來判斷文本的極性.將傾向積極、肯定和贊揚(yáng)等正面的文本看作正例,將傾向消極、否定和批評等負(fù)面的文本看作負(fù)例[16].如果一個評論文本中不含情感傾向的詞語,則視為中性文本,不作為情感傾向分析的對象.
評論文本的極性計算過程如下:
Input分詞后的測試文檔、情感詞匯表、程度副詞表、否定詞表
output結(jié)果_正向文檔、結(jié)果_負(fù)向文檔、結(jié)果_中性文檔、結(jié)果_無法判斷
file=open(“test.txt”)
for each sentence in file do
for each word in current sentence do
if word exists in emtion_pos_dict then
score=正向情感詞典中對應(yīng)的情感強(qiáng)度
pos_word_num+=1
else if word exists in emtion_neg_dict then
score=負(fù)向情感詞典中對應(yīng)的情感強(qiáng)度
neg_word_num+=1
else then
continue
endif
if word 前3個詞存在否定詞(可疊加) then
score*=-1
endif
if word 前3個詞存在程度副詞(可疊加) then
score*=程度副詞表中對應(yīng)的強(qiáng)度值
endif
if word exists in emtion_pos_dict then
result_pos+=score
else if word exists in emtion_neg_dict then
result_neg+=score
endif
endfor
if pos_num==0 and neg_num==0 then
將當(dāng)前sentence輸出到“結(jié)果_無法判斷.txt”中
else then
result_total=(result_pos+result_neg)/(pos_num+neg_num)
if pos_num>neg_num then
result=(result_pos/pos_num+result_total)/2
else if pos_num result=(result_neg/neg_num+result_total)/2 else if pos_num==neg_num then result=result_total endif if result>0 then 將當(dāng)前sentence輸出到“結(jié)果_正向.txt”中 else if result<0 then 將當(dāng)前sentence輸出到“結(jié)果_負(fù)向.txt”中 else if result==0 then 將當(dāng)前sentence輸出到“結(jié)果_中性.txt”中 endif endif endfor 利用屬性權(quán)重進(jìn)行情感分析時,因研究角度不同,同一屬性所占的權(quán)重會有所不同.因此,在對某一課程進(jìn)行評價時,需要從教育者角度、學(xué)習(xí)者角度和平臺角度,依據(jù)不同屬性文本所占的權(quán)重進(jìn)行評分. 首先,根據(jù)不同情感傾向文本的比例和極性計算的正確率計算出所有屬性的得分.單個課程評論屬性的計算公式為 Score=positive*acc_pos+(-negative*acc_neg). (8) 其中positive表示某一屬性的正向評論文本比例,negative表示一個屬性的負(fù)向評論文本比例,acc_pos表示計算1 000條正向評論極性的準(zhǔn)確率,acc_neg表示計算1 000條負(fù)向評論極性的準(zhǔn)確率. 其次,確定各屬性所占的權(quán)重.本文基于微軟新推出的搜索引擎Bing,通過限定領(lǐng)域構(gòu)造術(shù)語的聯(lián)合檢索式,檢索課程評論分別與視頻、授課方式、學(xué)習(xí)者、平臺和課件在MOOCs領(lǐng)域的檢索的命中數(shù)[17].屬性權(quán)重的確定是基于各屬性與課程評論在Bing上關(guān)于MOOCs領(lǐng)域所檢索出來的命中數(shù)與與其相關(guān)的屬性檢索出的總命中數(shù)之比.各屬性的檢索式為(“課程評論”NEAR“屬性”)AND(MOOCs). 從教育者角度,課程評分基于視頻、授課方式、學(xué)習(xí)者、課件4個屬性進(jìn)行計算,計算公式為 Score_edu=a1*S_vedio+a2*S_method+a3*S_learner+a4*S_courseware. (9) 其中a1表示視頻在教育者角度所占的權(quán)重,a2表示授課方式在教育者角度所占的權(quán)重,a3表示學(xué)習(xí)者在教育者角度所占的權(quán)重,a4表示課件在教育者角度所占的權(quán)重. 從學(xué)習(xí)者角度,課程評分基于視頻、授課方式、課件3個屬性進(jìn)行計算,計算公式為 Score_learner=b1*S_vedio+b2*S_method+b3*S_courseware. (10) 其中b1表示視頻在學(xué)習(xí)者角度所占的權(quán)重,b2表示授課方式在學(xué)習(xí)者角度所占的權(quán)重,b3表示課件在學(xué)習(xí)者角度所占的權(quán)重. 從平臺角度,課程評分只需要考慮平臺這一個屬性即可,其計算公式為 Score_plat=positive*acc_pos+(-negative*acc_neg). (11) 實驗數(shù)據(jù)為2017年和2018年已經(jīng)結(jié)課的所有MOOCs課程的學(xué)生評論(人工收集).在收集的數(shù)據(jù)中去除重復(fù)發(fā)表的樣本和其他無效的數(shù)據(jù)樣本,并將處理過的課程評論數(shù)據(jù)形成一個總的數(shù)據(jù)集Data.將評論數(shù)大于2 000的課程單獨(dú)存放.部分原始課程評論數(shù)據(jù)如表2所示. 表2 部分原始文本數(shù)據(jù) 1)語料預(yù)處理.首先利用結(jié)巴分詞對數(shù)據(jù)集(18 000條評論)進(jìn)行分詞,去停用詞;然后對數(shù)據(jù)集進(jìn)行word2vec詞向量的訓(xùn)練,獲得詞向量模型;最后使用Stanford Corenlp對5 500條課程評論進(jìn)行分詞和去停用詞處理,并將預(yù)處理后的評論作為實驗的訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù). 對評論句屬性類別進(jìn)行人工劃分時,當(dāng)屬性類別判定出現(xiàn)不一致時,以少數(shù)服從多數(shù)確定評論所屬類別.實驗數(shù)據(jù)如表3所示. 表3 屬性類別數(shù)據(jù) 2)文本表示.預(yù)處理完成實驗語料后,將每個詞語作為一個獨(dú)立的單元用以word2vec輸入.本文經(jīng)過多次實驗得出word2vec的最優(yōu)訓(xùn)練參數(shù):詞向量維度為50, 最小窗口為1, 迭代次數(shù)為15, sample值為0.001. 3)分類器訓(xùn)練.由于TextCNN的輸入是矩陣多維向量,因此需要對訓(xùn)練評論文本進(jìn)行建模.定義每個評論文本為T(n×k)=w1?w2?w3?…?wn, 其中T(n×k)是評論文本的矩陣表示,n是文本的長度,k是詞嵌入的維度.實驗中每個屬性各選取700條評論,共計3 500條評論.分類器訓(xùn)練時,k取50,n取3 500. 4)分類器測試.每個屬性選取400條評論,共計2 000條課程評論.測試時先對評論進(jìn)行預(yù)處理(用詞嵌入表示評論),然后再輸入TextCNN模型進(jìn)行測試,以此得出評論的分類結(jié)果以及每一個測試文本所對應(yīng)的信息熵.對部分分類結(jié)果以及對應(yīng)的信息熵進(jìn)行人工檢測,結(jié)果表明以信息熵作為分類的參考依據(jù)是可靠的. 5)極性計算.根據(jù)上述提出的極性計算算法對每一類屬性評論文本進(jìn)行情感極性計算,得到每一類屬性文本的正向文本、負(fù)向文本、中性文本和無效文本的比例. 6)計算課程得分.根據(jù)各屬性和課程評論在Bing上共同檢索出的命中數(shù)與全部屬性檢索的總命中數(shù)之比,確定各屬性在3個研究角度中所占的權(quán)重.依據(jù)公式(8)計算出課程各屬性的得分,依據(jù)公式(9)計算課程在教育者角度的得分,依據(jù)公式(10)計算課程在學(xué)習(xí)者角度的得分,依據(jù)公式(11)計算課程在平臺角度的得分.最后將不同角度(教育者角度、學(xué)習(xí)者角度和平臺角度)計算出的分?jǐn)?shù)轉(zhuǎn)化為5分制的分值. 選取3 500條課程評論作為訓(xùn)練數(shù)據(jù),2 000條課程評論作為測試語料,并依據(jù)課程屬性(授課方式、課件、平臺、學(xué)習(xí)者、視頻)對評論進(jìn)行屬性分類.屬性分類結(jié)果顯示,分類的正確率為89.9%.為了進(jìn)一步證明本文分類方法的合理性和可靠性,本文對測試語料(2 000條)的信息熵分布情況進(jìn)行實驗驗證,所得信息熵分布情況見表4.由表4可知,96.25%的文本信息熵小于1.由公式(7)可知,當(dāng)某個文本屬于某一個類的概率大于0.5時,其信息熵小于1.由此說明,本文的屬性分類方法是合理的,可作為后續(xù)課程評論評分(3個研究角度)的依據(jù)之一. 表4 屬性分類的熵分布情況 在收集的課程評論中,人工挑選出1 000條正向評論和1 000條負(fù)向評論,然后基于情感詞典計算課程評論極性的正確率,結(jié)果見表5.由表5結(jié)果可以看出,本文方法對課程評論極性判斷準(zhǔn)確、有效,因此本文方法可作為判斷未知評論極性的方法. 表5 評論的極性計算結(jié)果 % 選取python課程的2 000條課程評論進(jìn)行情感分析.情感分析時首先進(jìn)行屬性分類,然后計算各文本極性.屬性分類及極性計算結(jié)果如表6所示. 表6 python課程的屬性分類及其極性計算結(jié)果 分別從教育者、學(xué)習(xí)者和平臺3個研究角度,對python課程進(jìn)行課程評分.以(“課程評論”NEAR“視頻”)AND(MOOCs)、(“課程評論“NEAR”授課方式”)AND(MOOCs)、(“課程評論“NEAR”學(xué)習(xí)者”)AND(MOOCs)、(“課程評論“NEAR”課件”)AND(MOOCs)、(“課程評論“NEAR”平臺”)AND(MOOCs)分別在Bing上檢索,得到的檢索命中數(shù)分別為5 460、4 610、3 290、13 700、5 270. 教育者角度的各屬性所占的權(quán)重如表7所示.表7中的各屬性權(quán)重值表示在Bing上檢索視頻和課程評論共同出現(xiàn)的命中數(shù)與視頻、授課方式、學(xué)習(xí)者和課件分別和課程評論檢索出的命中數(shù)的和之比,例如視頻的權(quán)重計算為: 5 460/(5 460+4 610+3 290+13 700)=0.20.根據(jù)公式(8)和公式(9),計算出教育者角度的百分制得分為69.45, 5分制得分為3. 學(xué)習(xí)者角度的各屬性所占的權(quán)重如表8所示.表8中的各屬性權(quán)重值表示在Bing上檢索視頻和課程評論共同出現(xiàn)的命中數(shù)與視頻、授課方式和課件分別與課程評論檢索出的命中數(shù)的和之比,例如視頻的權(quán)重計算為: 5 460/(5 460+4 610+13 700)=0.23.根據(jù)公式(8)和公式(10),計算出學(xué)習(xí)者角度的百分制得分為69.45, 5分制得分為3. 表7 教育者角度的各屬性所占權(quán)重 表8 學(xué)習(xí)者角度的各屬性所占權(quán)重 平臺角度的評分主要取決于平臺.根據(jù)表6和公式(11),計算得出平臺角度的百分制得分為46.93, 5分制得分為2. 各角度(教育者、學(xué)習(xí)者、平臺)的評分值與python課程(在MOOCs平臺上)的評價結(jié)果的對應(yīng)關(guān)系如表9所示.根據(jù)上述不同角度計算出的python課程得分,可得到以下評價結(jié)論:從教育者角度(3分)和學(xué)習(xí)者角看(3分)來看,該課程評價良好;從平臺角度來看(2分),課程平臺建設(shè)有待進(jìn)一步提高. 表9 評分值與評價結(jié)果的對應(yīng)關(guān)系 本文以授課方式、視頻、學(xué)習(xí)者、平臺和課件5個屬性對MOOCs課程評論進(jìn)行情感分析.在分析過程中,利用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行屬性分類,并引入信息熵判定分類屬性.經(jīng)實驗測定,本文屬性分類的正確率是89.9%.在情感極性計算過程中,正向評論的正確率達(dá)到89.1%,負(fù)向評論的正確率達(dá)到88.4%,驗證了課程評論情感詞典的有效性和實用性.在課程總體評價方面,利用屬性在Web網(wǎng)頁中的共現(xiàn)頻率確定了5個屬性的權(quán)重,并從教育者、學(xué)習(xí)者和平臺3個角度進(jìn)行了評分計算.將本文提出的情感分析方法應(yīng)用于某高校MOOCs課程評論,所得結(jié)果客觀、合理.在今后的研究中,我們擬將機(jī)器學(xué)習(xí)方法與情感詞典相結(jié)合進(jìn)行極性計算,以進(jìn)一步提高極性計算的正確率和課程評價的準(zhǔn)確性.2.3 基于屬性權(quán)重的情感分析
3 實驗及分析
3.1 實驗數(shù)據(jù)的采集
3.2 實驗過程
3.3 實驗結(jié)果及分析
4 結(jié)論