于 鳳,鄭雨晴,鄭德權(quán),,趙姍姍
1.哈爾濱商業(yè)大學(xué) 計(jì)算機(jī)與信息工程學(xué)院,哈爾濱 150028
2.哈爾濱工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,哈爾濱 150001
在人工智能火熱的今天,智能解題逐漸成為一大研究熱點(diǎn),人們熱衷于讓人工智能參加各種“測(cè)試”,并與人類(lèi)選手進(jìn)行比試,從而衡量目前人工智能系統(tǒng)的“智力”水平。
目前,在世界范圍內(nèi)已有多家研究機(jī)構(gòu)正在從事這一方面的研究。例如,日本國(guó)立情報(bào)學(xué)研究所開(kāi)發(fā)的AI機(jī)器人“東Robo君”,他們讓機(jī)器人挑戰(zhàn)大學(xué)試題,目標(biāo)是2021年能夠考上東京大學(xué)[1]。艾倫人工智能研究所(Allen Institute for Artificial Intelligence)也舉辦了一項(xiàng)比賽,來(lái)自全世界的幾千個(gè)團(tuán)隊(duì)紛紛提交了自己的軟件系統(tǒng)來(lái)挑戰(zhàn)8年級(jí)的科學(xué)題目,最終,該比賽的第一名達(dá)到59%的正確率[2]。在我國(guó),國(guó)家科技部2015年也啟動(dòng)了“高考機(jī)器人”項(xiàng)目(863計(jì)劃中的類(lèi)人智能項(xiàng)目),讓人工智能系統(tǒng)和全國(guó)的文科考生一樣,挑戰(zhàn)2017年高考語(yǔ)文、數(shù)學(xué)、文綜三項(xiàng)科目,研究相關(guān)類(lèi)人答題系統(tǒng),超過(guò)30多家高校和科研機(jī)構(gòu)(清華大學(xué)、中科院自動(dòng)化所、哈工大等)聯(lián)合參與了該項(xiàng)目。此外,在智能解題方面,文獻(xiàn)[3]提出通過(guò)動(dòng)詞分類(lèi)來(lái)解決較簡(jiǎn)單的算術(shù)問(wèn)題;文獻(xiàn)[4]通過(guò)句子邊界來(lái)構(gòu)造和求解一個(gè)線性方程組;南京大學(xué)的研究人員針對(duì)歷史選擇問(wèn)題,在維基百科中檢索與問(wèn)題相關(guān)的頁(yè)面,通過(guò)對(duì)頁(yè)面進(jìn)行排序、過(guò)濾、評(píng)價(jià),求得最終結(jié)果[5]。
2011年,IBM Watson超級(jí)計(jì)算機(jī)在電視智力競(jìng)賽節(jié)目《Jeopardy!》中戰(zhàn)勝人類(lèi)而一舉成名[6],AlphaGo戰(zhàn)勝世界圍棋頂尖高手,這些都代表著科學(xué)技術(shù)向認(rèn)知系統(tǒng)的進(jìn)步。而類(lèi)似的知識(shí)問(wèn)答系統(tǒng),如中國(guó)科學(xué)院自動(dòng)化研究所開(kāi)發(fā)的百科知識(shí)問(wèn)答系統(tǒng)、百度的小度機(jī)器人、微軟小冰等,在現(xiàn)代生活中應(yīng)用也日趨廣泛。
通過(guò)深入了解上述各相關(guān)系統(tǒng),發(fā)現(xiàn)它們的關(guān)鍵技術(shù)一般都包括知識(shí)處理、信息檢索、語(yǔ)義理解等部分。類(lèi)比上述這些系統(tǒng),可以考慮將此類(lèi)技術(shù)應(yīng)用到基礎(chǔ)教育領(lǐng)域。利用當(dāng)前大數(shù)據(jù)特性以及自然語(yǔ)言處理技術(shù),研究多源知識(shí)的識(shí)別、抽取、發(fā)現(xiàn)等問(wèn)題,構(gòu)建面向基礎(chǔ)教育領(lǐng)域的關(guān)聯(lián)類(lèi)與推理類(lèi)問(wèn)題的求解系統(tǒng)。本文主要針對(duì)選擇類(lèi)題型求解的相同或相似性問(wèn)題發(fā)現(xiàn)展開(kāi)研究。
本文是根據(jù)已有的問(wèn)題和知識(shí)庫(kù)求解新問(wèn)題,由于自然語(yǔ)言語(yǔ)義表達(dá)的多樣性,當(dāng)從已有問(wèn)題中查找相似問(wèn)題時(shí),相似不僅代表問(wèn)題內(nèi)容的相似,還有可能是內(nèi)容不同但語(yǔ)義卻相似,這給問(wèn)題檢索帶來(lái)了一定的困難,現(xiàn)階段主要圍繞語(yǔ)義相似度進(jìn)行研究。
本文在求解題目時(shí),同樣核心點(diǎn)落在從已有題庫(kù)中求解相似問(wèn)題,具體過(guò)程是:首先對(duì)新問(wèn)題進(jìn)行關(guān)鍵詞抽取及擴(kuò)展,完成多源知識(shí)搜索;其次根據(jù)擴(kuò)展后的關(guān)鍵詞完成關(guān)聯(lián)問(wèn)題的檢索;再根據(jù)關(guān)聯(lián)問(wèn)題計(jì)算相似度;最后獲得各個(gè)候選項(xiàng)的打分,完成答案選擇。
本文以地理問(wèn)題為研究對(duì)象,通過(guò)搜集各類(lèi)地理教材、地理題目及歷年高考地理大綱等,發(fā)現(xiàn)考查基本內(nèi)容、知識(shí)點(diǎn)變化不大,而每年考題的多樣性重在對(duì)知識(shí)點(diǎn)的靈活應(yīng)用,且題目都有一定的規(guī)律。以人教版高中地理課本為例,共有3本必修,7本選修,包含250個(gè)左右的知識(shí)點(diǎn),包含自然地理、人文地理、中國(guó)地理、世界地理等部分。再分析從各個(gè)網(wǎng)站下載的題目發(fā)現(xiàn),在有限的知識(shí)點(diǎn)下,每類(lèi)知識(shí)點(diǎn)對(duì)應(yīng)的題目卻非常多。表1是根據(jù)某網(wǎng)站的題庫(kù),統(tǒng)計(jì)的若干具體的知識(shí)點(diǎn)與其現(xiàn)有的題目數(shù)量分析。
表1 知識(shí)點(diǎn)與現(xiàn)有的部分題目數(shù)量關(guān)系
因此本文通過(guò)分析題目相關(guān)的知識(shí)點(diǎn),然后從題庫(kù)中查找相同或相似知識(shí)點(diǎn)的若干題目,再通過(guò)分析這些相似知識(shí)點(diǎn)的題目,來(lái)求解新問(wèn)題。
問(wèn)題發(fā)現(xiàn)可以分為兩步完成:?jiǎn)栴}分析和相似問(wèn)題發(fā)現(xiàn)。問(wèn)題分析又稱(chēng)問(wèn)題理解,主要完成對(duì)新問(wèn)題預(yù)處理,生成適當(dāng)?shù)臋z索項(xiàng),為下一步相似問(wèn)題發(fā)現(xiàn)提供輸入。相似問(wèn)題發(fā)現(xiàn)則主要根據(jù)問(wèn)題分析結(jié)果應(yīng)用不同的相似度分析方法從已有題庫(kù)中查找部分相似問(wèn)題。
本文在問(wèn)題分析時(shí)對(duì)問(wèn)題的處理包括關(guān)鍵詞提取和擴(kuò)展兩部分。關(guān)鍵詞提取包括有監(jiān)督的、無(wú)監(jiān)督兩種方法。有監(jiān)督方法中,文獻(xiàn)[7]提出了使用向量空間模型(Vector Space Model,VSM)提取關(guān)鍵詞;文獻(xiàn)[8]提出了使用樸素貝葉斯模型的關(guān)鍵詞提取方法。無(wú)監(jiān)督方法中,最簡(jiǎn)單易用的關(guān)鍵詞抽取算法是TF-IDF(Term Frequency-Inverse Document Frequency),文獻(xiàn)[9]和文獻(xiàn)[10]提出使用類(lèi)似于PageRank的算法TextRank抽取關(guān)鍵詞,文獻(xiàn)[11]提出使用LDA(Latent Dirichlet Allocation)主題模型的方法來(lái)抽取關(guān)鍵詞。
考慮到地理問(wèn)題一般都是一句話或者若干單句組成的復(fù)合語(yǔ)句,本文使用TextRank和詞性標(biāo)注兩種方法來(lái)標(biāo)注關(guān)鍵詞。關(guān)鍵詞提取之后,使用Word2Vec對(duì)關(guān)鍵詞進(jìn)行聚類(lèi),然后根據(jù)聚類(lèi)后的結(jié)果擴(kuò)展關(guān)鍵詞。
目前問(wèn)題相似度計(jì)算方法大致分為三類(lèi):基于詞匯、基于句法特征以及基于語(yǔ)義特征的問(wèn)題相似度計(jì)算方法?;谠~匯的相似度計(jì)算方法主要是基于詞袋模型(bag of word),該模型忽略了詞匯之間的順序、句法、語(yǔ)法及語(yǔ)義信息,將一個(gè)文本看作若干詞匯組成的集合,認(rèn)為詞的分布或者服從0-1分布或者服從多項(xiàng)式分布。傳統(tǒng)基于詞袋的檢索模型有VSM[12]、BM25模型(Best Match25)[13]。這兩個(gè)模型都是基于TF-IDF來(lái)計(jì)算,不同點(diǎn)在于BM25模型中加入了對(duì)句子長(zhǎng)度的分析。此外,根據(jù)編輯距離和最長(zhǎng)公共子序列來(lái)計(jì)算相似度也是一種簡(jiǎn)單可行的方法。根據(jù)句法特征計(jì)算問(wèn)句相似度,主要是應(yīng)用現(xiàn)有的句法分析工具獲得問(wèn)句句法結(jié)構(gòu),然后從句法結(jié)構(gòu)中抽取問(wèn)題特征,進(jìn)行相似度計(jì)算。文獻(xiàn)[14]中使用依存句法分析樹(shù),根據(jù)樹(shù)中節(jié)點(diǎn)的依存關(guān)系及節(jié)點(diǎn)路徑信息來(lái)分析句子的相似度;文獻(xiàn)[15]使用短語(yǔ)句法樹(shù)核的方法,通過(guò)分析句法樹(shù)中子樹(shù)的相似度來(lái)計(jì)算兩個(gè)問(wèn)題的相似度。漢語(yǔ)語(yǔ)言中經(jīng)常有語(yǔ)義相同特征詞卻不同,或者特征詞相同而語(yǔ)義卻不同的句子,因此又引入了基于語(yǔ)義的相似度分析,現(xiàn)有的語(yǔ)義相似度研究方法中一般借助《知網(wǎng)》、主題模型等來(lái)分析[16-17]。
表2 兩種方法的關(guān)鍵詞抽取結(jié)果
由于本文主要是為了求解知識(shí)點(diǎn)類(lèi)似的地理題目,而且地理題目結(jié)構(gòu)內(nèi)容靈活,句法分析技術(shù)并不是十分適用,因此本文主要從詞法和語(yǔ)義兩方面研究:詞法上,主要對(duì)新問(wèn)題的關(guān)鍵詞擴(kuò)展,然后根據(jù)Lucene中TFIDF機(jī)制獲得初始候選問(wèn)題;語(yǔ)義上,使用word2vec分析詞語(yǔ)的語(yǔ)義相似度,進(jìn)而研究?jī)蓚€(gè)句子的相似度。在分析相似度時(shí)根據(jù)不同的關(guān)鍵詞抽取方法和相似度計(jì)算方法間的組合,來(lái)獲得最佳結(jié)果。
近年來(lái)隨著深度學(xué)習(xí)(Deep Learning,DL)在計(jì)算機(jī)視覺(jué)和語(yǔ)音識(shí)別領(lǐng)域的廣泛應(yīng)用,在自然語(yǔ)言處理領(lǐng)域的應(yīng)用也逐漸展開(kāi)。Tomas Mikolov等人在2013年建立了word2vector模型,將單詞轉(zhuǎn)換成詞向量的形式[18]。不同于傳統(tǒng)的使用One-hot Representation來(lái)表示詞向量,word2vec是將詞用Distributed Representation表示成一種低維實(shí)數(shù)向量。Google開(kāi)源了word2vec學(xué)習(xí)工具,該工具包含了對(duì)兩種語(yǔ)言模型的訓(xùn)練,即連續(xù)詞袋模型(Continuous Bag-Of-Words Model,CBOW)和 Skipgram(Continuous Skip-Gram Model)。詞向量是在訓(xùn)練語(yǔ)言模型的同時(shí)得到的副產(chǎn)品,并沒(méi)有直接的模型來(lái)訓(xùn)練獲得。針對(duì)這兩種模型,又有兩種不同的學(xué)習(xí)方法,即HS(Hierarchical Softmax)和NS(Negative Sampling)。
本文在訓(xùn)練詞向量時(shí),使用的是維基百科中英文語(yǔ)料,語(yǔ)言模型使用Skip-gram,訓(xùn)練使用NS負(fù)采樣方法。在此基礎(chǔ)上采用譜聚類(lèi)算法[19-20]對(duì)關(guān)鍵詞聚類(lèi),以便在關(guān)鍵詞擴(kuò)展的時(shí)候使用。計(jì)算相似度采用基于word2vec生成的詞向量來(lái)設(shè)計(jì)不同的相似度計(jì)算方法。
本文使用兩種方法抽取關(guān)鍵詞,一種方法是參照TextRank算法,另一種方法是使用詞性標(biāo)注(Part Of Speech,POS)的結(jié)果。
TextRank算法是類(lèi)比PageRank實(shí)現(xiàn)的,將每個(gè)單詞作為PageRank的一個(gè)節(jié)點(diǎn),設(shè)定窗口大小后,認(rèn)為窗口中任兩個(gè)單詞對(duì)應(yīng)的節(jié)點(diǎn)之間存在一個(gè)無(wú)向無(wú)權(quán)的邊,然后根據(jù)構(gòu)成的圖計(jì)算出每個(gè)單詞節(jié)點(diǎn)的重要性,按照重要性的大小得到關(guān)鍵詞。另一種方法是使用FudanNLP分詞器對(duì)問(wèn)題進(jìn)行詞性標(biāo)注,從標(biāo)注結(jié)果中提取出具有名詞、地名、專(zhuān)名、形容詞等詞性的詞,然后給每個(gè)詞賦予不同的權(quán)值,得到關(guān)鍵詞集合。表2給出了上述兩種方法對(duì)于2個(gè)例句的關(guān)鍵詞抽取結(jié)果。
在進(jìn)行關(guān)鍵詞擴(kuò)展時(shí),先使用word2vec生成詞向量,然后再對(duì)詞聚類(lèi)。為了減小噪聲,避免關(guān)鍵詞中噪聲過(guò)大,對(duì)詞的聚類(lèi)并沒(méi)有使用維基百科語(yǔ)料,而是使用題庫(kù)中已有題目作為語(yǔ)料訓(xùn)練詞向量,使用文獻(xiàn)[21]中提出的基于全局K-means的譜聚類(lèi)算法完成對(duì)詞聚類(lèi)。表3給出了4組詞聚類(lèi)中詞頻較高的樣例。
表3 詞聚類(lèi)結(jié)果
3.2.1 基于改進(jìn)的BM25方法
BM25算法是二元獨(dú)立模型的擴(kuò)展,在信息檢索中通常用來(lái)作為搜索相關(guān)性評(píng)分。其主要思想是,對(duì)用戶查詢進(jìn)行解析,生成語(yǔ)素qi,然后再計(jì)算每個(gè)語(yǔ)素qi與檢索到的文檔D的相關(guān)性得分,最后將每個(gè)qi與文檔D的相關(guān)性進(jìn)行加權(quán)求和,進(jìn)而得到Query和文檔D的相關(guān)性得分,其計(jì)算公式如公式(1)所示:
其中,Wi=IDF(qi)是語(yǔ)素qi的逆文檔頻率,代表其權(quán)重,而語(yǔ)素qi與文檔的相關(guān)性表示如公式(2)所示:
其中,f( )
qi,D 表示語(yǔ)素qi在文檔D中的詞頻,k1和b為調(diào)節(jié)因子, ||D表示文檔長(zhǎng)度,avgdl表示所有文檔的平均長(zhǎng)度。BM25算法的優(yōu)點(diǎn)在于可以靈活改變各部分內(nèi)容,對(duì)算法進(jìn)行改進(jìn)。
為了有效模擬人類(lèi)求解問(wèn)題的過(guò)程,往往需要更多考慮問(wèn)題知識(shí)點(diǎn),因此可以嘗試將一個(gè)問(wèn)題分解為多個(gè)關(guān)鍵詞,代表不同知識(shí)點(diǎn),然后再判斷每個(gè)關(guān)鍵詞與已有問(wèn)題的相似性,再對(duì)各個(gè)關(guān)鍵詞與問(wèn)題的相似性進(jìn)行加權(quán)求和。因此可以對(duì)上述算法的兩部分進(jìn)行更改,得到求解兩個(gè)地理問(wèn)題相似度的方法,如公式(3)所示:
其中,kw代表一個(gè)關(guān)鍵詞,?為歸一化因子,wkw代表關(guān)鍵詞權(quán)重,score(k w ,qi)代表關(guān)鍵字kw與已有問(wèn)題qi的得分,計(jì)算方法如公式(4)所示:
其中,kw'為qi的關(guān)鍵詞。
之所以采用公式(3)描述的計(jì)算方法,主要是考慮到地理題往往是一個(gè)短文本,問(wèn)題中每個(gè)關(guān)鍵詞的頻率一般為1,而傳統(tǒng)的BM25算法根據(jù)詞頻計(jì)算,所以在此過(guò)程中并不適用。而兩個(gè)地理題的相似更多的是偏重于某個(gè)知識(shí)點(diǎn)的相似,因此關(guān)鍵詞kw與問(wèn)題qi的相似度求的是問(wèn)題qi中與kw最相似詞的相似度。表4中給出了2個(gè)例句及其相似度計(jì)算的結(jié)果。
表4 相似度計(jì)算的2個(gè)例句
根據(jù)改進(jìn)后的BM25算法,分別使用兩種不同的關(guān)鍵詞抽取方法得到的相似度均為1.0,這證明了該方法的可行性。該方法中主要計(jì)算每個(gè)單詞與候選問(wèn)題的相似度,因此后文中也將其稱(chēng)為基于詞的相似度計(jì)算方法(byWord)。
3.2.2 基于詞項(xiàng)向量加權(quán)的方法
word2vec值得注意的另一個(gè)特性是可以對(duì)訓(xùn)練得出的詞向量進(jìn)行加減組合運(yùn)算,進(jìn)而得到與這些詞語(yǔ)相關(guān)的詞語(yǔ)信息。在3.2.1小節(jié)中是將新問(wèn)題的各個(gè)關(guān)鍵詞分別與已有問(wèn)題計(jì)算相似度,在本小節(jié)中考慮在基于句子級(jí)別上分析兩個(gè)句子的相似度。首先求得問(wèn)題的關(guān)鍵詞及其權(quán)重,然后對(duì)各個(gè)關(guān)鍵詞進(jìn)行加權(quán)求和得到問(wèn)題向量,最后再用余弦相似度來(lái)計(jì)算兩個(gè)問(wèn)題的相似度,具體的計(jì)算公式如下:
此處求解問(wèn)題向量時(shí)并沒(méi)有進(jìn)行歸一化計(jì)算,因?yàn)榧词褂袣w一化因子,在后邊計(jì)算余弦相似度過(guò)程中也會(huì)被約掉。
使用該算法對(duì)3.2.1小節(jié)中的2個(gè)例句求相似度時(shí),使用TextRank抽取關(guān)鍵詞得到的相似度為0.7,使用詞性標(biāo)注結(jié)果抽取關(guān)鍵詞相似度為0.9。雖然此處相似度值與3.2.1小節(jié)結(jié)果有差距,但是實(shí)驗(yàn)結(jié)果證明,使用該方法效果也較好。該方法最終是將句子轉(zhuǎn)為句子向量來(lái)求解,因此后文中也將其稱(chēng)為基于句子的相似度計(jì)算方法(bySent)。
3.2.3 基于改進(jìn)編輯距離的方法
編輯距離是指兩個(gè)字串之間,由一個(gè)轉(zhuǎn)成另一個(gè)所需的最少編輯操作次數(shù)。編輯操作包括對(duì)一個(gè)字符的增加、刪除和修改。傳統(tǒng)的編輯距離計(jì)算時(shí)是對(duì)單個(gè)字符執(zhí)行編輯操作,且認(rèn)為每一次操作的代價(jià)為1。本文中,將單個(gè)詞,每一次的操作代價(jià)r(w ,w')與兩個(gè)詞語(yǔ)的相似度sim(w ,w')成反比,記為1-sim(w ,w')。做了上述改進(jìn)之后,根據(jù)動(dòng)態(tài)規(guī)劃的思想,算法迭代式如下所示:
根據(jù)此算法求出兩個(gè)問(wèn)題的編輯距離dp(q ,qi),再對(duì)編輯距離規(guī)范化,使其范圍在0~1之間,且使編輯距離與兩個(gè)問(wèn)題的相似度成反比,具體公式如下:
其中, ||q和 ||qi為兩個(gè)問(wèn)題的長(zhǎng)度。
實(shí)驗(yàn)發(fā)現(xiàn)使用該算法時(shí),相似度計(jì)算值浮動(dòng)較大。給定第5個(gè)例句如下:
例句5:“對(duì)西歐海洋性氣候的形成有巨大作用的洋流是北大西洋暖流”
對(duì)3.2.1小節(jié)中的例句3和例句5分別使用兩種關(guān)鍵詞抽取方法得到的相似度在0.8左右;而對(duì)3.2.1小節(jié)中的例句3和例句4計(jì)算相似度時(shí)值卻在0.38左右,這表明該算法對(duì)句子中語(yǔ)義相似詞的位置比較敏感。但是實(shí)驗(yàn)結(jié)果證明,該方法在求解關(guān)聯(lián)推理的地理題時(shí)也有一定效果,分析可能是由于地理關(guān)聯(lián)推理類(lèi)題目往往是局限在地理知識(shí)點(diǎn)內(nèi)的。后文中也將該方法稱(chēng)為基于編輯距離的相似度計(jì)算方法(byEdit)。
本文以地理選擇題的求解為處理對(duì)象,所用題庫(kù)分為兩部分:一部分是從互聯(lián)網(wǎng)上下載的題目,總共大約有10萬(wàn)多題,其中選擇題共有6萬(wàn)多,去除選擇題中的圖表分析題和組合選擇題,共剩余26 000左右,將這部分作為檢索庫(kù);另一部分是人工錄入的歷年高考題,大約3 700多題,去除其中的非選擇題、圖表題、組合選擇題和計(jì)算題,剩余340題左右,將這部分題作為測(cè)試集使用。對(duì)檢索庫(kù)中的題集僅保留問(wèn)題和答案,并采用Lucene對(duì)其創(chuàng)建索引。
在學(xué)習(xí)詞向量時(shí),word2vec的訓(xùn)練語(yǔ)料使用維基百科數(shù)據(jù),共800 MB左右,而對(duì)詞聚類(lèi)時(shí),因?yàn)楸疚闹饕菫榱藬U(kuò)展地理方面的詞匯,為了避免關(guān)鍵詞類(lèi)中噪聲過(guò)大,對(duì)詞的聚類(lèi)并沒(méi)有使用維基百科語(yǔ)料,而是使用題庫(kù)中已有題目作為語(yǔ)料,生成關(guān)鍵詞聚類(lèi),結(jié)果如表3所示。此外,word2vec的訓(xùn)練語(yǔ)料需要提前分詞,本文使用FudanNLP分詞器,并加入從維基百科中抽取的地理專(zhuān)業(yè)詞匯,完成對(duì)語(yǔ)料的分詞。
本文以地理選擇題作為實(shí)驗(yàn)數(shù)據(jù),對(duì)問(wèn)題的求解主要是根據(jù)相似度對(duì)問(wèn)題的各個(gè)候選項(xiàng)打分,共分為4個(gè)步驟實(shí)現(xiàn),流程如圖1所示。
圖1 問(wèn)題求解的流程
步驟1分析問(wèn)題,形成檢索項(xiàng)。首先將問(wèn)題與各個(gè)選項(xiàng)組合成一句話(以表5中例題為例,首先將其合成一句話“貯煤地層的巖石類(lèi)型,一般是沉積巖”);其次對(duì)每句話使用FudanNLP分詞器進(jìn)行詞性標(biāo)注;然后根據(jù)兩種方法抽取關(guān)鍵詞;最后利用已有的詞聚類(lèi)結(jié)果擴(kuò)展關(guān)鍵詞。
步驟2采用Lucene系統(tǒng),根據(jù)擴(kuò)展后的關(guān)鍵詞集合從題庫(kù)檢索候選問(wèn)題得到候選集合。
步驟3融入word2vec生成的詞向量,計(jì)算相似度。采用不同的相似度計(jì)算方法,對(duì)檢索出的候選問(wèn)題與檢索前的句子求相似度,據(jù)此得出問(wèn)題和各個(gè)選項(xiàng)的得分。
步驟4根據(jù)相似度的計(jì)算結(jié)果,以各個(gè)選項(xiàng)中得分最大的選項(xiàng)作為最終答案。
表5 地理選擇題示例
本文使用最終求解問(wèn)題的準(zhǔn)確率作為對(duì)各個(gè)方法的評(píng)價(jià)。在關(guān)鍵詞抽取時(shí)使用了TextRank和詞性標(biāo)注兩種方法。在計(jì)算相似度時(shí)分別使用了改進(jìn)的BM25方法、詞項(xiàng)向量方法、改進(jìn)的編輯距離等三種方法。將兩種關(guān)鍵詞抽取和三種相似度計(jì)算方法進(jìn)行組合,共產(chǎn)生六種不同的求解方法。
在測(cè)試集上,為了驗(yàn)證各個(gè)相似度計(jì)算方法的準(zhǔn)確性,在檢索集上進(jìn)行了10次封閉測(cè)試,每次從檢索集中隨機(jī)選擇200道題作為測(cè)試集,計(jì)算各個(gè)求解方法的準(zhǔn)確率,求10詞的平均準(zhǔn)確率(Average Precision,AP)。然后再使用手工錄入的高考題作為測(cè)試集,計(jì)算求解各個(gè)方法準(zhǔn)確率。因?yàn)閺腤eb中下載的題目與高考題目會(huì)有重復(fù),所以最后又對(duì)檢索庫(kù)中的問(wèn)題進(jìn)行10次交叉測(cè)試。檢索庫(kù)中大約有26 000道題,每次隨機(jī)選取260道作為測(cè)試集,剩余的作為檢索庫(kù),求出平均準(zhǔn)確率。具體的實(shí)驗(yàn)結(jié)果如表6所示。
表6 幾種方法的實(shí)驗(yàn)結(jié)果對(duì)比
圖2是對(duì)表6的直觀表示。
圖2 幾種方法的實(shí)驗(yàn)結(jié)果對(duì)比圖
從圖2中可以發(fā)現(xiàn),TextRank抽取關(guān)鍵字整體效果不是特別好,分析主要是因?yàn)榈乩眍}目一般都比較簡(jiǎn)短,而TextRank對(duì)長(zhǎng)文本更加有效。其中基于改進(jìn)的BM25方法,在采用TextRank抽取關(guān)鍵詞方法上的效果最不好,主要因?yàn)榛诟倪M(jìn)的BM25方法是基于詞的計(jì)算,所以效果不理想。觀察基于改進(jìn)的編輯距離方法在兩種關(guān)鍵詞抽取方法上的效果相差不大,分析是因?yàn)樗歉鶕?jù)詞序計(jì)算編輯距離,而且句子短時(shí)效果更好,因此詞數(shù)目的減少對(duì)其影響不是很大?;谠~項(xiàng)向量方法,在使用基于詞性的關(guān)鍵詞抽取方法上與采用改進(jìn)的編輯距離的結(jié)果不分上下??傮w看,在地理選擇題目求解時(shí),采用詞性標(biāo)注方法抽取關(guān)鍵詞,要比基于TextRank的方法好一些;而相似度計(jì)算上采用改進(jìn)編輯距離的方法較好一些,但是使用不同的關(guān)鍵詞抽取方法,采用詞項(xiàng)向量的方法也能夠取得較好的結(jié)果。
本文主要通過(guò)對(duì)問(wèn)題進(jìn)行關(guān)鍵詞抽取與擴(kuò)展,然后融入word2vec生成的詞向量的語(yǔ)義信息,再使用基于改進(jìn)的BM25方法、基于詞項(xiàng)向量方法和基于改進(jìn)的編輯距離三種計(jì)算相似度方法,完成了基于題庫(kù)的選擇類(lèi)問(wèn)題求解。實(shí)驗(yàn)結(jié)果表明,采用檢索題庫(kù)中相似問(wèn)題完成對(duì)地理知識(shí)關(guān)聯(lián)、推理類(lèi)問(wèn)題的求解也是可行的。
由于本文中的方法主要集中在相似度的計(jì)算上,考慮語(yǔ)義時(shí)僅僅使用了word2vec,下一步可以加入更多的語(yǔ)義分析,并加入事件的抽取,進(jìn)而來(lái)比較兩個(gè)知識(shí)點(diǎn)類(lèi)似的高考題表述的事件是否一致,同時(shí)也可以考慮引入深度學(xué)習(xí)的方法。