董奧根,劉茂福,黃革新,舒琦赟
(武漢科技大學(xué)計算機科學(xué)與技術(shù)學(xué)院,湖北 武漢 430081)
隨著計算機在教學(xué)領(lǐng)域的應(yīng)用和發(fā)展,基于知識點的學(xué)科題庫建設(shè)[1]已成為現(xiàn)代化教學(xué)手段的一項重要內(nèi)容。在傳統(tǒng)的基于知識點的題庫建設(shè)中,將知識點與試題綁定完全是由操作人員憑經(jīng)驗手動輸入,增大了人力資源的開銷,也存在一定的人為誤差[2]。利用向量空間模型自動發(fā)現(xiàn)知識點與題目的關(guān)系,能夠較大程度上提高題庫擴充的工作效率,也為針對某一套試題知識點的統(tǒng)計和評測提供了有效途徑。
向量空間模型VSM(Vector Space Model)由Salton 在1975 年首次提出,起初是用于英文自然語言文本的自動索引,后來廣泛應(yīng)用于文本分類、檢索等領(lǐng)域[3]。向量空間模型是將對文本內(nèi)容的處理轉(zhuǎn)換為向量空間中的向量的距離運算,它用文本向量空間上的相似度表達其語義上的相似度[4]。
本文利用向量空間模型,首先分別將試題與知識點進行中文分詞處理,使用停用詞表進行詞過濾,利用word2vec[5]得到每個詞的K 維向量,計算向量間的余弦距離來表示題干與知識點的語義相似度值。通過與設(shè)定的相似度閾值比較,若高于閾值則可判定這個知識點為試題考察對象,實現(xiàn)知識點與試題關(guān)系的自動發(fā)現(xiàn)。
基于向量空間模型的知識點與試題自動關(guān)聯(lián)系統(tǒng)是基于知識點題庫系統(tǒng)的一個子系統(tǒng)。在試題錄入題庫時,為了實現(xiàn)試題與知識點的自動匹配,該系統(tǒng)需要進行知識點與試題文本預(yù)處理、文本向量化、文本相似度計算、相似度閾值過濾等處理,具體系統(tǒng)框架如圖1 所示。
圖1 系統(tǒng)框架圖
針對試題和知識點文本,首先采用分詞工具進行中文分詞,然后使用中國計算機學(xué)會提供的停用詞表[6]進行停用詞過濾獲取待錄入試題及文本預(yù)處理;接著使用word2vec 為試題和知識點文本中的詞生成詞向量[7-8],再由詞向量組合得到試題和知識點文本向量;然后基于余弦公式求得試題向量與知識點向量間的余弦距離,使用余弦距離來表示試題文本與知識點文本間的語義相似度;最后采用事先設(shè)定的閾值來判斷知識點與試題是否具有語義關(guān)聯(lián)。
英文文本詞與詞一般由空格等界符進行分隔,而組成中文文本的詞與詞間則不存在明顯的間隔,需進行分詞處理。分詞的準(zhǔn)確性很大程度上決定了文本相似度計算的準(zhǔn)確性。
本文采用的分詞工具是中國科學(xué)院計算技術(shù)研究所研制出的漢語詞法分析系統(tǒng)ICTCLAS[9]。ICTCLAS 分詞精度高達98.45%,例1 中的試題與知識點使用ICTCLAS 分詞且進行停用詞過濾后,結(jié)果如下:
例1:
試題:算符優(yōu)先文法是指沒有形如()的規(guī)則式。
分詞結(jié)果:算符/優(yōu)先/文法/是/指/沒有/形如/(/)/的/規(guī)則/式/。
停用詞過濾結(jié)果:算符/優(yōu)先/文法/指/形如/規(guī)則/式/。
知識點:算符優(yōu)先分析方法。
分詞結(jié)果:算符/優(yōu)先/分析/方法/。
停用詞過濾結(jié)果:算符/優(yōu)先/分析/方法/。
自動關(guān)聯(lián)發(fā)現(xiàn)方法首先用word2vec 工具將預(yù)處理得到的詞向量化,用向量余弦計算公式計算出試題詞向量與知識點詞向量間的余弦距離,使用余弦距離來表示二者的語義相似度[10]。通過比較余弦相似度值與事先設(shè)置的相似度閾值s,來判斷知識點是否為試題考察對象。
在多種統(tǒng)計語言模型的基礎(chǔ)上,Google 公司在2013 年開放了詞向量計算工具word2vec。word2vec可以根據(jù)給定的語料庫,通過優(yōu)化后的訓(xùn)練模型快速有效地將一個詞語表達成向量形式。詞向量具有良好的語義特性,可以用來表示詞語特征,詞向量每一維的值都代表一個具有一定的語義和語法上解釋的特征,即每一維均可稱為一個詞語特征[11]。
詞向量的表示有OHR(One-Hot Representation)和DR(Distributed Representation)這2 種方式[12]。OHR 是用一個N 維的向量來表示一個詞的語義,詞向量的維數(shù)N 為詞典的大小,向量的每個分量取值0或1,分量為1 的位置對應(yīng)該詞在詞典中的索引位置,用這種方法表示詞向量在維數(shù)較大時其弊端顯露無疑,另外,也不能很好地刻畫詞與詞之間在語義上的相似性,有較大局限性。word2vec 工具中采用的是DR 方式,它最早是由Hinton 于1986 年提出,可以克服上述缺點。DR 方式通過訓(xùn)練將某種語言中的每個詞映射成一個固定長度的相對較短的向量,其中詞向量的維數(shù)由用戶選取,通常為102量級,本文通過測試將其設(shè)定為200。所有詞向量構(gòu)成一個200 維的向量空間,而每一個向量可視為該空間的一個點,在這個空間上引入“距離”的概念,詞向量之間在詞法和語義上的相似性在向量空間的幾何表示為它們在空間中的距離。DR 相對于OHR 有大量的非零向量,相對分散,把詞的信息分布到各個分量中去,以此方法來表示詞向量,更具有科學(xué)性和有效性。
系統(tǒng)需要測試的是知識點與試題文本的相似度,知識點和試題文本均由一個或多個詞組成。將試題和知識點文本用組成它們的詞向量表示,通過計算試題詞向量與知識點詞向量間的余弦距離,使用余弦距離來表示二者的語義相似度。設(shè)試題文本S=(w1,w2,...,wn),知識點文本K=(f1,f2,...,fm),算法的基本流程是首先f1與S 中的每一個詞向量計算余弦距離,取其中的最大值表示f1與S 的最大相似度值max1,同理,可以分別計算出f2,…,fm與S 的最大相似度值max2,…,maxm,通過計算maxi的平均值來近似表示K 和S 的相似度。算法的核心思想是如果知識點文本K 的每一個詞均能在試題文本S 中找到一個詞與之極其相似甚至相同(即每一個max 值都接近1),就認為K 為S 所考察知識點之一。
算法具體實現(xiàn)如公式(1):
word2vec 工具得到的是單個詞的向量,通過計算詞向量與詞向量之間的相似性來表示文本間的相似性。詞向量之間相似性的計算本文采用向量余弦相似度計算方法[13]。
本文通過測量2 個向量內(nèi)積空間的夾角的余弦值來度量向量之間的余弦相似性[14]。2 個向量之間的夾角范圍為0°~180°,0 度和180 度角的余弦值分別為1 和-1,其他任何角度的余弦值均在二者之間。實踐證明通過2 個向量之間的夾角的余弦值判斷2個向量是否有相同的指向是簡單有效的策略。2 個向量有完全相同的指向即平行時,余弦相似度的值為1;2 個向量垂直即夾角為90°時,值為0;2 個向量若指向完全相反的方向時,則值為-1。在比較過程中,僅僅考慮到向量的指向方向,忽略向量的規(guī)模大小。本文中2 個詞向量的夾角通常小于90°,因此余弦相似度的值域為[0,1]。
2 個向量間的余弦相似度值可以通過使用歐幾里得點積和量級公式推導(dǎo),如公式(2):
鑒于2 個向量的屬性,A 和B 的余弦相似性用一個點積形式來表示其大小,如公式(3):
以《編譯原理》[15]課程教材以及知識點對應(yīng)維基百科詞條解釋文本作為訓(xùn)練語料庫,用word2vec 進行訓(xùn)練;并將教材的選擇題習(xí)題和答案作為測試對象。知識點來源于武漢大學(xué)計算機學(xué)院何炎祥教授在國家精品課程網(wǎng)站上公布的編譯原理知識點列表(http://www.icourses.cn/coursestatic/course_2907.html)。相似度閾值s 則結(jié)合計算已匹配的知識點和試題之間的相似度和人工經(jīng)驗來選取,經(jīng)過測試s 取值0.92 時,匹配效果較好。
word2vec 中需要設(shè)置詞向量的維度m。首先將語料庫進行分詞處理,并將文本進行停用詞過濾,然后設(shè)置不同的參數(shù)m(通常以間隔50 維度為宜)讓word2vec 訓(xùn)練學(xué)習(xí)語料庫,按照不同近似梯度人工選取5 組近義詞(例如編譯與翻譯,編譯與匯編)得到10 個詞向量,用余弦公式計算5 組詞在不同參數(shù)下的近似值,選取結(jié)果與人工判斷擬合程度最好的m值作為最佳的參數(shù)值(經(jīng)過測試m 取值200 效果最好)。
關(guān)于知識點與試題關(guān)系自動發(fā)現(xiàn)系統(tǒng)的評測方法,本文通過準(zhǔn)確率(Precision,P)、召回率(Recall,R)和F1-Measure 來進行度量,其具體計算方法如公式(4)~公式(6)所示[16]。
其中:TP 表示系統(tǒng)成功匹配的試題與知識點對數(shù),F(xiàn)P表示系統(tǒng)錯誤匹配的試題知識點對數(shù),F(xiàn)N 表示系統(tǒng)未查找出來的試題知識點對數(shù)。試題與知識點為一對多的關(guān)系,試題與其考察的每個知識點均為一個匹配對。
通過對實驗數(shù)據(jù)的測試,得到試題與知識點匹配的準(zhǔn)確率、召回率以及F1-Measure 值,結(jié)果如表1 所示。
表1 實驗結(jié)果
由表1 中數(shù)據(jù)可以看出隨著試題量的增加,自動關(guān)聯(lián)發(fā)現(xiàn)方法測試結(jié)果的F1-Measure 值逐漸提高,但準(zhǔn)確率和召回率不高,與預(yù)期仍有一定差距。
從實驗數(shù)據(jù)的角度分析,由于選用編譯原理教材做語料庫,內(nèi)容豐富度不夠,通過word2vec 得到的詞向量區(qū)分度不高,從而影響實驗結(jié)果。例如“編譯”與“匯編”、“編譯”與“處理”得到詞向量的相似度分別為0.924 0、0.902 5,前一組詞的相似度明顯高于后一組,但計算得到相似度值卻相差不大。另外,編譯原理的知識點之間相似度過高,或者內(nèi)容上屬于蘊含關(guān)系,會導(dǎo)致系統(tǒng)判斷失誤,例如考察的知識點是“從正則表達式轉(zhuǎn)換到FA”,而系統(tǒng)則誤將“正則表達式”也判定為其考察知識點,對實驗結(jié)果的準(zhǔn)確率有一定的影響。
從方法的角度分析,基于統(tǒng)計方法利用向量的相似度表示詞的相似度,其本身具有一定的局限性,中文語義比英文相對復(fù)雜,這也是word2vec 模型在英文的測試效果比中文好的原因[17]。其次,本文選取的閾值是一個經(jīng)驗值,不一定是最優(yōu)解,對實驗結(jié)果有一定的影響,筆者在今后的工作中對閾值的選取策略將做進一步研究以提高系統(tǒng)查準(zhǔn)率。
基于向量空間模型的知識點與試題關(guān)聯(lián)關(guān)系自動發(fā)現(xiàn)方法,利用word2vec 工具將試題和知識點向量化,通過計算詞向量之間的相似度表示文本之間的相似度,在基于知識點的題庫系統(tǒng)中實現(xiàn)了知識點與試題的自動匹配,有效地提高了題庫擴充模塊的工作效率,降低了人為誤差的風(fēng)險,同時也使基于知識點的題庫模型更加具有生命力。但由于題庫系統(tǒng)的特殊性和方法的局限性等原因?qū)е聹?zhǔn)確率不高,這將成為今后的研究重點。
[1]郝立柱.高等學(xué)校題庫建設(shè)系統(tǒng)[J].黑龍江大學(xué)自然科學(xué)學(xué)報,2001,18(1):39-42.
[2]蔡曉云.基于知識的在線考試系統(tǒng)題庫設(shè)計[J].計算機與現(xiàn)代化,2011(8):193-197.
[3]李中原,楊守文.基于向量空間模型的網(wǎng)頁特征權(quán)重計算改進[J].計算機與現(xiàn)代化,2010(6):137-139.
[4]黃萱菁,夏迎炬,吳立德.基于向量空間模型的文本過濾系統(tǒng)[J].軟件學(xué)報,2003,14(3):435-442.
[5]Mikolov T.Word2vec Project[EB/OL].http://code.google.com/p/word2vec/,2014-09-03.
[6]谷波,劉開瑛.中文文本分類中一種簡單高效的特征詞選擇方法[C]// 2005 第一屆中國分類技術(shù)與應(yīng)用研討會(CSCA).2005:356-360.
[7]周練.Word2vec 的工作原理及應(yīng)用探究[J].科技情報開發(fā)與經(jīng)濟,2015,25(2):145-148.
[8]鄭文超,徐鵬.利用word2vec 對中文詞進行聚類的研究[J].軟件,2013,34(12):160-162.
[9]劉群,張華平,俞鴻魁,等.基于層疊隱馬模型的漢語詞法分析[J].計算機研究與發(fā)展,2004,41(8):1421-1429.
[10]王濤,陳紅英.基于貝葉斯網(wǎng)絡(luò)的概念間語義相似度計算[J].計算機與現(xiàn)代化,2012(9):65-68.
[11]Turian J,Ratinov L,Bengio Y.Word representations:A simple and general method for semi-supervised learning[C]// Proceedings of the 48th Annual Meeting of the Association for Computational Linguistics.2010:384-394.
[12]魯松,白碩,黃雄,等.基于向量空間模型的有導(dǎo)詞義消歧[J].計算機研究與發(fā)展,2001,38(6):662-667.
[13]Hermjakob U.Parsing and question classification for question answering[C]// Proceedings of the 2001 Workshop on Open-Domain Question Answering at ACL.2001.
[14]劉愛琴,張繼福,荀亞玲.基于大熵值變化區(qū)域和余弦相似度的離群迭代算法[J].小型微型計算機系統(tǒng),2013,34(7):1518-1521.
[15]張素琴,呂映芝,蔣維杜,等.編譯原理[M].第2 版.北京:清華大學(xué)出版社,2005.
[16]龔筆宏,彭波.對文本分類評測方法穩(wěn)定性的研究[J].模式識別與人工智能,2008,21(1):12-17.
[17]唐明偉,卞藝杰,陶飛飛.基于領(lǐng)域本體的語義向量空間模型[J].情報學(xué)報,2011,30(9):951-955.