文 / 韓旭,孫亞偉,于寧,石宇
摘 要
摘 要:本文基于文本信息抽取的研究現(xiàn)狀,針對中醫(yī)古籍文本的特點,介紹了中醫(yī)古籍文本信息抽取的研究內(nèi)容、相關(guān)技術(shù)和技術(shù)路線,并分析了中醫(yī)古籍文本信息抽取所面臨的挑戰(zhàn)。
關(guān)鍵字
中醫(yī)古籍;文言文文本;信息抽取
0 引言
中醫(yī)學是中國傳統(tǒng)科學中沿用至今的富有中國文化特色的醫(yī)學,它具有系統(tǒng)的理論體系,獨特的診療手法和顯著的臨床療效等特征,在中華民族歷史長河中,始終擔負著促進健康發(fā)展的重要角色。在與2020年初爆發(fā)的新型冠狀病毒疫情斗爭的過程中,中醫(yī)藥通過臨床運用,表現(xiàn)出良好的療效,發(fā)揮了一定的防治作用。
傳統(tǒng)的中醫(yī)知識大多以古籍文言文的方式記載,后人在學習和理解過程中存在一定的難度。針對中醫(yī)古籍文言文的信息抽取能降低學習成本,并且能有效地推廣中醫(yī)領(lǐng)域相關(guān)知識以促進其臨床診療和應用。
1 中醫(yī)古籍文言文信息抽取的研究內(nèi)容
文本的信息抽取主要有實體抽取、實體關(guān)系抽取和事件抽取三種任務。對于中醫(yī)古籍而言,信息抽取的任務更多關(guān)注實體抽取和關(guān)系抽取。相對于現(xiàn)代白話文,文言文寫作方式簡練,對應語料相對較少,因此對文言文古籍進行自動化信息抽取的難度更大。
?
1.1 中醫(yī)古籍的實體抽取
?實體抽取也稱為命名實體識別(Named Entity Recognition,NER),主要是將非結(jié)構(gòu)化文本中的人名、地名、機構(gòu)名和具有特定意義的實體抽取出來并加以歸類,組織成半結(jié)構(gòu)化或結(jié)構(gòu)化的信息。實體識別是文本處理的基礎(chǔ),對文本后續(xù)的分析和理解起著至關(guān)重要作用。
?
中醫(yī)古籍文本中蘊含了豐富的理論知識及臨床經(jīng)驗,通過信息抽取技術(shù)的介入,能大量、準確、自動化地提出所需要的信息。利用命名實體識別技術(shù),挖掘中醫(yī)領(lǐng)域?qū)嶓w具有一定潛在的應用價值。例如,中醫(yī)領(lǐng)域的研究人員可以借助此技術(shù)識別文本中的中藥名詞和方劑名詞,以加快中醫(yī)藥知識庫的檢索速度及準確率。
?
中醫(yī)術(shù)語的自動識別指從中醫(yī)文獻中識別出癥狀、病名、脈象、方劑、中藥材、功效等術(shù)語實體,以結(jié)構(gòu)化的形式存入關(guān)系數(shù)據(jù)庫中,供進一步查詢或分析使用。例如,《中華藥典》中有一段關(guān)于“生化湯”的描述,我們對其進行實體抽取,得到分別屬于“方劑”“中藥材”和“功效”這三類中的7個實體,如圖1所示。
圖1 從中醫(yī)古籍文本中抽取實體信息展示
1.2 中醫(yī)古籍的關(guān)系抽取
?關(guān)系抽取是從一段文本中提取出發(fā)生在兩個實體之間語義關(guān)系的任務。通過關(guān)注兩個實體間的語義關(guān)系,最后得到一個“主體-關(guān)系-客體”的三元組,其中“主體”和“客體”都是實體在關(guān)系中的角色,在三元組中則指代在這一關(guān)系中對應角色的實體。
?
依然以《中華藥典》中對“生化湯”的描述為例。根據(jù)文本內(nèi)容可知,在生化湯這一方劑中,當歸為君,川芎、桃仁為臣,黑姜為佐,灸甘草為使。那么可以得到的三元組有“生化湯 - 君 - 當歸”“生化湯-臣-川芎”“生化湯-臣-桃仁”“生化湯-佐-黑姜”和“生化湯-使-灸甘草”;同時還可以知道生化湯的功效為活血化瘀,那么又可以得到三元組“生化湯-功效-活血化瘀”。關(guān)系抽取后得到的實體關(guān)系,如圖2所示。
圖2 從中醫(yī)古籍中抽取實體關(guān)系結(jié)果展示
2 信息抽取的相關(guān)技術(shù)
信息抽取是指從自然語言文本中 , 抽取出特定的事件或事實信息,從而將海量文本內(nèi)容自動分類、提取和重構(gòu)。下面主要介紹信息抽取過程中涉及到的相關(guān)理論與技術(shù)。
?
2.1 詞向量與預訓練語言模型詞向量是在自然語言處理領(lǐng)域中重要的基礎(chǔ),構(gòu)建有效的詞向量有利于對情感、句法、語義等方向進行深入研究分析。詞向量的構(gòu)成有很多方法,如OneHot與詞袋模型、預訓練詞向量和預訓練語言模型。
?
2.1.1 One-Hot 與詞袋模型
?One-Hot編碼是一種非常原始的文本編碼方法。其主要思想是,設(shè)語料庫的詞典大小為n,那么設(shè)立一個n維的向量,假如某個詞在詞典中的位置為k,這個向量的第k維置為1,其他維全部置0。這種方法只是將文本的字或詞進行最簡單的向量化,而沒有考慮詞序及其語義特征。
?
詞袋模型則是針對句子或者篇章的編碼模型。在上述提到的語料庫中,假如一句話中包含三個詞,這三個詞在詞典中的位置分別為i、j、k,那么設(shè)立一個n維的向量,這個向量的第i、j、k分別設(shè)為1,其他維設(shè)為0。這種方法雖然實現(xiàn)了對文本句子或篇章的編碼,但是沒有考慮句子內(nèi)部的上下文特征。
?
總之,上述兩種方法只能實現(xiàn)最基本的文本向量表示功能,沒有考慮文本的語義信息。
?
2.1.2 預訓練詞向量
?為了解決One-Hot編碼向量過于稀疏,同時又不包含語義特征的特點,研究者開始用維度較小的稠密向量來對字或詞進行表示?,F(xiàn)有的主流詞向量表示模型有word2vec、fastText、GloVe等。這類方法一般都是利用大量語料訓練出針對詞表中每個詞的詞向量表示,在后續(xù)任務直接使用。
?
這種方法雖然使訓練出的詞向量具有一定語義特征,但是難以解決一詞多義現(xiàn)象。比如詞匯“小米”,它既可以代表一家公司的名稱,又可以代表一種“五谷”中的糧食名稱。然而,在上述的這些方法產(chǎn)生的詞向量中,“小米”都只有一種向量表示,無法從這樣的預訓練詞向量中分辨文本中出現(xiàn)的“小米”該屬于哪種解釋。
?
2.1.3 預訓練語言模型
?BERT(Bidirectional Encoder Representations from Transformers)是由Google公司于2018年提出的一種預訓練語言模型。它使用Google公司 在“Attention is all you need”一文中提出的Transformer結(jié)構(gòu)作為網(wǎng)絡結(jié)構(gòu)。在實際應用中,將句子輸入BERT后,可以得到對應的編碼結(jié)果,該結(jié)果可用于后續(xù)具體任務轉(zhuǎn)化。鑒于 BERT 強大的性能,各種預訓練語言模型如雨后春筍般地涌現(xiàn)出來。例如XL-Net、RoBERTa、BERT-wwm、ALBERT、ERNIE等,均為基于BERT的思想衍生出來的預訓練語言模型。北京理工大學的閻覃等基于BERT-wwm,利用大量的古籍文本訓練出了專門用于面向古漢語文本的預訓練模型GuwenBERT,該模型在2020年“古聯(lián)杯”古籍文獻命名實體識別評測大賽中取得了優(yōu)異成績。
?
2.2 雙向長短時記憶網(wǎng)絡
?長短時記憶網(wǎng)絡(Long Short-term Memory Network,LSTM) 是繼循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network,RNN)之后具有里程碑意義的神經(jīng)網(wǎng)絡。它的主要目的是解決序列訓練過程中的梯度消失問題和梯度爆炸問題。LSTM內(nèi)部通過門控狀態(tài)來控制傳輸狀態(tài),存儲重要信息,丟棄不重要信息,因而它在序列相關(guān)問題中,與RNN相比有著更好性能。LSTM的網(wǎng)絡結(jié)構(gòu),如圖3所示。
?
圖3 LSTM的網(wǎng)絡結(jié)構(gòu)圖
通常情況下,句子中字或詞的具體含義除了其本身含義外,還要受到上下文影響。然而,單向LSTM只能將上文的信息傳遞給下文,沒有來自下文的內(nèi)容反饋,這顯然是不夠的。因而,研究者們通過采用雙向長短時記憶網(wǎng)絡(Bi-directional Long Short-Term Memory Network,BiLSTM)來同時計算上下文對一個詞的影響。
?
2.3 條件隨機場
?條件隨機場 (Conditional Random Field,CRF) 是一種統(tǒng)計建模方法。它結(jié)合了最大熵模型(Maximum Entropy Markov Model,MEMM)和隱馬爾可夫模型(Hidden Markov Model,HMM)的優(yōu)點,形成了無向圖模型,并可以考慮上下文信息,如圖4所示。在一些需要預測樣本之間依賴關(guān)系的應用場景中,CRF是一種很好的方法。因而,CRF被廣泛應用于文本的序列標注任務中。
?
圖4 條件隨機場結(jié)構(gòu)示意圖
2.4 注意力機制
?注意力機制(Attention Mechanism)能實現(xiàn)信息處理資源的高效分配,是專家仿照人類注意力機制而提出的一種模型。例如,當一種場景進入人類視野時,人往往會先關(guān)注場景中的重點,如動態(tài)的點或者突兀的顏色等,其余的靜態(tài)場景會暫行性忽略,在文本處理的場景中亦是如此。當程序處理到句子某個組分時,會著重考慮與該組分比較相關(guān)的其他組分,而暫時性忽略與其相關(guān)性較低甚至不相關(guān)的組分。
?
注意力機制最先被應用于圖像處理領(lǐng)域,并取得了重要突破。近些年,越來越多的學者將其應 用 于機器翻譯領(lǐng)域,同樣取得了很好效果。Google公司在“Attention is all you need”中提出的transformer模型更是摒棄了傳統(tǒng)的CNN、RNN方法,完全采用注意力機制對模型進行訓練,使算法準確率有了大幅提升。此后,大量基于注意力機制的自然語言處理模型開始涌現(xiàn),實驗結(jié)果表明注意力機制可以有效提高關(guān)系抽取效果。
3 中醫(yī)古籍文言文信息抽取的技術(shù)路線
目前,文本信息抽取方法可以分為流水線抽取和聯(lián)合抽取。流水線抽取將任務分為兩步:先進行實體抽?。蝗缓蠡趯嶓w抽取的結(jié)果進行關(guān)系抽取。聯(lián)合抽取將任務看作一個整體,采用端到端的思想輸入文本,輸出“實體-關(guān)系-實體”三元組。
?
3.1 流水線抽取方法3.1.1 文本的實體抽取模型
?一般情況下,我們將實體抽取任務看作一個序列標注的任務。而當前在文本的序列標注領(lǐng)域,通常采用BERT-BiLSTM-CRF這樣的網(wǎng)絡結(jié)構(gòu)。大量研究證明,這種網(wǎng)絡結(jié)構(gòu)與其他的模型相比能取得更好的抽取效果。在BERT-BiLSTM-CRF這樣的網(wǎng)絡結(jié)構(gòu)中,各組件分別起到下述作用。
?
(1)BERT作為編碼器(Encoder)。它能把原始文本中的字或詞,以及標點符號編碼成含有豐富而又相對更加準確的語義信息向量。BERT也能根據(jù)文本上下文信息,有效解決一詞多義現(xiàn)象。
?
(2)BiLSTM能進一步學習文本序列中的上下文信息。具體而言,LSTM能有效改善文本序列中的“長期依賴”問題,而雙向的結(jié)構(gòu)使其能同時學習上下文信息,因而在序列標注任務中能取得更好效果。
?
(3)CRF可以有效學習序列標簽之間的依賴關(guān)系。在文本實體抽取任務中,存在多種標注方案,以最基礎(chǔ)的BIO方案為例。在BIO方案中,B表示實體的開頭,I表示實體中除了開頭之外其他組分,O則表示句子中不屬于任意實體部分。在這一標注方案中,相鄰的兩個字或詞之間可能會產(chǎn)生BB、II、OO、BI、IB、BO、IO和OI幾種標注結(jié)果。顯然,OI這種標注結(jié)果是錯誤的。CRF能有效避免這種不合理標注結(jié)果的出現(xiàn)。
?
中醫(yī)古籍文本的實體抽取任務本質(zhì)上與普通文本的實體抽取任務相似,關(guān)鍵是需要選擇一種基于文言文的文本預訓練模型,如上文提到的GuwenBERT。同時,也需要針對具體的語料設(shè)計相應的序列標注方案。比如,上文提到的有關(guān)“生化湯”的文本實例,其中包含的實體類型有“方劑”“中藥材”和“功效”,我們可以將這三種實體類別分別用FJ、ZYC 和 GX來表示,那么序列標注結(jié)果就可能有B-FJ、I-FJ、B-ZYC、I-ZYC、B-GX、I-GX和O;或者可以針對每類實體構(gòu)建一個序列標注的分類器來進行訓練。
?
3.1.2 實體關(guān)系分類模型
?在流水線抽取方法的實體關(guān)系分類模型中,獲取到實體之后,針對每兩個實體進行關(guān)系分類。實體關(guān)系分類一般屬于多分類任務,即有一個以上的實體關(guān)系類別。上文舉的“生化湯”例子中包含了“君”“臣”“使”“佐”和“功效”這五種關(guān)系類別;同時,像“黑姜”和“活血化瘀”這兩個實體之間不具備上述提到的幾種關(guān)系,它們之間的關(guān)系可以定義為“空”或者“無”。那么,候選實體間關(guān)系類別一共有六種,因此需要構(gòu)建一個六分類器。
?
然而,這種分類方法的數(shù)據(jù)是嚴重不平衡的。同時,關(guān)系分類結(jié)果也嚴重依賴實體抽取結(jié)果,如果實體抽取出現(xiàn)錯誤,那么錯誤必然也會累積到關(guān)系分類中,這會進一步降低模型效果。
?
3.2 聯(lián)合抽取方法
?由于文本信息抽取的流水線方法存在一定缺陷,近年來大量的研究學者嘗試將實體抽取與關(guān)系抽取任務進行聯(lián)合建模。研究表明,這種方法相對于流水線抽取方法能取得更優(yōu)效果。
?
2016年,Miwa等提出一種端到端模型,其使用了LSTM與tree-LSTM結(jié)構(gòu),基于詞序和依存樹結(jié)構(gòu)信息來同時抽取實體及其關(guān)系。該模型被認為是實體與關(guān)系聯(lián)合抽取的開山之作,后續(xù)很多研究都會與其進行比較。2017年,Zheng等將實體關(guān)系聯(lián)合抽取看作一個序列標注任務,并且取得了非常好的效果。在之前聯(lián)合抽取模型中,雖然通過共享參數(shù)等方法將兩個任務整合到同一個模型中,但這兩個任務實際上仍然是兩個分離過程。Zheng等設(shè)計了一種新穎的同時包含實體信息與實體間關(guān)系信息的標注方案,很好地將兩個任務融合在一起。在這種標注方案中,增加了實體間關(guān)系角色。以上述“生化湯”的文本來舉例。如“生化湯”與“當歸”這兩個實體存在的關(guān)系為“生化湯-君-當歸”,那么“生化湯”的標注結(jié)果就是“B-JUN-0 I-JUN-0 I-JUN-0”“當歸” , 的標注結(jié)果是“B-Jun-1 I-Jun-1”。其中,Jun表示實體關(guān)系類別為“君”,0和1則表示這兩個實體在這個關(guān)系中的角色,即它們在三元組中的位置。這種方法也存在一個很明顯缺陷,就是沒有考慮實體關(guān)系重疊問題。例如,在描述“生化湯”文本中,“生化湯”這一實體與其他六個實體都存在關(guān)系,但是這種標注方案只能標注出它與其中一種實體的關(guān)系。
?
2018年,Bekoulis等將實體與關(guān)系抽取看作是一個“多頭選擇”問題,來解決之前聯(lián)合抽取模型中存在的關(guān)系重疊問題。該方法不再將關(guān)系抽取當作一個關(guān)系之間互斥的多分類任務,而是看作每個關(guān)系之間相互獨立的二分類任務,從而判斷某一實體是否與其他實體存在多種關(guān)系。后續(xù)有很多研究人員在這一領(lǐng)域做了大量創(chuàng)新性工作。比如,Li等將實體關(guān)系聯(lián)合抽取任務作為一個多輪問答問題來處理,即每種實體和每種關(guān)系都用一個問答模板來進行刻畫,根據(jù)這些模板化問題來從上下文中抽取實體和關(guān)系。例如,下面給出一個簡單的問答模板。
?
問:文本中提到了哪種方劑?
?答:生化湯
?
?問:生化湯的“君”是什么中藥材?
?答:當歸
?
?問:生化湯的功效是什么?
?答:活血化瘀
?
此外,研究學者從實際問題出發(fā),探索出許多新穎標注方案,嘗試解決實體和關(guān)系抽取中的關(guān)系重疊等問題。
4 中醫(yī)古籍文言文信息抽取所面臨的挑戰(zhàn)
現(xiàn)如今,雖然文本信息抽取領(lǐng)域研究如火如荼,但是針對中醫(yī)古籍研究和相關(guān)的資源相對較少。文言文和白話文之間存在較大差距,同時數(shù)據(jù)集等相關(guān)公開資源短缺也在一定程度上限制了這一研究領(lǐng)域發(fā)展。目前在面向中醫(yī)古籍的文言文信息抽取任務中,主要存在以下問題。
?
4.1 源語言語義理解不足
?古代文言文是一種意合的語言,其篇章的省略、指代稱謂等語言現(xiàn)象較為復雜;特別是由于古籍橫跨多個中國朝代,不同朝代的古籍之間也存在不同的語言表述,甚至發(fā)生謬誤。如臨床常用的穴位“三陰交”,在唐代以前的文獻中是足內(nèi)踝上三寸的“足太陰交”穴位置,是對《靈樞·經(jīng)脈》謂足厥陰經(jīng)脈“上踝八寸,交出太陰之后”的誤判,源流可靠的“三陰交”穴在宋初戛然而止;而從宋代至今,高頻度使用的卻是被誤解或異化的“三陰交”穴(朱兵《系統(tǒng)針灸學》)。此外,傳統(tǒng)模型在識別和利用各個概念實體之間蘊含的語義關(guān)系上能力較差,這些都導致在信息提取過程中對源語言的語義理解出現(xiàn)偏差,進一步導致臨床運用上的錯誤。
?
同時,像“癥狀”“功效”這類實體或短語,表達起來非常靈活,同樣的意思在文言文語境中存在多種不同表達方式,這也給中醫(yī)古籍的信息抽取帶來了挑戰(zhàn)。
?
4.2 領(lǐng)域內(nèi)標注信息質(zhì)量及數(shù)量不足
?雖然同為漢語,但文言文和白話文在詞語表述、語法構(gòu)成等方面均不相同,是漢語言跨時空、跨語境的表示方式,因此在數(shù)據(jù)累計上,并無過多可以復用的內(nèi)容。此外,中醫(yī)古籍領(lǐng)域作為具備獨特語言學特性的書面文獻,其行文中蘊含了較多概念實體,各實體間的關(guān)系體現(xiàn)出更為復雜的特征,因此增加了信息抽取難度。穴位名稱的時代變遷即為其中一例,現(xiàn)存最早的敦煌卷子穴位圖殘存的69個穴位中,與傳世文獻同名同位的穴位僅有11個,異名同位的穴位有19個,其他均為同名異位(14個)、異名異位(11個)和存疑待考的穴位。即使在現(xiàn)代教材中,也會出現(xiàn)同一穴位不同名稱,如“絕骨”又名“懸鐘”,而在癥狀描述方面則存在更多差異。基于以上問題,若采用眾包方式對數(shù)據(jù)進行標注,會出現(xiàn)由于對中醫(yī)領(lǐng)域知識的認知不足,導致標注數(shù)據(jù)質(zhì)量參差不齊的情況。目前能熟練并理解中醫(yī)古籍材料的研究員較為稀缺,因此針對文言文這種特殊漢語表述,缺少一定量標注數(shù)據(jù),給模型訓練帶來了很大困難。
5 結(jié)束語
本文介紹了中醫(yī)古籍信息抽取的主要任務和挑戰(zhàn),同時闡述了中醫(yī)古籍信息抽取中實體抽取和實體關(guān)系抽取這兩項主要任務的基本情況及發(fā)展現(xiàn)狀。
?
總而言之,面向中醫(yī)古籍的信息抽取是文本信息抽取的一部分。中醫(yī)古籍信息抽取技術(shù)的發(fā)展在很大程度上也依托于普通文本信息抽取技術(shù)發(fā)展。但是基于中醫(yī)古籍文本的特殊性,需要開展大量針對性工作,包括訓練數(shù)據(jù)的獲取,以及算法的創(chuàng)新等。相信隨著這一領(lǐng)域研究的深入,這項任務也會得到更進一步的發(fā)展。
(參考文獻略)
選自《中國人工智能學會通訊》
2021年第11卷第9期
智慧醫(yī)療專輯