謝永紅 蔣彥釗 賈麒 范欣欣
1. 北京科技大學計算機與通信工程學院 北京 100083;
2.材料領域知識工程北京市重點實驗室 北京 100083
自然語言處理是目前人工智能研究的一個重要研究方向,而高質(zhì)量的短語知識庫對自然語言處理中的信息抽取尤為重要。高質(zhì)量的語言知識庫不僅可以讓語料的標注更加準確,而且使得自然語言處理模型獲得更加準確的語義信息。為了獲得高質(zhì)量的語言知識庫,短語挖掘[1]成為研究者們研究的熱點。
短語挖掘指的是從給定的語料中挖掘出其中包含的高質(zhì)量的短語。從文本中挖掘出高質(zhì)量的短語不僅可以對文獻進行客觀的評價,而且也有利于人們對文獻的理解以及下一步的研究。
中醫(yī)作為中國傳統(tǒng)醫(yī)學,經(jīng)過長期的發(fā)展,積累了大量的書籍文獻著作,很多重要文獻多成書于古代,使用文言文和古人的口語。因為成書年代不同,表達方式多種多樣,與現(xiàn)代漢語差異較大,其中大量的方劑名稱、癥狀信息、疾病名稱等多數(shù)是由幾個詞組成的短語形式,這些都增加了自動化處理中醫(yī)文獻、正確抽取結構化中醫(yī)知識的難度。所以研究提高中醫(yī)短語挖掘準確率的自動化方法顯得尤為重要。
分詞是短語挖掘的基礎,相較于傳統(tǒng)文獻,中醫(yī)文獻的語法和表達方式具有一定的特殊性,比如通假字等。所以本文提出了一種能夠較好處理具有古文特征的中醫(yī)文獻分詞器,使得短語挖掘在較好的分詞基礎上進行;針對多數(shù)短語挖掘方法往往依賴于大量的專家指導和人工標注訓練集的問題,本文在現(xiàn)有的語言知識庫基礎上添加中醫(yī)文獻高質(zhì)量短語,構建中醫(yī)領域的新語言知識庫;并基于此構建訓練集,訓練短語質(zhì)量評分模型;然后在分詞的基礎上結合詞性標簽,構建詞性標簽序列質(zhì)量評分模型;最終形成中醫(yī)文獻分詞器+短語分割模型的中醫(yī)文獻短語挖掘模型。
國內(nèi)外針對短語挖掘已經(jīng)有很長時間的研究[2-4],按照發(fā)展時間大致分為基于規(guī)則的短語挖掘方法,統(tǒng)計學習的短語挖掘方法和基于深度學習的短語挖掘方法。
基于規(guī)則的短語挖掘方法指的是根據(jù)短語的詞法、語法等規(guī)則及文本特征構建相應的格式化短語識別模板,并利用模式匹配的方法進行短語挖掘[5]。基于統(tǒng)計學習的短語挖掘方法是指從大量的文本中統(tǒng)計短語的特征,根據(jù)短語的各個特征信息進行短語挖掘的方法。如Sarasvady等[6]根據(jù)短語出現(xiàn)的頻率等信息挖掘高質(zhì)量的短語?;谏窠?jīng)網(wǎng)絡的短語挖掘方法指的是利用神經(jīng)網(wǎng)絡學習文本中所存在的語法、句法以及語義特征,根據(jù)這些特征對文本進行短語挖掘。如Xu等[7]基于協(xié)同訓練進行的電商領域短語挖掘。但是這些方法在進行短語挖掘時都是針對單一文檔進行挖掘,所以其挖掘有一定的局限性。為解決此問題,有人進行了相關研究,如K. Frantzi等[8]、Y. Park等[9]在進行的術語提取任務時對多文檔進行了挖掘。
當前中文短語挖掘大多所挖掘的語料是現(xiàn)代文[10,11]。由于中醫(yī)文獻大量源于古籍,其語法有其特性,所以需要利用特有的分詞方法及詞性標簽等語法信息,尋找在中醫(yī)文獻中短語存在的規(guī)律,并利用這種規(guī)律來提高短語挖掘獲得的短語的質(zhì)量。
本文的目標是從大量的中醫(yī)語料中挖掘出一些高質(zhì)量短語,高質(zhì)量短語應該具有以下幾個特性。
(1)高頻率:指高質(zhì)量短語應該在待挖掘文獻中出現(xiàn)足夠多的次數(shù)。(2)一致性:指詞組作為短語出現(xiàn)的頻率要高于偶然出現(xiàn)的頻率。例如“金銀花 顆?!焙汀叭潭?顆?!?,假設“金銀花”和“忍冬”這兩個詞的出現(xiàn)頻率相似,但是在日常生活中,“金銀花 顆?!弊鳛槎陶Z出現(xiàn)的頻率要高于“忍冬 顆粒”偶然出現(xiàn)的頻率,所以“金銀花 顆?!备细哔|(zhì)量短語的一致性。(3)信息性:高質(zhì)量短語應該具有實際的意義。(4)完整性:完整地表達了一個含義。在一些文本中,因為主題的不同,一個短語和它的子短語可能都具有完整性。如“桂枝湯”和“桂枝”。所以在出現(xiàn)桂枝湯的時候希望其可以以“桂枝 湯”的形式挖掘出來。低質(zhì)量短語即為不完全包含上述四個特征的短語,如:克 乳香、一錢 青等。
為了更好地進行高質(zhì)量的短語挖掘,需要構建一個包含中醫(yī)高質(zhì)量短語的新語言知識庫。因此,本文在現(xiàn)有的通用語言知識庫基礎上,結合在中醫(yī)領域研究的前期積累,添加了大量中醫(yī)文獻高質(zhì)量短語,建立了中醫(yī)領域新語言知識庫。
首先中醫(yī)文獻分詞器對待挖掘語料進行分詞。其次,在分詞的結果上采用N-gram[12]的方法提取出大量的候選短語,這些短語包含一些低質(zhì)量短語。再次,從候選短語中過濾掉已經(jīng)存在于中醫(yī)領域新語言知識庫中的短語,剩下的作為訓練短語質(zhì)量評分模型的負樣本,并且將中醫(yī)領域新語言知識庫篩選出的高質(zhì)量短語作為正樣本形成訓練集。從次,利用這個訓練集訓練得到短語質(zhì)量評分模型;同時利用分詞后每個詞的詞性標簽,構建詞性標簽序列質(zhì)量評分模型;利用短語質(zhì)量評分模型以及詞性標簽序列質(zhì)量評分模型構建短語分割模型,對分詞后語料進行短語分割。最后,對分割后的短語進行質(zhì)量評分,獲取高評分的短語作為挖掘出的高質(zhì)量短語。具體細節(jié)方法在接下的章節(jié)中介紹。短語挖掘流程示意圖如圖1所示。
圖1 短語挖掘流程示意圖
中醫(yī)文獻大多數(shù)成書于古代,表達方式多種多樣,并有其獨特的語法特性,所以建立專門的中醫(yī)文獻分詞器[13]對于提高中醫(yī)短語挖掘及中醫(yī)語料的處理是非常重要的。中醫(yī)文獻分詞器基于統(tǒng)計學習的分詞方法,使用N-gram語言模型結合隱馬爾可夫模型(HMM[14])進行中醫(yī)文獻分詞。分詞流程如圖2所示。
圖2 分詞流程示意圖
(1)數(shù)據(jù)預處理首先將大量的電子化中醫(yī)文獻進行預處理,包括去目錄、調(diào)整文件編碼格式等,并將處理后文獻的每一個字后面添加一個空格,作為語言模型的訓練集。
(2)訓練語言模型。中醫(yī)文獻大多是用文言文撰寫的,單字詞的情況比較普遍,但考慮到中醫(yī)領域有很多專業(yè)術語,如方劑名稱、癥狀信息、疾病名稱,為了在最大化保證準確率的前提下又盡可能節(jié)約算力和時間,選擇了4-gram語言模型。也就是第i個字出現(xiàn)的概率僅與前3個字出現(xiàn)的概率有關。
由于采用的是4-gram語言模型,所以每個字就存在4種狀態(tài):第一種為單字詞或者多字詞的首字;第二種為多字詞的第二字;第三種為多字詞的第三字;第四種為多字詞的其余部分。將這4種狀態(tài)分別標記為a,b,c,d。在由n+1個字(ci,i=0…n)組成的句子c0,c1,c2, ...,cn中,對于ck來說,其對應的四種狀態(tài)的概率分別為:
(3)確定狀態(tài)間轉移概率。由于單字詞的后面只能是單字詞或多字詞的詞首,多字詞的首字后面只能是多字詞的第二字,多字詞的第二字后面只能是多字詞的第三字或單字詞或多字詞的首字,多字詞的第三字后面只能是多字詞的其余部分或單字詞或多字詞的首字,多字詞的其余部分后面能是單字詞或多字詞的首字或多字詞的其余部分,那么除上述轉移狀態(tài),其余轉移概率為零。因此,非零狀態(tài)下的條件轉移概率有8種,即:
通過對大量的中醫(yī)文獻進行統(tǒng)計,得到上述轉移概率如下:
(4)使用語言模型進行分詞。根據(jù)所得的轉移概率以及4-gram語言模型計算各個鄰接字的各種情況的條件概率,可以使用HMM的方法找到最優(yōu)狀態(tài)路徑,作為切分結果,得到最初的分詞結果。在由n+1個字(ci,i=0…n)組成的句子c0,c1,c2, ...,cn中,每個字符對應的a,b,c,d四種可能存在狀態(tài)的切分方式概率如圖3所示:
圖3 切分方式概率示意圖
其中圖3一共存在4n條路徑,對每條路徑可以算出這條路徑不同狀態(tài)序列所對應的概率,如可以得出c0,c1,c2,c3, ...,cn全為狀態(tài)a的這條路徑其概率P為:
類似地可以求出左右路徑的概率值,把所得概率最大的那條路徑作為初步的切分路徑,就可得到初步分詞結果。
(5)添加中醫(yī)規(guī)則修正。由于中醫(yī)文獻中有其存在的特殊語法,所以需要對初步切分的結果進行優(yōu)化處理。具體做法為根據(jù)詞性和中醫(yī)方面語言學知識編寫規(guī)則文件,再根據(jù)規(guī)則文件對分詞結果進行進一步的切分。具體規(guī)則含義如表1所示:
表1 規(guī)則含義對照表(部分數(shù)據(jù))
(6)得到最終分詞結果。根據(jù)規(guī)則文件對初步分詞結果進行切分,得到第二次分詞結果,然后利用中醫(yī)領域常見詞表,對結果進行修正得到最終的分詞結果。部分分詞結果如圖4所示:
圖4 部分分詞結果
2.2.1 構建中醫(yī)領域新語言知識庫
為了得到中醫(yī)文獻高質(zhì)量短語,同時也為了減少人力和時間的花銷,在通用語言知識庫基礎上,利用實驗室長期進行中醫(yī)領域研究積累的大量短語集合及從開放知識庫中獲取的高質(zhì)量中醫(yī)短語集合,建立中醫(yī)領域新語言知識庫。中醫(yī)領域新語言知識庫部分數(shù)據(jù)如圖5所示:
圖5 中醫(yī)領域新語言知識庫部分數(shù)據(jù)
2.2.2 形成候選短語
為了構建正負樣本集,要使用N-gram的方法來形成候選短語,由于大多數(shù)短語由兩個詞組成,我們選用2-gram形成候選短語,也就是以2為長度分割分詞后的句子。如對于分詞后的文本“用 藿香 正氣散 一服 愈”,那么使用2-gram的到的候選短語有{“用 藿香”,“藿香 正氣散”,“正氣散 一服”,“一服 愈”}。
2.2.3 構建正負樣本集
構建的候選短語中包含一些低質(zhì)量短語和高質(zhì)量短語,利用中醫(yī)領域新語言知識庫將候選短語分成兩個集合,一個是存在于中醫(yī)領域新語言知識庫中的高質(zhì)量短語集合,作為訓練短語質(zhì)量評分模型的正樣本集;另一個是不在中醫(yī)領域新語言知識庫中的可能質(zhì)量較差的短語集合,作為訓練的負樣本集。
構建好訓練集之后采用隨機森林[15]的方法訓練短語質(zhì)量評分模型,隨機森林是一種由多棵決策樹組成的集成分類器。集成分類器用到的主要思想是集成學習,因為單一的分類器的精度很容易遇到瓶頸難以提升且容易出現(xiàn)過擬合現(xiàn)象,因此通過聚集多個模型來提高預測精度,獲得更好的分類結果。
采用隨機森林訓練質(zhì)量評分模型對短語進行特征選擇是至關重要的,選擇合適的特征會使得模型最后達到較好的效果。針對上述提到的高質(zhì)量短語的四個屬性,利用統(tǒng)計學方法選擇以下的信息作為短語特征。
1)短語出現(xiàn)的頻率:每一個候選短語在待挖掘語料中出現(xiàn)的頻率。
2)逐點互信息:可以用來衡量兩個事物的相關性。逐點互信息的結果越大,表示相關性越高。
3)KL散度[16,17]:KL散度(Kullback-Leibler divergence)又被稱作相對熵,是兩個概率分布間差異的非對稱性度量。KL散度越小,說明候選短語的質(zhì)量越高。
4)TF-IDF[18]:TF-IDF是一種統(tǒng)計方法,用于評估一個字或者一個詞對一個文件集或一個語料庫中一份文件的重要程度。
5)短語中標點符號的使用:短語標點的使用分為不同的兩類。第一類是指候選短語中間帶有標點符號,那么不論是何種標點符號,該候選短語的質(zhì)量都會比較低,可以將其特征值設置為0。第二類是指候選短語在引號、括號之間,在這類標點符號之間的候選短語具有較高的概率是提供了完整信息的高質(zhì)量短語,可以將其特征值設置為1。
選取好特征之后,就可以使用隨機森林訓練短語質(zhì)量評分模型,這里的隨機森林包含1000棵樹,每棵樹分別從正樣本集合中和負樣本集合中分別隨機選取100個候選短語作為該樹的訓練集(這里采取有放回抽樣)。當隨機森林中所有決策樹訓練完成之后,一個短語的質(zhì)量評分即為隨機森林中判斷該短語為高質(zhì)量短語的決策樹的比例。例如:對于短語“藿香正氣散”,如果1000棵樹中有800棵樹認為其為高質(zhì)量短語,那么該短語的質(zhì)量評分就為0.8。短語質(zhì)量評分模型示意圖如圖6所示。
圖6 短語質(zhì)量評分模型示意圖
短語作為一個完整的語義單元是有一些語法規(guī)律的[19],從句子的語法角度進行分析,詞性之間的組合方式往往有一定規(guī)律可循。因此可以利用詞性等信息來對句子的分詞結果進行短語分割,從而提高被挖掘短語的質(zhì)量。
假設有一條由n+1個詞(wi,i=0…n)的待挖掘的語料的分詞結果w0,w1,w2,...,wn。每個wi詞可以打上其詞性標簽ti(i=0…n)。假設其中包含一個詞性標簽子序列t[1,r)∈t1....tr-1,對其進行詞性標簽序列質(zhì)量評分,其質(zhì)量評分越高表示其相關單詞序列作為一個完整語義的可能性越高。假如存在一條詞性標簽序列‘n,n,n,v,n’,其中n表示詞性為名詞,v表示詞性為動詞。那么對于‘n,n’這個詞性標簽子序列的質(zhì)量評分可能會較高,而對于‘n,v’這個詞性標簽子序列評分就會較低,因為大部分短語都不會以動詞作為結尾。
假設將帶有詞性標簽的句子分割為m個短語,其邊界設置為b0,b1,b2,...,bm(m≤n),其中bi表示第i+1個短語的起始位置,那么詞性標簽序列的質(zhì)量評分模型T則可用以下公式表示:
然后可以利用詞性標簽序列質(zhì)量評分模型T和之前訓練好的短語質(zhì)量評分模型Q構建短語分割模型對語料進行短語邊界的重新劃分。對于一句話給定第一個短語邊界b0(通常為句首),那么下一個短語邊界b1,有:
選擇一個b1使得這個函數(shù)取得最大值,那么b0與b1之間的單詞組合就作為第一個劃分出的短語。對于短語邊界b2采取同樣的方法,這樣就完成了短語邊界的重新劃分。
在短語分割之后,利用短語質(zhì)量評分模型Q對出現(xiàn)頻次高于某個閾值的短語進行評分。然后將短語以及質(zhì)量評分寫入文件中。
針對《中醫(yī)古代名醫(yī)醫(yī)案》文獻提取其中的高質(zhì)量短語;將短語出現(xiàn)頻率閾值設置為10,即出現(xiàn)10次以上的短語才能作為候選短語集中的短語;依據(jù)中醫(yī)文獻的分詞統(tǒng)計結果,分詞后的詞長多為2~3,且短語通常由兩個詞組成,所以將短語最大字長設置為6。
將中醫(yī)文獻分詞器+短語分割模型與TFIDF、TextRank[20]和ANSJ①https://github.com/NLPchina/ansj_seg分詞方法+短語分割模型結果進行對比。其中,TF-IDF方法指的是根據(jù)詞頻等信息挖掘文章中的短語;TextRank方法是通過詞之間的相鄰關系構建網(wǎng)絡,然后用PageRank[21]迭代計算每個節(jié)點的rank值,排序rank值挖掘文章的短語。
本實驗選取挖掘出的前300個短語作為高質(zhì)量短語。選用常用的精確率(Precision)作為評估指標對四種方法進行評判,精確率的計算方式為挖掘出的短語中真正的高質(zhì)量短語數(shù)除以挖掘出的高質(zhì)量短語數(shù)目。因無法對語料中所有的高質(zhì)量短語精確統(tǒng)計,所以無法對其召回率及F1值進行計算。實驗評估結果如表2所示。
表2 四種方法評估結果
本實驗每個方法都是返回的一個抽取的短語的列表。部分結果如表3所示。
表3 四種方法挖掘部分結果
根據(jù)表3可以發(fā)現(xiàn),ANSJ分詞+短語分割模型和中醫(yī)文獻分詞器+短語分割模型挖掘出的質(zhì)量短語語義更加完整,因為這兩種方法在分詞的基礎上利用詞性標簽淺層語法信息對分詞后的文本進行了短語的重新劃分,從而使得挖掘到的短語語義更加完整。而TD-IDF和TextRank是在分詞后直接利用詞頻等信息進行短語挖掘,所以中醫(yī)文獻分詞器+短語分割模型相對于TD-IDF和TextRank這兩種方法挖掘出的短語語義信息是更加完整的。
根據(jù)表2可以發(fā)現(xiàn)中醫(yī)文獻分詞器+短語分割模型方法的準確率更高,原因是我們所使用的分詞器是針對中醫(yī)文獻專門的分詞器,其在分詞的過程中加入了中醫(yī)方面語言學知識編寫規(guī)則文件對初次分詞結果進行修正,所以在針對于中醫(yī)文獻的分詞上會更加準確,從而導致分詞的誤差傳遞會更小從而在使得最后挖掘出的短語精確率更高。
每種方法的結果列表都是按照質(zhì)量從高到低順序進行排列的,在此只使用了每種方法的前300個結果進行評估,因此,方法整體的精確率會略微低于表2中的數(shù)據(jù)。但是根據(jù)表2中的結果,在前300個短語中中醫(yī)文獻分詞器+短語分割模型方法準確率更高,也就表明在這300個短語中中醫(yī)文獻分詞器+短語分割模型挖掘出的高質(zhì)量短語比重更大,所以也就證明了對于同一篇中醫(yī)文獻使用中醫(yī)文獻分詞器+短語分割模型可以挖掘出更多的高質(zhì)量短語。
本文闡述了中醫(yī)短語挖掘的意義、實用性和重要性,詳細介紹了中醫(yī)文獻分詞器+短語分割模型的短語挖掘方法原理和流程。通過對比實驗,從多個角度分析表明了中醫(yī)文獻分詞器+短語分割模型方法能在中醫(yī)文獻的高質(zhì)量短語挖掘任務中取得較好的效果;定性分析結果也表明,增加了詞性標簽的方法在中醫(yī)領域短語挖掘的任務上表現(xiàn)更好,能獲得更完整語義的高質(zhì)量短語,為其他任務(如詞表的擴充、命名實體識別等任務)打下了堅實的基礎。方法還有進一步改進的空間,在分詞器、短語質(zhì)量評分模型及詞性標簽范圍等方面還可進一步優(yōu)化,這也是我們未來研究的目標。