楊延云 杜建強 聶 斌 羅計根 賀 佳
(江西中醫(yī)藥大學計算機學院 江西 南昌 330004)
為推進國家中醫(yī)藥信息化的發(fā)展,各種中醫(yī)藥信息化平臺的建設接踵而至,例如,中醫(yī)輔助診療系統(tǒng)、中醫(yī)智能問答系統(tǒng)、中醫(yī)電子病歷系統(tǒng)等。中醫(yī)文獻作為中醫(yī)傳承載體,記錄了證型、方劑、中藥、病因、病機和治則治法等數據,且存在著大量實體重疊的問題。而實體和關系抽取作為底層最基礎的任務,能夠快速地從半結構化、非結構化的中醫(yī)文本中提取出實體以及它們之間的語義關系,對中醫(yī)文獻數據的有效利用和中醫(yī)藥的信息化研究具有促進作用和重要意義。
實體關系抽取作為信息抽取的重要子任務[1],處理該任務的方法主要可以分為流水線方法和實體關系聯合抽取方法兩類。流水線方法即將實體關系抽取任務分為命名實體識別[2](Named Entity Recognition,NER)和關系抽取[3](Relation Extraction,RE)兩個子任務,即給定一段半結構化或非結構化文本,首先通過命名實體識別提取出文本中的實體,然后對每個候選實體對進行關系分類。
典型的命名實體識別方法主要分為三類:基于規(guī)則的方法;基于統(tǒng)計學習的方法和基于深度學習的方法。其中,基于規(guī)則的方法大多是利用語言學知識,通過語言規(guī)則識別實體;基于統(tǒng)計學習的方法主要有隱馬爾可夫模型(Hidden Markov Models,HMM)[4]、最大熵模型(Maximum Entropy Model,MEM)、支持向量機(Support Vector Machine,SVM)[5]和條件隨機場[6]等,該方法依賴復雜的特征工程。近幾年,循環(huán)神經網絡(Recurrent Neural Networks,RNN)、長短期記憶網絡(Long Short-Term Memory)等神經網絡模型被應用于實體識別任務,并展現出強大的優(yōu)勢。
關系抽取方法主要可以分為經典的關系抽取方法和基于深度學習的抽取方法。經典的關系抽取方法主要包括有監(jiān)督、半監(jiān)督、弱監(jiān)督和無監(jiān)督4種[7],這幾種方法存在特征提取誤差傳播的問題,很大程度上影響最終關系抽取的結果?;谏疃葘W習的方法避免了人工特征提取,Zeng等[8]于2014年首次使用CNN進行關系分類。Vu等[9]采用深度循環(huán)神經網絡(Deep Recurrent Neural Networks,DRNN)進行關系抽取。
流水線方法雖然在模型選擇和實驗操作比較靈活、簡單,但是這種方法存在以下幾個問題:① 導致錯誤累積;② 忽略了兩個子任務間的相關性;③ 產生大量冗余信息。例如文本:“方劑麻杏石甘湯是由麻黃、杏仁等多味中藥組成”,采用流水線方法的具體流程如圖1所示。假如在命名實體識別階段模型沒有識別出實體“麻杏石甘湯”,由于關系抽取完全依賴實體識別的結果,則所有包含“麻杏石甘湯”的三元組皆無法得到,因此導致錯誤累積;已知文本中存在“方劑/中藥”這一關系,可以推理第一個實體的類別是“方劑”類,第二個實體的類型是“中藥”類,而采用流水線方法無法利用該信息進行推理;關系抽取是對每個候選實體對進行關系分類,不屬于預定義關系的實體組合就是冗余信息,如(麻黃,None,杏仁)。
圖1 流水線方法流程
針對以上流水線方法存在的問題,實體關系聯合抽取直接抽取給定文本中含有的實體和實體間語義關系的三元組(Entity1,Relation,Entity2),不僅能夠充分考慮二者的相關性,將二者聯合學習,還使兩個子任務的性能得到了不同程度的提升。
Ren等[10]提出CoType框架。Miwa等[11]使用填表方法,將實體識別和關系抽取進行聯合學習,但是都基于人工提取特征,依賴于復雜的特征工程,還需使用各種自然語言處理工具包。隨著深度學習方法的興起,Miwa等[12]使用BiLSTM實現實體識別,通過共享輸入層和LSTM編碼層的參數,連用Bi-TreeLSTM結構實現關系抽取。Katiyar等[13]針對Miwa等[12]利用依存樹結構的缺點提出融合注意力機制的RNN方法實現實體關系聯合抽取。Zheng等[14]采用BiLSTM對輸入層進行編碼,選用LSTM進行解碼,實現實體識別;通過共享BiLSTM編碼器參數,利用CNN模塊對編碼層結果進行關系分類。文獻[15]通過引入互反饋機制,反饋更新共享層的參數來提升聯合抽取的效果。基于參數共享的實體和關系聯合抽取方法增強了實體識別和關系抽取兩個子任務的相關性,改善了傳統(tǒng)流水線方法錯誤累積的不足。但是由于該方法都是利用共享底層模型參數來增強兩者的相關性,實質上仍是先進行NER,再利用NER的結果進行RE,因此仍會產生不存在關系的實體對冗余信息,也存在錯誤傳遞。
Zheng等[16]首次將實體關系聯合抽取轉化為序列標注問題,還設計了帶有偏置損失函數的端到端模型,實現了真正意義上的實體關系聯合抽取。但在最終三元組的抽取時采用就近距離策略,且規(guī)定一個實體只能存在一個三元組中,導致大量關系數據丟失,無法解決實體重疊問題。曹明宇等[17]借鑒Zheng等[16]的方法,改進標注策略,采用BiLSTM-CRF模型有效緩解了同一實體參與多個關系的重疊問題,在生物醫(yī)學領域的藥物實體關系數據集上取得了較好的效果。
鑒于傳統(tǒng)流水線方法的不足和中醫(yī)文本中存在大量實體重疊的問題,本文提出一種基于字詞向量拼接的中醫(yī)實體關系聯合抽取方法。首先將字詞向量拼接作為輸入,再采用改進的序列標注策略在BiLSTM-CRF(Bi-directional Long Short-Term Memory Conditional Random Fields,BiLSTM-CRF)模型上對中醫(yī)文本進行標注,最后通過自定義的抽取規(guī)則進行關系三元組提取。
該方法使用改進的序列標注策略,將中醫(yī)的實體關系聯合抽取轉換成序列標注任務,詞向量與字符向量并聯拼接作為雙向LSTM-CRF輸入,利用雙向LSTM神經網絡強大的特征提取能力,以及CRF在序列標注上的突出優(yōu)勢,結合優(yōu)化的抽取規(guī)則完成中醫(yī)實體關系聯合抽取。整體方法流程如圖2所示。
圖2 方法流程
該方法的整體流程為:
1) 對輸入的文本句子利用Word2vec進行向量轉化,分別生成字向量和詞向量;
2) 將生成的向量以字為基本語義單元進行字詞向量并聯拼接;
3) 采用改進的標注策略,通過BiLSTM-CRF模型對每個句子進行序列標注;
4) 根據序列標注結果,結合自定義的抽取規(guī)則來抽取關系三元組。
One-hot編碼得到的是稀疏向量,向量的維度完全取決于語料庫的大小,且每個詞的向量之間都是獨立的,相近意思的詞語也沒有關聯關系。相較于One-hot編碼,Word2vec得到的詞向量降低了向量的維度,且語義相近的詞語被映射在相近的位置。
本文訓練向量所用語料來源于《中醫(yī)證候鑒別診斷學》《中醫(yī)150證候辨證論治輯要(何曉暉)》和《中醫(yī)藥學概論》三本中醫(yī)相關書籍。而采用分詞工具得到的中文分詞結果并非完全正確,且單獨用詞作為語義單元也忽略了詞內字間的聯系;單獨用字作為語義單元,又不能準確地表達當前的語境,因此本文采用了字詞向量并聯拼接作為模型輸入,將字和詞的信息有效地結合起來。中醫(yī)語料利用jieba分詞工具,并加載自定義的中醫(yī)領域自定義詞典進行分詞,自定義詞典主要包含大量的證型、方劑等信息,通過Word2vec訓練得到100維詞向量。中醫(yī)語料使用Word2vec訓練得到100維字向量。最終,本文采用以字向量為基本語義單元與該字所在詞的詞向量進行并聯拼接得到200維字向量作為模型的輸入,字詞向量并聯拼接豐富了詞的語義信息,提取有效特征,如圖3所示。例如文本:“四逆散中重用柴胡為君藥”,則該句中作為模型輸入“胡”的向量由“胡”的字向量與“胡”所在的詞“柴胡”的詞向量構成。
圖3 字詞向量拼接
本文在Zheng等[16]提出的標注策略和曹明宇等[17]的標注策略基礎上進行改進,將實體關系聯合抽取轉化為序列標注的問題,對每個字符根據標注策略進行標注。如圖4所示。
圖4 標注實例
其中“O”表示該字不與其他字構成實體,且在該句中與其他任何實體不存在預定義的關系;此外,每個標簽共包含三部分的內容:該字在實體中的位置、關系類別、實體在三元組中的位置。該字在實體中的位置采用“BIES”策略進行表示,“B”代表實體開始,“I”代表實體中部,“E”代表實體末尾,“S”代表單個字構成實體;關系類別是根據中醫(yī)語料預先定義好的,本文共涉及5種關系,分別為方劑/中藥、證型/方劑、證型/癥狀、病因/證型和M,M表示該實體與多個實體組成關系不同的三元組;實體在三元組中的位置有3種:1、2和P,其中P表示該實體與多個實體組成三元組且處于不同的位置。此種標注策略有效緩解了實體重疊的問題。
本文采用BiLSTM-CRF模型進行中醫(yī)文本的序列標注任務,具體模型結構如圖5所示。
LSTM網絡是RNN的一種變種[18],引入了細胞狀態(tài)概念,通過決定哪些信息需要被記憶,哪些需要被遺忘來解決RNN梯度爆炸和梯度消失的問題。LSTM主要通過遺忘門、輸入門和輸出門來達到信息傳遞目的。具體計算公式如下:
ft=sigmoid(Wf[ht-1,xt]+bf)
(1)
it=sigmoid(Wi[ht-1,xt]+bi)
(2)
ot=sigmoid(Wo[ht-1,xt]+bo)
(5)
ht=ot*tanh(Ct)
(6)
BiLSTM使用softmax進行歸一化處理得到每個字對應每個標簽的概率,然而每個標簽并非獨立存在,它們之間存在一定的約束,例如“E-方劑/中藥-1”之前一定是“I-方劑/中藥-1”,“B-方劑/中藥-1”之后一定是“I-方劑/中藥-1”。而CRF可以更好地學習各標簽之間的依賴關系,進行全局優(yōu)化,使標注處理更加準確和高效。
Zheng等[16]默認一個實體只存在一個三元組中,關系抽取采取就近距離原則,這樣便損失了大量實體關系信息,而中醫(yī)文本中存在大量一個實體與多個實體構成關系三元組的情況。曹明宇等[17]在此基礎上進行改進,取得了較好的效果,但在匹配最近實體時設置了匹配方向而導致一些三元組丟失。
依據上述分析以及中醫(yī)文本的信息抽取需要,本文在采用就近原則抽取的基礎上,自定義了以下3條抽取規(guī)則:
規(guī)則1:對于命名實體識別任務,當實體標簽的三個部分信息均正確時進行抽取;對于聯合抽取任務,當組成三元組的實體1、實體2和關系類別均正確時進行抽取。
規(guī)則2:組成三元組的關系類別約束。關系類別相同,或者其中一個或者兩個實體的關系類別為M,即本文預定義的4種關系類型可以與其相同的關系類型匹配也可以與M匹配。
規(guī)則3:組成三元組的實體位置約束:實體位置分別為1和2,或者其中一個或者兩個實體的實體位置為P,即1可以與2匹配,也可以與P匹配,2和P同理。如圖2樣例所示,麻黃湯可與麻黃組成關系三元組(麻黃湯,方劑/中藥,麻黃),與桂枝組成關系三元組(麻黃湯,方劑/中藥,桂枝),與風寒表實證組成關系三元組(風寒表實證,證型/方劑,麻黃湯)。
本文使用的語料源于中醫(yī)古籍、中醫(yī)相關教材等整理的2 968個句子,均經人工按照本文的標注策略進行標注。該中醫(yī)語料共包含方劑、中藥、證型、癥狀和病因5類實體,方劑/中藥、證型/方劑、證型/癥狀、病因/證型和M共5類關系,其中M表示該實體與多個實體組成關系不同的三元組。具體的占比見表1,按照7 ∶3的比例劃分訓練集和測試集。
表1 各關系類型語料占比(%)
實驗采用的評價指標是準確率(Precision,P)、召回率(Recall,R)、F1值。對于命名實體識別任務,當實體標簽的三個部分信息均正確時認為其正確;對于聯合抽取任務,當組成三元組的實體1、實體2和關系類別均正確時認為其正確。具體三元組的P、R、F1的計算公式為:
式中:npredictright表示預測得到且正確三元組的數目;npredict表示預測得到三元組的數目;nright表示實際三元組的數目。
向量輸入由Word2vec訓練得到100維字向量和100維詞向量拼接而成200維字向量。模型訓練涉及的主要超參數:學習率設置為0.001;dropout設置為0.5;優(yōu)化器(optimizer)設置為Adam等。
3.3.1向量輸入對比實驗
為了驗證字詞向量拼接作為模型輸入的有效性,通過多組不同維度的單獨字向量作為輸入和字詞向量拼接作為輸入對比實驗進行驗證,實驗結果見表2。
表2 輸入對比實驗
其中char表示字向量,char_concat_word表示字詞向量拼接。由表2可知,字詞向量拼接作為輸入的效果均優(yōu)于單獨字向量作為輸入。本文最終目的是提取關系三元組,因此選用字向量100維和詞向量100維并聯拼接作為模型輸入。
如表2所示,與實體識別相比,三元組抽取具有更高的精確率,但其召回結果低于實體識別任務,這意味著存在預測的實體并不能構成實體對,只找到了Entity1而沒有找到相應的Entity2,或者Entity2而沒有找到相應的Entity1。因此,實體對具有比單個實體更高的精度率和更低的召回率。
3.3.2模型對比實驗
將本文方法與兩種流水線方法進行對比實驗,方法一:BiLSTM-CRF序列標注用于實體識別,在實體識別結果的基礎上使用SVM進行關系抽取。方法二:BiLSTM-CRF序列標注用于實體識別,在實體識別結果的基礎上利用LSTM進行關系抽取。這兩種方法所用語料均為中醫(yī)語料,序列標注時采用“實體中字的位置-實體類別”的標注策略。
由表3實驗結果可以得出,本文采用的聯合抽取方法較傳統(tǒng)的流水線方法F1值有較大的提升,較方法二(BiLSTM-CRF+LSTM)F1值提升4.49%,較方法一(BiLSTM-CRF+SVM)F1值提升接近10%,說明了本文方法的有效性。
表3 模型對比實驗(%)
3.3.3抽取規(guī)則對比實驗
采用本文提出的標注策略,字詞向量拼接作為輸入,通過BiLSTM-CRF模型進行序列標注,分別采用Zheng等[16]、曹明宇等[17]和本文的抽取規(guī)則進行三元組抽取對比實驗,如表4所示。
表4 抽取規(guī)則對比實驗(%)
根據表4可知,使用本文的抽取規(guī)則實驗效果整體更佳。前兩種方法P值偏高的原因如下:Zheng等[16]默認一個實體只存在一個三元組,且在三元組抽取時采用就近原則;曹明宇等[17]在標注策略中增加了實體類別的信息,且在三元組抽取時規(guī)定實體位置1只能向后匹配,實體位置2只能向前匹配。為了進一步對比這3種方法的抽取結果,表5舉例進行說明。
由表5可知:本文方法可以抽取到Zheng等[16]和曹明宇等[17]丟失的部分信息,改善了實體重疊的問題,但還是存在關系三元組損失的現象,仍需進一步改進。
本文使用改進的序列標注策略,將中醫(yī)的實體關系聯合抽取轉換成序列標注任務,詞向量與字符向量并聯拼接作為BiLSTM-CRF輸入,利用BiLSTM神經網絡強大的特征提取能力,以及CRF在序列標注上的突出優(yōu)勢,結合優(yōu)化的抽取規(guī)則完成中醫(yī)實體關系聯合抽取,不僅克服了傳統(tǒng)流水線方法的弊端,很大程度地緩解了實體重疊的問題,并在中醫(yī)語料上達到80.42%的F1值。
但是,本文的方法仍存在丟失三元組的現象。此外該方法依賴人工標注語料,而現實中存在大量無標簽數據,可以借助遠程監(jiān)督的方法來緩解該問題。探究每個字符在句中的位置信息是否對實體關系聯合抽取有促進作用是未來的工作。