曹小鵬,邵一萌
(西安郵電大學(xué)計算機學(xué)院,陜西 西安 710121)
語義匹配在自然語言處理任務(wù)中具有十分重要的地位,早期的研究表明,無論在語法結(jié)構(gòu)上做何種深入研究,都難以達到理想的效果。后來研究人員發(fā)現(xiàn),一個完整的自然語言處理NLP(Natural Language Processing)任務(wù)繞不開語義匹配這個環(huán)節(jié)[1]。傳統(tǒng)的匹配方法沒有考慮語義信息,一般從詞、句式、語法結(jié)構(gòu)出發(fā),依賴于人工設(shè)定的特征和規(guī)則,這種硬性的匹配不僅很難達到滿意的效果,還需要花費大量人力物力。文本匹配是自然語言處理中的一個基礎(chǔ)性問題,而語義匹配是文本匹配研究的重要方向,它可以從根本上解決文本匹配問題。
在搜索引擎中,需要計算用戶查詢和一個網(wǎng)頁正文的語義相關(guān)度,這就需要使用短文本語義匹配。在計算的時候,為了避免對短文本直接進行主題映射,采用長文本的主題分布來計算短文本的概率,以此作為用戶查詢和網(wǎng)頁正文之間的相似度。語義匹配可以應(yīng)用到更復(fù)雜的計算當(dāng)中,如文檔中關(guān)鍵詞的抽取、個性化小說推薦以及自動閱卷等。
自動閱卷是智能教育的關(guān)鍵技術(shù)之一,是語言學(xué)和自然語言處理等相關(guān)學(xué)科交叉的一個研究方向[2]。主觀題自動評分ASSR(Automated Scoring Subjective Responses)在語言學(xué)與語言測試領(lǐng)域的診斷信息及信度方面具有廣泛的應(yīng)用前景。試卷自動評分在客觀題上已經(jīng)發(fā)展得很成熟,但是在主觀題的評分上相較于客觀題依然差距較大。國外在英文主觀題自動評分上起步較早,主觀題自動評分的研究與實踐早在20世紀(jì)80年代就已經(jīng)開始,目前國外已有多個較為成熟的主觀題自動評分系統(tǒng),如PEG(Project Essay Grade)[3]、IEA(Intelligent Essay Assessor)[4]和e-rater[5]等,并已應(yīng)用于GRE、TOFEL和GMAT等大型考試[6]。
在漢語主觀題的自動評分上,國內(nèi)有許多學(xué)者已經(jīng)做了很多研究工作,但是由于漢語語言特點以及漢語自然語言處理技術(shù)發(fā)展還不夠成熟,致使?jié)h語主觀題的自動評分工作依然進展緩慢。2011年,郭扉扉等[7]在模糊數(shù)學(xué)的基礎(chǔ)上結(jié)合動態(tài)規(guī)劃實現(xiàn)了更加精準(zhǔn)的主觀題自動評分。羅海蛟等[8]使用改進的隱含狄利克雷分布LDA(Latent Dirichlet Allocation)模型進行中文主觀題自動評分,結(jié)果表明改進的LDA模型在中文主觀題自動評分中切實有效。陳珊珊[9]研究了深度學(xué)習(xí)模型在自動作文評分中的應(yīng)用,實現(xiàn)了一個作文自動評分系統(tǒng)。陳志鵬等[10]研究了在作文自動評分中進行作文跑題檢測的系統(tǒng)。陳賢武等[11]從關(guān)鍵詞相似度、語義相似度以及句法相似度3個方面對文本相似度進行研究并提出了自動閱卷的模型。代鈺琴[12]研究了改進的句子相似度的主觀題評分并應(yīng)用在自動閱卷系統(tǒng)中。
上述學(xué)者對于主觀題的評分使用了不同的模型進行計算,在很多方面都取得了不錯的效果,但是評分結(jié)果的精度并不是非常理想,主要原因在于沒有充分考慮將學(xué)生答案的語句通順度的打分包含在計算模型中。為解決這個問題,本文將文本相似度計算模型與語句通順度打分模型相結(jié)合,構(gòu)建了一個新的語句評分模型。
LDA是由Blei等[13]提出的一種新式的語義一致的主題模型,是一個生成概率模型。其基本思想就是認為文檔是由潛在的一些主題隨機組合而成的,而每個主題又由詞組成,即一個文檔中可能包含多個主題,一個詞也可能同時屬于多個主題。LDA是一個3層貝葉斯模型,包含詞、文檔和主題3層結(jié)構(gòu)。
LDA 假設(shè)文檔是由多個主題混合產(chǎn)生的,它的訓(xùn)練過程使用吉布斯采樣:吉布斯采樣 (Gibbs Sampling) 首先選取概率向量的一個維度,將其他維度的變量值設(shè)定為當(dāng)前維度的變量值,通過不斷收斂來輸出待估計的參數(shù)。LDA 對于每個文檔的每一個詞都有一個主題下標(biāo)。經(jīng)過大量的迭代,主題分布和詞分布都比較穩(wěn)定之后,LDA 模型收斂。
LDA的訓(xùn)練過程首先是對語料庫進行清洗和預(yù)處理,包括移除標(biāo)點符號、停用詞和標(biāo)準(zhǔn)語料庫。LDA使用 DT(Document-Term) 矩陣進行訓(xùn)練。
N-gram Models即n元語言模型,常用的N-gram訓(xùn)練工具有SRILM(Stanford Research Institute Language Modeling toolkit)[14]、IRSTLM(IRST Language Modeling toolkit)[15]、BerkeleyLM(Berkeley Language Model)和統(tǒng)計語言模型KenLM(Kneser-Ney Language Model)[16]等。本文以KenLM作為訓(xùn)練工具,它比SRILM和IRSTLM 快,占用更少的內(nèi)存?;贜-gram所用的平滑技術(shù)是Modified Kneser-Ney smoothing[17],它是當(dāng)前一個標(biāo)準(zhǔn)的、廣泛采用的、效果最好的平滑算法。
統(tǒng)計語言模型KenLM的基本步驟如下所示:
(1)進行原始計數(shù)。把相同的詞合并,然后排序??梢缘玫?-gram和2-gram的原始計數(shù),n=1的時候被稱為unigram,n=2的時候被稱為bigram。
(2)調(diào)整計數(shù)。其公式如下所示:
(1)
(3)計數(shù)。
其基本思想是把經(jīng)常出現(xiàn)的一些N-gram的概率分一些出來給沒有出現(xiàn)的N-gram,這樣出現(xiàn)次數(shù)較多但不是最多的詞的計數(shù)就得到了較高的概率值。
(4)做標(biāo)準(zhǔn)化,首先計算N-gram的概率。其公式如下所示:
(2)
(3)
其中,x表示與wn不同的詞,tn,k為出現(xiàn)了k次的N-gram的個數(shù)。
(5)計算回退權(quán)重。
回退權(quán)重衡量的是某個詞后面能接不同詞的能力。最后把bigram 和 unigram 結(jié)合起來,計算公式如下所示:
(4)
該過程不斷遞歸,直到n=1停止。在KenLM的計算中,對上述的概率取以10為底的對數(shù)。
為了提高語句評分的準(zhǔn)確率,本文模型在計算文本相似度的基礎(chǔ)上增加了語句通順度的計算,選擇主題模型進行相似度計算的主要原因是主題模型可以比較高效地解決短文本中存在的上下文依賴性強、關(guān)鍵特征非常稀疏等問題。對一段文本進行評分,除了目標(biāo)文本與標(biāo)準(zhǔn)文本的相似度對評分的影響較大之外,目標(biāo)文本的語句通順度也非常重要,所以本文將通順度也加入語句評分模型的設(shè)計當(dāng)中。計算通順度值使用的是經(jīng)過KenLM訓(xùn)練之后的語言模型,用“統(tǒng)計+平滑”的方法來進行計算。KenLM是一個C++編寫的語言模型工具,具有速度快、占用內(nèi)存少的特點,也提供了Python接口。使用KenLM進行語句通順度值計算的優(yōu)點是:節(jié)省內(nèi)存且允許使用多核處理器,這樣就極大地節(jié)省了訓(xùn)練模型的開銷。同時,考慮到人工評分中目標(biāo)文本的大小對于最終評分也有不可忽略的影響,在模型設(shè)計的時候加入了字符比因子。所以,基于語義匹配的多維度語句評分模型在設(shè)計的時候,主要考慮文本相似度、語句通順度以及字符比這3個因素對最終評分的影響。
本文采用預(yù)處理好的Wiki語料庫,使用KenLM在語料庫上訓(xùn)練語言模型(計算各種組合的條件概率)。在Python中加載訓(xùn)練好的KenLM模型,之后使用該模型對目標(biāo)文本進行打分。每個句子通過語言模型都會得到一個概率,然后對概率值取以10為底的對數(shù)得到分?jǐn)?shù)smooth,分?jǐn)?shù)值越高說明該句子的語句越通順。
KenLM計算語句通順度的步驟如下所示:
(1)使用KenLM在Wiki語料庫上訓(xùn)練語言模型。
(2)對訓(xùn)練得到的文件進行壓縮和序列化,以提高后續(xù)在Python中加載的速度。
(3)在Python中加載訓(xùn)練好的KenLM模型,使用該模型對目標(biāo)文本進行打分。
之后使用軟件測試語料庫訓(xùn)練LDA模型,用訓(xùn)練好的LDA模型對目標(biāo)文本和標(biāo)準(zhǔn)文本進行對比,得出相似度分?jǐn)?shù)similarity。
LDA基本步驟如下所示:
(1)隨機初始化:對當(dāng)前文檔中的每個詞w,隨機地賦一個主題編號z;
(2)重新掃描當(dāng)前文檔,按照吉布斯采樣公式,對每個詞w,重新采樣它的主題;
(3)重復(fù)以上過程直到吉布斯采樣過程收斂;
(4)統(tǒng)計文檔中的主題分布。
本文提出的增強語義匹配的語句評分模型ESM(a sentence scoring model for Enhancing Semantic Matching)框架如圖1所示。
Figure 1 Framework of sentence scoring model to enhance semantic matching圖1 增強語義匹配的語句評分模型框架圖
增強語義匹配的語句評分模型在進行語句評分時,首先分別使用預(yù)處理之后的語料庫訓(xùn)練LDA模型和KenLM模型,用訓(xùn)練好的LDA模型對標(biāo)準(zhǔn)文本與目標(biāo)文本進行相似度計算,得出目標(biāo)文本與標(biāo)準(zhǔn)文本的相似度得分;再使用訓(xùn)練好的KenLM模型對目標(biāo)文本進行通順度計算,得到目標(biāo)文本的通順度得分;然后單獨計算目標(biāo)文本與標(biāo)準(zhǔn)文本的比值得出字符比;最后將上述3個數(shù)據(jù)進行匯總計算得出目標(biāo)文本的最后得分。將文本相似度、語句通順度和字符比作為語句評分的影響因子,最終語句評分的計算公式如下所示:
(5)
其中,score是增強語義匹配的語句評分模型的最終成績,smooth是使用KenLM計算的通順度得分,similarity是使用LDA模型計算的文本相似度得分,counts是目標(biāo)文本字符比,counta是標(biāo)準(zhǔn)文本字符比,α是語句通順度在成績中所占比重,β是文本相似度在成績中所占比重,γ是字符比在成績中所占比重,φ為隨機變量。
為解決傳統(tǒng)LDA模型使用通用語料庫造成文本稀疏等問題,本文實驗選擇大量與軟件測試相關(guān)的書籍資料作為語料庫訓(xùn)練LDA模型,選擇預(yù)處理后的Wiki語料庫作為KenLM的訓(xùn)練數(shù)據(jù),在計算模型參數(shù)的時候,選取了某大學(xué)軟件測試期末考試的真題和答案作為樣本,共233份,題目為:請闡述黑盒測試的概念(共10分)。
本文選擇LDA進行文本相似度的計算,該模型在語料庫中訓(xùn)練不同主題下文本的主題分布,主題數(shù)量對實驗結(jié)果有很大的影響。困惑度(Perplexity)是評價一個語言模型性能的指標(biāo),其計算公式如下所示:
Perplexity({w} |M) =
(6)
其中,M指訓(xùn)練好的模型參數(shù),Nm為文檔m的單詞數(shù),φk,n為主題n的單詞多項式分布向量,θk,m為文檔m的主題分布概率向量。w為對真實分布下樣本出現(xiàn)概率的估計。
使用某大學(xué)軟件測試期末考試的233份樣本進行LDA不同主題數(shù)下困惑度的計算,得到的實驗結(jié)果如圖2所示。
Figure 2 Statistical chart of perplexity under different topic numbers圖2 不同主題數(shù)下的困惑度統(tǒng)計圖
困惑度的值越低表示該語言模型的性能越好,從圖2的實驗結(jié)果可以看出,主題數(shù)為20的時候,困惑度最小,因此本文選擇的主題數(shù)為20。
表1列出了通過KenLM模型計算出的語句通順度得分、通過LDA模型計算出的文本相似度得分、字符比和人工手動對學(xué)生答案的得分值匯總的節(jié)選。為方便對實驗結(jié)果進行分析,對所獲得的數(shù)據(jù)進行統(tǒng)計與篩選。對處理之后的數(shù)據(jù)分別進行文本相似度與評分、語句通順度與評分和字符比與評分的趨勢分析,其中文本相似度與評分的數(shù)據(jù)統(tǒng)計如圖3所示。
Table 1 Summary of experimental results表1 實驗結(jié)果匯總表
Figure 3 Similarity-score trend chart圖3 相似度-評分趨勢圖
從圖3可以看出,隨著相似度值得分不斷接近于1,語句評分值越來越高,大體呈正比例增加,因此相似度與最終評分大致是成正比例的關(guān)系,可選擇相似度作為影響評分的因子。
通順度與評分的數(shù)據(jù)統(tǒng)計如圖4所示。
Figure 4 Sentence smooth-score trend chart圖4 通順度-評分趨勢圖
從圖4中可以看出,大體上,隨著通順度的增加,評分也越來越高,整體呈正比例增加,由此可知通順度與最終評分是成正比例的,可選擇通順度作為影響評分的因子。
字符比與評分的數(shù)據(jù)統(tǒng)計如圖5所示。
Figure 5 Character ratio-score trend chart圖5 字符比-評分趨勢圖
從圖5中可以看出,隨著字符比的增加,評分也越來越高,呈正比例增加的趨勢,可知字符比與最終評分大致是成正比例的關(guān)系,可選擇字符比作為影響評分的因子。
綜合上文的分析可以得出:文本相似度、語句通順度和字符比與最終評分結(jié)果大致上是正相關(guān)的關(guān)系,所以選擇文本相似度、語句通順度和字符比這3個因素作為最終評分的影響因子。
使用多元回歸分析對實驗數(shù)據(jù)進行分析統(tǒng)計,得出的結(jié)果如表2所示。
Table 2 Estimation results of multiple regression analysis表2 多元回歸分析估計結(jié)果
從表2可得到模型各變量的回歸系數(shù)估計值、標(biāo)準(zhǔn)誤差、t檢驗值以及P值信息。多元回歸中的P值(Pvalue)就是當(dāng)原假設(shè)為真時所得到的樣本觀察結(jié)果出現(xiàn)的概率,用來衡量因素之間有沒有顯著影響。經(jīng)過多元回歸的計算,模型中的3個影響因子的系數(shù)Pvalue均小于0.01,所以置信度達到99%,這就說明針對當(dāng)前數(shù)據(jù)集而言該模型為最優(yōu)回歸模型,具有良好的可信度和可行性。
最終得出的多元回歸模型如下所示:
score=1.65·esmooth+7.68·similarity+
(7)
從多元回歸分析的結(jié)果可以看出,對目標(biāo)文本的最后評分score影響最大的是文本相似度的得分,接下來是語句通順度,對score影響最小的是字符比。由以上分析可知,基于統(tǒng)計語言模型和LDA模型相結(jié)合的技術(shù)對目標(biāo)文本和標(biāo)準(zhǔn)文本進行語句通順程度打分和相似度打分可以實現(xiàn)評分的客觀性和準(zhǔn)確性。本文提出的一種增強語義匹配的語句評分模型ESM,從文本相似度、語句通順度以及字符比3個方面來綜合計算在有參照的標(biāo)準(zhǔn)文本下目標(biāo)文本的評分。
國內(nèi)的大多數(shù)學(xué)者在計算主觀題的評分時多采用的是文本相似度的方法,本文實驗結(jié)合文本相似度與語句通順度以及字符比共同作為影響最終評分的因素。為了進行對比,將訓(xùn)練好的模型應(yīng)用到在線考試平臺中,通過在線考試平臺進行測試,觀察自動評分的結(jié)果與人工評分的結(jié)果是否一致,采用平均誤差作為評價指標(biāo)。誤差值的計算采用以下公式:
(8)
隨機抽取100個學(xué)生的答案作為目標(biāo)文本,對學(xué)生作答的100道軟件測試的題目分別使用了5種評分方法:人工閱卷、僅使用LDA進行語句相似度的主觀題自動評分、采用依存語法的相似度計算的主觀題自動評分、使用TF-IDF模型的句子相似度算法的主觀題自動評分[18]以及ESM,將上述后4種自動評分方法計算的最終評分的結(jié)果與人工閱卷的結(jié)果進行對比。實驗得出的平均誤差數(shù)據(jù)匯總?cè)鐖D6所示。
Figure 6 Comparison of experiment results圖6 實驗結(jié)果對比
圖6是使用自動評分與手工評分進行誤差計算的實驗結(jié)果對比圖,從實驗結(jié)果可以看出,平均誤差最大的是使用TF-IDF進行相似度計算的評分方法,因為TF-IDF是對關(guān)鍵詞出現(xiàn)次數(shù)的統(tǒng)計,并沒有考慮到語義對文本相似度計算的影響,因此效果較差;對比僅使用LDA模型的評分方法,本文模型增加了通順度和字符比的影響因子,平均誤差有所減少;使用基于依存語法的相似度的評分方法充分考慮了語義信息以及句子結(jié)構(gòu),但是對于長句子分析的準(zhǔn)確率不高。本文所采用的增強語義匹配的語句評分模型計算得到的平均誤差值明顯小于僅使用語句相似度進行主觀題自動評分計算的自動評分方法的,這表明本文模型能有效提高主觀題自動評分的準(zhǔn)確率。對實驗結(jié)果進行分析可知,將語句通順度等因素考慮在主觀題評分的計算中,可以提高準(zhǔn)確率,最后的得分更接近于人工評分。
傳統(tǒng)的語句評分模型并沒有結(jié)合相似度以及語句通順度等多種要素綜合評價,因此效果較差。本文在傳統(tǒng)語義匹配使用相似度進行計算的基礎(chǔ)上,增加了通順度因子來解決語句評分的問題,提出一種增強語義匹配的語句評分模型。本文在計算相似度的時候考慮使用LDA主題模型來進行學(xué)生答案和標(biāo)準(zhǔn)答案的計算,主要是考慮到可以將學(xué)生答案劃分為各個不同的學(xué)科作為不同的相似度計算主題,進一步提高使用LDA計算主題之間相似度的準(zhǔn)確性。由于很難建立完善的語言規(guī)則也缺乏相關(guān)的語言學(xué)知識,考慮到某些類型的詞互斥的特性存在,可以使用N-gram來判斷語句的通順程度,使用KenLM作為工具是因為它實現(xiàn)了2種有效的語言模型查詢數(shù)據(jù)結(jié)構(gòu),減少了時間和內(nèi)存開銷。使用文本相似度結(jié)合語句通順度所計算得到的平均誤差值明顯小于僅使用語句相似度的自動評分方法的。
但是,在KenLM中使用N-gram方法存在瓶頸,當(dāng)下深度學(xué)習(xí)在NLP中的應(yīng)用十分廣泛,未來可以嘗試在NLP中應(yīng)用深度學(xué)習(xí),使用循環(huán)神經(jīng)網(wǎng)絡(luò)或者Google新提出的bert[19]基于句子做特征工程,學(xué)習(xí)病句特征,最后結(jié)合通順度與相似度等因素進行多粒度與多維度的語句評分。