沈盛宇,楊思春,王一賓
自動解題技術(shù)是當(dāng)前自然語言處理領(lǐng)域的一個研究熱點,主要集中在數(shù)學(xué)領(lǐng)域,如Shi[1]等通過構(gòu)造語義分析器自動求解代數(shù)文字題,Hosseini等[2]通過從訓(xùn)練語料中學(xué)習(xí)動詞的類別自動求解算術(shù)文字題,Kushman等[3]通過訓(xùn)練一個概率模型自動求解代數(shù)文字題,Roy等[4]通過使用表達式樹自動求解一般的數(shù)字文字題,Zhou[5]等利用二次規(guī)劃來自動解答代數(shù)文字題。而對于其他課程的自動解題研究則偏少。漆桂林[6]以本體作為知識庫,構(gòu)建了一個高考地理智能問答系統(tǒng)。本文針對地理課程自動解題,對本體知識庫的自動構(gòu)建進行研究。
傳統(tǒng)的本體構(gòu)建方法有TOVE法、骨架法、IDEF5法、METHONTOLOGY法、SEN-SUS法、KACTUS工程法、七步法等[7]。在國內(nèi)外研究中,嘗試在本體構(gòu)建過程中盡量減少人工參與成分的研究主要有以下幾類:第一類,在概念實體抽取階段主要通過手工方法實現(xiàn),但在概念實體關(guān)系構(gòu)建階段,部分通過自動方法實現(xiàn),例如馬捷[8]借助《教育主題詞表》的主要概念實體關(guān)系,利用本體編輯開發(fā)軟件protege3.2.1構(gòu)建出面向網(wǎng)絡(luò)應(yīng)用的教育領(lǐng)域本體。第二類,在概念實體抽取階段主要通過手工方法實現(xiàn),但在概念實體關(guān)系構(gòu)建階段完全通過自動方法實現(xiàn),例如邱均平[9]利用情報學(xué)資源本體類目及等級體系,定義類的屬性、添加實體及定義實例屬性,通過統(tǒng)計分析、共現(xiàn)分析和語義相似度計算等方法,構(gòu)建實體概念間的關(guān)系。第三類,在概念實體抽取階段和概念實體關(guān)系構(gòu)建階段均完全通過自動方法實現(xiàn),如王超[10]通過對文獻資源的分詞和清洗,自動提取領(lǐng)域概念實體,并用關(guān)聯(lián)分析和改進的層次聚類發(fā)現(xiàn)領(lǐng)域概念實體間關(guān)系,構(gòu)建農(nóng)業(yè)領(lǐng)域本體。
本文針對地理課程自動解題,研究地理課程試題本體知識庫的構(gòu)建。
參照傳統(tǒng)本體構(gòu)建方法,本文在構(gòu)建地理試題本體知識庫時分為以下幾個步驟:概念實體提取、概念實體關(guān)系構(gòu)建、OWL文檔規(guī)則化、protege編輯完善等,總的實現(xiàn)流程如圖1所示。
圖1 地理領(lǐng)域本體構(gòu)建流程
利用計算機自動解題時,關(guān)鍵的一步便是對整個試題文本進行理解。本文對地理試題文本進行分詞和結(jié)合TFIDF算法提取概念實體,用于后續(xù)的概念實體關(guān)系構(gòu)建。下面以一道地理試題為例,說明地理試題本體的具體構(gòu)建過程:
例 下列節(jié)日中,北京市的白晝時間最短的是()
A.元旦 B.教師節(jié) C.國慶節(jié) D.國際兒童節(jié)
分析 北京位于北半球,北半球白晝時間最短的一天是冬至日(12月22日前后)。4個節(jié)日中,距離冬至日最短的那天就是北京市白晝最短的一天。元旦(1月1日)、教師節(jié)(9月10日)、國慶節(jié)(10月1日)、國際兒童節(jié)(6月1日),這4個節(jié)日中,元旦距離冬至日時間最短,故白晝時間最短,因此選“A.元旦”。
首先利用中科院所開發(fā)的ICTCLAS分詞軟件對試題進行分詞,目前在系統(tǒng)里加入一個包含400個地理概念詞匯的用戶詞典以提高分詞效果,并構(gòu)建停用詞表,在系統(tǒng)進行TF-IDF前對分詞結(jié)果進行預(yù)處理,去除試題分詞結(jié)果中的通用字,以提高TF-IDF的準(zhǔn)確性。
TF-IDF算法中的詞頻(TF)指的是某個詞在文件中的出現(xiàn)次數(shù)與文件中所有詞的出現(xiàn)次數(shù)之和的商:
TF-IDF算法中的逆向文件頻率(IDF)是指總文件數(shù)目與包含該詞語之文件數(shù)目的商的對數(shù):
TF-IDF的值就是TF與IDF的乘積:
結(jié)合上述分詞及通用字預(yù)處理的結(jié)果,將收集的3 000多道地理試題作為試題庫,從中隨機抽取50,100,200道試題作為樣本,分別計算每道試題中關(guān)鍵詞所對應(yīng)的TF-IDF值,將樣本試題中每個關(guān)鍵詞分別放入所構(gòu)建的基本術(shù)語層次關(guān)系表中進行檢索,分別保留50,100,200道試題中TF-IDF的最大值與最小值,如表1所示。
為提高TF-IDF閾值設(shè)置的準(zhǔn)確性,將閾值范圍設(shè)為0.111 965 16~0.207 313 95。利用分詞及相關(guān)預(yù)處理和TF-IDF算法,可以得到上面例題的分析結(jié)果,如表2所示。
利用上述閾值所設(shè)置的范圍,可以提取出例題文本的所有概念實體。
表1 不同試題數(shù)目下TF-IDF的最大值與最小值情況
表2 例題文本的分詞和TF-IDF值
首先給出基本術(shù)語層次關(guān)系表的構(gòu)建。對于上面的例題,其對應(yīng)的基本術(shù)語層次關(guān)系如表3所示。
表3 基本術(shù)語層次關(guān)系表
本文中所用的基本術(shù)語層次關(guān)系表是通過手工方法構(gòu)建的,主要考慮:一方面,由于本文試題規(guī)模有限,統(tǒng)計學(xué)、聚類等方法難以到達明顯的效果;另一方面,所構(gòu)建的本體目標(biāo)是用于自動解題,從解題準(zhǔn)確率出發(fā),通過手工構(gòu)建基本術(shù)語層次關(guān)系表輔助實現(xiàn)概念關(guān)系的自動抽取。
在構(gòu)造基本術(shù)語層次關(guān)系表時,根據(jù)所收集的3 000道地理課程試題的22個不同類型分類,針對不同類型的試題,分別構(gòu)造對應(yīng)的基本術(shù)語關(guān)系表。利用開源的搜狗地理詞庫,構(gòu)建基本術(shù)語關(guān)系表。目前基本術(shù)語關(guān)系表中包涵1 700多個術(shù)語詞,試題分布及基本術(shù)語層次表的具體情況如表4所示。
表4 試題分布及基本術(shù)語層次表的具體情況表
在基本術(shù)語層次關(guān)系表的基礎(chǔ)上,通過設(shè)計相應(yīng)的概念實體關(guān)系自動構(gòu)建算法,進一步實現(xiàn)地理試題文本中的相關(guān)概念實體關(guān)系的構(gòu)建。算法1給出了概念實體關(guān)系的具體構(gòu)建過程。
算法1概念實體關(guān)系構(gòu)建算法
輸入:TF-IDF提取出的概念實體與解題所需的隱含概念實體。
輸出:構(gòu)建好的概念實體關(guān)系文件result與待處理概念實體文件pending。
Step1:根據(jù)試題類型,選擇對應(yīng)的基本術(shù)語層次關(guān)系表,進入Step2;
Step2:依次選擇提取出的概念實體與解題所需的隱含概念實體,掃描整個數(shù)據(jù)庫,若概念實體存在于數(shù)據(jù)庫中,則進入Step3,否則進入Step4;
Step3:查詢該概念實體所處節(jié)點的父親節(jié)點,將該節(jié)點與父親節(jié)點構(gòu)建成三元組關(guān)系,并將關(guān)系寫入result文件中;
Step4:將該概念實體直接寫入pending文件。
對于例題文本,以“元旦”進行掃描時,其父親節(jié)點為“節(jié)日”,則將“元旦subClassOf節(jié)日”語句寫入result.txt文件。
在抽取試題文本中的概念實體關(guān)系后,可以利用Jena所提供的Java API,將得到的概念實體關(guān)系(result.txt文件)轉(zhuǎn)換成為OWL本體文件(geo.owl),該OWL文檔就是可被編輯的本體原型,這個過程稱為概念實體關(guān)系的規(guī)則化。算法2給出了概念實體關(guān)系的具體規(guī)則化過程。
算法2 概念實體關(guān)系的規(guī)則化
輸入:三元組關(guān)系文檔result.txt
輸出:OWL本體
Step1:OntModel m=ModelFactory.createOntologyModel();
Step2:String ontoURI="http://www.semanticweb.org/geo";
Step3:while(result.txt的一行不為空){
String firstString=ontoURI+strings[0];
OntClass class1=m.createClass(firstString);
//第一個概念實體轉(zhuǎn)換成一個類
String secondString=ontoURI+strings[1];
OntClass c2=m.createClass(secondString);
//第二個概念實體轉(zhuǎn)換成一個類
class2.addSubClass(class1);//構(gòu)建兩個概念實體關(guān)系
}
Step4:m.write(write,"RDF/XML-ABBREV");//輸出成為OWL本體文檔
對于例題文本,利用該算法所得的geo.owl文檔中對應(yīng)概念實體關(guān)系“元旦subClassOf節(jié)日”的描述為:
<o(jì)wl:Class rdf:about="http://www.geo.com41/ontology-#元旦">
<rdfs:subClassOf>
<o(jì)wl:Class rdf:about="www.geo.com41#ontology-節(jié)日"/>
</rdfs:subClassOf>
</owl:Class>
算法思想:讀取關(guān)系文檔的每一行,將其中的概念實體轉(zhuǎn)換成本體的一個類,將關(guān)系轉(zhuǎn)換成本體中的關(guān)系屬性后,構(gòu)建出兩個概念實體的關(guān)系,直至讀完整個文檔。
例題文本的OWL本體文件(geo.owl)在protege中的展示如圖2所示。
利用protégé對自動構(gòu)建的試題本體進行編輯,進一步補充試題文本中所蘊含的其他概念實體關(guān)系。利用protégé編輯后的例題本體如圖3所示。
圖2 自動構(gòu)建的例題本體
圖3 編輯后的例題本體
例如,在利用protégé對原來自動構(gòu)建的例題本體進行編輯時,添加了“節(jié)日元旦接近于節(jié)氣冬至”,由于試題文本中無法直接描述這一關(guān)系,所以需要人工進行添加,以方便后期進行實際的推理解題工作。
本文原先從例題文本中提取出17個概念實體,并將其中6個概念實體構(gòu)建出5條關(guān)系,加入隱含概念實體后,一共構(gòu)建出包含16個概念實體、15條關(guān)系的本體。
利用Jena所提供的推理子系統(tǒng),通過書寫相關(guān)規(guī)則文檔,結(jié)合所構(gòu)建的本體文件進行自動解題。
根據(jù)對試題的理解,可以構(gòu)建如下規(guī)則:
[rule:(?a http://www.semanticweb.org/geo.ow l#位于?b)
(?bhttp://www.semanticweb.org/geo.owl# 白晝時間最短的是?c)
(?c http://www.semanticweb.org/geo.owl# 接近?d)->
(?a http://www.semanticweb.org/geo.owl# 白晝時間最短的節(jié)日是?d)]
該條規(guī)則所表達的含義:若存在一個城市a,其位于半球b,而半球c白晝時間最短的一天是c,節(jié)氣c接近于節(jié)日d,則可以稱為城市a白晝世界最短的節(jié)日就是d。
然后書寫如下搜索語句,完成搜索,得到結(jié)果:
SELECT?節(jié)日
WHERE{daylong:?城市 daylong:白晝時間最短的節(jié)日是?節(jié)日}
利用上述搜索語句,結(jié)合規(guī)則文檔,便能夠通過本體得到問題的答案。
實驗數(shù)據(jù)主要來自億庫地理試題網(wǎng)(http://www.eku.cc/sj/dili/)、菁 優(yōu) 網(wǎng)(http://www.jyeoo.com/)以及中學(xué)地理課程教材,收集3 000多道地理選擇題,該題型涵蓋了地理試題中的22個不同的類,主要分布情況如表4所示。
為驗證所提出的本體構(gòu)建方法對各類試題的知識庫構(gòu)建是否有明顯的效果,利用以下公式進行驗證:
表5給出了本文所提出的本體構(gòu)建方法在所收集試題集的各類試題上的相應(yīng)分析結(jié)果。
表5 本文的本體構(gòu)建方法在各類試題上的應(yīng)用效果
實驗結(jié)果表明:1)以第2節(jié)中所例舉的試題為例,當(dāng)解答試題需要較強的關(guān)系推理,運用本體作為知識庫時,解題效率較高;2)高考考試中包含大量圖片及表格,目前只能通過手工描述圖片信息,結(jié)合試題進行本體構(gòu)建,由于圖片信息的局限性,構(gòu)建出的本體并不能幫助解題;3)當(dāng)解答試題要進行評價判斷如“下列選項中說法正確的是”或者“地年平均氣溫的年際波動不一致說明”時,由于試題中多為關(guān)系性不強或者為評價性短語,無法正確構(gòu)建出相應(yīng)合適本體,解題較為困難;4)當(dāng)試題中包含數(shù)值計算時,例如對于試題“世界上最高的珠穆朗瑪峰海拔8 848米,最低處死海的海拔-400米,兩地的相對高度是多少”,單純利用Jena推理也無法保證題目的自動解答。
針對在傳統(tǒng)的構(gòu)建本體方法中人工參與成分較多,本文提出半自動的本體構(gòu)建方法。首先利用開源的ICTClAS分詞工具對輸入試題文本進行分詞,針對分詞結(jié)果運用TF-IDF算法通過閾值設(shè)置提取試題文本中的概念詞,利用構(gòu)建的基本術(shù)語關(guān)系表構(gòu)建概念詞間的實體關(guān)系,并結(jié)合Jena的相關(guān)算法將所得到實體關(guān)系規(guī)則化得到解題所需本體,最后利用protégé對自動構(gòu)建出的本體進一步編輯,得到解題所需本體。本方法在很大程度上減少了構(gòu)建本體知識庫的人工成本。在后續(xù)研究中,我們將在如下幾個方面進一步開展研究:逐步擴大和篩選文本量,從而進一步優(yōu)化TF-IDF算法的結(jié)果,并通過反復(fù)實驗篩選出更優(yōu)閾值,提高概念實體提取的準(zhǔn)確率;隨著所收集試題規(guī)模的擴大,我們準(zhǔn)備考慮使用機器學(xué)習(xí)的方法,實現(xiàn)基本術(shù)語層次關(guān)系表的自動構(gòu)建;由于地理題中包含大量含有圖片信息的問題,考慮利用圖像識別等技術(shù)進一步幫助系統(tǒng)理解圖片信息,減少人工讀圖開銷。
參考文獻:
[1]SHI S,WANG Y,LIN C Y,et al.Automatically solving number word problems by semantic parsing and reasoning[C].In Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing,2015:1132-1142.
[2]Hosseini M J,Hajishirzi H,Etzioni O,et al.Learning to solve arithmetic word problems with verb categorization[C].In Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing,2014:523-533.
[3]KUSHMAN N,ARTZI Y,ZETTLEMOYER L,et al.Learning to automatically solve algebra word problems[C].In Proceedings of the 52ndAnnual Meeting of the Association for Comput-ational Linguistics,2014:271-281.
[4]ROY S,ROTH D.Solving general arithmetic word problems[C].In Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing,2015:1743-1752.
[5]ZHOU L,DAI S,CHEN L.Learn to solve algebra word problems using quadratic programming[C].In Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing(EMNLP2015),2015:817-822.
[6]漆桂林.面向地理智能問答的知識表示和推理的初步探索[C].上海:第三屆中國圖譜學(xué)術(shù)研討會,2015.
[7]徐劍波.基于本體的電子政務(wù)資源管理系統(tǒng)研究[D].上海:東華大學(xué),2006.
[8]馬捷,劉小樂,黃嵐,等.教育領(lǐng)域本體構(gòu)建研究[J].情報理論與實踐,2012(07):104-108.
[9]邱均平,樓雯.基于CSSCI的情報學(xué)資源本體構(gòu)建[J].情報資料工作,2013(03):57-63.
[10]王超,李書琴,肖紅.基于文獻的農(nóng)業(yè)領(lǐng)域本體自動構(gòu)建方法研究[J].計算機應(yīng)用與軟件,2014,31(8):71-74.