陳肖宇,王偉
(1.北京航空航天大學(xué)數(shù)學(xué)科學(xué)學(xué)院,北京 100191;2.數(shù)學(xué)、信息與行為教育部重點(diǎn)實(shí)驗(yàn)室(北京航空航天大學(xué)),北京 100191;3.北京航空航天大學(xué)大數(shù)據(jù)科學(xué)與腦機(jī)智能高精尖創(chuàng)新中心,北京 100191)
數(shù)學(xué)是自然科學(xué)的基礎(chǔ),廣泛應(yīng)用于科學(xué)、技術(shù)、工程等各個(gè)領(lǐng)域。以數(shù)學(xué)知識(shí)為核心的科學(xué)、技術(shù)、工程、數(shù)學(xué)(Science,Technology,Engineering,Mathematics,STEM)文檔規(guī)模已十分巨大并仍在快速增長(zhǎng)。如何使機(jī)器對(duì)這類(lèi)文檔進(jìn)行自動(dòng)分析和處理,以充分高效地利用其中所蘊(yùn)含的數(shù)學(xué)知識(shí),對(duì)知識(shí)傳播和科技發(fā)展都是一個(gè)具有研究?jī)r(jià)值的課題[1-2]。STEM 文檔區(qū)別于普通文檔的關(guān)鍵之處在于其包含大量的數(shù)學(xué)文本,即由數(shù)學(xué)術(shù)語(yǔ)、抽象的數(shù)學(xué)符號(hào)以及結(jié)構(gòu)復(fù)雜的數(shù)學(xué)表達(dá)式混合組成的文本[3-4],這為文本理解和應(yīng)用提出了新的挑戰(zhàn),例如:數(shù)學(xué)文本搜索、數(shù)學(xué)文本糾錯(cuò)、表現(xiàn)型到可計(jì)算型的數(shù)學(xué)文本自動(dòng)轉(zhuǎn)換、數(shù)學(xué)知識(shí)發(fā)現(xiàn)等任務(wù)的實(shí)現(xiàn)[5-6]都需要計(jì)算機(jī)能夠理解和處理數(shù)學(xué)內(nèi)容,而其中一個(gè)基本且關(guān)鍵的問(wèn)題是如何抽取數(shù)學(xué)文本的語(yǔ)義。
數(shù)學(xué)文本語(yǔ)義抽取的主要目標(biāo)是獲得文本中抽象的數(shù)學(xué)符號(hào)及表達(dá)式所蘊(yùn)藏的含義,使抽象的形式具體化,從而達(dá)到機(jī)器理解的目的。Quoc 等[7]提出基于規(guī)則匹配的概念-描述-公式(Concept-Description-Formula,CDF)方法,針對(duì)Wikipedia 文本中的數(shù)學(xué)表達(dá)式,抽取其在文中相應(yīng)的文字描述作為其語(yǔ)義,該方法首先利用OpenNLP(Open Natural Language Processing)對(duì)數(shù)學(xué)文本進(jìn)行解析,然后基于Be-Comp 規(guī)則提取語(yǔ)義三元組(C,D,F(xiàn)),最后通過(guò)文本匹配的方式校驗(yàn)其正確性。Kristianto 等[8]將表達(dá)式在文中的文字描述抽取看作是一個(gè)二分類(lèi)問(wèn)題:首先將每個(gè)數(shù)學(xué)表達(dá)式與其文字描述候選項(xiàng)配對(duì)(稱(chēng)為候選對(duì));然后提取候選對(duì)的特征并利用支持向量機(jī)對(duì)數(shù)據(jù)集進(jìn)行學(xué)習(xí),判斷配對(duì)是否正確。另一方面,Pagel 等[9]主要研究數(shù)學(xué)表達(dá)式中標(biāo)識(shí)符的語(yǔ)義抽取問(wèn)題,首先獲得數(shù)學(xué)文本的MathML 格式,通過(guò)MathML 中的<mi>標(biāo)簽判定數(shù)學(xué)符號(hào)是否為標(biāo)識(shí)符;然后利用標(biāo)識(shí)符和文字描述之間的位置信息對(duì)候選文字描述的概率分布進(jìn)行建模;接著對(duì)候選文字描述進(jìn)行打分,分?jǐn)?shù)最高的則為標(biāo)識(shí)符對(duì)應(yīng)的文字描述即其語(yǔ)義。而Alexeeva 等[10]首先基于Odin Grammer[11]獲取文本中的孤立標(biāo)識(shí)符及其相應(yīng)的文字描述,然后利用這些標(biāo)識(shí)符對(duì)數(shù)學(xué)表達(dá)式進(jìn)行分詞,進(jìn)而將表達(dá)式中的標(biāo)識(shí)符關(guān)聯(lián)到相應(yīng)的文字描述。
目前語(yǔ)義抽取的研究對(duì)象都是開(kāi)放領(lǐng)域的數(shù)學(xué)文本[12-13],所獲得的語(yǔ)義只針對(duì)數(shù)學(xué)標(biāo)識(shí)符或者數(shù)學(xué)表達(dá)式[14-16]中的一種,語(yǔ)義信息并不充分。本文將研究對(duì)象限定在具體領(lǐng)域的數(shù)學(xué)文本,提出一套領(lǐng)域相關(guān)的數(shù)學(xué)符號(hào)及表達(dá)式語(yǔ)義抽取的系統(tǒng)化方法,首先建立領(lǐng)域概念的層次結(jié)構(gòu)并將文本中以表達(dá)式形式出現(xiàn)的實(shí)體鏈接到某個(gè)細(xì)分概念上作為其語(yǔ)義;然后根據(jù)上下文提取文本中抽象數(shù)學(xué)符號(hào)指代的實(shí)體進(jìn)而獲得其語(yǔ)義;最后,從表達(dá)式的內(nèi)部結(jié)構(gòu)出發(fā),根據(jù)已獲得的數(shù)學(xué)符號(hào)語(yǔ)義,遞歸地獲取整個(gè)數(shù)學(xué)表達(dá)式的語(yǔ)義。以線(xiàn)性代數(shù)文本作為研究實(shí)例,得到了更為豐富和精確的語(yǔ)義信息,輔助領(lǐng)域相關(guān)文本從人類(lèi)可讀的形式轉(zhuǎn)化為機(jī)器可理解、可計(jì)算的形式。
為了明確描述本文的研究問(wèn)題,下面列出本文所使用的一些相關(guān)概念的含義。
1)數(shù)學(xué)標(biāo)識(shí)符:數(shù)學(xué)表達(dá)式的基本組成部分,主要包括一個(gè)字母符號(hào)或者帶有一個(gè)或多個(gè)上下標(biāo)的字母符號(hào),例如:A、α1或α。
2)實(shí)體:最初源于哲學(xué),指客觀存在并且可以相互區(qū)分的事物。本文所指實(shí)體是以數(shù)學(xué)表達(dá)式形式出現(xiàn)的抽象領(lǐng)域概念的具體實(shí)例。例如在線(xiàn)性代數(shù)領(lǐng)域,是抽象概念“矩陣”的一個(gè)具體實(shí)例,在本文中稱(chēng)為線(xiàn)性代數(shù)領(lǐng)域的一個(gè)實(shí)體。
3)語(yǔ)義抽?。簩?duì)事物含義的識(shí)別和獲取,而含義通常需要通過(guò)概念進(jìn)行界定和表達(dá)。本文所指語(yǔ)義抽取是識(shí)別數(shù)學(xué)文本中數(shù)學(xué)標(biāo)識(shí)符、實(shí)體及表達(dá)式對(duì)應(yīng)的領(lǐng)域概念,進(jìn)而根據(jù)概念的定義對(duì)文本內(nèi)容進(jìn)行操作和處理,以達(dá)到文本機(jī)器理解的目的。
本文主要研究領(lǐng)域相關(guān)數(shù)學(xué)文本中數(shù)學(xué)標(biāo)識(shí)符、實(shí)體及表達(dá)式的語(yǔ)義抽取問(wèn)題。相較于普通文本,數(shù)學(xué)文本包含大量抽象的數(shù)學(xué)符號(hào)及結(jié)構(gòu)復(fù)雜的數(shù)學(xué)表達(dá)式。相同的數(shù)學(xué)符號(hào)通常具有多重語(yǔ)義(如“0”可以表示數(shù)字零,也可以表示零向量或零矩陣;“+”可以表示數(shù)之間的加法,也可以表示函數(shù)或矩陣之間的加法),并且在文本中經(jīng)常指代不同的領(lǐng)域?qū)嶓w,因此如何對(duì)數(shù)學(xué)符號(hào)進(jìn)行語(yǔ)義消歧,發(fā)現(xiàn)并處理“一詞多義”現(xiàn)象,是語(yǔ)義抽取的一個(gè)關(guān)鍵問(wèn)題。另一方面,數(shù)學(xué)表達(dá)式一般由標(biāo)識(shí)符、實(shí)體、運(yùn)算符以及領(lǐng)域?qū)S蟹?hào)等多種符號(hào)混合組成,如何對(duì)數(shù)學(xué)表達(dá)式進(jìn)行分詞,即界定各個(gè)符號(hào)的邊界,是語(yǔ)義抽取的基本問(wèn)題。由于運(yùn)算符和領(lǐng)域?qū)S蟹?hào)的語(yǔ)義可以通過(guò)領(lǐng)域本身或者標(biāo)識(shí)符和實(shí)體的語(yǔ)義確定,因此本文主要研究標(biāo)識(shí)符和實(shí)體的語(yǔ)義抽取問(wèn)題。
本章重點(diǎn)闡述領(lǐng)域相關(guān)數(shù)學(xué)文本的語(yǔ)義抽取方法。首先從總體上介紹方法的框架,提出語(yǔ)義抽取的基本任務(wù),并給出數(shù)學(xué)表達(dá)式分詞任務(wù)的算法設(shè)計(jì);然后描述方法核心模塊的實(shí)現(xiàn),包括數(shù)學(xué)實(shí)體、標(biāo)識(shí)符及表達(dá)式的語(yǔ)義抽取流程;最后,給出用于存儲(chǔ)語(yǔ)義抽取結(jié)果的語(yǔ)義表的設(shè)計(jì)方法。
數(shù)學(xué)文本的編碼格式主要包括以L(fǎng)aTeX 為代表的基于命令的排版格式和以MathML 為代表的基于XML 的標(biāo)記語(yǔ)言格式。由于不同格式之間可以通過(guò)工具相互轉(zhuǎn)換,并且考慮到LaTeX 相較于標(biāo)記語(yǔ)言具有更類(lèi)似于自然語(yǔ)言的結(jié)構(gòu),更易于利用自然語(yǔ)言處理的相關(guān)技術(shù),因此,本文以L(fǎng)aTeX編碼的數(shù)學(xué)文本作為語(yǔ)義抽取的對(duì)象,方法框架如圖1 所示。給定LaTeX 文檔,首先將其切分成以句子為粒度的集合;然后提取其中包含的數(shù)學(xué)標(biāo)識(shí)符和表達(dá)式,對(duì)數(shù)學(xué)表達(dá)式進(jìn)行分詞,得到數(shù)學(xué)項(xiàng)集合;接下來(lái)遍歷數(shù)學(xué)項(xiàng)集合,分別對(duì)其中的實(shí)體和標(biāo)識(shí)符進(jìn)行語(yǔ)義抽取,并將抽取結(jié)果記錄在語(yǔ)義表中;最后,將數(shù)學(xué)表達(dá)式解析成二叉樹(shù),利用語(yǔ)義表中的語(yǔ)義信息,遞歸地獲取表達(dá)式的語(yǔ)義。
圖1 語(yǔ)義抽取方法框架Fig.1 Framework of semantic extraction method
語(yǔ)義抽取基本任務(wù)主要包括段落切分、分句、表達(dá)式的提取和分詞。由于LaTeX 格式的數(shù)學(xué)表達(dá)式通常由特殊符號(hào)(如“$”“[”“]”等)界定,因此可以定位這些特殊符號(hào)以提取文本中的數(shù)學(xué)表達(dá)式。又由于LaTeX 格式的數(shù)學(xué)表達(dá)式具有序列結(jié)構(gòu),因此可以使用正向最長(zhǎng)匹配(Forward Maximum Match,F(xiàn)MM)算法對(duì)表達(dá)式進(jìn)行分詞。正向最長(zhǎng)匹配算法是基于規(guī)則的分詞方法,通過(guò)與詞典匹配,在以某個(gè)下標(biāo)為起點(diǎn)遞增查詞的過(guò)程中,優(yōu)先輸出更長(zhǎng)的單詞。本文根據(jù)LaTeX 語(yǔ)法,使用由正則表達(dá)式編寫(xiě)的規(guī)則作為詞典,可以匹配具有相同模式的多個(gè)子表達(dá)式,而不僅僅匹配具體的某個(gè)符號(hào)。分詞算法如下:
算法1 數(shù)學(xué)表達(dá)式分詞。
輸入 expression 表達(dá)式。
輸出 tokenList 列表。
使用正則表達(dá)式對(duì)數(shù)學(xué)表達(dá)式進(jìn)行分詞的方式易于擴(kuò)展,只需維護(hù)規(guī)則庫(kù)中的規(guī)則。當(dāng)遇到未出現(xiàn)過(guò)的符號(hào)時(shí),將此符號(hào)添加到規(guī)則庫(kù)中即可達(dá)到解耦的效果。
實(shí)體是數(shù)學(xué)表達(dá)式的組成部分之一,在領(lǐng)域相關(guān)文本中,實(shí)體是領(lǐng)域概念具體形式的表達(dá),實(shí)體語(yǔ)義抽取的目的是將文本中出現(xiàn)的實(shí)體與相應(yīng)的領(lǐng)域概念關(guān)聯(lián),即實(shí)體語(yǔ)義鏈接,進(jìn)而通過(guò)領(lǐng)域知識(shí)庫(kù)獲得其具體的語(yǔ)義。以線(xiàn)性代數(shù)領(lǐng)域?yàn)槔紫雀鶕?jù)領(lǐng)域概念之間的繼承或包含關(guān)系,構(gòu)建領(lǐng)域概念的層次化結(jié)構(gòu),以獲取精細(xì)化的語(yǔ)義信息,如圖2~3 分別表示行列式和矩陣概念的層次結(jié)構(gòu)。
圖2 行列式概念的層次化結(jié)構(gòu)Fig.2 Hierarchical structure of determinant concept
由于數(shù)學(xué)概念通常具有明確且形式化的定義,因此可以根據(jù)概念的定義建立相應(yīng)的識(shí)別算法或規(guī)則,用于判斷數(shù)學(xué)實(shí)體歸屬哪個(gè)概念。本文首先基于正則表達(dá)式從線(xiàn)性代數(shù)領(lǐng)域文本中提取矩陣和行列式的實(shí)體;然后設(shè)計(jì)實(shí)現(xiàn)了相應(yīng)的概念識(shí)別算法;進(jìn)而遍歷上文所述的概念層次化結(jié)構(gòu),將實(shí)體映射到更精細(xì)化的領(lǐng)域概念上。例如,利用正則表達(dá)式“.*egin{[pbv]matrix}.*end{[pbv]matrix}”從文本中提取實(shí)體,然后通過(guò)概念識(shí)別算法分析實(shí)體結(jié)構(gòu)特征,將其關(guān)聯(lián)到“單位陣”這個(gè)概念上。
圖3 矩陣概念的層次化結(jié)構(gòu)Fig.3 Hierarchical structure of matrix concept
標(biāo)識(shí)符語(yǔ)義抽取是數(shù)學(xué)文本語(yǔ)義抽取任務(wù)中最關(guān)鍵的部分,也是數(shù)學(xué)表達(dá)式語(yǔ)義抽取的必要前提。相較于實(shí)體,標(biāo)識(shí)符具有完全抽象性,因而無(wú)法像實(shí)體那樣通過(guò)對(duì)其自身結(jié)構(gòu)特征的分析和處理將其關(guān)聯(lián)到相應(yīng)的領(lǐng)域概念上。在數(shù)學(xué)文本中,通常會(huì)明確地指明所使用標(biāo)識(shí)符的具體含義。因此,可以對(duì)標(biāo)識(shí)符的上下文進(jìn)行分析以來(lái)獲取相應(yīng)語(yǔ)義,即將標(biāo)識(shí)符鏈接到其指代對(duì)象所屬的領(lǐng)域概念上。具體而言,標(biāo)識(shí)符的語(yǔ)義抽取過(guò)程主要包括如下兩部分。
2.4.1 標(biāo)識(shí)符的指代提取
標(biāo)識(shí)符的含義在數(shù)學(xué)文本中主要以?xún)煞N方式指明:實(shí)體指代和文字描述。實(shí)體指代是通過(guò)等號(hào)將以數(shù)學(xué)表達(dá)式形式存在的實(shí)體與標(biāo)識(shí)符之間建立解釋說(shuō)明關(guān)系。例如:對(duì)而言,實(shí)體即為標(biāo)識(shí)符A的具體含義。而文字描述則是通過(guò)自然語(yǔ)言的形式對(duì)標(biāo)識(shí)符的含義進(jìn)行說(shuō)明,如在語(yǔ)句“B是一個(gè)n階方陣”中,“n階方陣”即是對(duì)標(biāo)識(shí)符B的含義說(shuō)明。因此,標(biāo)識(shí)符指代提取的主要目的是從文本中獲取標(biāo)識(shí)符所指代的實(shí)體或者其含義的文字描述。對(duì)于前者,可以通過(guò)解析數(shù)學(xué)表達(dá)式得到以等號(hào)為中心的左右兩部分,再進(jìn)一步判斷即可準(zhǔn)確提取標(biāo)識(shí)符所指代的實(shí)體;對(duì)于后者,盡管以自然語(yǔ)言形式存在,但數(shù)學(xué)文本的表達(dá)通常遵循相對(duì)固定的語(yǔ)法結(jié)構(gòu),因此可以使用模式匹配的方法,從語(yǔ)句中獲取標(biāo)識(shí)符含義的文字描述(見(jiàn)算法2)。
算法2 標(biāo)識(shí)符文字描述的提取。
輸入 expression 表達(dá)式,sentence 語(yǔ)句。
輸出 TextDesc 標(biāo)識(shí)符的文字描述。
算法2 中patternSet 是從領(lǐng)域文本的多種語(yǔ)句形式中總結(jié)提煉出的模板集合。目前該集合共包含5 個(gè)模板(如表1所示),其中:TextDesc 表示所要提取的文字描述;<ID>是占位符,表示語(yǔ)句中出現(xiàn)的標(biāo)識(shí)符;字母a 表示語(yǔ)句中其他表達(dá)式。
表1 語(yǔ)句模板列表Tab.1 List of sentence templates
2.4.2 標(biāo)識(shí)符語(yǔ)義鏈接
在數(shù)學(xué)文本中,標(biāo)識(shí)符往往會(huì)多次重復(fù)使用,相同的標(biāo)識(shí)符在不同的語(yǔ)句中可能具有相同或不同的含義。為了有效地管理和記錄這些復(fù)用標(biāo)識(shí)符的指代信息,實(shí)現(xiàn)標(biāo)識(shí)符的精準(zhǔn)語(yǔ)義鏈接,本文設(shè)計(jì)一種基于哈希表的存儲(chǔ)結(jié)構(gòu),并通過(guò)對(duì)標(biāo)識(shí)符的上下文分析,實(shí)現(xiàn)其指代信息的動(dòng)態(tài)更新。
1)標(biāo)識(shí)符的指代存儲(chǔ)。
在對(duì)標(biāo)識(shí)符進(jìn)行語(yǔ)義抽取的過(guò)程中,使用哈希表實(shí)時(shí)存儲(chǔ)標(biāo)識(shí)符的指代信息,將標(biāo)識(shí)符作為鍵,相應(yīng)的指代信息作為值。同一個(gè)標(biāo)識(shí)符在不同語(yǔ)句中的含義可能不同,將標(biāo)識(shí)符的指代信息未發(fā)生改變的語(yǔ)句所確定的文本范圍稱(chēng)為標(biāo)識(shí)符的作用域。為了區(qū)分標(biāo)識(shí)符作用域的類(lèi)型,引入局部哈希表和全局哈希表。局部哈希表中標(biāo)識(shí)符的作用域是部分文本,當(dāng)某個(gè)標(biāo)識(shí)符的指代信息發(fā)生改變時(shí),新的指代信息將替換原有值,從而達(dá)到實(shí)時(shí)處理的目的。而全局哈希表中標(biāo)識(shí)符的作用域則是整個(gè)文本。由于這種鍵-值存儲(chǔ)和處理形式類(lèi)似于字典,為了敘述方便,將局部哈希表和全局哈希表分別稱(chēng)為局部字典(localDict)和全局字典(globalDict)。根據(jù)標(biāo)識(shí)符指代信息的不同形式,局部字典又可分為實(shí)體指代字典(refEntityDict)和文字描述字典(textDescDict)。
為了界定標(biāo)識(shí)符的作用域并解決這兩類(lèi)字典的更新問(wèn)題,采取以段落為單位分而治之的方法。根據(jù)段落在文本中的不同角色,將段落劃分為DefineClass、MulPropertyClass、GeneralClass 以及OtherClass 四個(gè)類(lèi)別,其中:DefineClass 是文本中的定義段落,主要對(duì)領(lǐng)域概念和術(shù)語(yǔ)的內(nèi)涵進(jìn)行解釋?zhuān)籑ulPropertyClass 是多性質(zhì)段落,在文本中往往以多條性質(zhì)、規(guī)律、公式等的組合形式出現(xiàn);GeneralClass 是一般段落,可以用來(lái)敘述一個(gè)例題、定理、證明或推論等;以上三種類(lèi)型之外的所有段落歸為OtherClass。由于各個(gè)類(lèi)別段落的文本具有比較明顯的特征,因此可以利用關(guān)鍵字匹配的方式對(duì)給定數(shù)學(xué)文本中的所有段落進(jìn)行分類(lèi)。針對(duì)不同類(lèi)別的段落,用于存儲(chǔ)標(biāo)識(shí)符指代信息的字典更新策略如圖4 所示。
圖4 標(biāo)識(shí)符的指代存儲(chǔ)Fig.4 Mention storage of identifier
2)標(biāo)識(shí)符的語(yǔ)義鏈接。
基于所構(gòu)建的局部和全局字典,可以將標(biāo)識(shí)符鏈接到領(lǐng)域概念上。首先將段落拆分成語(yǔ)句列表,遍歷此列表,將每個(gè)語(yǔ)句中的數(shù)學(xué)表達(dá)式進(jìn)行分詞獲得數(shù)學(xué)項(xiàng)集合,其中的元素稱(chēng)為數(shù)學(xué)項(xiàng),然后按照實(shí)體指代字典>文字描述字典>全局字典的優(yōu)先級(jí)順序(如圖5 所示),將每個(gè)數(shù)學(xué)項(xiàng)與字典中的標(biāo)識(shí)符匹配,得到相應(yīng)的值,如果是數(shù)學(xué)實(shí)體,則利用實(shí)體語(yǔ)義鏈接獲取標(biāo)識(shí)符對(duì)應(yīng)的領(lǐng)域概念;如果是文字描述,則可直接獲取相應(yīng)的領(lǐng)域概念,最終將語(yǔ)義鏈接結(jié)果保存到2.6 節(jié)所述的語(yǔ)義表中。
圖5 標(biāo)識(shí)符語(yǔ)義鏈接流程Fig.5 Semantic linking procedure of identifier
表達(dá)式的語(yǔ)義主要依賴(lài)于其所包含的符號(hào)語(yǔ)義,即當(dāng)一個(gè)表達(dá)式中所有符號(hào)語(yǔ)義明確之后,整個(gè)表達(dá)式語(yǔ)義也將唯一確定。由于LaTeX 格式的數(shù)學(xué)表達(dá)式序列字符串形式,需要將其轉(zhuǎn)化為樹(shù)結(jié)構(gòu)以便將符號(hào)語(yǔ)義組合成表達(dá)式語(yǔ)義。表達(dá)式樹(shù)中的葉子節(jié)點(diǎn)為標(biāo)識(shí)符或其他符號(hào)對(duì)象,非葉子節(jié)點(diǎn)為運(yùn)算符,由于常見(jiàn)的運(yùn)算符都是一元或二元運(yùn)算符,因此表達(dá)式樹(shù)一般表示為二叉樹(shù)。數(shù)學(xué)表達(dá)式的序列表示形式包括前綴表達(dá)式、中綴表達(dá)式和后綴表達(dá)式。日常使用的數(shù)學(xué)表達(dá)式多為中綴表達(dá),而后綴表達(dá)更易于計(jì)算機(jī)處理,因此先將中綴形式的表達(dá)式轉(zhuǎn)成后綴表達(dá)式,再將其解析成表達(dá)式樹(shù)(如圖6 所示)?;诒磉_(dá)式樹(shù)的結(jié)構(gòu),從葉子節(jié)點(diǎn)的語(yǔ)義信息出發(fā),遞歸地獲取每個(gè)子樹(shù)的語(yǔ)義,進(jìn)而得到整個(gè)表達(dá)式的語(yǔ)義信息(見(jiàn)算法3)。
圖6 中綴表達(dá)式轉(zhuǎn)化為表達(dá)式樹(shù)Fig.6 Conversion from infix expression to expression tree
算法3 表達(dá)式語(yǔ)義抽取。
輸入 exprTree表達(dá)式樹(shù);semanticDict標(biāo)識(shí)符語(yǔ)義字典。
輸出 exprTreeSemantic 表達(dá)式樹(shù)的語(yǔ)義。
為了敘述方便,將數(shù)學(xué)文本中包含的標(biāo)識(shí)符、實(shí)體和表達(dá)統(tǒng)稱(chēng)為抽取對(duì)象。為了存儲(chǔ)所抽取的語(yǔ)義信息,并且實(shí)現(xiàn)語(yǔ)義信息與抽取對(duì)象之間的反向關(guān)聯(lián),本文設(shè)計(jì)了一種七元組的語(yǔ)義表結(jié)構(gòu)(如表2 所示)。
表2 語(yǔ)義表(部分)Tab.2 List of semantics(Part)
表2 中:第1 列存儲(chǔ)抽取對(duì)象的指代信息,即實(shí)體指代或文字描述;第2 列存儲(chǔ)由指代信息進(jìn)一步得到的領(lǐng)域概念;第3 列存儲(chǔ)所處的段落序數(shù);第4 列存儲(chǔ)在當(dāng)前段落中的語(yǔ)句序數(shù);第5 列存儲(chǔ)在當(dāng)前語(yǔ)句中的表達(dá)式序數(shù);第6 列和第7 列存儲(chǔ)在當(dāng)前表達(dá)式的起始和結(jié)束位置。后五列存儲(chǔ)抽取對(duì)象在文本中的位置。這種定位方式不僅可以將語(yǔ)義信息獨(dú)立于文本之外,不影響文本的結(jié)構(gòu),而且文本內(nèi)容的增刪改操作也不影響語(yǔ)義信息被準(zhǔn)確地定位到抽取對(duì)象上。
本文的實(shí)驗(yàn)數(shù)據(jù)來(lái)自2016 年由北京航空航天大學(xué)出版社出版的《線(xiàn)性代數(shù)(第3 版)》[17]。首先將文本掃描成圖片格式,然后使用數(shù)學(xué)文本識(shí)別工具M(jìn)athpix 將包含數(shù)學(xué)文本的圖片轉(zhuǎn)化成LaTeX 格式,并通過(guò)手工校對(duì)的方式來(lái)獲得高質(zhì)量的數(shù)學(xué)文本數(shù)據(jù)。選取6 節(jié)有代表性的文本作為實(shí)驗(yàn)數(shù)據(jù),表3 統(tǒng)計(jì)了其中包含的所有實(shí)體、標(biāo)識(shí)符以及表達(dá)式的數(shù)量。
表3 實(shí)驗(yàn)數(shù)據(jù)統(tǒng)計(jì)Tab.3 Experimental data statistics
文本中一些標(biāo)識(shí)符的含義屬于線(xiàn)性代數(shù)領(lǐng)域之外的一般領(lǐng)域,例如,在文本“如果行列式某一行(列)元素有公因數(shù)k,則k可以提到行列式符號(hào)外邊”中,標(biāo)識(shí)符“k”所指代的對(duì)象是一個(gè)公因數(shù),屬于線(xiàn)性代數(shù)領(lǐng)域之外的概念。另外,一些表達(dá)式如A=,或m=n的含義是實(shí)體指代或兩個(gè)數(shù)相等,也屬于線(xiàn)性代數(shù)領(lǐng)域之外的概念。為了更有針對(duì)性地評(píng)價(jià)所提出的領(lǐng)域相關(guān)數(shù)學(xué)文本語(yǔ)義抽取方法,只保留表3 中具有線(xiàn)性代數(shù)領(lǐng)域語(yǔ)義的抽取對(duì)象,并按照如下語(yǔ)義標(biāo)注原則構(gòu)建了評(píng)價(jià)數(shù)據(jù)集(如表4 所示)。
表4 評(píng)價(jià)數(shù)據(jù)集Tab.4 Evaluation dataset
1)對(duì)于標(biāo)識(shí)符,標(biāo)注的語(yǔ)義是可以從文本中的文字描述或?qū)嶓w指代明確獲得的領(lǐng)域概念,不包括從標(biāo)識(shí)符所在的表達(dá)式中推斷出此標(biāo)識(shí)符的語(yǔ)義信息。例如對(duì)于文本“已知,求滿(mǎn)足條件FX=XF(稱(chēng)F與X相乘可換)的矩陣X”,X的語(yǔ)義標(biāo)注是“矩陣”而非“2 階方陣”。
2)對(duì)于實(shí)體,標(biāo)注的語(yǔ)義是基于實(shí)體本身的形式獲取的所屬領(lǐng)域概念。
3)對(duì)于表達(dá)式,標(biāo)注的語(yǔ)義是基于標(biāo)識(shí)符和實(shí)體的語(yǔ)義標(biāo)注,通過(guò)表達(dá)式中的運(yùn)算關(guān)系推導(dǎo)出的整個(gè)表達(dá)式所屬的領(lǐng)域概念。
為了全面地評(píng)價(jià)語(yǔ)義抽取結(jié)果,本文使用了以下兩個(gè)標(biāo)準(zhǔn):strict matching 和soft matching。對(duì)于一個(gè)抽取對(duì)象,按照strict matching 標(biāo)準(zhǔn),所識(shí)別出的領(lǐng)域概念必須精確地和標(biāo)注的語(yǔ)義相同才認(rèn)為是抽取正確;而按照soft matching 標(biāo)準(zhǔn),所識(shí)別出的領(lǐng)域概念只需包含所標(biāo)注的語(yǔ)義就認(rèn)為是抽取正確。例如,對(duì)于文本“B是一個(gè)n階方陣,E是n階單位陣,稱(chēng)f(B)=amBm+am-1Bm-1+… +a1B+a0E為方陣B的多項(xiàng)式”,按照strict matching 標(biāo)準(zhǔn),需要識(shí)別出表達(dá)式中的B指代的對(duì)象是一個(gè)“n階方陣”才被認(rèn)為抽取正確;而按照soft matching 標(biāo)準(zhǔn),識(shí)別出B指代的對(duì)象是一個(gè)“方陣”即被認(rèn)為抽取正確。對(duì)于這兩個(gè)標(biāo)準(zhǔn),分別使用如下三種指標(biāo)來(lái)評(píng)價(jià)抽取結(jié)果:
1)精確率P。是指抽取結(jié)果中抽取正確的對(duì)象占抽取結(jié)果中所有對(duì)象的比率,用于衡量抽取的準(zhǔn)確程度。
2)召回率R。是指抽取結(jié)果中抽取正確的對(duì)象占評(píng)價(jià)數(shù)據(jù)集中所有抽取對(duì)象的比率,用于衡量抽取結(jié)果的全面性。
3)F1。通過(guò)計(jì)算精確率和召回率的調(diào)和平均來(lái)綜合評(píng)價(jià)抽取結(jié)果。
按照strict matching 和soft matching 兩個(gè)標(biāo)準(zhǔn)分別使用上述三個(gè)評(píng)價(jià)指標(biāo)對(duì)抽取結(jié)果進(jìn)行評(píng)價(jià),如表5 所示。
表5 語(yǔ)義抽取結(jié)果評(píng)價(jià)Tab.5 Evaluation of semantic extraction results
從表5 可以看出,所提出的基于規(guī)則的語(yǔ)義抽取方法在兩種標(biāo)準(zhǔn)下都取得了較高的精確率和召回率。但由于文本中少量標(biāo)識(shí)符的作用域超出所設(shè)定的段落范圍,其指代信息無(wú)法被獲取,導(dǎo)致抽取結(jié)果無(wú)法完全覆蓋標(biāo)注數(shù)據(jù)集中的標(biāo)注對(duì)象,因而召回率相對(duì)偏低。例如:對(duì)兩個(gè)相鄰的段落文本“設(shè)H=(aij)m×k,K=(bij)k×s,M=(cij)s×n,容易看出,(HK)M與H(KM)都是m×n階矩陣,因此只需證明①中等式兩端的對(duì)應(yīng)元素相等即可”和“由矩陣乘法的定義可知,……上式右端正好是矩陣H(KM)中第i行、第j列的元素……”,前一段落屬于OtherClass 類(lèi),后一段落所屬GeneralClass 類(lèi),當(dāng)獲取前一段落中標(biāo)識(shí)符H、K、M實(shí)體指代分別為(aij)m×k、(bij)k×s、(cij)s×n后,再對(duì)后一段落的表達(dá)式H(KM)中標(biāo)識(shí)符H、K、M進(jìn)行語(yǔ)義抽取時(shí),由于后一段落無(wú)法繼承上一段落的標(biāo)識(shí)符指代信息,因而無(wú)法正確地抽取出后一段落中標(biāo)識(shí)符H、K、M的語(yǔ)義信息;對(duì)表達(dá)式而言,由于其語(yǔ)義受標(biāo)識(shí)符語(yǔ)義信息的影響,無(wú)法正確獲取表達(dá)式H(KM)的語(yǔ)義。
對(duì)實(shí)體而言,其語(yǔ)義抽取結(jié)果主要受實(shí)體本身特征是否清晰、明確等因素影響。例如,由于實(shí)體的特征不夠明確,因而實(shí)體識(shí)別算法的結(jié)果為“行列式”,而人工標(biāo)注結(jié)果為“2n階行列式”,影響了實(shí)體語(yǔ)義抽取在strict matching 標(biāo)準(zhǔn)下的精確率。
使用Python 實(shí)現(xiàn)了所提出的語(yǔ)義抽取方法,輸入LaTeX格式的數(shù)學(xué)文本,輸出用于記錄所有抽取對(duì)象語(yǔ)義信息的語(yǔ)義表。為了呈現(xiàn)語(yǔ)義抽取結(jié)果,進(jìn)一步實(shí)現(xiàn)了一個(gè)轉(zhuǎn)換程序,能夠?qū)⑤斎氲腖aTeX 格式數(shù)學(xué)文本自動(dòng)轉(zhuǎn)化為富語(yǔ)義信息的HTML 格式文檔,并在瀏覽器中交互式地展示文本的語(yǔ)義信息,即當(dāng)鼠標(biāo)停留在實(shí)體、標(biāo)識(shí)符或表達(dá)式上時(shí),自動(dòng)彈出相應(yīng)文本的語(yǔ)義信息(如圖7 所示),幫助閱讀者更方便地理解數(shù)學(xué)文本內(nèi)容。這種將靜態(tài)的機(jī)器可讀數(shù)學(xué)文本自動(dòng)轉(zhuǎn)化成動(dòng)態(tài)的人可理解文檔的方式可以進(jìn)一步應(yīng)用于數(shù)學(xué)相關(guān)的出版、教育等領(lǐng)域。實(shí)現(xiàn)方法是在服務(wù)器端使用Java結(jié)合Servlet 處理數(shù)學(xué)文本及其語(yǔ)義表,前端使用Javascript 和JQuery 完成實(shí)時(shí)交互,并利用MathJax 實(shí)現(xiàn)數(shù)學(xué)表達(dá)式的網(wǎng)頁(yè)端展示。
圖7 線(xiàn)性代數(shù)用戶(hù)界面Fig.7 Linear algebra user interface
本文針對(duì)領(lǐng)域相關(guān)的數(shù)學(xué)文本提出了一套基于規(guī)則的語(yǔ)義抽取方法,自動(dòng)識(shí)別實(shí)體、標(biāo)識(shí)符和表達(dá)式三類(lèi)文本所屬的領(lǐng)域概念。由于目前缺少相關(guān)的標(biāo)注和評(píng)價(jià)數(shù)據(jù)集,本文以線(xiàn)性代數(shù)領(lǐng)域?yàn)槔?,將線(xiàn)性代數(shù)教科書(shū)文本作為研究實(shí)例,實(shí)驗(yàn)結(jié)果表明該方法具有較高的精確率和召回率。該方法還具有可解釋性和可擴(kuò)展性,當(dāng)應(yīng)用于其他領(lǐng)域時(shí),只需替換方法中所使用的規(guī)則即可。另外,本文展示了一種動(dòng)態(tài)呈現(xiàn)數(shù)學(xué)文本語(yǔ)義信息的方式,自動(dòng)生成富語(yǔ)義信息的數(shù)學(xué)文本用戶(hù)界面。
數(shù)學(xué)文本的語(yǔ)義抽取是數(shù)學(xué)文本機(jī)器理解和處理的必要前提,接下來(lái)將進(jìn)一步優(yōu)化標(biāo)識(shí)符的上下文分析方法和流程,提高語(yǔ)義抽取的召回率和精確率,并研究利用所抽取的語(yǔ)義信息賦能下游任務(wù)的實(shí)現(xiàn),例如,將LaTeX 等布局型數(shù)學(xué)文本同義轉(zhuǎn)換成計(jì)算機(jī)代數(shù)系統(tǒng)可以處理的格式,實(shí)現(xiàn)文本的自動(dòng)計(jì)算和糾錯(cuò)。