王亞文 王培 盧苗苗
摘要:中醫(yī)領(lǐng)域知識(shí)主要是以文本的形式存在,具有無(wú)規(guī)律的語(yǔ)言特性,中醫(yī)知識(shí)的有效挖掘?qū)Τ浞掷梦谋局刑N(yùn)藏的經(jīng)驗(yàn)知識(shí)具有重要作用,信息抽取任務(wù)是中醫(yī)知識(shí)管理的重要子任務(wù),而關(guān)系抽取又是信息抽取任務(wù)中的重要環(huán)節(jié)。針對(duì)單粒度信息關(guān)系抽取方法中存在的句意傳遞錯(cuò)誤和文本語(yǔ)義丟失的問(wèn)題,提出將句子中的多粒度信息應(yīng)用于中醫(yī)文本關(guān)系抽取任務(wù),構(gòu)建多粒度信息抽取模型,將詞語(yǔ)級(jí)信息整合到字符序列中,多種粒度的文本信息可以為模型提供更多的知識(shí)引導(dǎo),更全面的挖掘語(yǔ)義特征。實(shí)驗(yàn)結(jié)果證明,此方法能夠更加精確的抽取中醫(yī)文本關(guān)系,使模型具有更好的魯棒性,基本不受噪聲的影響。
關(guān)鍵詞:多粒度信息;關(guān)系抽取;深度學(xué)習(xí);中醫(yī)文本
中圖分類(lèi)號(hào):TP3? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)27-0015-02
1引言
中醫(yī)知識(shí)包含了中華民族千百年來(lái)在和疾病斗爭(zhēng)中總結(jié)的豐富診療經(jīng)驗(yàn),在長(zhǎng)期發(fā)展的過(guò)程中也形成了一種獨(dú)特的診療體系,留下了大量對(duì)現(xiàn)代疾病診斷具有重要指導(dǎo)價(jià)值的文獻(xiàn)資料。然而,中醫(yī)文本信息尚未得到有效利用,關(guān)系抽取[1]技術(shù)是有效利用中醫(yī)文本信息的關(guān)鍵技術(shù)之一,目的是提取中醫(yī)文本實(shí)體對(duì)之間的語(yǔ)義關(guān)系[2]。例如:“若兼有氣虛者,身倦乏力,少氣自汗宜加黃芪,并加以重用,以補(bǔ)氣行血”,這句中的“黃芪”和“氣虛”是“治療”的關(guān)系。
隨著深度學(xué)習(xí)[3]的不斷發(fā)展,以其自動(dòng)提取特征的優(yōu)勢(shì)被更多地應(yīng)用在關(guān)系抽取任務(wù)中[4]。目前大多數(shù)的關(guān)系抽取模型是基于字粒度或者基于詞粒度的單一粒度進(jìn)行抽取?;谧址年P(guān)系抽取將每個(gè)輸入語(yǔ)句視為一個(gè)字符序列。這種方法不能充分利用詞語(yǔ)級(jí)信息,捕獲的句子特征較少,字符、語(yǔ)法和語(yǔ)義之間的關(guān)系較為松散,無(wú)法完整的表達(dá)出句子語(yǔ)義,比如“羌活”這個(gè)詞如果拆成字粒度就成了“羌”和“活”,這兩個(gè)字的單獨(dú)含義明顯與它們組合起來(lái)的詞的含義大相徑庭。所以利用字粒度信息捕獲的句子特征比較少,存在“文本語(yǔ)義丟失”的問(wèn)題,完全依賴(lài)字符進(jìn)行關(guān)系抽取效果不佳?;谠~粒度的關(guān)系抽取模型,首先要進(jìn)行分詞,然后推導(dǎo)出單詞序列,再將每個(gè)詞語(yǔ)表示為詞向量,輸入到神經(jīng)網(wǎng)絡(luò)模型中,利用詞粒度信息容易引入詞語(yǔ)分割錯(cuò)誤帶來(lái)的“句意錯(cuò)誤傳播”問(wèn)題。例如給定中醫(yī)句子:“酒黃疸,心中懊或熱甚而痛,梔子大黃湯主之,蓋為實(shí)熱之邪立法也”。句中黃疸和大黃是治療關(guān)系,但是經(jīng)過(guò)分詞操作之后“梔子大黃湯主之”被分為“梔子”“大”“黃湯”和“主之”,分完詞之后沒(méi)有得到“大黃”這個(gè)詞。
因此,基于單粒度信息的抽取方法會(huì)存在“文本語(yǔ)義丟失”和“句意傳遞錯(cuò)誤”的問(wèn)題。本文結(jié)合字符粒度信息與詞粒度信息的優(yōu)點(diǎn),使用多粒度信息[5]對(duì)中醫(yī)文本進(jìn)行特征學(xué)習(xí),既利用了字粒度模型參數(shù)少和不依賴(lài)分詞算法的優(yōu)點(diǎn),解決句意傳遞錯(cuò)誤的問(wèn)題,同時(shí)利用了詞語(yǔ)中包含的詞法、句法和語(yǔ)義等信息,捕獲更多的文本語(yǔ)義特征,解決文本語(yǔ)義丟失的問(wèn)題。兩種粒度方法互為補(bǔ)充,提升了中醫(yī)文本關(guān)系抽取的效率。
2 多粒度關(guān)系抽取模型
對(duì)于基于字符級(jí)信息和詞語(yǔ)級(jí)信息訓(xùn)練的模型存在文本實(shí)體分割錯(cuò)誤問(wèn)題,不能夠充分利用句子的語(yǔ)義特征,限制了模型挖掘深層語(yǔ)義特征的能力。本文利用多種文本粒度的,為模型提供更多的知識(shí)引導(dǎo),從而獲取句子更充分地語(yǔ)義信息,模型具有更好的魯棒性,基本不受噪聲的影響。多粒度關(guān)系抽取模型是在基于字符的雙向長(zhǎng)短期記憶網(wǎng)絡(luò)[6](Bidirectional long short-term memory network,Bi-LSTM)的結(jié)構(gòu)基礎(chǔ)上增加了詞粒度信息流,利用門(mén)結(jié)構(gòu)控制信息的嵌入。模型結(jié)構(gòu)如圖1所示。
基于多粒度信息的中醫(yī)文本關(guān)系抽取模型分為四層,分別是嵌入層、編碼層、注意力層和分類(lèi)層。
2.1嵌入層
由于神經(jīng)網(wǎng)絡(luò)的輸入是數(shù)值類(lèi)型數(shù)據(jù),所以在對(duì)文本編碼之前需要將中醫(yī)文本數(shù)據(jù)轉(zhuǎn)換為數(shù)值數(shù)據(jù)表示。本文的多粒度信息包括字粒度信息和詞粒度信息,同時(shí)利用位置信息,因此在嵌入層需要將字符、詞語(yǔ)和相對(duì)位置信息進(jìn)行向量化表示。
(1)字詞嵌入
在通過(guò)神經(jīng)網(wǎng)絡(luò)處理之前將預(yù)處理之后的中醫(yī)文本進(jìn)行向量化表示,本文采用的是word2vec技術(shù)把文本中包含的字符和詞語(yǔ)分別映射成具有一定維度的實(shí)值向量,很好地表達(dá)了字和詞語(yǔ)的語(yǔ)義依賴(lài)關(guān)系。嵌入層中的[l]表示字符和[w]表示詞語(yǔ)分別映射為字向量[dl]和詞向量[dw]。
(2)位置嵌入
關(guān)系抽取是預(yù)測(cè)句子中兩個(gè)實(shí)體存在的關(guān)系,一般距離實(shí)體對(duì)越近的字隱含表達(dá)實(shí)體對(duì)的關(guān)系的貢獻(xiàn)越大。句子的每個(gè)字符都有兩個(gè)位置信息,分別代表與頭實(shí)體和尾實(shí)體的相對(duì)距離,例如給定中醫(yī)句子“若兼陽(yáng)分氣虛,而脈微神困,懶言多汗者,必加人參”。此句子的頭實(shí)體是“脈微”,尾實(shí)體是“人參”,字“加”與頭實(shí)體的相對(duì)距離為10,與尾實(shí)體的相對(duì)距離是0。
2.2編碼層
本文使用基于網(wǎng)格結(jié)構(gòu)的雙向長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(Lattice BiLSTM)作為編碼器,該模型是基于字符的雙向長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)(BiLSTM),將字符作為直接輸入,即將每個(gè)輸入句子作為字符序列,不同點(diǎn)在于增加了詞粒度信息流,在字符輸入的同時(shí)嵌入詞語(yǔ)信息,利用句子中包含的多種粒度信息。模型編碼層中[x]表示編碼層的輸入,[h]表示正向隱藏層,[h]表示逆向隱藏層,[h]表示匯總隱藏層。隱藏層計(jì)算如下公式所示,[hci]表示第i個(gè)隱藏單元狀態(tài)。
2.3注意力層
在實(shí)際應(yīng)用場(chǎng)景中,句子中有些字符對(duì)預(yù)測(cè)兩個(gè)實(shí)體關(guān)系具有更加重要的地位。例如給定中醫(yī)句子“黃疸腹?jié)M,小便不利而赤,自汗出,此為表和里實(shí),當(dāng)下之,宜大黃硝石湯”,在預(yù)測(cè)“黃疸”與“大黃”之間的關(guān)系時(shí),字“宜”比其他字對(duì)關(guān)系預(yù)測(cè)的貢獻(xiàn)更大。為了使模型能夠獲得對(duì)關(guān)系抽取貢獻(xiàn)較大的特征,本文通過(guò)給句子中的每個(gè)字分配權(quán)重,增強(qiáng)句子的局部特征。