劉清堂,楊煒欽,吳林靜,賀黎鳴,李 晶,馬晶晶
1(華中師范大學(xué) 教育信息技術(shù)學(xué)院 湖北省教育信息化研究中心,武漢 430079)
2(華中師范大學(xué) 教育信息化協(xié)同創(chuàng)新中心,武漢 430079)
3(華中師范大學(xué) 教育信息技術(shù)學(xué)院,武漢 430079)
目前,人工智能領(lǐng)域盡管在專(zhuān)家系統(tǒng)、問(wèn)答系統(tǒng)等方面取得了眾多的成果,但仍然面臨著諸多難題.最核心問(wèn)題是難以理解題目的意圖和內(nèi)涵.其中,常識(shí)性知識(shí)缺失是正確理解題意的瓶頸之一.世界各國(guó)的學(xué)者高度關(guān)注數(shù)學(xué)問(wèn)題類(lèi)人求解,并投入了大量的人力物力和財(cái)力開(kāi)展研究.例如,國(guó)內(nèi)863 計(jì)劃“初等數(shù)學(xué)問(wèn)題求解關(guān)鍵技術(shù)及系統(tǒng)”項(xiàng)目關(guān)注初等數(shù)學(xué)題意理解,及其類(lèi)人解題等關(guān)鍵問(wèn)題,力圖研制初等數(shù)學(xué)自動(dòng)解題系統(tǒng).日本的“東大機(jī)器人”(Todai Robot Project)項(xiàng)目,其研究目的是將來(lái)能通過(guò)日本東京大學(xué)的入學(xué)測(cè)試[1].美國(guó)艾倫人工智能研究所(Allen Institute for Artificial Intelligence)也舉辦了一項(xiàng)比賽,來(lái)自世界各地的幾千個(gè)團(tuán)隊(duì)都參與了這項(xiàng)比賽,他們提交了自己的軟件系統(tǒng)來(lái)挑戰(zhàn)8年級(jí)的科學(xué)題目,其中第一名僅達(dá)到59%的正確率.上述類(lèi)人解題項(xiàng)目的核心難點(diǎn)在于題意的正確理解.
古典概型類(lèi)題目是高考數(shù)學(xué)題目中的重要的考查模塊,題目中涉及諸多常識(shí)性知識(shí).人類(lèi)對(duì)這些知識(shí)可以做到見(jiàn)名知義,計(jì)算機(jī)則無(wú)從提取相關(guān)知識(shí).例如“投擲一枚質(zhì)地均勻的色子,面朝上的點(diǎn)數(shù)是3 的幾率是多少? ”題目中“色子”的相關(guān)知識(shí)處于缺失狀態(tài).而這種常識(shí)性知識(shí)是自動(dòng)解題所需的必備信息之一.常識(shí)性知識(shí)有什么特點(diǎn)? 如何進(jìn)行歸類(lèi)分析、存儲(chǔ)處理以及合理應(yīng)用? 這些問(wèn)題亟待解決,常識(shí)發(fā)現(xiàn)及自動(dòng)引用等對(duì)于輔助類(lèi)人解題至關(guān)重要.
論文對(duì)國(guó)內(nèi)外初等數(shù)學(xué)應(yīng)用題自動(dòng)求解的研究現(xiàn)狀和常識(shí)庫(kù)系統(tǒng)的發(fā)展?fàn)顩r進(jìn)行了分析,結(jié)合古典概型類(lèi)題目中常識(shí)的特征,將常識(shí)分類(lèi)為狀態(tài)類(lèi)常識(shí)和關(guān)系運(yùn)算類(lèi)常識(shí).本文基于XML 結(jié)構(gòu)構(gòu)建了常識(shí)庫(kù)的存儲(chǔ)框架,對(duì)常識(shí)性知識(shí)進(jìn)行了規(guī)范化的表征與存儲(chǔ).在此基礎(chǔ)上設(shè)計(jì)開(kāi)發(fā)了常識(shí)性知識(shí)的標(biāo)注工具,能夠輔助研究者進(jìn)行常識(shí)存儲(chǔ).通過(guò)實(shí)際應(yīng)用證明,古典概型類(lèi)題目中缺失的常識(shí)能夠有效地從本文構(gòu)建的常識(shí)庫(kù)中提取.
1964年,Brosch 等[2]設(shè)計(jì)開(kāi)發(fā)了最早的數(shù)學(xué)問(wèn)題自動(dòng)求解系統(tǒng)——STUDENT 系統(tǒng),該系統(tǒng)可以求解用英語(yǔ)表述的簡(jiǎn)單代數(shù)問(wèn)題.STUDENT 系統(tǒng)解題基本步驟:(1)將復(fù)合句轉(zhuǎn)換為單句,并在計(jì)算機(jī)中預(yù)先存儲(chǔ)一定數(shù)量的簡(jiǎn)單句式;(2)自定義詞典,抽取題目語(yǔ)句中的關(guān)鍵詞;(3)將單句轉(zhuǎn)換為關(guān)系模型.由于該系統(tǒng)存儲(chǔ)的句式十分有限,無(wú)法理解一些句式和語(yǔ)法復(fù)雜的句子.雖然覆蓋面比較小,但STUDENT 系統(tǒng)開(kāi)創(chuàng)了計(jì)算機(jī)在數(shù)學(xué)領(lǐng)域進(jìn)行類(lèi)人解題的先河.
目前計(jì)算機(jī)自動(dòng)求解數(shù)學(xué)問(wèn)題系統(tǒng)出現(xiàn)了很多,如Wong 等[3]在2007年開(kāi)發(fā)了LIM-G 系統(tǒng),基于構(gòu)建的本體知識(shí)庫(kù),實(shí)現(xiàn)幾何類(lèi)題目中一步加減應(yīng)用題的自動(dòng)求解.隨著NLP 技術(shù)的不斷進(jìn)步和硬件的不斷提升,初等數(shù)學(xué)問(wèn)題的題意理解與自動(dòng)解題得到了進(jìn)一步發(fā)展.如Kang 等[4]開(kāi)發(fā)的Analyticallnk,該系統(tǒng)通過(guò)對(duì)語(yǔ)義圖的推理解決數(shù)學(xué)問(wèn)題,并按順序自動(dòng)生成概念和過(guò)程腳手架.
國(guó)內(nèi)在數(shù)學(xué)問(wèn)題的題意理解與自動(dòng)解題的研究上相對(duì)滯后,吳林靜等[5]構(gòu)建了一個(gè)面向初等數(shù)學(xué)分層抽樣類(lèi)應(yīng)用題的句模庫(kù),在此基礎(chǔ)上結(jié)合依存句法完成解題信息的提取.周穎等[6]結(jié)合Kintsch 等的問(wèn)題表征模型和漢語(yǔ)言中提出的句模,提出了小學(xué)階段中數(shù)學(xué)應(yīng)用題自動(dòng)求解的研究路線.張濤[7]基于小學(xué)數(shù)學(xué)應(yīng)用題的結(jié)構(gòu)特點(diǎn)的分析對(duì)數(shù)學(xué)應(yīng)用題進(jìn)行了分類(lèi),利用文本信息抽取方法和“知網(wǎng)體系”知識(shí)表示,成功實(shí)現(xiàn)對(duì)整數(shù)部分應(yīng)用題的自動(dòng)求解.
然而,目前數(shù)學(xué)領(lǐng)域內(nèi)的題意理解研究缺乏系統(tǒng)性.已有的問(wèn)題理解方法大多面向固定模式的簡(jiǎn)單問(wèn)題,能夠成功求解的問(wèn)題類(lèi)型十分有限;尤其是缺乏情景支持的常識(shí)庫(kù)支持,對(duì)問(wèn)題理解的準(zhǔn)確性和完備性不夠,不具有實(shí)際應(yīng)用的泛化能力.
古典概型應(yīng)用題常識(shí)表征的主要目的是將自然語(yǔ)言描述的常識(shí)轉(zhuǎn)換成計(jì)算機(jī)語(yǔ)言描述的知識(shí),進(jìn)而通過(guò)一定的編碼和模型設(shè)計(jì),使得計(jì)算機(jī)能夠理解.常識(shí)性知識(shí)的基本表征方式常見(jiàn)的有Prolog 語(yǔ)言的表征方式[8]、三元組表征方法、語(yǔ)義網(wǎng)絡(luò)表征和框架式知識(shí)表示[9].這里主要對(duì)三元組和語(yǔ)義網(wǎng)絡(luò)兩種表征方式進(jìn)行介紹.
(1)三元組表征方法
面向?qū)ο蟮乃枷胫杏袔讉€(gè)基本的概念:類(lèi)、對(duì)象、行為或者方法、繼承等.若將數(shù)學(xué)問(wèn)題中的常識(shí)視作一個(gè)實(shí)體對(duì)象,從而可以采用面向?qū)ο蟮乃枷雽?duì)常識(shí)進(jìn)行處理.對(duì)象通常擁有屬性和屬性值,通過(guò)三元組(Object,Attribute,Value)就可以將其進(jìn)行組織表征.三元組中Object 代表對(duì)象實(shí)體,Attribute 代表對(duì)象的屬性,Value 代表實(shí)體對(duì)象的屬性值.
通過(guò)三元組表示的方式,可以對(duì)部分常識(shí)進(jìn)行表征.例如猜拳常識(shí),形狀是它的屬性,屬性值有石頭、剪刀、布,表示形式為(猜拳,形狀,(石頭、剪刀、布)).將初等數(shù)學(xué)應(yīng)用題中的常識(shí)視為對(duì)象進(jìn)行處理,大部分常識(shí)最終都能夠表示成三元組的形式,該表達(dá)方式可以被計(jì)算機(jī)理解和處理.
(2)語(yǔ)義網(wǎng)絡(luò)表示方式
語(yǔ)義網(wǎng)絡(luò)擁有著強(qiáng)大和直觀的表征能力,它是由結(jié)點(diǎn)及結(jié)點(diǎn)之間的有向弧構(gòu)成的網(wǎng)狀結(jié)構(gòu)圖.利用有向圖節(jié)點(diǎn)可以表示常識(shí)名稱(chēng)和屬性等,有向圖的邊可以用來(lái)描述節(jié)點(diǎn)之間的關(guān)系[10].語(yǔ)義網(wǎng)絡(luò)是通過(guò)將知識(shí)圖解的方式來(lái)進(jìn)行知識(shí)表征的,它不僅可以表征事物本身,還可以表征事物間復(fù)雜的聯(lián)系.圖1是語(yǔ)義網(wǎng)絡(luò)表示的實(shí)例,其中“骰子”和“正六面體”是兩個(gè)實(shí)體,它們之間通過(guò)“同義詞名稱(chēng)”指針建立了關(guān)系.
圖1 語(yǔ)義網(wǎng)絡(luò)知識(shí)表示實(shí)例
自然語(yǔ)言處理(NLP)中的許多歧義可以通過(guò)使用各種形式的知識(shí)來(lái)解決.在國(guó)際人工智能領(lǐng)域,如何正確理解常識(shí)性知識(shí)一向是亟待解決的難題[11].所謂常識(shí),指的是相關(guān)領(lǐng)域內(nèi)的基礎(chǔ)知識(shí),初等數(shù)學(xué)應(yīng)用題中往往會(huì)出現(xiàn)大量的生活常識(shí).常識(shí)性知識(shí)存在自身的特點(diǎn),具體表現(xiàn)在常識(shí)數(shù)量較多、表征困難、無(wú)規(guī)律性、領(lǐng)域性強(qiáng)、模糊性等方面[12].目前,很多領(lǐng)域都對(duì)常識(shí)進(jìn)行了不同程度的研究,并且取得了一定成果,然而依舊無(wú)法廣泛地應(yīng)用,缺少可移植性[13].后續(xù)本文以古典概型類(lèi)題目為例,進(jìn)行常識(shí)知識(shí)分析和應(yīng)用.
常識(shí)知識(shí)很少用文本語(yǔ)料庫(kù)明確表達(dá)[14].Gordon[15],Angeli 和Manning[16]開(kāi)發(fā)了從原始文本模式推斷常識(shí)的技術(shù),Lenat 等[17]通過(guò)手工注釋的方式開(kāi)發(fā)了常識(shí)知識(shí)的管理資源.研究者Lenat 領(lǐng)導(dǎo)的研究團(tuán)隊(duì)在1984年啟動(dòng)的CYC 項(xiàng)目[18],希望建立一個(gè)海量知識(shí)庫(kù),但其并沒(méi)有考慮到專(zhuān)業(yè)知識(shí)和常識(shí)的界限,他們把收集來(lái)的技術(shù)報(bào)告整本地錄入知識(shí)庫(kù)中,導(dǎo)致了常識(shí)性知識(shí)庫(kù)很難達(dá)到真正實(shí)用的目的.詞網(wǎng)(WordNet)[19]是一種詞典式的常識(shí)知識(shí)庫(kù).WordNet 由名詞、形容詞、動(dòng)詞和副詞組成,各自形成自己的同義詞的網(wǎng)絡(luò),每個(gè)同義詞集合都表示著一個(gè)語(yǔ)義概念,集合之間通過(guò)各種關(guān)系進(jìn)行關(guān)聯(lián).基于WordNet 的同義詞聚類(lèi),它的語(yǔ)義關(guān)系信息能夠?qū)μ岣咝畔z索結(jié)果有很大的幫助.
常識(shí)知識(shí)庫(kù)的組織結(jié)構(gòu)是一個(gè)十分關(guān)鍵的問(wèn)題,必須服從于功能需求.本研究將初等數(shù)學(xué)中古典概型應(yīng)用題作為研究對(duì)象,為了實(shí)現(xiàn)相關(guān)數(shù)學(xué)問(wèn)題的自動(dòng)解答,構(gòu)建的常識(shí)庫(kù)必須具有方便存儲(chǔ)、檢索便捷和擴(kuò)展性強(qiáng)等特點(diǎn).
古典概型應(yīng)用題用自然語(yǔ)言進(jìn)行描述,其蘊(yùn)含的信息表達(dá)方式靈活多樣,除去數(shù)學(xué)專(zhuān)業(yè)知識(shí)和數(shù)據(jù)信息,其中還包含許多常識(shí)性知識(shí).本研究收集了歷年高考真題和高考模擬題中的古典概型類(lèi)題目,共計(jì)654 題.
古典概型應(yīng)用題自動(dòng)求解過(guò)程中,題目所提供的信息至關(guān)重要,但其直接提供的語(yǔ)義信息往往不夠完善,不足以讓計(jì)算機(jī)完成題意理解.如例題“小明和小紅進(jìn)行劃拳,小明一次取勝的概率是多少?”該題中提供了“小明”、“小紅”和“劃拳”3 個(gè)命名實(shí)體以及“進(jìn)行”和“取勝”兩個(gè)關(guān)系判定詞.題目中缺少“劃拳由剪刀、石頭、布組成”和“石頭>剪刀,剪刀>布,布>石頭”等計(jì)算機(jī)所需的解題信息.
通過(guò)綜合分析古典概型類(lèi)應(yīng)用題并進(jìn)行歸納,如圖2所示,研究者發(fā)現(xiàn)計(jì)算機(jī)要完成自動(dòng)解題需要的常識(shí)性知識(shí)通常需要包含以下4 類(lèi)信息,分別是常識(shí)的名稱(chēng)、常識(shí)的屬性、常識(shí)的屬性值和對(duì)應(yīng)的關(guān)系描述.以“硬幣”常識(shí)為例,常識(shí)的屬性類(lèi)別為“面”,屬性值為“正面,反面”,對(duì)應(yīng)的關(guān)系描述則為“無(wú)”.
圖2 古典概型應(yīng)用題的常識(shí)性知識(shí)的結(jié)構(gòu)
結(jié)合上述結(jié)論,本研究對(duì)收集的題目進(jìn)行了完整性分析.統(tǒng)計(jì)結(jié)果顯示其中題目信息完整(根據(jù)題目提供的信息計(jì)算機(jī)便可自動(dòng)求解)的題目為407 題,缺失常識(shí)屬性值的題目為110 題,缺失常識(shí)屬性值關(guān)系描述的題目為137 題.題目中缺失的常識(shí)性知識(shí)屬于人類(lèi)基本認(rèn)知中的共識(shí),因此部分題目不直接提供相關(guān)常識(shí)信息.由圖3可知在缺失常識(shí)性知識(shí)的情況下,只根據(jù)題目提供的題干信息,38%的題目是無(wú)法被計(jì)算機(jī)自動(dòng)求解的.因此,要實(shí)現(xiàn)計(jì)算機(jī)正確理解和處理這類(lèi)缺失解題信息的數(shù)學(xué)問(wèn)題,不僅要構(gòu)建結(jié)構(gòu)完整、功能完善的專(zhuān)業(yè)知識(shí)庫(kù),還要建立一個(gè)能夠幫助計(jì)算機(jī)快速、準(zhǔn)確地獲得常識(shí)信息的常識(shí)知識(shí)庫(kù).
圖3 題目解題信息完整程度
通過(guò)上述分析可以確定構(gòu)建常識(shí)庫(kù)的必要性.針對(duì)收集的古典概型應(yīng)用題,研究者提取了題目中涉及的常識(shí)性知識(shí),深入分析了它們的特點(diǎn),對(duì)其進(jìn)行了一定的分類(lèi),為相關(guān)常識(shí)的表征奠定基礎(chǔ).
研究常識(shí)的主要目的是輔助計(jì)算機(jī)進(jìn)行題意理解,將自然語(yǔ)言描述的常識(shí)轉(zhuǎn)變?yōu)橛?jì)算機(jī)可以理解和處理的表示形式,可以解決初等數(shù)學(xué)問(wèn)題中常識(shí)信息缺失的問(wèn)題.為了更好地對(duì)常識(shí)進(jìn)行表征,必須對(duì)其特點(diǎn)進(jìn)行深入的分析,同時(shí)需要分析常識(shí)的屬性及屬性之間的關(guān)系.本研究結(jié)合題目所考查知識(shí)內(nèi)容,深入分析收集的古典概型類(lèi)題目中常識(shí),總結(jié)了以下幾個(gè)特點(diǎn)[20].
(1)常識(shí)具有情景性
常識(shí)來(lái)源于人類(lèi)日常生活,應(yīng)用于人類(lèi)日常生活.常識(shí)性知識(shí)不僅和專(zhuān)業(yè)知識(shí)有著緊密的聯(lián)系,還有著極強(qiáng)的語(yǔ)境相關(guān)性.初等數(shù)學(xué)應(yīng)用題重點(diǎn)考查學(xué)習(xí)者的數(shù)學(xué)專(zhuān)業(yè)知識(shí),而出題者往往將數(shù)學(xué)知識(shí)和生活常識(shí)緊密結(jié)合在一起.此類(lèi)問(wèn)題中常識(shí)往往成為解題的基礎(chǔ),正確理解常識(shí)成為解題的必要條件.計(jì)算機(jī)要完成類(lèi)人解題的目標(biāo),必須先“習(xí)得”常識(shí),將這些具有情景化的常識(shí)進(jìn)行收集研究則顯得十分必要.
(2)常識(shí)具有隱含性
數(shù)學(xué)應(yīng)用題中大部分常識(shí)于人類(lèi)而言屬于公共的認(rèn)知,其具體知識(shí)在題目中處于缺失狀態(tài).古典概型應(yīng)用題中經(jīng)常會(huì)出現(xiàn)撲克、骰子、紅綠燈等常識(shí)性知識(shí),常識(shí)的相關(guān)描述往往被省略.計(jì)算機(jī)無(wú)法直接從題目描述中直接提取常識(shí),構(gòu)建輔助計(jì)算機(jī)進(jìn)行題意理解的常識(shí)庫(kù)顯得至關(guān)重要.
(3)常識(shí)具有無(wú)規(guī)律性
通過(guò)對(duì)古典概型高考題目的分析,提取和搜集了常識(shí),發(fā)現(xiàn)這些常識(shí)是不具有規(guī)律性的.專(zhuān)業(yè)知識(shí)一般需要經(jīng)過(guò)一系列系統(tǒng)的數(shù)據(jù)的收集、整理、分析和試驗(yàn)得到的,有著堅(jiān)實(shí)的理論基礎(chǔ),是具有規(guī)律性的知識(shí).相比于專(zhuān)業(yè)知識(shí),常識(shí)是沒(méi)有嚴(yán)格知識(shí)體系結(jié)構(gòu)的.將常識(shí)性知識(shí)進(jìn)行規(guī)范化表征和存儲(chǔ),是構(gòu)建常識(shí)庫(kù)的核心工作.
(4)特定領(lǐng)域中常識(shí)的數(shù)量是有限的
若面向的是人類(lèi)常識(shí),這個(gè)數(shù)量是極其龐大的,靠小團(tuán)體的力量是無(wú)法完成對(duì)這些常識(shí)的收集.古典概型是高考重點(diǎn)考察的知識(shí)點(diǎn)之一,解答相關(guān)題目時(shí)需要頻繁地應(yīng)用常識(shí)性知識(shí),而此領(lǐng)域中的常識(shí)又有著較大的重復(fù)性和代表性.除去題目中已經(jīng)提供完整實(shí)體及其屬性值的常識(shí),需要額外應(yīng)用的常識(shí)性知識(shí)數(shù)量是有限的.當(dāng)然隨著題目數(shù)量的增加和研究范圍的擴(kuò)大,將會(huì)有更多的常識(shí)需要存儲(chǔ)到常識(shí)庫(kù)當(dāng)中.
人類(lèi)的常識(shí)浩如煙海,若想存儲(chǔ)所有常識(shí)性知識(shí),并讓它們能夠有效地被使用,那將會(huì)是一個(gè)世紀(jì)工程.而在古典概型應(yīng)用題類(lèi)人求解過(guò)程中,所涉及的常識(shí)其實(shí)只是常識(shí)性知識(shí)中很小的一部分,可以說(shuō)是冰山一角.通過(guò)將常識(shí)進(jìn)行分類(lèi),可以讓其表征和存儲(chǔ)結(jié)構(gòu)更加合理.根據(jù)研究過(guò)程的實(shí)際情況,結(jié)合古典概型類(lèi)題目中相關(guān)常識(shí)性知識(shí)的特征,將收集的常識(shí)分為以下兩大類(lèi).
(1)狀態(tài)類(lèi)常識(shí)
狀態(tài)類(lèi)常識(shí)指的屬性值是離散的、互斥的常識(shí),狀態(tài)描述了對(duì)象的屬性特征和相關(guān)屬性值之間的關(guān)系特征.此類(lèi)常識(shí)的屬性值有多個(gè)狀態(tài),不同情況下呈現(xiàn)其中一種,因此將其歸類(lèi)為狀態(tài)類(lèi).例如紅綠燈,存在紅燈、黃燈、綠燈等3 個(gè)狀態(tài),當(dāng)然若題目進(jìn)行特殊說(shuō)明時(shí)可能只存在紅燈和綠燈兩個(gè)狀態(tài).除此之外,還存在著紅燈停,綠燈行的邏輯關(guān)系.表1羅列了部分狀態(tài)類(lèi)常識(shí)的相關(guān)信息.
(2)關(guān)系運(yùn)算類(lèi)常識(shí)
關(guān)系運(yùn)算類(lèi)常識(shí)指的是題目中各個(gè)命名實(shí)體之間的數(shù)學(xué)邏輯關(guān)系知識(shí).在古典概型類(lèi)人求解中,會(huì)大量運(yùn)用到關(guān)系運(yùn)算類(lèi)常識(shí),此類(lèi)常識(shí)能夠較好地解決從多樣的中文關(guān)系描述轉(zhuǎn)換到數(shù)學(xué)符號(hào)表達(dá)的問(wèn)題.因此將它們以一定的形式進(jìn)行表征,會(huì)對(duì)數(shù)學(xué)問(wèn)題的自動(dòng)解題有很大的幫助.表2羅列了部分關(guān)系運(yùn)算類(lèi)常識(shí)的相關(guān)信息.
表1 狀態(tài)類(lèi)常識(shí)表征
表2 關(guān)系運(yùn)算類(lèi)常識(shí)
將收集的高考真題中的常識(shí)進(jìn)行抽取,采用合理的表征方式將其表示成計(jì)算機(jī)可以理解和處理的信息是構(gòu)建常識(shí)庫(kù)所必要的工作.古典概型應(yīng)用題涉及到的常識(shí)有其各自的特征與類(lèi)別,選擇合適的表征方式來(lái)存儲(chǔ)常識(shí)性知識(shí)顯得至關(guān)重要.前文相關(guān)研究中介紹了常識(shí)性知識(shí)的基本表征方式,涉及的4 種表征方式并不能便捷地將所有的常識(shí)進(jìn)行表征與存儲(chǔ).
目前,數(shù)據(jù)存儲(chǔ)方式常見(jiàn)的有基于數(shù)據(jù)工具存儲(chǔ)、數(shù)據(jù)庫(kù)存儲(chǔ)方法、基于文本存儲(chǔ)方法等方法[21].基于文本存儲(chǔ)方法的特點(diǎn)是管理簡(jiǎn)單、方便修改、可擴(kuò)展性強(qiáng)等.早期的數(shù)據(jù)管理工作原理是基于文件系統(tǒng)實(shí)現(xiàn)的[22].文件存儲(chǔ)格式有XML 文本、TXT 純文本、DOC文本、HTML 超文本標(biāo)記語(yǔ)言等.文件存儲(chǔ)方法也有不足之處,例如當(dāng)文件較大時(shí),其使用效率就會(huì)降低.當(dāng)文件進(jìn)行隨機(jī)訪問(wèn)時(shí),文件的訪問(wèn)變得困難.結(jié)合古典概型類(lèi)題目中常識(shí)的特征,本研究采取XML 文件進(jìn)行存儲(chǔ),能夠簡(jiǎn)便、有效地實(shí)現(xiàn)節(jié)點(diǎn)信息、數(shù)據(jù)的保存.
數(shù)學(xué)解題需要的常識(shí)性知識(shí)包含常識(shí)的屬性、屬性值以及屬性之間的關(guān)系等信息.基于XML 設(shè)計(jì)的存儲(chǔ)文件應(yīng)能夠簡(jiǎn)單快捷地存儲(chǔ)常識(shí)的全部信息,同時(shí)能夠便捷地提取信息.常識(shí)知識(shí)庫(kù)的存儲(chǔ)文件結(jié)構(gòu)如圖4所示.
圖4 常識(shí)庫(kù)存儲(chǔ)文件結(jié)構(gòu)
存儲(chǔ)文件的元素標(biāo)簽及其含義如表3所示.
表3 元素標(biāo)簽及其含義
定義完標(biāo)簽后,研究者可以利用這些標(biāo)簽對(duì)需要存儲(chǔ)的常識(shí)進(jìn)行表征,本研究對(duì)分類(lèi)的常識(shí)采用兩種不同的XML 結(jié)構(gòu)進(jìn)行描述.狀態(tài)類(lèi)常識(shí)XML 描述的舉例,針對(duì)“猜拳”這一常識(shí)實(shí)體的XML 描述如圖5所示.
圖5 “猜拳”的XML 描述
運(yùn)算類(lèi)常識(shí)XML 描述的舉例,針對(duì)“大于”這一常識(shí)實(shí)體的XML 描述如圖6所示.
圖6 “大于”的XML 描述
基于本文構(gòu)建的常識(shí)庫(kù)存儲(chǔ)結(jié)構(gòu),設(shè)計(jì)開(kāi)發(fā)了常識(shí)庫(kù)的標(biāo)注工具.通過(guò)該工具研究者可以便捷地完成常識(shí)性知識(shí)的存儲(chǔ).常識(shí)庫(kù)標(biāo)注工具的主要功能有分詞和詞性標(biāo)注功能、依存句法分析功能、實(shí)體識(shí)別功能、常識(shí)檢索功能和常識(shí)標(biāo)注功能.
3.2.1 功能模塊詳細(xì)設(shè)計(jì)
常識(shí)的檢索功能:研究者通過(guò)常識(shí)庫(kù)標(biāo)注工具可以檢索對(duì)應(yīng)常識(shí)性知識(shí)是否錄入,若已存儲(chǔ)便可查看該常識(shí)的相關(guān)信息.
常識(shí)的標(biāo)注功能:根據(jù)研究者從數(shù)學(xué)應(yīng)用題中提取的常識(shí),按照工具提示的內(nèi)容完成常識(shí)性知識(shí)相關(guān)信息的錄入,最終存儲(chǔ)到XML 數(shù)據(jù)庫(kù)當(dāng)中.
常識(shí)的管理功能:研究者通過(guò)該工具可以對(duì)已存儲(chǔ)的常識(shí)進(jìn)行管理,包括常識(shí)的修改、添加和刪除等操作.
根據(jù)常識(shí)庫(kù)標(biāo)注工具的功能結(jié)構(gòu)和功能模塊的設(shè)計(jì),得到了標(biāo)注工具的使用流程圖,如圖7所示.
3.2.2 常識(shí)庫(kù)標(biāo)注工具實(shí)現(xiàn)
研制常識(shí)庫(kù)標(biāo)注工具的主要目的是輔助研究者完成常識(shí)性知識(shí)的標(biāo)注工作.此工具使用Pycharm 作為開(kāi)發(fā)平臺(tái),采用目前主流開(kāi)發(fā)語(yǔ)言Python 實(shí)現(xiàn)工具的核心功能,并利用圖形程序框架PyQt5 來(lái)開(kāi)發(fā)整個(gè)界面.如圖8所示,主界面中包含了分詞和詞性標(biāo)注、依存句法分析和實(shí)體識(shí)別等功能.結(jié)合圖7標(biāo)注工具的使用流程圖便可以完成常識(shí)的標(biāo)注工作.
圖7 標(biāo)注工具的使用流程圖
圖8 標(biāo)注工具的基本界面
分詞和詞性標(biāo)注功能、依存句法功能和實(shí)體識(shí)別功能可以幫助研究者更好地解析數(shù)學(xué)應(yīng)用題中句子的結(jié)構(gòu)成分,從而準(zhǔn)確、便捷地獲取常識(shí).以上功能通過(guò)使用哈工大語(yǔ)言技術(shù)平臺(tái)(LTP)提供的模型來(lái)實(shí)現(xiàn),這些模型對(duì)自然語(yǔ)言的處理有著非常優(yōu)異的效果.分詞的準(zhǔn)確性將會(huì)直接影響到詞性標(biāo)注、依存句法和實(shí)體識(shí)別等功能的實(shí)際效果,原模型缺乏古典概型應(yīng)用題中專(zhuān)有的詞匯,因此構(gòu)建了新的詞典,該詞典以搜狗詞庫(kù)中基礎(chǔ)數(shù)學(xué)用詞為基礎(chǔ),人工添加部分專(zhuān)用詞匯.如圖8所示,研究者輸入完應(yīng)用題題目后,利用這些功能對(duì)題目進(jìn)行分析,成功獲取“骰子”常識(shí).
同時(shí),在此界面中可以查詢(xún)相應(yīng)常識(shí)是否已被存儲(chǔ),圖中由于“骰子”已存在,直接呈現(xiàn)常識(shí)的相關(guān)信息.若常識(shí)不存在,研究者可以點(diǎn)擊“常識(shí)錄入”,常識(shí)錄入前研究者需要選擇存儲(chǔ)常識(shí)的類(lèi)型,如:運(yùn)算類(lèi)常識(shí).確定常識(shí)類(lèi)型后會(huì)進(jìn)入常識(shí)具體信息的標(biāo)注界面,在此以狀態(tài)類(lèi)常識(shí)為例,如圖9所示.通過(guò)該界面完善常識(shí)的相關(guān)信息后可以直接生成對(duì)應(yīng)的XML 結(jié)構(gòu)文件進(jìn)行存儲(chǔ).常識(shí)庫(kù)的標(biāo)注工具不僅能簡(jiǎn)化存儲(chǔ)過(guò)程,提高常識(shí)存儲(chǔ)的效率,同時(shí)保證了生成文件結(jié)構(gòu)的正確性.
圖9 狀態(tài)類(lèi)常識(shí)標(biāo)注界面
3.3.1 常識(shí)提取的基本規(guī)則常識(shí)提取過(guò)程的本質(zhì)是將存儲(chǔ)于常識(shí)庫(kù)中的信息讀取到文檔類(lèi)相應(yīng)數(shù)據(jù)結(jié)構(gòu)中的過(guò)程.常識(shí)信息提取過(guò)程如圖10所示,其簡(jiǎn)要闡明了常識(shí)庫(kù)在古典概型應(yīng)用題自動(dòng)解答過(guò)程中所充當(dāng)?shù)慕巧?虛線內(nèi)的內(nèi)容為常識(shí)庫(kù)的應(yīng)用流程圖.
圖10 常識(shí)性知識(shí)庫(kù)應(yīng)用流程圖
3.3.2 常識(shí)庫(kù)的案例應(yīng)用
數(shù)學(xué)應(yīng)用題自動(dòng)求解過(guò)程中,計(jì)算機(jī)需要提取題目中涉及的命名實(shí)體.如圖11所示,題目中包含了[小明,小紅,劃拳] 3 個(gè)實(shí)體,計(jì)算機(jī)并沒(méi)有關(guān)于“劃拳”的先驗(yàn)知識(shí),而題目中也未進(jìn)行相關(guān)解釋.查詢(xún)常識(shí)庫(kù),首先匹配XML 文件名,“Finger-guessing”不存在,匹配失敗.遍歷XML 文件,匹配常識(shí)名稱(chēng),匹配成功,直接提取“劃拳”的相關(guān)信息.此外通過(guò)提取命名實(shí)體之間的相互關(guān)系,可以匹配獲得古典概型解題模型,將數(shù)值信息代入解題模型中即完成了古典概型應(yīng)用題的自動(dòng)求解.
圖11 常識(shí)性知識(shí)庫(kù)應(yīng)用流程圖
本文首先對(duì)初等數(shù)學(xué)問(wèn)題自動(dòng)求解的研究現(xiàn)狀和現(xiàn)有常識(shí)庫(kù)的應(yīng)用情況進(jìn)行了分析,并結(jié)合古典概型類(lèi)應(yīng)用題中常識(shí)的特征構(gòu)建了常識(shí)庫(kù)的存儲(chǔ)框架.基于該框架開(kāi)發(fā)了常識(shí)庫(kù)的標(biāo)注工具,使用該工具可以快速、準(zhǔn)確地存儲(chǔ)常識(shí)性知識(shí).最后,通過(guò)案例應(yīng)用證明本文構(gòu)建的常識(shí)庫(kù)能夠精準(zhǔn)地提取到古典概型類(lèi)應(yīng)用題所需的常識(shí)性知識(shí),從而可以有效地輔助計(jì)算機(jī)完成數(shù)學(xué)問(wèn)題的自動(dòng)求解.
然而,未來(lái)的研究任務(wù)依然是艱巨的,目前研究者聚焦于古典概型題目,這僅僅是初等數(shù)學(xué)中一小部分內(nèi)容.隨著研究范圍的擴(kuò)大,需要存儲(chǔ)的常識(shí)數(shù)量也會(huì)急劇上升,其類(lèi)別和屬性?xún)?nèi)容也會(huì)更加多樣.針對(duì)這些問(wèn)題,后續(xù)的研究工作:
(1)擴(kuò)大常識(shí)知識(shí)庫(kù),本研究?jī)H收集了古典概型應(yīng)用題,后期希望擴(kuò)大研究范圍,收集不同類(lèi)型的題目,覆蓋更多初等數(shù)學(xué)中的內(nèi)容;
(2)目前研究中常識(shí)是人工提取的,未來(lái)研究中可以嘗試自動(dòng)獲取的方式;
(3)尋找更合理的常識(shí)表征方式,針對(duì)目前研究所需的常識(shí),XML 結(jié)構(gòu)存儲(chǔ)十分有效,隨著常識(shí)數(shù)量、種類(lèi)以及涉及領(lǐng)域的增加,需要投入更多的相關(guān)研究.