朱劉影, 楊思春, 沈盛宇, 王 勇
(安徽工業(yè)大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,安徽 馬鞍山 243032)
自動解題是人工智能領(lǐng)域的經(jīng)典問題,由于自動解題的題目大多為文字題,因此,近年來也吸引了自然語言處理領(lǐng)域研究人員的極大興趣,并開始成為自然語言處理領(lǐng)域新的研究熱點。20 世紀(jì)60年代,Bobrow[1]最早提出用符號方法自動求解代數(shù)文字題,該方法通過模式匹配或轉(zhuǎn)換規(guī)則來實現(xiàn)。但是,符號方法的解題范圍局限于很小的問題子集,為此Shi 等人[2]通過構(gòu)造語義分析器,進(jìn)一步提升符號方法的解題能力。近年來,針對數(shù)學(xué)類文字題的自動求解,一些研究人員又提出基于機(jī)器學(xué)習(xí)的方法。Hosseini 等人[3]通過從訓(xùn)練語料中學(xué)習(xí)動詞的類別,自動求解同類型的單步或多步加減的算術(shù)文字題。Kushman 等人[4]在訓(xùn)練集中列出每題所對應(yīng)的方程組和答案,并通過訓(xùn)練一個概率模型自動求解代數(shù)文字題。Roy 等人[5]通過使用表達(dá)式樹(expression tree)自動求解算術(shù)文字題。Zhou 等人[6]通過訓(xùn)練一個對數(shù)線性模型自動求解代數(shù)文字題。機(jī)器學(xué)習(xí)方法雖然較好地解決了符號方法解題范圍小、解題能力弱的缺點,但由于受訓(xùn)練集規(guī)模和學(xué)習(xí)模型選擇的影響較大,其解題能力還有待于進(jìn)一步提升。
以上研究主要針對數(shù)學(xué)類課程的自動解題,對于其他課程的自動解題研究則偏少。漆桂林[7]以本體作為知識庫,引入空間推理模型,構(gòu)建一個高考地理智能問答系統(tǒng)。受其啟發(fā),筆者針對地理課程自動解題,在地理試題本體的基礎(chǔ)上,通過構(gòu)建用于地理試題解答的解題規(guī)則,并運用SPARQL查詢技術(shù)[8]和Jena推理技術(shù)[9],實現(xiàn)地理試題的自動解答。
以下第一部分概述相關(guān)理論和技術(shù),第二部分介紹地理課程解題規(guī)則的具體獲取過程,第三部分是實驗結(jié)果與分析,最后是對文中工作的總結(jié)與展望。
本體(Ontology)是一種語義和知識層次上的概念模型建模工具。自20 世紀(jì)90年代以來取得了豐富的研究成果,已被廣泛應(yīng)用于知識工程[10]、語義Web[11]、電子商務(wù)[12]、信息檢索[13]、數(shù)字圖書館[14]等領(lǐng)域。
本體描述語言用來描述領(lǐng)域知識概念及其關(guān)系, 主要有RDF、RDFS 和OWL 等。RDF 全稱ResourceDescription Framework, 即資源描述框架, 是一種描述有關(guān)Web 資源的格式化語句集合的模型。OWL 全稱Web Ontology Language,是RDF 的一種應(yīng)用程序,通常使用RDF/XML 編碼,它是W3C 推薦的語義互聯(lián)網(wǎng)中本體描述語言的標(biāo)準(zhǔn)。
關(guān)于本體構(gòu)造工具,廣泛使用的是Protégé[15]系列,其特點是獨立于特定的語言,可以導(dǎo)入或者導(dǎo)出多種Web 本體描述語言格式(如XML,RDF(S),OWL 等)。Protégé 內(nèi)部支持RDF、OWL 的存儲和訪問,為開放源碼軟件。
本體的構(gòu)建方法有很多,常用的有IDEF-5 方法、骨架法(Uschold 方法)、TOVE 企業(yè)建模法、Methontology 方法、循環(huán)獲取法、七步法等。其中,用于領(lǐng)域本體構(gòu)建的主要是斯坦福大學(xué)醫(yī)學(xué)院提出的七步法。筆者也是根據(jù)七步法完成對地理試題本體的構(gòu)建。
SPARQL 是RDF 實例數(shù)據(jù)查詢語言之一,用于從RDF 圖中獲取信息。SPARQL 類似于SQL 查詢語言的select-from 結(jié)構(gòu),主要有以下幾個部分組成:
PREFIX Onto_name:Onto_uri
SELECT?Onto_type
WHERE{Onto_name
Keyword
Consequence
Onto_type}
其中,PREFIX 是SPARQL 語言的前綴,以引出后面的本體名詞(Onto_name)及本體的URI 形式(Onto_uri)。SELECT?用于選擇文本類型(Onto_type),類似于SQL 語句中的SELCET,WHERE 句子中包含許多部分,主要用于提供推理條件,Keyword 為文本中的關(guān)鍵詞,Consequence 為推理所需的屬性條件。在Protégé 中的SPARQL查詢支持RDF、RDFS、XML 及OWL 形式,其表達(dá)方式為:
PREFIXrdf:
PREFIXowl:
PREFIX
xsd:
PREFIX
rdfs:
WHERE
{?subjectrdfs:subClassOf?object}
在構(gòu)建解題規(guī)則時,根據(jù)SPARQL 語言規(guī)范,設(shè)置SPARQL查詢語句用于推理驗證,其通用形式為:"PREFIX"+item.getValue()+":
Jena 由HP 實驗室開發(fā),是面向語義Web 有關(guān)應(yīng)用的Java 應(yīng)用程序API,是支持RDF、RDFS、OWL 等的編程環(huán)境。Jena 主要有以下接口和方法:
(1)RDF 和OWL 應(yīng)用編程接口, 利用RDF API 和OWL API 可以實現(xiàn)對RDF 和OWL 形式的本體存儲和查詢。
(2)Jena 的推理子系統(tǒng)提供了多個不同的推理引擎來使用不同類型的本體。
(3)SPARQL查詢語句的應(yīng)用方法。利用這些接口和方法可以實現(xiàn)本體構(gòu)建規(guī)則構(gòu)建及其推理。以下以構(gòu)建本體為例,說明基于Jena 的本體構(gòu)建步驟:
①實體確立:將領(lǐng)域中的實體類歸類,劃分成不同的集合,并為集合設(shè)立命名空間,每個類集合對應(yīng)一個命名空間,把類概念化,然后確定概念間層次關(guān)系。
②屬性描述:根據(jù)領(lǐng)域?qū)嶓w間的關(guān)系,找到相應(yīng)屬性,為每個屬性分配一個URI,有數(shù)據(jù)屬性和對象屬性之分,根據(jù)具體情況去設(shè)置屬性的特征,確定屬性間的層次關(guān)系。
③根據(jù)領(lǐng)域的要求,將類和屬性連接,從而得到該領(lǐng)域概念化設(shè)計,構(gòu)建出領(lǐng)域本體。
文中在地理試題本體的基礎(chǔ)上,進(jìn)一步獲取本體概念間的語義推理關(guān)系。作為本體概念間的語義傳遞信息,這些語義推理關(guān)系是獲取地理課程解題規(guī)則的關(guān)鍵。所獲取的解題規(guī)則包含傳遞關(guān)系的兩端及其之間的概念關(guān)系,其兩端為可以是地理試題中的概念實體,也可以是地理試題中的顯性或隱性知識;其概念關(guān)系主要體現(xiàn)為實體間的屬性關(guān)系,其表現(xiàn)形式類似于以下三元組形式:
ule:(?ahttp://www.semanticweb.org/XX.owl#c?b),其中a 表示一個實體,b 表示一個實體,c 表示a 與b 之間的屬性,http://www.semanticweb.org/XX.owl 就是一個XX 本體。
文中所構(gòu)建的解題規(guī)則由多個三元組構(gòu)成,解題規(guī)則語義鏈如圖1 所示。
圖1 解題規(guī)則語義鏈
其中,實體A、屬性r1、實體B 三者構(gòu)成三元組形式的一條規(guī)則。另外,用戶也可以基于SPARQL查詢語句和Jena推理技術(shù), 構(gòu)建出更多的其他解題規(guī)則。例如, 圖1 的傳遞關(guān)系語義鏈中的屬性r3 就是通過SPARQL查詢語句中的Consequence 得出的。
基本思路:在地理試題本體構(gòu)建的基礎(chǔ)上,對試題題干及選項進(jìn)行語義分析,從中獲取用于試題解答的約束性條件,并將這些約束性條件定義為解題規(guī)則;然后從試題中的關(guān)鍵詞出發(fā),在地理試題本體中找到關(guān)鍵詞與其他概念實體的聯(lián)系,并寫出三元組形式的規(guī)則文本。獲取解題規(guī)則的具體過程如圖2 所示。
圖2 解題規(guī)則構(gòu)建過程
以下舉例說明地理試題的解題規(guī)則獲取。
試題1:2011年6月26日21時10分,臺風(fēng)“米雷”在山東沿海登陸,此時,我國衛(wèi)星云圖上,山東沿海呈現(xiàn)出何種顏色()
A.綠色 B.白色 C.藍(lán)色 D.黃色
解析:在衛(wèi)星云圖上,綠色表示陸地,藍(lán)色表示海洋,黃色表示沙漠,白色表示云區(qū)。臺風(fēng)過境時通常會出現(xiàn)狂風(fēng)暴雨天氣,因此,在我國衛(wèi)星云圖上山東沿海呈現(xiàn)白色。
針對該題的解題規(guī)則獲取過程如下:
(1)首先利用中科院分詞器對試題文本進(jìn)行分詞:
2011年/t6月/t26日/t 21 時/t 10 分/t,/wd 臺風(fēng)/n“/wyz 米雷/nrf”/wyy 在/p 山東/ns 沿海/f 登陸/vi,/wd 此時/r,/wd 我國/n 衛(wèi)星/n 云/vg 圖/n 上/f,/wd 山東/ns 沿海/f 呈現(xiàn)/v 出/vf 何種/r 顏色/n(/wkz)/wky A./n 綠色/n B./n 白色/n C./n 藍(lán)色/n D./n 黃色/
(2)對分詞結(jié)果進(jìn)行預(yù)處理,增加用戶詞典,實現(xiàn)對試題文本分詞結(jié)果的預(yù)處理。
首先,對試題題干及選項進(jìn)行分析,得到顯性知識點即題目可以直接得到的分詞結(jié)果;接著,提取試題中的相關(guān)概念,如衛(wèi)星云圖中的云區(qū)、陸地及海洋等概念,天氣中的暴風(fēng)雨等概念;然后,合成試題中部分地理術(shù)語詞,如將“山東/ns”和“沿海/f”合成為“山東沿海/ns”,將“衛(wèi)星/n”“云/vg 圖/n”合成為“衛(wèi)星云圖/n”等;最后,將合成的地理術(shù)語詞存儲在用戶詞典中。
(3)試題本體構(gòu)建采用自頂向下和自底向上相結(jié)合的試題本體構(gòu)建方法,具體步驟如下:
①確定構(gòu)建的本體領(lǐng)域:文中針對地理試題解題領(lǐng)域。
②獲取領(lǐng)域知識:主要通過對地理課程試卷分析,來獲取地理術(shù)語詞等相關(guān)領(lǐng)域知識。
③對領(lǐng)域知識進(jìn)行概念設(shè)計:針對試題文本進(jìn)行語義分析,提取試題關(guān)鍵詞等重要特征信息,從而抽取概念實體及其屬性。其中屬性和實體關(guān)系是通過語義理解題干及選項知識點所確定的,以便整個領(lǐng)域本體的構(gòu)建。
④利用本體編輯工具進(jìn)行本體構(gòu)建: 利用得到的地理領(lǐng)域概念知識在Protégé 工具中對概念和屬性進(jìn)行編輯,存儲格式為OWL 文件,并通過Jena API 將本體存入關(guān)系數(shù)據(jù)庫。
⑤完善本體:本體完成后,可以在Protégé 中的OntoGraf 看到本體的可視化界面,通過人工觀察分析來完善試題本體。本例的試題本體如圖3 所示。
(4)根據(jù)已構(gòu)建的試題本體及試題本身的語義分析結(jié)果,得到以下解題規(guī)則:
[rule:(?ahttp://www.semanticweb.org/weixingyun.owl# 被登陸?b)
(?bhttp://www.semanticweb.org/weixingyun.owl# 伴隨?c)
(?chttp://www.semanticweb.org/weixingyun.owl# 顯示?d)
(?dhttp://www.semanticweb.org/weixingyun.owl# 代表?e)->
(?ahttp://www.semanticweb.org/weixingyun.owl# 衛(wèi)星云圖呈現(xiàn)?e)]
(5)根據(jù)構(gòu)建好的本體、規(guī)則,并結(jié)合以下SPARQL查詢語句:
StringqueryString="PREFIX weixingyun:
找到試題對應(yīng)的str,從而推理得出試題答案:(?天氣=
圖3 例題的試題本體
實驗數(shù)據(jù)主要來自億庫地理試題網(wǎng)(http://www.eku.cc/sj/dili)和中學(xué)地理課程教材,收集了3 000 道選擇題(包括題干和選項),其中文字類試題有1 300 道,圖表類試題有1 700 道。表1 給出了數(shù)據(jù)集的具體分布情況。
在構(gòu)造解題規(guī)則之前,對收集的地理試題進(jìn)行預(yù)處理。對于文字類的地理試題,保留可以用規(guī)則進(jìn)行解題的試題;對于圖表類的地理試題,目前文中主要通過手動標(biāo)注的方法將其標(biāo)注為文字,然后再構(gòu)建相應(yīng)的解題規(guī)則,后期將考慮結(jié)合圖像識別技術(shù)對圖表類試題進(jìn)行自動語義標(biāo)注。
表1 試題數(shù)據(jù)集分布表
文中實驗分為兩組:第一組驗證解題規(guī)則對文字類試題的解題效果;第二組驗證解題規(guī)則對圖表類試題的解題效果。
利用以下公式(解題有效率)分別驗證解題規(guī)則對文字類試題和圖表類試題的整體解題效果。
3.3.1 文字類試題的解題效果
第一組實驗中,對于1 300 道文字類試題,通過預(yù)處理,保留可以使用解題規(guī)則的試題。
圖4 給出了以下一道試題的解題規(guī)則對文字類試題的具體解題效果。
試題2:索契冬奧會開幕,習(xí)近平主席在俄期間哪些語種使用最多的是()
A.俄語 B.阿拉伯語 C.法語 D.西班牙語
在對該試題進(jìn)行本體構(gòu)造過程中,共有三個實體類,包括國家、奧運會、語種,其中應(yīng)用到解題的個體有索契冬奧會、俄國、俄語等,屬性關(guān)系包括奧運會與國家之間的關(guān)系、國家與語種之間的關(guān)系。通過對實體和屬性關(guān)系的抽取,進(jìn)而得到本體結(jié)構(gòu),編寫解題規(guī)則。
從圖4 可以看出,選擇一個文字類試題及其類型,根據(jù)所構(gòu)建的解題規(guī)則,可以獲得該試題的對應(yīng)答案。
解題規(guī)則對文字類試題的整體解題效果見表2。
從表2 可以看出, 有效使用解題規(guī)則的文字類地理試題數(shù)占到文字類地理試題總數(shù)的近一半, 表明解題規(guī)則對文字類試題的解答有明顯的解題效果。在后續(xù)研究中,將針對那些不適用于使用解題規(guī)則的文字類試題, 在試題本體的優(yōu)化方面作進(jìn)一步的研究。
圖4 文字類試題解題示例
表2 文字類試題的解題規(guī)則效果
3.3.2 圖表類試題的解題效果
第二組實驗中,對于1 700 道圖表類試題,通過預(yù)處理,保留適用于使用解題規(guī)則的試題。
以下給出一道試題的解題規(guī)則對圖表類試題的具體解題效果。
試題3:如圖5 所示,該地降水集中在6~8月,根據(jù)降水量的各月分配情況,可知此地(北半球)的降水類型屬于()
A.全年多雨型 B.全年少雨型 C.夏季多雨型D.冬季多雨型
在試題進(jìn)行本體構(gòu)造過程中,共有四個實體類,包括地點、季節(jié)、月份時間段及降水類型,其中應(yīng)用到解題的個體有北半球、春夏秋冬及各季度月份、夏季多雨型等,屬性關(guān)系包括地點與季節(jié)之間的關(guān)系、季節(jié)與月份時間段之間的關(guān)系以及月份時間段與降水類型之間的關(guān)系。通過對實體和屬性關(guān)系的抽取,進(jìn)而得到本體結(jié)構(gòu),編寫解題規(guī)則。
從圖6 可見,選擇一個圖表類試題及其類型,根據(jù)所構(gòu)建的解題規(guī)則,可以獲得該試題的對應(yīng)答案。解題規(guī)則對圖表類試題的整體解題效果見表3。
圖5 降水量分布圖
圖6 圖表類試題解題示例
表3 圖表類試題的解題規(guī)則效果
從表3 可以看到,解題規(guī)則對圖表類試題的解題效果雖然沒有對文字類試題的解題效果明顯,但是也表明了解題規(guī)則對圖表類試題的解答有一定的輔助作用。在后續(xù)研究中,將針對圖表類試題,在試題預(yù)處理及試題本體優(yōu)化等方面作進(jìn)一步改進(jìn)。
實驗結(jié)果表明,解題規(guī)則在文本類地理試題自動解題中取得了初步的效果。但也有超過半數(shù)的試題無法使用規(guī)則求解。主要原因在于:一方面地理試題復(fù)雜程度較高,比如對于一個試題中包含不同類型的實體,求解其中部分較多類型組合試題比較困難;另一方面對于那些無法提取的語義傳遞關(guān)系,可能會導(dǎo)致在構(gòu)建本體時無法提取實體之間的屬性關(guān)系。
文中在構(gòu)建地理試題本體的基礎(chǔ)上,通過對試題題干及選項進(jìn)行語義分析,進(jìn)一步獲取概念實體間的語義推理關(guān)系,并將這種語義推理關(guān)系轉(zhuǎn)化為用于試題解答的解題規(guī)則。同時運用SPARQL查詢技術(shù)和Jena推理技術(shù),實現(xiàn)地理試題的自動解答。在所收集的地理試題集上的實驗結(jié)果表明,文中獲取的解題規(guī)則對文字類試題和圖表類兩類試題的解答有一定的效果。
后續(xù)主要研究:(1)將對文字類試題本體進(jìn)行優(yōu)化,解決更多試題;(2)結(jié)合圖像識別技術(shù),對題干中的圖像及圖表進(jìn)行掃描識別,并轉(zhuǎn)化成文字信息;(3)在對試題進(jìn)行分類后,將同類試題的解題規(guī)則優(yōu)化,讓同一類別試題規(guī)則具有統(tǒng)一性,使得解題規(guī)則具有復(fù)用性,進(jìn)而提高解題規(guī)則的實用性和系統(tǒng)解題效率。