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