馬曉麗 劉 杰,* 周建設(shè) 駱力明, 史金生
1(首都師范大學(xué)信息工程學(xué)院 北京 100048)2(首都師范大學(xué)北京成像技術(shù)高精尖中心 北京 100048)
隨著自然語言處理相關(guān)技術(shù)的日益成熟,作文自動(dòng)評(píng)閱漸漸成為該研究領(lǐng)域中的熱點(diǎn)問題之一。在中小學(xué)作文評(píng)閱中,人工評(píng)閱涉及明確內(nèi)容、安排結(jié)構(gòu)、運(yùn)用語言、修改及書寫四部分。運(yùn)用語言這一項(xiàng)占整個(gè)作文評(píng)分的40%,而學(xué)生如何恰當(dāng)?shù)乇磉_(dá)和運(yùn)用語言和作文中的表現(xiàn)手法是息息相關(guān)的。表現(xiàn)手法的使用可以反映出作者的語言運(yùn)用能力,從而體現(xiàn)出作者語言積累的豐富程度。為評(píng)估中小學(xué)生的語言運(yùn)用能力,本文結(jié)合已有的分類器,訓(xùn)練事先已手工標(biāo)注好表現(xiàn)手法類別的文本,生成適合此領(lǐng)域的分類模型,從而預(yù)測(cè)文中表現(xiàn)手法所屬類別。將表現(xiàn)手法進(jìn)行分類研究,對(duì)作文自動(dòng)評(píng)閱系統(tǒng)給予學(xué)生反饋信息,從而實(shí)現(xiàn)個(gè)性化推薦有較大實(shí)用價(jià)值和研究價(jià)值。
短文本分類是將文本內(nèi)容相似的文本分配到一個(gè)或多個(gè)預(yù)定義的類別中。傳統(tǒng)文本分類算法通?;谙蛄靠臻g模型,將特征詞轉(zhuǎn)化為權(quán)值構(gòu)成文本的特征向量。權(quán)值的計(jì)算有多種方法,常用的有布爾和TFIDF函數(shù),以及對(duì)數(shù)和熵函數(shù)等[1]。針對(duì)表現(xiàn)手法文本較短、特征分布不均衡等特點(diǎn),本文采用引入方差的TF×IWF×IWF算法進(jìn)行文本特征提取[2]。以下文中統(tǒng)稱此算法為改進(jìn)的TFIDF算法。
針對(duì)以上權(quán)重計(jì)算得到的短文本向量具有的特征稀疏問題,本文嘗試對(duì)其進(jìn)行擴(kuò)展,目前研究者通常從語義方面對(duì)特征詞進(jìn)行擴(kuò)展[3]。文獻(xiàn)[4]和文獻(xiàn)[5]分別利用維基百科、WordNet等對(duì)短文本進(jìn)行特征擴(kuò)展。上述方法主要依據(jù)語義知識(shí)庫的概念關(guān)系進(jìn)行擴(kuò)展。由于借助外部知識(shí)庫對(duì)短文本進(jìn)行擴(kuò)展要求對(duì)應(yīng)專業(yè)領(lǐng)域知識(shí)和實(shí)時(shí)更新的主題素材,所以不適用于中小學(xué)生表現(xiàn)手法的分類研究。文獻(xiàn)[6]使用LDA提取語料主題,將主題中的詞作為短文本擴(kuò)展特征。但中小學(xué)生作文主題分散性以及數(shù)據(jù)稀疏性會(huì)導(dǎo)致LDA模型挖掘的主題不能很好地描述短文本特征。文獻(xiàn)[7]利用Word2vec模型得到每個(gè)詞與上下文建立聯(lián)系對(duì)應(yīng)的詞向量,不僅可以解決傳統(tǒng)向量空間模型的稀疏特征問題,還能引入語義特征[7]?;谝陨戏治?,本文提出合并改進(jìn)的TFIDF和加權(quán)Word2vec這兩種算法來形成表現(xiàn)手法文本的特征向量,從而改善短文本分類中存在的特征向量具有稀疏性的問題,以此提高分類的性能[8]。
如何選擇恰當(dāng)?shù)挠?jì)算權(quán)重的算法來對(duì)文本向量進(jìn)行表示,是決定分類性能的一個(gè)重要因素。TFIDF源于其計(jì)算簡(jiǎn)單、具有較高的召回率和精確率,常被選用計(jì)算特征權(quán)重[1]。TFIDF計(jì)算方法即TF×IDF,TF表示某個(gè)關(guān)鍵詞在整篇文章中出現(xiàn)的頻率。IDF表示某個(gè)關(guān)鍵詞的類別區(qū)分能力,主要用于降低所有文本中一些常見卻對(duì)文本影響不大的詞語的作用[9]。但若一個(gè)特征詞在一個(gè)類別下的文本中頻繁出現(xiàn),則可以說明該特征詞對(duì)這個(gè)類別影響程度較大,就應(yīng)該給該詞賦予更高的權(quán)重,而TFIDF算法與此相悖,這也正是TFIDF算法不足的地方[10]。因此,文中采取改進(jìn)的TFIDF表示文本特征向量。
采用不同的TFIDF算法會(huì)得到文本不同的特征表示,而文本特征表達(dá)是否準(zhǔn)確,會(huì)在很大程度上影響文本的分類性能[11]。本文選取性能最優(yōu)越的改進(jìn)的TFIDF算法,該算法基于TF×IWF×IWF公式:
(1)
式中:tfij指在文本di中特征項(xiàng)tj出現(xiàn)的次數(shù),Nj指在所有文本中特征項(xiàng)tj出現(xiàn)的總次數(shù),N指在總的文本集中所有特征詞出現(xiàn)的總和次數(shù)。
一方面是對(duì)TF的改進(jìn),提出了利用n次方根來調(diào)整詞權(quán)重對(duì)頻率的倚重;另一方面是對(duì)IWF的改進(jìn),通過引入方差的思想來計(jì)算詞i在文本d中的權(quán)重[12]:
(2)
式中:Pij代表類j中出現(xiàn)詞i的概率,Pi代表多個(gè)類中出現(xiàn)i概率的均值,N(wi)指wi在語料中出現(xiàn)的總次數(shù),N指語料中所有詞出現(xiàn)的總次數(shù),pid指代詞i在文本d中出現(xiàn)的概率,n是待定開方冪次,具體取值由實(shí)驗(yàn)來確定。
改進(jìn)的TFIDF算法通過引入方差作為數(shù)據(jù)分布是否均勻的指標(biāo)來調(diào)整特征詞在分類決策中的重要程度??紤]到方差大小會(huì)受詞頻大小的影響,此方法用方差除以該特征詞在各個(gè)類別里出現(xiàn)的詞頻總和,用來表示該特征詞在不同類別中的所占的比重差異性[13]。這樣,選取的關(guān)鍵詞更具有類別的代表性,也彌補(bǔ)了TFDIF算法的缺點(diǎn)。
Word2ve是一款用于訓(xùn)練詞向量的工具,與傳統(tǒng)的高維詞向量One-Hot Representation相比,Word2vec詞向量的維度選取一般在100~300維之間,減少計(jì)算復(fù)雜度的同時(shí)不會(huì)帶來維數(shù)災(zāi)難問題。Word2vec包含Skip_gram和CBOW兩種訓(xùn)練模型,其中:CBOW是通過上下文預(yù)測(cè)目標(biāo)詞,即輸出一些跟其有語義關(guān)系且不重復(fù)的詞;而Skip-gram是通過目標(biāo)詞預(yù)測(cè)上下文,即隨機(jī)從語料庫里面抽取多個(gè)詞,然后通過一些概率計(jì)算哪些詞組合更可能成為目標(biāo)詞語的上下文。
本文實(shí)驗(yàn)利用已有的Python工具包gensim對(duì)大規(guī)模作文訓(xùn)練。其中將輸入層窗口大小設(shè)置為5,隱藏層的神經(jīng)元數(shù)目設(shè)置為200,然后采用CBOW模型對(duì)10萬篇中小學(xué)生作文進(jìn)行訓(xùn)練得出模型結(jié)果。訓(xùn)練完畢后,詞表中的每一個(gè)word都對(duì)應(yīng)著一個(gè)連續(xù)的200維特征向量。
本文采用適用于小樣本訓(xùn)練集且具備較好泛化能力的SVM分類器。實(shí)驗(yàn)中直接使用Scikit-learn提供的SVM算法,其中核函數(shù)的選取采用Scikit-learn默認(rèn)的核函數(shù),即徑向基核函數(shù)RBF。RBF適用于小樣本訓(xùn)練集,同時(shí)樣本表示成高維或低維也同樣適用,RBF需要確定的參數(shù)相比其他核函數(shù)要少,因此會(huì)減少數(shù)值的計(jì)算困難,提高分類速度[14]。
改進(jìn)的TFIDF算法選取出來的特征項(xiàng)并不僅僅是出現(xiàn)在文本中頻率較高的詞,更是能夠區(qū)分文本類別的特征詞,因此本文的實(shí)驗(yàn)1根據(jù)式(2)來提取對(duì)分類影響較大的詞匯特征信息來表征文本特征向量[15]。
使用改進(jìn)的TFIDF算法(n的取值由實(shí)驗(yàn)確定為1)求得每篇短文本di,用改進(jìn)TFIDF算法得到的的特征向量,用Tfidf(di)表示,數(shù)學(xué)表示如下:
Tfidf(di)=
(3)
式中:n是所有的特征詞條個(gè)數(shù),wt是由式(2)計(jì)算得出的權(quán)重,t取值為1,2,…,n,拼合所有單詞權(quán)重構(gòu)成文本d的向量表示。
由于構(gòu)建的特征詞庫約2 000個(gè),這意味著每個(gè)表現(xiàn)手法文本都會(huì)用一個(gè)長度為2 000維的向量來表示,向量的大部分會(huì)被0填充,因此需近一步在此基礎(chǔ)上使用Word2vec模型對(duì)上述算法得到的稀疏向量進(jìn)行文本特征擴(kuò)展。
Word2vec是一種考慮上下文語義然后為每個(gè)單詞聚集具有相似含義單詞的工具。在經(jīng)過足夠的數(shù)據(jù)訓(xùn)練后,它會(huì)為詞表中的每個(gè)單詞生成一個(gè)較低維的連續(xù)稠密向量,如圖1所示(每一行代表每一個(gè)單詞相應(yīng)的200維向量)。
圖1 Word2vec訓(xùn)練結(jié)果
這樣,該模型可以為那些出現(xiàn)在表現(xiàn)手法文本但是未出現(xiàn)在特征詞庫的詞,通過找到語義上的相似詞來增加權(quán)重,從而將之前的權(quán)重為0的詞現(xiàn)在已有了特征值。同時(shí)給已有特征值的詞語擴(kuò)展相似詞來增加其在類別中權(quán)重,從而使得此特征詞更具有類別區(qū)分程度。
本文利用該模型對(duì)2.1節(jié)中得到的文本向量Tfidf(di)進(jìn)行特征擴(kuò)展。使用Word2vec模型訓(xùn)練大規(guī)模語料得到模型結(jié)果,從中取得文本di中的每個(gè)單詞的詞向量表示,并將di中所有詞向量累加求和平均得到文本di的Word2vec算法表示,用Word2vec(di)表示,公式如下:
(4)
式中:t是di文本中的詞語,t的取值為1,2,…,n,每個(gè)詞語的向量表示為200維。累加時(shí),類似矩陣的加法規(guī)則,將每個(gè)詞語對(duì)應(yīng)的向量看成1×200的矩陣,然后將矩陣每一行上列元素對(duì)應(yīng)一一相加。
合并改進(jìn)的TFIDF和Word2vec,也就是將每個(gè)表現(xiàn)手法用式(3)、式(4)式子計(jì)算得到的向量表示拼接起來作為該文本di的特征向量,然后使用SVM分類器進(jìn)行實(shí)驗(yàn)2,用Tfidf_Word2表示,公式如下:
Tfidf_Word2(di)=Tfidf(di)+Word2(di)
(5)
此時(shí)一個(gè)表現(xiàn)手法的特征向量維度為2 200維。但是實(shí)驗(yàn)2結(jié)果發(fā)現(xiàn)這兩種算法的直接結(jié)合并沒有提高分類的性能。經(jīng)分析,Word2vec模型本身無法區(qū)分文本中詞匯的重要程度,直接拼合僅僅是對(duì)各個(gè)文本中的詞加入一段維度為200維的連續(xù)向量。因?yàn)閮深惐憩F(xiàn)手法文本都出現(xiàn)了大量相同的詞,導(dǎo)致此特征對(duì)兩類沒有重要程度區(qū)分,所以直接用來擴(kuò)展特征并不能針對(duì)性增加特征值。因此嘗試對(duì)Word2vec訓(xùn)練得到的詞向量進(jìn)行加權(quán)來解決這一問題。
為了使分類模型更多地關(guān)注有意義的單詞,并且區(qū)分使用Word2vec模型訓(xùn)練得到的不同單詞的詞向量的重要程度,本文使用改進(jìn)的TFIDF為其加權(quán),實(shí)現(xiàn)加權(quán)的Word2vec算法,用w_Word2 (di)代表:
(6)
加權(quán)的Word2vec算法將每一個(gè)單詞t對(duì)應(yīng)的200維稠密連續(xù)向量的每一個(gè)維乘以該t由Tfidf(di)計(jì)算的wt。其中t是di文本中的詞語,取值為1,2,…,n。每個(gè)詞語的向量表示為200維,對(duì)于所有的詞語向量累加求合平均方式同上述2.2節(jié)中的一致。
使用合并改進(jìn)的TFIDF和加權(quán)Word2vec這兩種算法,也就是將每個(gè)表現(xiàn)手法用式(3)和式(6)計(jì)算得到的向量拼接起來作為該文本di的特征向量。然后投給SVM分類器進(jìn)行實(shí)驗(yàn)3,用T_w_Word2(di)表示:
T_w_Word2(di)=Tfidf(di)+w_Word2(di)
(7)
在具體分類過程中,首先對(duì)所有數(shù)據(jù)進(jìn)行預(yù)處理,然后使用式(7)表征所有文本的特征向量。整個(gè)流程如圖2所示。
圖2 改進(jìn)的TFIDF合并加權(quán)Word2vec表示文本特征向量圖
實(shí)驗(yàn)3的結(jié)果,驗(yàn)證了這兩種算法融合使用對(duì)文本表示確實(shí)對(duì)分類性有所提升。經(jīng)分析,加權(quán)可以使本身權(quán)值大的單詞在類別中所占的比例越大,即在類別中的重要程度越高。因此加權(quán)的Word2vec模型可以增加特定類別表現(xiàn)手法文本的重要特征詞的權(quán)值,使得計(jì)算得到的特征向量中的特征詞在類別劃分中有更大的區(qū)分性。使用該算法也是將一個(gè)表現(xiàn)手法文本表示成一個(gè)2 200維特征向量。雖然在計(jì)算復(fù)雜度以及時(shí)間復(fù)雜度上增加了一部分開銷,但是200維的增加在最初使用Tfidf(di)所占比例不大,而且該算法的合并使用使得分類性能平均提高3%,整體上利大于弊。
本文從短文本分類的角度出發(fā),針對(duì)作文中存在的表現(xiàn)手法的所屬類別進(jìn)行實(shí)驗(yàn)設(shè)計(jì)。整個(gè)分類模型流程圖如圖3所示。選用在分類過程中表現(xiàn)最好的表示方法進(jìn)行文本特征表示,即本文2.3節(jié)中提出的方法。然后用SVM分類器對(duì)訓(xùn)練集文本數(shù)據(jù)進(jìn)行訓(xùn)練,再使用測(cè)試集對(duì)該分類模型從各個(gè)指標(biāo)觀察其分類性能。
圖3 分類模型流程圖
通過分類模型預(yù)測(cè)未知類別的文本從屬于事先定義的類別中一類或者多類是短文本自動(dòng)分類的任務(wù)[16]。同時(shí)本文使用到的SVM分類方法屬于有監(jiān)督學(xué)習(xí),需要手工標(biāo)注數(shù)據(jù)類別來保證學(xué)習(xí)的準(zhǔn)確性。
通過人工標(biāo)注5 000篇中小學(xué)生記事類作文,從中抽取中小學(xué)生9類表現(xiàn)手法數(shù)據(jù)共計(jì)兩萬個(gè)。文本分類前,一般要經(jīng)過分詞、去低頻詞、去停用詞等預(yù)處理方法。其中停用詞主要包括標(biāo)點(diǎn)符號(hào)、字符以及一些使用常出現(xiàn)卻無實(shí)際價(jià)值的詞語[17]。因此實(shí)驗(yàn)前,采用jieba工具對(duì)抽取的數(shù)據(jù)進(jìn)行分詞,并利用停用詞表去除數(shù)據(jù)中標(biāo)點(diǎn)符號(hào)、數(shù)字等。同時(shí)統(tǒng)計(jì)所有語料中的詞語詞頻數(shù),將詞頻數(shù)低于10的剔除,最終構(gòu)成特征詞庫約2 000個(gè)。實(shí)驗(yàn)中為防止每個(gè)類數(shù)據(jù)量的不平衡影響分類效果,因此每類表現(xiàn)手法隨機(jī)抽取1 000個(gè)數(shù)據(jù),其中按照4∶1的比例分配數(shù)據(jù)分別用作訓(xùn)練集和測(cè)試集。
為評(píng)價(jià)分類效果,本文實(shí)驗(yàn)采取通用的評(píng)價(jià)指標(biāo):精確率P、召回率R。其中:精確率針對(duì)預(yù)測(cè)結(jié)果,考察的是分類結(jié)果的正確性;召回率針對(duì)原來樣本,考察分類結(jié)果的完備性,實(shí)際中常使用兩者的調(diào)和平均數(shù)作為一個(gè)綜合的評(píng)價(jià)指標(biāo)來衡量分類效果的好壞[18]。具體公式如下[19]:
各參數(shù)含義如表1所示。
表1 分類性能評(píng)價(jià)指標(biāo)參數(shù)含義表
實(shí)驗(yàn)過程中,三種特征表示方法都在四類、五類和六類表現(xiàn)手法上做了實(shí)驗(yàn)。六類分別是動(dòng)作描寫、直接抒情、外貌描寫、心理描寫、神態(tài)描寫、語言描寫;五類分別是:動(dòng)作描寫、直接抒情、外貌描寫、心理描寫、神態(tài)描寫;四類分別是:動(dòng)作描寫、直接抒情、外貌描寫、心理描寫[20]。五類和四類的劃分主要依據(jù)去掉每次分類效果較差的表現(xiàn)手法類別進(jìn)行實(shí)驗(yàn)。
在實(shí)驗(yàn)1中,使用改進(jìn)的TFIDF和傳統(tǒng)的TFIDF算法對(duì)表現(xiàn)手法文本特征向量進(jìn)行表示,然后都按照訓(xùn)練集和測(cè)試集4∶1的比例投給SVM分類器。實(shí)驗(yàn)效果見表2。
表2 改進(jìn)的TFIDF對(duì)比傳統(tǒng)的TFIDF
從表2實(shí)驗(yàn)數(shù)據(jù)中,可以發(fā)現(xiàn)改進(jìn)的TFIDF較傳統(tǒng)的TFIDF,無論在幾類表現(xiàn)手法分類中,精確率、召回率以及F值上都平均提高了6%,其中文中所提到的所有評(píng)價(jià)指標(biāo)取值都是平均值。這個(gè)結(jié)果驗(yàn)證了改進(jìn)TFIDF算法引入方差來區(qū)分特征詞在不同類別重要程度的差異性的優(yōu)勢(shì)性,方差的值越大,那么該詞就對(duì)分類決策越重要。
在實(shí)驗(yàn)2中,使用改進(jìn)的TFIDF算法合并Word2vec算法形成每一個(gè)表現(xiàn)手法的特征向量,然后投入SVM分類器,實(shí)驗(yàn)2的結(jié)果如表3所示。結(jié)果表明,這兩種模型直接合并的結(jié)果并不樂觀。經(jīng)分析,Word2vec模型本身無法區(qū)分文本中詞匯的重要程度,因此進(jìn)一步使用改進(jìn)的 TFIDF對(duì)Word2vec詞向量進(jìn)行加權(quán),實(shí)現(xiàn)加權(quán)的Word2vec分類模型[8]。
表3 兩種算法合并實(shí)驗(yàn)效果
在實(shí)驗(yàn)3中,使用改進(jìn)的TFIDF算法合并加權(quán)的Word2vec算法形成文本特征向量進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)3的結(jié)果如表3所示。從表3中可以看出,兩種算法的合并在三個(gè)評(píng)價(jià)指標(biāo)上都有所提高,指標(biāo)性能平均提高3%。實(shí)驗(yàn)結(jié)果充分驗(yàn)證了加權(quán)的有效性以及這兩種算法結(jié)合在分類效果性能提升方面的可能性。
由表2、表3的實(shí)驗(yàn)結(jié)果還可以得出,分類效果和類別的種數(shù)有很大的關(guān)系。表現(xiàn)手法類別越多,對(duì)各類別表現(xiàn)手法的特征干擾項(xiàng)越多,分類模型效果越差。表4是對(duì)四類表現(xiàn)手法使用本文提出的兩種算法合并方法進(jìn)行實(shí)驗(yàn)每一類表現(xiàn)手法分類的詳細(xì)結(jié)果。
表4 四類表現(xiàn)手法各類分類效果
同時(shí),本文還對(duì)式(2)中n的取值進(jìn)行了實(shí)驗(yàn),表5是對(duì)四類表現(xiàn)手法進(jìn)行分類時(shí)取不同n的效果。實(shí)驗(yàn)表明n取1時(shí)效果最好。雖然n取其他值,各指標(biāo)相差不是很大,但是n取1降低計(jì)算量,特征向量生成速度快,有益于分類性能。
表5 四類表現(xiàn)手法n取不同值的分類效果
此外,本文中提出的新算法已在本實(shí)驗(yàn)室協(xié)作開發(fā)的中小學(xué)作文評(píng)測(cè)系統(tǒng)中得到了初步的應(yīng)用。其中表現(xiàn)手法評(píng)測(cè)模塊是將輸入的一整篇待評(píng)測(cè)的作文進(jìn)行一系列的預(yù)處理之后送入后臺(tái),后臺(tái)根據(jù)整合的分類模型和評(píng)測(cè)模型對(duì)待測(cè)作文中表現(xiàn)手法進(jìn)行抽取并分類,同時(shí)對(duì)其進(jìn)行簡(jiǎn)單地分析和評(píng)價(jià)。此應(yīng)用已初步證實(shí)了該算法的高效性,同時(shí)將該算法用于評(píng)測(cè)中對(duì)作文表現(xiàn)手法的評(píng)級(jí)具有良好的效果。
本文實(shí)驗(yàn)部分主要探索了傳統(tǒng)的TFIDF、改進(jìn)的TFIDF、改進(jìn)TFIDF合并Word2vec、改進(jìn)TFIDF合并加權(quán)Word2vec這四種算法所表征的中小學(xué)生作文中的表現(xiàn)手法特征向量在分類過程中表現(xiàn)效果。實(shí)驗(yàn)表明,兩種算法的結(jié)合確實(shí)有助于分類效果的提高。此外,模型分類效果與表現(xiàn)手法類別數(shù)量有很大的關(guān)系,類別文本之間的共現(xiàn)詞越少,對(duì)各類別表現(xiàn)手法的特征干擾項(xiàng)越少,模型分類效果越好。在后續(xù)研究中,將研究兩種模型結(jié)合應(yīng)用到其他分類器上探究其效果如何,以及如何提高多類表現(xiàn)手法的分類效果。