陳金棟 肖仰華
(復(fù)旦大學(xué)計算機科學(xué)學(xué)院 上海 200433)
分類體系廣泛應(yīng)用于短文本分類[1]、Web服務(wù)發(fā)現(xiàn)[2]、表示學(xué)習(xí)[3]等領(lǐng)域。分類體系包含實體、概念以及上下位關(guān)系,其中上下位關(guān)系也稱為isA關(guān)系。本文用hyponym(A,B)表示上下位關(guān)系,例如hyponym(蘋果,水果)表示“蘋果”是“水果”的下位詞,“水果”是“蘋果”的上位詞。
上下位關(guān)系抽取是大規(guī)模中文分類體系構(gòu)建的重要方法之一。早期的分類體系比如WordNet[4]是人工構(gòu)建的,這種分類體系精度較高但是規(guī)模很小。因此,近期的研究工作都圍繞在自動化分類體系構(gòu)建?;谀0宓姆椒ㄊ欠诸愺w系構(gòu)建的主流方法之一。文獻[5]利用人工定義的Hearst模板從文本中抽取上下位關(guān)系。為了進一步提高上下位關(guān)系的召回率,文獻[6]提出了一套bootstrapping的框架,從文本中獲取上下位關(guān)系。
大部分句法模板都面臨了低質(zhì)量或者低覆蓋率的問題,高質(zhì)量高覆蓋率的模板非常少。因此,先前的工作使用高質(zhì)量的模板來確保精度,同時采用bootstrapping的方式來提高召回率[6]。但是在bootstrapping過程中產(chǎn)生的模板質(zhì)量較低,這導(dǎo)致了語義漂移的問題[7]。上述方法在中文上的效果比英文更差,因為中文的表達更加靈活,語法更加復(fù)雜,這導(dǎo)致中文高質(zhì)量的模板非常少[8]。因此目前出名的分類體系都是英文的,如WikiTaxonomy[9]、YAGO[10]、Probase[11],中文的高質(zhì)量高覆蓋率的分類體系幾乎不存在。
本文主要針對眾多低質(zhì)量高覆蓋率的句法模板,將這些模板稱為弱句法模板。同時,將高質(zhì)量高覆蓋率的句法模板稱為強句法模板。弱句法模板質(zhì)量低的主要原因是缺乏語義信息,因此把它和實體或概念結(jié)合,設(shè)計了一種新模板——語義模板來獲取更多高精度的上下位關(guān)系。例如,“NP是NP”是弱句法模板,其中NP表示名詞短語。已知“北京”是一個實體,將上面提及的弱句法模板和實體結(jié)合得到語義模板“北京是NP”。利用該語義模板,可以從句子“北京是中國首都”中獲得hyponym(北京,中國首都)。
基于強句法模板和語義模板,本文提出了一套新穎的迭代框架用于上下位關(guān)系抽取,強句法模板進行第一輪關(guān)系抽取,在迭代的過程中使用語義模板來抽取更多的上下位關(guān)系,這極大地提高了召回率。本文提出的方法能夠克服傳統(tǒng)bootstrapping方法中的語義漂移的問題,因為在迭代的過程使用了語義信息,能克服弱句法模板的低質(zhì)量問題。本文在中英文數(shù)據(jù)集上進行實驗,實驗結(jié)果證明了方法的有效性和通用性。
主流的上下位關(guān)系抽取方法可以分為三種:基于模板的方法、基于百科全書的方法和基于嵌入的方法。
基于模板的方法使用句法模板從文本中抽取上下位關(guān)系。文獻[5]是第一個將句法模板用于上下位關(guān)系抽取,提出了一套自動化的上位詞獲取算法,利用Hearst模板從非結(jié)構(gòu)化文本中獲取上位詞。文獻[6]提出了一套迭代式算法從互聯(lián)網(wǎng)數(shù)據(jù)中抽取上下位關(guān)系。該算法定義一些種子關(guān)系實例,利用它們獲取新的句法模板,這些句法模板可用于抽取新的關(guān)系實例,重復(fù)執(zhí)行上述步驟,直到?jīng)]有新的關(guān)系實例產(chǎn)生為止。文獻[12]使用搜索引擎發(fā)現(xiàn)匹配句法模板的句子并從中抽取上下位關(guān)系。文獻[13]訓(xùn)練一個上下位關(guān)系分類器來發(fā)現(xiàn)有用的依賴路徑,然后將分類器用在新的語料上識別新的上下位關(guān)系。Liu等[14]提出了一套迭代抽取中文上下位關(guān)系方法,只用到了兩個強句法模板,完全忽略了弱句法模板。Wu等[11]提出了一套英文上下位關(guān)系抽取方法,構(gòu)建了一個大規(guī)模的英文分類體系。上述方法沒有嚴(yán)格區(qū)分高質(zhì)量模板和低質(zhì)量模板,都面臨了低精度或低覆蓋率的問題。
基于百科全書的方法從相對結(jié)構(gòu)化的百科全書中抽取上下位關(guān)系。文獻[9]以維基百科的種類系統(tǒng)為數(shù)據(jù)源,把它建模成一個語義網(wǎng)絡(luò),將語義網(wǎng)絡(luò)中的關(guān)系分為上下位關(guān)系和非上下位關(guān)系。文獻[10]將維基百科的種類系統(tǒng)中的概念映射到WordNet來獲取大量的上下位關(guān)系。類似的方法也可用于中文,文獻[8,15]使用相似的方法分別從中文維基百科和百度百科中抽取上下位關(guān)系。這種方法的精度較高,但是覆蓋率較低。
基于嵌入的方法將單詞或短語映射到一個隱式的向量空間,然后基于這些向量發(fā)現(xiàn)上下位關(guān)系。文獻[16]基于詞向量來獲取上下位關(guān)系。文獻[17]將語法規(guī)則也映射到隱式空間,為發(fā)現(xiàn)上下位關(guān)系提供更多的特征。但是這些模型的精度較低(80%左右),這導(dǎo)致了此類方法不滿足實際工程的需要。
本文目標(biāo)是從文本中抽取上下位關(guān)系。在詳細介紹本文提出的算法之前,先定義句法模板和語義模板。
高質(zhì)量的模板可以產(chǎn)生高精度的上下位關(guān)系,而低質(zhì)量的模板傾向于產(chǎn)生低精度的上下位關(guān)系。因此,根據(jù)模板精度將其分為強句法模板和弱句法模板。
定義1模板P的精度定義如下:
(1)
式中:分母表示模板P從語料庫中抽取的上下位關(guān)系數(shù)量;分子表示這些關(guān)系中是正確的上下位關(guān)系數(shù)量。
定義2給定一個模板精度閾值γ,如果模板P滿足pre(P)≥γ,則它是一個強句法模板;反之,它是一個弱句法模板。
pre(P)是針對特定語料庫而言的,一般是從語料庫中采樣得到樣本數(shù)據(jù),在樣本數(shù)據(jù)上評估得到pre(P)。閾值γ的設(shè)置對于區(qū)分強弱句法模板至關(guān)重要,在設(shè)定閾值時需要考慮兩點:第一,在不同語言上γ的設(shè)定是不同的,因為語言的差異,相同的句法模板在不同語言上的精度是不同的;第二,當(dāng)期望得到高精度的上下位關(guān)系時,往往會將γ設(shè)置的比較高。
表1顯示了中文中常用的Hearst句法模板。當(dāng)γ=0.85時,Psyn1和Psyn2是強語法模板,Psyn3和Psyn4是弱句法模板,其中精度是在每個模板抽取得到的300組上下位關(guān)系上評估得到的。一方面,強句法模板質(zhì)量較高,可以產(chǎn)生高精度的上下位關(guān)系,但如果僅使用強句法模板,召回率太低。另一方面,弱句法模板可用于提升召回率,但弱句法模板產(chǎn)生的上下位關(guān)系精度太低。為了平衡精度和召回率,本文設(shè)計了一種語義模板來解決此問題。
本文先定義元語義模板,因為語義模板的定義依賴于元語義模板。
定義3元語義模板是由弱句法模板和一個概念占位符$CON或?qū)嶓w占位符$ENT組成。
如表2所示,元語義模板Psem2和Psem3分別是通過弱句法模板Psyn3結(jié)合概念占位符$CON和實體占位符$ENT構(gòu)成的?;谠Z義模板定義語義模板。
表2 中文元語義模板
定義4語義模板是由一個具體的概念或?qū)嶓w來實例化元語義模板中的概念或?qū)嶓w占位符產(chǎn)生的。
例如“水果包括{,NP}*NP”是一個語義模板,它是由概念“水果”替換元語義模板Psem1中的概念占位符得到的。
基于強句法模板和語義模板,本文設(shè)計了一個迭代式抽取框架從文本中抽取上下位關(guān)系。基本思路是用強句法模板獲取高精度的上下位關(guān)系,用語義模板來提升召回率同時保證上下位關(guān)系的精度。如圖1所示,框架由兩個主要部分組成:預(yù)備抽取和迭代抽取。在預(yù)備抽取中,使用一組固定的強句法模板來獲得高精度的上下位關(guān)系。在迭代抽取中,使用語義模板來提升召回率,獲取更多的上下位關(guān)系。迭代的動力來自上一次迭代中生成的新概念/實體。從不同模板生成的上下位關(guān)系的交集中得到新概念/實體,這確保了新概念/實體的質(zhì)量。新概念/實體用于構(gòu)造語義模板。在迭代中使用語義信息,因此解決了語義漂移的問題。表3總結(jié)了本文中使用的符號。
符號意義R從語料中抽取得到的上下位關(guān)系集合Rij第i輪迭代第j個模板抽取得到的上下位關(guān)系集合Rin不同模板抽取到的上下位關(guān)系的交集S語料庫中包含的所有句子集合s語料庫中的一個句子Psyn強句法模板集合Psem語義模板集合Scon/Sent已經(jīng)發(fā)現(xiàn)高質(zhì)量概念/實體集合Snowcon/Snowent從Rin中獲取到的概念/實體集合Snewcon/Snewent當(dāng)前這輪迭代中新發(fā)現(xiàn)的概念/實體集合
先介紹預(yù)備抽取,R表示上下位關(guān)系集合,初始化為空集。Rij表示在第i輪迭代中第j個模板產(chǎn)生的上下位關(guān)系集合。對于第j個強句法模板,掃描語料庫并找到與模板匹配的句子,通過isAExtraction模塊獲取上下位關(guān)系,加入到R1j中。然后將R1j合并到R中。
算法1詳細描述了迭代抽取模塊。Scon和Sent表示已經(jīng)發(fā)現(xiàn)的高質(zhì)量的概念和實體集合,初始化為空(第1行)。R初始化為預(yù)備抽取階段抽取得到的上下位關(guān)系集合(第2行)。在每一輪迭代中,對不同模板產(chǎn)生的關(guān)系做交集(第4行),這避免了單個模板產(chǎn)生的噪聲關(guān)系,提高了語義模板中用到的概念和實體的質(zhì)量。接下來計算新的上位詞和下位詞(第5~8行)并更新Scon和Sent(第9,10行)。然后使用新概念和新實體構(gòu)建語義模板(第11行)。最后使用語義模板從句子中抽取上下位關(guān)系(第12~20行),這過程類似于預(yù)備抽取。重復(fù)上述步驟,當(dāng)沒有新的實體和概念產(chǎn)生時,終止算法。
算法1迭代抽取
輸入:S,語料庫中的句子
Psem,元語義模板
輸出:R,上下位關(guān)系集合
1Scon←?,Sent←?
2R←預(yù)備抽取階段產(chǎn)生的上下位關(guān)系
3 Repeat
4Rin←對不同模板的上下位關(guān)系做交集
12 foreachp∈Psemdo
13 foreachs∈Sdo
14 if s.match(p) then
17 end
18 end
19R←R∪Rij
20 end
21 Until沒有新概念和實體加入到Scon和Sent
上面介紹了isAExtraction模塊,該模塊用于從匹配到模板的句子中抽取上下位關(guān)系。經(jīng)過觀察,本文把模板分為兩類,針對不同類別的模板使用不同的算法。
對于包含動詞的模板,使用基于依賴路徑(dependency path)的方法。首先要對句子進行依存句法分析,然后通過依賴路徑獲取上位詞和下位詞。例如給定一個匹配模板Psyn1句子“上海是一座城市”,“是”的詞性為動詞,“上?!焙汀笆恰敝g是主謂關(guān)系,“是”和“城市”之間是動賓關(guān)系,通過依賴路徑得到hyponym(上海,城市)。
對于不包含動詞的模板,使用基于功能詞的方法。模板Psyn2中“等”就是一個功能詞,發(fā)現(xiàn)上下位詞往往在功能詞的前后,可以直接通過正則表達式匹配的方式獲取得到。例如給定匹配Psyn2的句子“中國、印度等國家”,上位詞“國家”在功能詞之后,下位詞“中國”和“印度”在功能詞之前,能夠獲得hyponym(中國,國家)和hyponym(印度,國家)。
維基百科是互聯(lián)網(wǎng)上規(guī)模最大,最受歡迎的百科類網(wǎng)站,包含多種語言。為了驗證本文提出的方法的有效性和通用性,本文在中文和英文維基百科語料庫上進行實驗。
本實驗從中文維基百科語料庫中抽取上下位關(guān)系。在互聯(lián)網(wǎng)上下載中文維基百科語料庫,它包含948 835個網(wǎng)頁和7 911 297個句子。中文分詞、詞性標(biāo)注和依存句法分析由開源中文語言處理平臺LTP[19]提供。超參數(shù)γ憑經(jīng)驗設(shè)置為0.85。兩個強句法模板(表1)和三個語義模板(表2)分別用于預(yù)備抽取和迭代抽取。
為了估計使用本文方法抽取的上下位關(guān)系的精度,選取了不同領(lǐng)域的30個概念作為基準(zhǔn)數(shù)據(jù)集。對于每個概念,隨機選取它的50個實體或子概念并進行評估。5名碩士生參與了實驗評估,最終通過投票的方式確定最終結(jié)果。在其他信息抽取的研究工作也采用了和本文一樣的評估方式[11]。圖2顯示了基準(zhǔn)數(shù)據(jù)集上每個概念的上下位關(guān)系精度,平均精度為94.8%,遠遠大于以前的中文關(guān)系抽取方法,如傳統(tǒng)的基于模板的方法(78%)[14]和基于嵌入的方法(約80%)[17-18]。表4顯示了基準(zhǔn)數(shù)據(jù)集中的10個概念以及它們的典型實例。
圖2 不同領(lǐng)域的上下位關(guān)系精度
表4 10個概念及其典型實體
圖3顯示了每輪迭代上下位關(guān)系的累積數(shù)量。在預(yù)備抽取(第1輪)中,抽取得到了128 215個上下位關(guān)系,這幾乎是總關(guān)系的三分之一。在迭代抽取中(在第1輪之后),曲線在前幾輪中快速增長,然后隨著bootstrapping的過程收斂而飽和。最后,從中文維基百科語料庫中抽取了327 370個上下位關(guān)系。
圖3 上下位關(guān)系數(shù)量隨迭代次數(shù)的變化
圖4顯示了在每輪迭代在基準(zhǔn)數(shù)據(jù)集上的精度,并且將本文提出的方法與目前最新的基于模板的迭代抽取方法Probase進行比較。在第一輪迭代中,本文的方法的精度是92.4%,略低于Probase的97.3%,因為Probase在第一輪迭代中只抽取高置信度的上下位關(guān)系。隨著迭代的進行,本文方法的精度有所提高,因為在迭代抽取中使用了語義模板并考慮了語義信息,這種現(xiàn)象證明本文方法解決了語義漂移的問題。相反Probase的精度有所下降,這是由于錯誤的上下位關(guān)系作為先驗知識用于指導(dǎo)下一輪上下位關(guān)系的抽取導(dǎo)致的[11]。最后,本文方法的精度超過了Probase。
圖4 上下位關(guān)系精度隨迭代次數(shù)的變化
從兩個方面評估語義模板的有效性。1) 精度:使用相同的評估方法來評估語義模板的精度,精度為94.7%,和強句法模板的精度相近,遠大于弱句法模板的精度;2) 召回率:從中文語料庫中獲得了320 K上下位關(guān)系,其中約62%的上下位關(guān)系是由語義模板生成的,這極大地提高了召回率。因此,語義模板可用于獲得更高精度的上下位關(guān)系。
將本文方法和以下方法進行對比:1) SP:只使用表1中的兩個強句法模板;2) SP&WP:使用表1中的所有句法模板,包括兩個強句法模板,兩個弱句法模板;3) 文獻[14]:一個基于模板的迭代抽取方法,該方法沒有將句法模板分為更細粒度的模板。
為了評估這些方法,從數(shù)據(jù)集中隨機選擇1 000個句子來計算精度、召回率和F1值,實驗結(jié)果如表5所示。方法SP具有最高的精度但召回率低,因為它只使用高質(zhì)量的模板。本文方法優(yōu)于SP和WP,因為將本文高質(zhì)量模板與低質(zhì)量模板區(qū)分開來。文獻[14]只使用詞匯特征而忽略了句法特征,因此精度低但召回率高。與這些方法相比,本文方法精度和召回率都相對較高,在指標(biāo)F1值上取得了最好的效果。
表5 評估結(jié)果
本文框架中用到了句法模板,這些模板在其他語言中也存在,比如英語[5]、韓語[20]。因此,本文提出的方法也可以通過調(diào)整閾值γ用于其他語言。由于知識有限,只在英語上進行實驗。從英語維基百科語料中抽取了202 846個和強句法模板匹配的句子,127 727個和弱句法模板匹配的句子。依存句法分析使用的是斯坦福大學(xué)的CoreNLP工具。閾值根據(jù)經(jīng)驗設(shè)置為0.90。三種強語義模板(表6中的前三種模板)和三種元語義模板(表7)分別用于預(yù)備抽取和迭代抽取。
表6 英文句法模板
表7 英文元語義模板
使用和實驗一相同的評估方式,評估得到上下位關(guān)系的平均精度是92.5%,優(yōu)于之前的信息抽取框架KnowItAll(平均64%)[21]、NELL(74%)[7]、TextRunner(平均80%)[22],并與目前最新的方法Probase(92.8%)相近。對召回率進行定性分析,與僅使用句法模板的Probase相比,本文方法的召回率高于Probase,因為充分利用弱句法模板并將它們與實體/概念相結(jié)合,以構(gòu)建用于迭代抽取的語義模板。從該數(shù)據(jù)集中總共抽取到320 199上下位關(guān)系。
本文根據(jù)句法模板的質(zhì)量,將其分成更細粒度的強句法模板和弱句法模板,并將語義信息融入弱句法模板來構(gòu)建語義模板?;趶娋浞0婧驼Z義模板提出了一套通用的、有效的上下位關(guān)系抽取框架,從文本中抽取上下位關(guān)系。從中文維基預(yù)料中抽取得到32萬的上下位關(guān)系,精度超過94%。本文方法具有高精度和高召回率的特點。此外它還可用于其他語言,只需要調(diào)整區(qū)分強弱句法模板的閾值。在中英文數(shù)據(jù)上進行了實驗,實驗結(jié)果證明了方法的有效性和通用性。
未來工作方向分為兩部分:第一是將本文的框架用在更大規(guī)模的語料上進行上下位關(guān)系抽取來構(gòu)建一個大規(guī)模高質(zhì)量的中文分類體系;第二使用更多的弱句法模板,來進一步提高召回率。