包振山,宋秉彥,張文博,孫 超
(1. 北京工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院,北京 100124;2. 首都醫(yī)科大學(xué) 中醫(yī)藥學(xué)院,北京 100069)
中醫(yī)古籍上起戰(zhàn)國,下至明清,歷時(shí)兩千余年,詳細(xì)記載了古今眾多醫(yī)者的辨證論治經(jīng)驗(yàn)和臨床診療規(guī)律,是傳統(tǒng)醫(yī)學(xué)珍貴的知識(shí)財(cái)富。這些古籍中存在著的大量癥狀名、病機(jī)、治法、方藥等實(shí)體,它們之間的內(nèi)在聯(lián)系能夠在一定程度上反映中醫(yī)對疾病的診療機(jī)理。系統(tǒng)研究這些診療機(jī)理,進(jìn)而從中獲取可理解、可應(yīng)用的經(jīng)驗(yàn)知識(shí)來輔助醫(yī)生臨床決策,是一項(xiàng)具有實(shí)際應(yīng)用價(jià)值的研究任務(wù)。而對中醫(yī)古籍中的癥狀名等實(shí)體進(jìn)行識(shí)別可有效幫助挖掘中醫(yī)古籍文本,尋找其中蘊(yùn)含的關(guān)聯(lián)規(guī)則,為上述研究任務(wù)打下基礎(chǔ)。
面向中醫(yī)古籍文本進(jìn)行實(shí)體識(shí)別,屬于自然語言處理中的命名實(shí)體識(shí)別任務(wù)。該任務(wù)具有很強(qiáng)的領(lǐng)域性,在本文所涉的中醫(yī)古籍領(lǐng)域完成該任務(wù)存在以下難點(diǎn):
首先,目前中醫(yī)古籍?dāng)?shù)字化程度低[1],獲取可用的大量語料較為困難,而易獲取的中文通用語料如中文維基百科、人民日報(bào),古文語料如唐詩宋詞、史書等,其用詞斷句均與中醫(yī)古籍相差甚遠(yuǎn);且中醫(yī)古籍標(biāo)注語料更是稀少,實(shí)驗(yàn)可用數(shù)據(jù)極為有限。
其次,中醫(yī)古籍大多年代久遠(yuǎn),語言多為古漢語,與現(xiàn)代漢語存在較大差異,導(dǎo)致通用的漢語分詞工具Jieba[2]等對其處理效果較差,致使很難獲取較準(zhǔn)確的詞向量。
最后,不同年代、不同地域的不同醫(yī)家個(gè)體,其用詞習(xí)慣、行文結(jié)構(gòu)均有較大區(qū)別,同時(shí)中醫(yī)古籍中的醫(yī)學(xué)術(shù)語也在不斷發(fā)展變化,導(dǎo)致無法按照統(tǒng)一標(biāo)準(zhǔn)進(jìn)行識(shí)別。
故而目前對中醫(yī)古籍領(lǐng)域的實(shí)體識(shí)別研究工作較少,且往往僅針對一本書籍。如孟洪宇等[3]利用條件隨機(jī)場模型對《傷寒論》中術(shù)語進(jìn)行自動(dòng)識(shí)別,該文利用了詞性和詞邊界作為特征,但未充分利用詞典信息以及大量無標(biāo)注的語料信息。葉輝等[4]利用條件隨機(jī)場對《金匱要略》進(jìn)行癥狀藥物信息抽取,添加了中醫(yī)診斷鍵值對[5]這一特征,此方法在一定程度上加入了中醫(yī)先驗(yàn)知識(shí),但同時(shí)也大大增加了人工標(biāo)注的復(fù)雜度以及時(shí)間成本。李明浩等[6]基于LSTM-CRF對《全國名醫(yī)驗(yàn)案類方》進(jìn)行癥狀術(shù)語識(shí)別,由于語料和分詞工具的限制,該文僅從醫(yī)案語料入手,利用單字特征進(jìn)行識(shí)別。
針對以上分析,本文借鑒了Turian等[7]將詞向量作為無監(jiān)督語義特征融入經(jīng)典線性模型中的思想,提出了基于半監(jiān)督學(xué)習(xí)和規(guī)則相結(jié)合的識(shí)別框架。在構(gòu)建了中醫(yī)古籍語料庫的基礎(chǔ)上,以條件隨機(jī)場模型為基本框架,在引入詞、詞性、詞典等有監(jiān)督特征的同時(shí),也引入了通過中醫(yī)古籍預(yù)訓(xùn)練詞向量獲得的無監(jiān)督語義特征,并結(jié)合中醫(yī)古籍語言學(xué)特點(diǎn)添加基于規(guī)則的后處理,F(xiàn)值達(dá)到83.18%,有效提升了識(shí)別效果。
本文主要貢獻(xiàn)包括以下4個(gè)方面:
(1) 本文整理并校對了376本中醫(yī)古籍,構(gòu)建了一個(gè)針對中醫(yī)古籍領(lǐng)域的大規(guī)模未標(biāo)記語料庫,彌補(bǔ)了中醫(yī)古籍語料不足的缺陷。
(2) 為了提取無監(jiān)督語義特征以及為后續(xù)的中醫(yī)古籍?dāng)?shù)字化研究工作打下基礎(chǔ),本文結(jié)合開源工具Jiayan(1)https://github.com/jiaeyan/Jiayan完成對古籍語料的分詞,解決了漢語通用分詞工具對中醫(yī)古籍基本無效的問題;并利用Gensim的Word2Vec開源工具(2)https://radimrehurek.com/gensim/models/word2vec.html訓(xùn)練該分詞語料得到了針對中醫(yī)古籍的預(yù)訓(xùn)練詞向量。本文所做語料庫與預(yù)訓(xùn)練詞向量均已開源(3)https://github.com/Sporot/TCM_word2vec,可供中醫(yī)古籍領(lǐng)域研究者使用。
(3) 本文所提出的基于半監(jiān)督學(xué)習(xí)和規(guī)則相結(jié)合的識(shí)別框架,除了引入詞性、詞典等有監(jiān)督特征,還引入了基于相似度的無監(jiān)督語義特征,以及針對不同中醫(yī)古籍所特有的規(guī)則特點(diǎn),可以在減少人工選取特征及標(biāo)注成本的同時(shí),對不同時(shí)代、不同醫(yī)家的中醫(yī)古籍利用規(guī)則引入古籍先驗(yàn)知識(shí),有針對性地提升識(shí)別效果。
(4) 在標(biāo)注的《傷寒論》和《金匱要略》數(shù)據(jù)集上,本文首先從不同特征模板、特征組合角度進(jìn)行實(shí)驗(yàn)得到最優(yōu)半監(jiān)督模型,再將其與各類現(xiàn)有模型進(jìn)行對比分析,最后添加了基于規(guī)則的后處理,從而驗(yàn)證了本文所提半監(jiān)督學(xué)習(xí)和規(guī)則相結(jié)合的識(shí)別框架的有效性。
目前已有的主流實(shí)體識(shí)別方法可大致分為以下4類: ①基于規(guī)則學(xué)習(xí)。規(guī)則可以根據(jù)特定領(lǐng)域的句法結(jié)構(gòu)或詞典進(jìn)行構(gòu)造。如Alfred等[8]從馬來語的語法結(jié)構(gòu)出發(fā)提出了基于規(guī)則的馬來語實(shí)體識(shí)別;Hanisch等[9]利用預(yù)處理過的同義詞詞典,識(shí)別生物醫(yī)藥文本中的蛋白質(zhì)和基因名稱。此方法雖簡單、有效、速度快,但極度依賴于領(lǐng)域知識(shí)庫的構(gòu)建,且人工編寫規(guī)則費(fèi)時(shí)、費(fèi)力。 ②基于特征的有監(jiān)督學(xué)習(xí)。此方法針對標(biāo)注的數(shù)據(jù)集設(shè)計(jì)具有代表性的特征,再利用機(jī)器學(xué)習(xí)中的各類模型,如隱馬爾可夫模型[10]、決策樹[11]、支持向量機(jī)[12]等完成識(shí)別任務(wù)。王世昆等[13]在明清時(shí)期的半文言古醫(yī)案語料上,對比了條件隨機(jī)場模型與最大熵模型[14]、支持向量機(jī)的識(shí)別性能,指出了條件隨機(jī)場模型在該任務(wù)上的優(yōu)越性。與基于規(guī)則的方法相比,此方法對知識(shí)庫依賴小,自動(dòng)化程度高,但依賴于標(biāo)注語料庫中的各類有監(jiān)督特征,在耗費(fèi)大量人工選取標(biāo)注特征的同時(shí),也無法利用未標(biāo)注語料中的無監(jiān)督語義和結(jié)構(gòu)特征[15]。③基于無監(jiān)督學(xué)習(xí)。聚類是無監(jiān)督學(xué)習(xí)中最典型的方法,其通過衡量實(shí)體之間的語境相似性將實(shí)體劃入與其相似度最高的一類。如李廣一等[16]通過兩輪聚類將命名實(shí)體與知識(shí)庫實(shí)體定義鏈接,進(jìn)而識(shí)別知識(shí)庫中未出現(xiàn)的實(shí)體。④基于深度學(xué)習(xí)的方法。相比于前幾種方法,深度學(xué)習(xí)模型可有效地從原始數(shù)據(jù)中自動(dòng)學(xué)習(xí)有用的表示形式和潛在特征[17]。目前,BiLSTM-CRF仍是解決實(shí)體識(shí)別問題最常用的模型框架[18]。如Ma等[19]提出了融合BiLSTM、CNN和CRF的端到端序列標(biāo)注模型,在英文公共數(shù)據(jù)集CoNLL2003上取得了出色的識(shí)別效果。而Zhang等[20]通過編碼一系列字符以及所有與詞典匹配的潛在詞語提出了針對中文識(shí)別非常有效的Lattice LSTM模型。但目前多數(shù)識(shí)別性能較好的深度學(xué)習(xí)方法往往依賴于大量的高質(zhì)量標(biāo)注數(shù)據(jù)[21],針對標(biāo)注數(shù)據(jù)極為有限的情況,開展該研究還有一定局限性。
結(jié)合以上研究及現(xiàn)有條件,本文融合了無監(jiān)督學(xué)習(xí)與有監(jiān)督學(xué)習(xí),提出了以條件隨機(jī)場為框架的半監(jiān)督學(xué)習(xí)模型,并在之后加入針對特定古籍的規(guī)則處理,提高了實(shí)體識(shí)別的準(zhǔn)確率。
本文所提基于半監(jiān)督學(xué)習(xí)和規(guī)則相結(jié)合的識(shí)別框架,借助詞性、詞典等有監(jiān)督特征的同時(shí),融入了無監(jiān)督語義特征和規(guī)則進(jìn)行識(shí)別。本文研究的整體框架流程如圖1所示。
圖1 基于半監(jiān)督和規(guī)則相結(jié)合的識(shí)別框架流程
本文研究框架主要分為三個(gè)部分:
(1)中醫(yī)古籍語料庫及預(yù)訓(xùn)練詞向量的構(gòu)建。首先整理并校對了376本中醫(yī)古籍作為該領(lǐng)域可用的大規(guī)模語料庫,并基于Jiayan分詞結(jié)果利用Word2Vec開源工具訓(xùn)練獲得中醫(yī)古籍預(yù)訓(xùn)練向量。
(2)半監(jiān)督學(xué)習(xí)模型的構(gòu)建。在條件隨機(jī)場的框架下,首先引入詞典、詞性等有監(jiān)督特征;其次根據(jù)預(yù)訓(xùn)練詞向量獲取無監(jiān)督語義特征,得到半監(jiān)督學(xué)習(xí)模型。
(3)規(guī)則庫的構(gòu)建。對于不同中醫(yī)古籍間語言風(fēng)格、用詞習(xí)慣等差異,以及專業(yè)術(shù)語等特點(diǎn),構(gòu)建具有針對性的古籍規(guī)則庫,利用規(guī)則進(jìn)一步修正提升半監(jiān)督學(xué)習(xí)模型的識(shí)別結(jié)果。
目前,中醫(yī)古籍領(lǐng)域尚未有開源的大規(guī)模語料庫,而語料庫在計(jì)算機(jī)挖掘中醫(yī)古籍知識(shí)的過程中不可或缺。
故而,本文首先整理并校對了376本中醫(yī)古籍:從漢代至清朝,包含了孟凡紅等[22]總結(jié)的中醫(yī)古籍總目一級類目中基礎(chǔ)理論、傷寒金匱、診法、本草、臨證各科等12類醫(yī)書,構(gòu)建了相對完善的中醫(yī)古籍語料庫。具體書籍目錄可參見開源地址。
從無標(biāo)簽數(shù)據(jù)中學(xué)習(xí)詞向量表示形式,可有助于優(yōu)化多種NLP學(xué)習(xí)任務(wù),使其擁有更好的性能[23]。詞向量是通過訓(xùn)練神經(jīng)網(wǎng)絡(luò)語言模型得到的一種分布式表示特征[24],可將詞表示為一個(gè)連續(xù)的實(shí)數(shù)向量,該向量每個(gè)維度都可能代表著該詞的一些潛在特征。與將每個(gè)詞表示為僅有一位為1,其他位均為0的稀疏向量的獨(dú)熱編碼(one-hot)方式相比,詞向量方式保留了詞語豐富的語言規(guī)律性[25]。
3.2.1 分詞處理
訓(xùn)練詞向量時(shí)分詞的準(zhǔn)確性至關(guān)重要,而中醫(yī)古籍用詞句法與現(xiàn)代漢語有較大差異,在對其進(jìn)行分詞處理時(shí),Jieba等常用分詞工具效果不好,所以本文結(jié)合Jiayan完成針對古籍的分詞。
為了驗(yàn)證分詞的有效性,本文選取《金匱要略》方論卷上中下537句進(jìn)行人工分詞,然后對各分詞工具效果進(jìn)行了評估,評估指標(biāo)與本文6.2節(jié)中計(jì)算方法類似,結(jié)果如表1所示。
表1 分詞效果對比
根據(jù)評估結(jié)果可得,對于中醫(yī)古籍,Jiayan分詞效果遠(yuǎn)好于其他通用分詞工具。
3.2.2 詞向量訓(xùn)練
在上述分詞的基礎(chǔ)上,本文使用了Word2Vec獲取詞向量。選用了Mikolov等[26]提出的利用大規(guī)模數(shù)據(jù)計(jì)算詞語連續(xù)向量表示的CBOW模型架構(gòu)進(jìn)行訓(xùn)練。CBOW模型架構(gòu)如圖2所示。
圖2 CBOW模型架框
對于一個(gè)給定長度為T的文本序列,時(shí)間步t對應(yīng)的詞為ω(t),當(dāng)時(shí)間窗口大小為c時(shí),CBOW模型通過最大化給定上下文背景詞生成任一中心詞的概率,得到詞ω(t)對應(yīng)的m維詞向量(v1,v2,…,vm)。
為了驗(yàn)證領(lǐng)域語料的必要性,本文利用易獲取的中文維基百科訓(xùn)練詞向量進(jìn)行對比,最終訓(xùn)練結(jié)果如表2所示。
表2 詞向量訓(xùn)練結(jié)果
評價(jià)詞向量主要有兩種方法[27]:
第一種為語義相關(guān)性,通過比較詞向量間相似度大致評估其表示語義的準(zhǔn)確性。
本文選取了不同語料詞表中均包含的兩個(gè)樣例詞語,一個(gè)為中醫(yī)古籍常見癥狀“惡寒”,一個(gè)為現(xiàn)代漢語常見癥狀“嘔吐”;利用詞向量計(jì)算與樣例詞語空間上最相似的五個(gè)詞,從而對不同語料和不同維度下的詞向量進(jìn)行評價(jià),計(jì)算結(jié)果如表3所示。
分析表3的結(jié)果可得,中醫(yī)古籍語料詞向量所得相似詞在語義上更加接近,其效果明顯優(yōu)于維基百科。且如“厥逆”等中醫(yī)古籍特有的詞語,在通用語料中往往查無此詞。由此驗(yàn)證了使用領(lǐng)域語料的必要性。此外, 不同維度詞向量間語義表達(dá)性能也有區(qū)別,從此評價(jià)方法來看,100維向量表達(dá)語義能力最佳。
表3 詞向量語義評價(jià)
第二種評價(jià)方法是通過衡量詞向量對自然語言處理任務(wù)的提升效果,將在6.3.2節(jié)中進(jìn)行描述。
本文所提半監(jiān)督學(xué)習(xí)模型基于條件隨機(jī)場(Conditional Random Field, CRF),其由Lafferty等人[28]于2001年提出,是一種以給定輸入序列為條件,預(yù)測輸出序列的概率的無向圖模型。思想主要來源于最大熵模型,結(jié)合了隱馬爾可夫模型、最大熵模型特點(diǎn),克服了隱馬爾可夫模型假設(shè)條件的限制及最大熵模型標(biāo)記偏執(zhí)的缺陷,可有效解決序列標(biāo)注和文本切分問題,故而適用于命名實(shí)體識(shí)別研究。
對于中醫(yī)古籍命名實(shí)體識(shí)別,給定觀測序列X=(X1,X2,…,Xn)即古籍中的字,及對應(yīng)的標(biāo)記序列Y=(Y1,Y2,…,Yn)即實(shí)體類別標(biāo)簽,Y的條件概率分布P(Y|X)構(gòu)成條件隨機(jī)場,如式(1)所示。
(1)
其中,i=1,…,n,對于線性鏈條件隨機(jī)場,隨機(jī)變量Y取值為y的條件概率如式(2)所示。
其中,
fk(t,Yi,Yi-1,X)表示當(dāng)給定輸入序列中的位置i和輸入X,當(dāng)前位置的標(biāo)記Yi和前一個(gè)位置的標(biāo)記Yi-1時(shí)的第k個(gè)特征值;wk為特征權(quán)重;Z(X|為歸一化因子,在所有可能的輸出序列上進(jìn)行求和。條件隨機(jī)場模型利用前后向算法進(jìn)行不同序列位置的條件概率和特征期望,使用擬牛頓法等極大化似然估計(jì)求解模型參數(shù),利用Viterbi算法進(jìn)行動(dòng)態(tài)規(guī)劃解碼測試序列結(jié)果,得到相應(yīng)的實(shí)體類別標(biāo)簽。
基于條件隨機(jī)場的實(shí)體識(shí)別,選取合適的特征是關(guān)鍵。通過對中醫(yī)古籍文本及實(shí)體詞特點(diǎn)分析,本文從以下三個(gè)方面選取特征。
4.2.1 詞性特征
詞性作為語言獨(dú)立特征,可能有助于提升識(shí)別效果。中醫(yī)古籍中的古漢語最大特點(diǎn)是有詞類活用和兼類詞的現(xiàn)象。詞類活用是指臨時(shí)改變其基本語法功能去充當(dāng)其他詞類的一種特殊使用現(xiàn)象。兼類詞是指有些詞不止具有一種詞性,經(jīng)常具有兩種或兩種以上詞性。例如,“夫陽盛陰虛,汗之則愈,下之則死”當(dāng)中的“汗”字后面出現(xiàn)了賓語“之”,所以此處的“汗”字的詞性應(yīng)為名詞活用為動(dòng)詞,解釋為“發(fā)汗”。據(jù)此,本文在參考了信息處理用現(xiàn)代漢語詞類標(biāo)記規(guī)范的同時(shí),兼顧古漢語的詞性特點(diǎn),設(shè)立如表4所示的詞性標(biāo)記集。
表4 古籍詞性標(biāo)注集
4.2.2 詞典特征
中醫(yī)古籍中的命名實(shí)體本質(zhì)為名詞,而這些名詞出現(xiàn)的周圍常伴隨一些提示詞語,如“其氣上沖”“其人惡風(fēng)”“身灼熱者”中,“其”“其人”“者”均為提示詞語,提示詞語前后可能會(huì)出現(xiàn)相應(yīng)的古籍實(shí)體詞,故而整理并標(biāo)注提示詞作為詞典特征,對提升實(shí)體識(shí)別效果可能有重要作用。通過對中醫(yī)古籍語言特點(diǎn)的分析,可構(gòu)建提示詞詞表。標(biāo)注時(shí),判斷當(dāng)前詞是否在提示詞詞表中, 若在, 則標(biāo)為“Y”, 不在則標(biāo)為“N”。
4.2.3 無監(jiān)督語義特征
由于在語義上相似的詞語,其向量表示也是相近的。而中醫(yī)古籍中的同一類實(shí)體名之間,如癥狀名“惡寒”與“怯寒”,其語義本身具有很強(qiáng)的相關(guān)性。故而,本文考慮將通過實(shí)體詞典中詞與待識(shí)別詞語間的詞向量相似度作為無監(jiān)督語義特征引入條件隨機(jī)場,彌補(bǔ)統(tǒng)計(jì)模型無法表達(dá)語義的局限。
根據(jù)3.2節(jié)在獲得了詞對應(yīng)的詞向量后,可以計(jì)算詞向量間余弦相似度,獲取詞之間的相似性,從而得到相似度特征作為無監(jiān)督語義特征。例如,詞語w1的向量表示為A=(A1,A2,…,An),詞語w2的向量表示為B=(B1,B2,…,Bn),則w1和w2的余弦相似度計(jì)算如式(4)所示。
其中,CosSim∈[-1,1],CosSim值越大,則兩詞關(guān)聯(lián)度越高,即CoSim值越接近1,兩詞語義越相似,當(dāng)CoSim值為1時(shí),兩詞相同。
條件隨機(jī)場模型可以綜合上下文信息以及外部特征,而如何有效融合不同特征,達(dá)到最優(yōu)識(shí)別效果,特征模板的定義至關(guān)重要。本文采用CRF++開源工具(4)http://crfpp.sourceforge.net/構(gòu)建中醫(yī)古籍實(shí)體識(shí)別模型,利用定義的特征模板獲取特征并學(xué)習(xí)。本文的特征模板定義如表5所示。
表5 特征模板定義
表5中,w表示標(biāo)注語料中的第一列,也就是詞本身。窗口表示詞語間的跨度,如對于“五苓散主之”這句話,若是在按字分詞的情況下,將當(dāng)前詞設(shè)為”散“字且窗口大小t設(shè)為2時(shí),上下文t個(gè)窗口的詞則分別是”五“、”苓“和”主“、”之“。F表示除詞語本身之外的其他特征,也就是語料中除第一列之外的其他列,其中,Fij表示與當(dāng)前詞相差i個(gè)窗口的第j個(gè)特征對應(yīng)的值。
正如前文所分析的,不同中醫(yī)古籍間隨著年代的發(fā)展,地域的不同,存在用詞習(xí)慣、行文風(fēng)格、專業(yè)術(shù)語變遷等差異。為了有針對性地解決這些差異造成的識(shí)別錯(cuò)誤,本文提出了基于規(guī)則的后處理。建立資源庫和規(guī)則庫,從中醫(yī)古籍語言學(xué)與中醫(yī)專業(yè)角度修正識(shí)別結(jié)果,提升識(shí)別性能。
本文所用資源庫主要分為三個(gè)部分,每個(gè)部分的表示符號及具體內(nèi)容如下:
(1)實(shí)體名詞典(word_D):待識(shí)別的各類實(shí)體名詞典。
(2)實(shí)體用字庫(word_L):統(tǒng)計(jì)上述實(shí)體名詞典中出現(xiàn)漢字作為實(shí)體名首字、中間字和尾字的頻率,若頻率達(dá)到指定的閾值,則將該字加入知識(shí)庫,知識(shí)庫分為如下三類:①實(shí)體名首字庫(word_F);②實(shí)體名中間字庫(word_M);③實(shí)體名尾字庫(word_L);
(3)特征詞集合(word_T):結(jié)合中醫(yī)專業(yè)知識(shí)及古籍語言學(xué)特點(diǎn),整理了識(shí)別實(shí)體相關(guān)的特征詞集合,包括如下幾類:①實(shí)體名前向指示詞集合(word_B);②實(shí)體名后向指示詞集合(word_A);③實(shí)體名中間詞集合(word_I);④單字實(shí)體名集合(word_S);⑤表示并列關(guān)系的詞與標(biāo)點(diǎn)符號集合(word_P)。
本文通過整理根據(jù)中醫(yī)專業(yè)者在進(jìn)行人工標(biāo)注時(shí)所遵循的部分可描述規(guī)律,結(jié)合構(gòu)建的資源庫總結(jié)并設(shè)計(jì)識(shí)別規(guī)則,建立相應(yīng)的規(guī)則庫。所有規(guī)則只適用于實(shí)體名識(shí)別后處理階段,用以修正半監(jiān)督學(xué)習(xí)模型的識(shí)別結(jié)果。具體構(gòu)建實(shí)例如6.4節(jié)所示。
本文選用了東漢張仲景所著《傷寒論》和《金匱要略》作為標(biāo)注集,對該書中詞性、癥狀名實(shí)體進(jìn)行標(biāo)注。
根據(jù)所選書中語言特點(diǎn)整理出包含38個(gè)提示詞的提示詞詞典,進(jìn)行詞典標(biāo)注。結(jié)合5.1節(jié)介紹符號表示,整理出如表6所示的提示詞詞表。
表6 提示詞詞表
將本文所用標(biāo)注集獲取無監(jiān)督特征標(biāo)注時(shí),選用《中醫(yī)臨床常見癥狀術(shù)語規(guī)范》[29]整理出癥狀名詞典,該詞典包含癥狀名實(shí)體2 702個(gè)。計(jì)算待識(shí)別詞與該詞典中最大相似度作為該詞的相似度值。由于CRF特征均為離散值,故而需將連續(xù)的相似值映射到[0,9]的離散空間內(nèi)。而實(shí)驗(yàn)中,在分析了相似度結(jié)果后,為了更大限度地區(qū)分詞之間的相似性,在映射過程中,設(shè)計(jì)映射規(guī)則如表7所示。
表7 相似度映射規(guī)則
最終,處理過后的標(biāo)注數(shù)據(jù)共有17 081條,標(biāo)注集示例如表8所示。將標(biāo)注數(shù)據(jù)按照7∶3劃分為訓(xùn)練集和測試集。用此標(biāo)注集及整理詞典驗(yàn)證上文所提基于半監(jiān)督學(xué)習(xí)和規(guī)則相結(jié)合的方法對中醫(yī)古籍實(shí)體的識(shí)別性能。
表8 標(biāo)注集示例
續(xù)表
本文采用準(zhǔn)確率(Precision,P)、召回率(Recall,R)和F1值三個(gè)指標(biāo)來評估實(shí)驗(yàn)結(jié)果,其計(jì)算如式(5)~式(7)所示。
(5)
(6)
(7)
6.3.1 基準(zhǔn)識(shí)別性能
首先僅選原文而不添加以上定義的任何特征,并對4.3節(jié)特征模板中的上下文窗口大小t取不同值,驗(yàn)證識(shí)別效果。結(jié)果如表9所示。故而選取t=3時(shí)的識(shí)別效果作為基準(zhǔn)性能(Baseline)。
表9 基準(zhǔn)性能
6.3.2 單一特征對識(shí)別性能的影響
在原文的基礎(chǔ)上分別添加詞性、詞典及無監(jiān)督語義特征進(jìn)行實(shí)驗(yàn)。
在單獨(dú)添加無監(jiān)督語義特征時(shí),由于不同維度詞向量略有不同,故而在同一特征模板下,先對中醫(yī)古籍不同維度詞向量產(chǎn)生的不同相似度特征對識(shí)別性能影響進(jìn)行實(shí)驗(yàn)。結(jié)果如圖3所示,根據(jù)該圖結(jié)果,可得在維度為100時(shí),無監(jiān)督語義提升識(shí)別性能效果最佳。
圖3 詞向量維度影響
之后,通過調(diào)整特征模板定義,分別選取添加各類特征后的最優(yōu)識(shí)別結(jié)果如表10所示。
表10 單一特征識(shí)別最優(yōu)性能對比
分析表10結(jié)果可以看出,分別加入詞典、相似度和詞性特征,均對識(shí)別效果有所提升。其中,相似度特征F1值較詞典特征高了0.4%,由此可以證明無監(jiān)督語義特征可以在不需要人工進(jìn)行整理提取并標(biāo)注的情況下達(dá)到和部分有監(jiān)督特征一樣甚至更好的效果,由此證明其可降低人工選取特征的代價(jià)。而加入詞性特征提升效果是最明顯的,相比基線性能提升了5%,可見詞性特征與模型識(shí)別性能關(guān)聯(lián)度最高。
6.3.3 組合特征對識(shí)別性能的影響
基于添加單一特征的實(shí)驗(yàn),繼續(xù)對多個(gè)不同特征進(jìn)行組合,驗(yàn)證不同組合特征對識(shí)別性能的影響。由于已證明在單獨(dú)添加詞性時(shí)識(shí)別性能最好,所以在以添加詞性特征為基礎(chǔ)的情況下添加其他特征。測試不同特征模板定義,得到各類組合特征最優(yōu)識(shí)別性能,如表11所示。
表11 組合特征識(shí)別性能對比
續(xù)表
通過分析表11的結(jié)果可知,組合特征的識(shí)別性能均好于僅添加詞性特征的識(shí)別性能,而在詞性特征基礎(chǔ)上添加無監(jiān)督語義特征的識(shí)別結(jié)果較添加詞典特征識(shí)別結(jié)果高了0.7%,再次驗(yàn)證了無監(jiān)督語義特征可以替代部分有監(jiān)督特征,從而在減少人工標(biāo)注量的同時(shí)更快、更好地達(dá)到更優(yōu)的識(shí)別效果。
同時(shí),表中結(jié)果也證明,在融合三類特征時(shí),識(shí)別性能最佳,與Baseline相比F1提高了7.88%,證明了此半監(jiān)督學(xué)習(xí)模型的有效性。
6.3.4 與其他模型識(shí)別性能的對比
在命名實(shí)體識(shí)別任務(wù)中,統(tǒng)計(jì)模型如條件隨機(jī)場(CRF)、隱馬爾可夫模型(HMM),深度學(xué)習(xí)模型如BiLSTM、BiLSTM-CRF往往能得到不錯(cuò)的結(jié)果。故而,在本文標(biāo)注數(shù)據(jù)集上,將上述模型與本文所提半監(jiān)督模型進(jìn)行識(shí)別效果的對比, 從而驗(yàn)證本文模型的有效性。對比結(jié)果如表12中組合名稱1,8,9,10所示。
此外,本文所提半監(jiān)督學(xué)習(xí)模型從無監(jiān)督語義的相似度角度引入了《中醫(yī)臨床常見癥狀術(shù)語規(guī)范》的癥狀名詞典信息。為了更有效地對比模型,本文還選用了Ding等[30]提出的Multi-digraph模型對本文所標(biāo)注數(shù)據(jù)進(jìn)行識(shí)別,該模型結(jié)構(gòu)如圖4所示。
圖4 Multi-digraph模型結(jié)構(gòu)
表12 與其他模型對比結(jié)果
從對比結(jié)果可以看出,在本文所標(biāo)注的中醫(yī)古籍?dāng)?shù)據(jù)集上,由于HMM無法捕獲元素間長程相關(guān)性,該模型識(shí)別性能較差。而可能由于標(biāo)注數(shù)據(jù)規(guī)模的限制,深度學(xué)習(xí)模型BiLSTM、BiLSTM-CRF也未能達(dá)到較好的識(shí)別效果,深度學(xué)習(xí)模型Multi-digraph的識(shí)別結(jié)果好于未添加外部特征的CRF模型,但與同樣引入癥狀名詞典信息的組合名稱3模型相比,識(shí)別性能差一些;同時(shí)本文所得半監(jiān)督學(xué)習(xí)模型即組合名稱7的識(shí)別性能高于該深度模型7.52%。由此證明針對此中醫(yī)古籍?dāng)?shù)據(jù),本文所提半監(jiān)督學(xué)習(xí)模型更加有效,且訓(xùn)練周期短,效率更高。
6.3.5 規(guī)則后處理對識(shí)別性能的影響
結(jié)合第5節(jié)中的分析,添加規(guī)則可以有效針對不同中醫(yī)古籍特點(diǎn)提升識(shí)別性能。如《傷寒論》講求以脈測證,當(dāng)出現(xiàn)28脈中的脈象詞往往是癥狀實(shí)體。同時(shí),本文還對半監(jiān)督模型的識(shí)別錯(cuò)誤結(jié)果進(jìn)行分析:如“既O/吐O/且O/利S”中,吐與利均為癥狀名,而半監(jiān)督學(xué)習(xí)模型識(shí)別出“利”為癥狀,卻未識(shí)別出“吐”為癥狀,根據(jù)5.1節(jié)資源庫中的單字實(shí)體名和并列關(guān)系詞可將其修正為“既O/吐S/且O/利S”。將如上類似情況進(jìn)行結(jié)合總結(jié),最終設(shè)定相應(yīng)規(guī)則表達(dá)式如下:
設(shè)字串WqScWh,其中,Sc=C1C2…Ci…Cn表示候選癥狀名,Ci表示候選癥狀名中的字,Wq為候選癥狀名前一個(gè)詞,Wh為候選癥狀名后一個(gè)詞。
定義符號“∈”表示“屬于”,“?”表示“不屬于”,“||”表示“或”,“&&”表示“和”,“//”表示并列關(guān)系。
定義函數(shù)IsSymptom(S),表示將S識(shí)別為癥狀名;IsDel(S),表示刪除標(biāo)記為癥狀名的S。
結(jié)合5.1節(jié)中規(guī)則資源庫中表示符號,制定規(guī)則如下:
規(guī)則1(Wq∈wordB||Wh∈wordA)&&(SC∈wordS||SC∈wordD)→IsSymptom(Sc)
規(guī)則2(S)c//SZ)&&(SZ∈words||SZ∈wordD)→IsSymptom(Sc)
規(guī)則3(C1∈wordF&&Ci∈wordM&&Cn∈wordL)&&(Wq∈wordB||Wh∈wordA)→IsSymptom(Sc)
利用上述規(guī)則對識(shí)別結(jié)果進(jìn)行修正,結(jié)果如表13所示。
表13 基于規(guī)則的后處理實(shí)驗(yàn)結(jié)果
由實(shí)驗(yàn)結(jié)果可知,添加規(guī)則修正后,相比半監(jiān)督學(xué)習(xí)模型,識(shí)別效果F1提升了6.23%,相比最初的Baseline提升了14.11%,由此驗(yàn)證本文所提出的基于半監(jiān)督學(xué)習(xí)和規(guī)則相結(jié)合的中醫(yī)古籍實(shí)體識(shí)別方法的有效性。
本文針對中醫(yī)古籍實(shí)體名識(shí)別問題,首先構(gòu)建了相關(guān)的大規(guī)模未標(biāo)注數(shù)據(jù)集并訓(xùn)練了古籍詞向量,從中獲取了無監(jiān)督語義特征。之后采用了條件隨機(jī)場作為模型框架,選取詞性、詞典等標(biāo)注特征與無監(jiān)督語義特征一同進(jìn)行組合實(shí)驗(yàn),對比其識(shí)別性能,確定最優(yōu)的半監(jiān)督學(xué)習(xí)模型;并將此模型與深度學(xué)習(xí)模型進(jìn)行了對比,證明了此半監(jiān)督模型的有效性。
最后,在半監(jiān)督學(xué)習(xí)模型結(jié)果上加入基于規(guī)則的后處理,結(jié)合了古籍先驗(yàn)知識(shí)有效提升了實(shí)體名的識(shí)別效果,并通過實(shí)驗(yàn)驗(yàn)證了本文所提出的基于半監(jiān)督學(xué)習(xí)和規(guī)則相結(jié)合的方法對中醫(yī)古籍此類自然語言處理程度較低的領(lǐng)域的有效性。
未來工作中,我們將優(yōu)化詞向量獲取方式,進(jìn)一步探索無監(jiān)督算法對此領(lǐng)域的挖掘。