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