陳 璟,劉亮亮,張曉如,曹馨宇
(1.江蘇科技大學(xué)計(jì)算機(jī)學(xué)院 鎮(zhèn)江 212000;2.上海對(duì)外經(jīng)貿(mào)大學(xué)統(tǒng)計(jì)與信息學(xué)院 上海201620;3.中國(guó)中醫(yī)科學(xué)院中醫(yī)臨床基礎(chǔ)醫(yī)學(xué)研究所 北京 100190)
對(duì)于擁有悠久歷史的中醫(yī)文化,如何有效的與現(xiàn)代學(xué)科結(jié)合并促進(jìn)發(fā)展是近年來備受關(guān)注的一項(xiàng)研究。中醫(yī)臨床知識(shí)的研究是中醫(yī)學(xué)信息化研究中的一個(gè)重要課題,其中又可分為對(duì)中醫(yī)臨床術(shù)語實(shí)體的研究和中醫(yī)臨床語義關(guān)系的研究。語義類型是語義網(wǎng)中的重要節(jié)點(diǎn),也是語義網(wǎng)的重要部分[1]。一個(gè)完整,準(zhǔn)確的語言系統(tǒng)能有效解決中醫(yī)學(xué)領(lǐng)域中存在的詞義模糊,一詞多義等復(fù)雜的語言現(xiàn)象,可以解決長(zhǎng)期困擾中醫(yī)學(xué)信息化信息檢索效率低等問題[2]。
中醫(yī)臨床術(shù)語的規(guī)范化工作自2005年開始[3],通過借鑒了SNOMED CT,搭建了“中醫(yī)臨床標(biāo)準(zhǔn)術(shù)語集”,奠定了研究基礎(chǔ),并在接下來的持續(xù)研究中,對(duì)術(shù)語的內(nèi)容和分類框架進(jìn)行了完善和補(bǔ)充,獲取了其他研究成果[4,5]。
在語義關(guān)系的研究上,中醫(yī)科學(xué)院已構(gòu)建了“中醫(yī)藥學(xué)語言系統(tǒng)”(TCMLS)[6],形成了 58 條語義關(guān)系[7,8],其中包括UMLS原有的54條語義關(guān)系,并補(bǔ)充4條具有中醫(yī)特色的語義關(guān)系。但是,目前TCMLS的語義關(guān)系網(wǎng)還存在許多發(fā)展不夠完善的地方。如賈李蓉等[1]對(duì) TCMLS中語義類型的使用情況進(jìn)行分析,找出不合理的語義類型并建議刪去。楊陽[9]在研究中醫(yī)臨床術(shù)語之間的語義關(guān)系時(shí),為了完善現(xiàn)有的語義關(guān)系體系,提出了三種新的具有中醫(yī)特色的語義關(guān)系,分別是“感受……之邪”,“侵襲”,“對(duì)……的功效”,雖然未加入到TCMLS系統(tǒng)中,但是為中醫(yī)臨床語義關(guān)系的研究提供的參考。李莎莎[10]指出TCMLS分類框架存在問題,提出了分類指導(dǎo)原則以及改進(jìn)的分類框架,使TCMLS詞庫分類更加合理。
TCMLS沿用了西醫(yī)語言系統(tǒng)中的語義框架,雖然中醫(yī)和西醫(yī)擁有相近的學(xué)科屬性,卻是不同的理論體系和實(shí)踐,中醫(yī)具有自己獨(dú)特的文化底蘊(yùn)和醫(yī)療手段,雖然新增了四條具有中醫(yī)特色的語義關(guān)系,但是在表達(dá)臨床語義關(guān)系存在著自身的局限性[11]。比如語義關(guān)系定義存在交叉,定義的模糊等問題,因此中醫(yī)臨床語義關(guān)系的研究有待進(jìn)一步深入。
本文嘗試?yán)脵C(jī)器學(xué)習(xí)和基于模式結(jié)合的方法,以生成句法模式為特征,利用聚類方法對(duì)中醫(yī)臨床概念實(shí)體之間的語義關(guān)系辨清語義關(guān)系類型?;谡Z料庫,通過對(duì)術(shù)語相似性的分析和聚類方法,總結(jié)相關(guān)的表達(dá)語義關(guān)系的模式,針對(duì)獲取的語義關(guān)系,對(duì)語義關(guān)系重新進(jìn)行劃分,形成新的語義關(guān)系分類。
本文基于已有的中醫(yī)臨床語義關(guān)系實(shí)例,通過機(jī)器學(xué)習(xí)與模板結(jié)合的方法,自動(dòng)對(duì)關(guān)系實(shí)例進(jìn)行聚類,對(duì)語義關(guān)系進(jìn)行深入的分析研究。
研究中所使用的句法模式是指:能表達(dá)出語義關(guān)系的有序的詞序列,簡(jiǎn)稱句式,表示為synst=[unit1]…[uniti],其中的[uniti]表示句式的一個(gè)單元。句式之中的每個(gè)單元不要求接連出現(xiàn),但是在出現(xiàn)順序要一致。我們假定蘊(yùn)含同樣語義關(guān)系的語句具有同樣的表達(dá)方式,即表示同樣語義關(guān)系的語句具有同樣的句式。從具有同一種語義關(guān)系和同一種表達(dá)方式的語句中,可以提取兩個(gè)句子的最長(zhǎng)公共子序列,即為初始句式。比如,“燕口瘡是因心脾積熱,或虛火上炎所致”和“轉(zhuǎn)胞多因腎虛或氣虛,胎氣下墜,壓迫膀胱,水道不利所致”提取出的最長(zhǎng)公共子序列是“[因][所致]”,也就是初始句式。根據(jù)句式所表示的語義含義,基于同義詞對(duì)初始句式進(jìn)行擴(kuò)充,使其可以覆蓋更多的語句。如可將“[因][所致]”擴(kuò)充為“[因/由][所致]”,以適用于更多的語句。
本文為了便于針對(duì)中醫(yī)臨床語義關(guān)系的研究,根據(jù)多種百科結(jié)合的方法[12]建立適用于語義關(guān)系研究的中醫(yī)臨床語義關(guān)系語料庫。該語料庫的特點(diǎn)是,已知語料中的中醫(yī)臨床術(shù)語實(shí)體,在不需要考慮命名實(shí)體識(shí)別的基礎(chǔ)上專注于語義關(guān)系,并且獲取的句子具有完整語法結(jié)構(gòu)、適合語義關(guān)系的分析。
本文的方法總體上分為以下幾個(gè)步驟:
(1)特征詞聚類:對(duì)語料庫Corpus中每一條語句sen(sen∈Corpus),分別選取該句中的概念實(shí)體ex,ey附近三個(gè)詞距的動(dòng)詞,名詞,連詞,介詞作為特征詞chars,使用Kmeans算法進(jìn)行聚類。
(2)合成句法模式:在第一輪聚類的基礎(chǔ)上,在同一簇里,以某兩條語句的最長(zhǎng)公共子序列作為初始句式,并利用同一簇中的其它語句對(duì)初始句式進(jìn)行擴(kuò)充。
(3)句式聚類:以句式為特征進(jìn)行第二輪聚類。
3.3.1 語料庫處理
對(duì)語料庫Corpus中每一條語句sen,替換其中的臨床概念實(shí)體ex,ey為X,Y,為防止概念被分詞誤分開,記錄實(shí)體在語句中的位置loc(X)和loc(Y)。本文使用中科院的NLPIR(原名ICTCLAS)對(duì)語料進(jìn)行分詞,得到語句的分詞結(jié)果sen=w1…wj。
3.3.2 特征詞聚類
基于語料庫中每條語句的分詞結(jié)果,建立該句的特征詞集chars。如果wi(i∈[0,j])可以滿足式(1),則將wi加入特征詞集chars中。wi(i∈[0,j])為一句語料中的一個(gè)詞,其詞性表示為pos(wi),在句子中所在位置表示為loc(wi)。
處理計(jì)算完每一句語料的特征詞集chars之后,使用TF-IDF算法,將特征詞轉(zhuǎn)化為特征向量,并使用Kmeans的聚類算法對(duì)語料實(shí)施聚類,得到第一輪聚類結(jié)果。
3.3.3 合成句式模式
根據(jù)第一輪聚類產(chǎn)生的N個(gè)簇clusteri(i∈[1,N]),N值取越大,簇?cái)?shù)越多,聚類的結(jié)果會(huì)越精細(xì),更適合產(chǎn)生初始句式;但是當(dāng)N值過于大時(shí),則聚類結(jié)果信息顆粒會(huì)太過細(xì)膩,難以抽象。根據(jù)多次測(cè)試,令N=50時(shí),可以取得較為適中的結(jié)果。
在clusteri(i∈[1,N])中的語句過多時(shí),計(jì)算任意兩條語句的初始句式會(huì)導(dǎo)致計(jì)算時(shí)間過長(zhǎng),且會(huì)產(chǎn)生大量不符合語言表達(dá)習(xí)慣的無用句式。故首先人工人工挑選出clusteri中具有相同語義關(guān)系表達(dá)模式的兩句語句計(jì)算最長(zhǎng)公共子序列,作為初始句式i_synst;然后求初始句式i_synst與clusteri中的其他語句的最長(zhǎng)公共子序列,將與初始句式相似度高的用于擴(kuò)充初始句式,相似度低的則濾過不用。方法如下:
Step1:對(duì)N個(gè)簇中的每個(gè)簇clusteri(i∈[1,N]),人工挑選出用于合成初始句式i_synst的語句sen1=w1…wm和 sen2=w1…wn。
Step2:對(duì) sen1和sen2中的每一個(gè)詞wi(i∈[1,m])和wj(l∈[1,n])建立二維矩陣 f[m+1,n+1],其求解公式為式(2):
其中max()為求最大值函數(shù),same()的求解公式如式(3):
sim(wi,wj)為根據(jù)基于同義詞詞林的詞語相似度計(jì)算方法[13],該方法計(jì)算的相似度滿足具有較高相似度的詞語在原句中進(jìn)行替換后仍能表達(dá)原句的含義,為擴(kuò)充句式墊下基礎(chǔ)。
Step3:求出的數(shù)組f[m+1,n+1]中的最大值即為最長(zhǎng)公共字串的長(zhǎng)度,根據(jù)長(zhǎng)度對(duì)數(shù)組回溯,求出最長(zhǎng)公共子序列。由于sen1和sen2句子中都包括替換過實(shí)體ey的Y字符,所以最長(zhǎng)公共子序列中長(zhǎng)度最少為1。并且長(zhǎng)度大于1的時(shí)候,回溯得到的子序列也必須包括Y字符,因此對(duì)數(shù)組f[m+1,n+1]回溯時(shí),根據(jù)sen1和sen2中的Y點(diǎn),將 f[m+1,n+1]以 f[loc(Y)1,loc(Y)2]點(diǎn)分為四個(gè)區(qū)間,然后對(duì)右下和左上求最長(zhǎng)公共子序列并以Y點(diǎn)進(jìn)行合并得到最終包含Y的最長(zhǎng)公共子序列對(duì)應(yīng)兩個(gè)句子中的 loc1=[…,i,…]和 loc2=[…,j,…]序列。
Step4:通過Step2和Step3得到的兩個(gè)句式的最長(zhǎng)公共子序列l(wèi)cs,將最長(zhǎng)公共子序列中位置上對(duì)應(yīng)原句的wi,wj進(jìn)行合并,得到初始句式i_synst。
Step5:對(duì)clusteri中剩下的語句sen3的每一句跟初始句式i_synst重復(fù)Step2和Step3,得到的最長(zhǎng)公共子序列的長(zhǎng)度等于初始句式的長(zhǎng)度len(lcs)=len(i_synst),則將sen3中對(duì)應(yīng)的原詞合并到i_synst中對(duì)應(yīng)的單元上。
Step6:每一個(gè)通過人工挑選初始句式后并經(jīng)過擴(kuò)充的句式synst寫入到輸出結(jié)果文件內(nèi)。
表1 原語義關(guān)系分布表
3.3.4 句式聚類
根據(jù)最終生成的所有句式,逐一對(duì)分詞前的句子sen進(jìn)行處理,將每個(gè)符合sen的synst加入到該句的句式集合synstSet中。如果一個(gè)句子的synstSet中只有一個(gè)句式則該句式作為此句的特征,若存在多個(gè)句式,則根據(jù)算法2的最近詞優(yōu)先原則挑選更能表達(dá)語義的最佳句式。算法2如下:
Step1:用分詞前的原句sen,獲取實(shí)體ey的替代字符Y的位置loc(Y)。
Step2:取出synstSet中的一個(gè)句式,計(jì)算synst中的每個(gè)單元在原句sen中的位置與loc(Y)的差值,并保存最小的的值min。
Step3:計(jì)算synstSet中所有句式的min值,并取min最小的句式作為最佳句式。
Step4:如果存在兩個(gè)或多個(gè)min同樣最小的句式,則取句式長(zhǎng)度最長(zhǎng)的作為最佳句式。
對(duì)所有語料標(biāo)注好句式特征后,再次使用Kmeans算法進(jìn)行第二次聚類,且該次聚類結(jié)果為最終聚類結(jié)果。
本文實(shí)驗(yàn)語料庫共有425條語句,包含了11種常見的臨床語義關(guān)系,每種語義關(guān)系的數(shù)量如下表1。
根據(jù)當(dāng)前語料中表達(dá)的語義關(guān)系,人工對(duì)語義關(guān)系重新進(jìn)行劃分,形成新的語義關(guān)系分類。本文在重新劃分語義關(guān)系是根據(jù)語料中表達(dá)出的臨床術(shù)語實(shí)體之間的語義關(guān)系為準(zhǔn),使用句式作為中間傳導(dǎo)工具,實(shí)現(xiàn)由語料到句式,從句式到語義關(guān)系的定義過程。根據(jù)本文提出的半監(jiān)督的句式生成方式,從語料中獲取句式,然后對(duì)句式進(jìn)行人工的語義關(guān)系判斷,手工聚合成一個(gè)語義關(guān)系類。并且在標(biāo)注語料中語義關(guān)系含義時(shí)根據(jù)中醫(yī)臨床術(shù)語實(shí)體的類型(如:癥狀/體征,中醫(yī)疾病,病原/病因誘因等)作為定義語義關(guān)系的參考條件。本文實(shí)驗(yàn)所進(jìn)行的兩輪聚類,分別利用特征詞和句式作為特征,兩輪的實(shí)驗(yàn)結(jié)果的準(zhǔn)確率如表2。
表2 兩輪聚類實(shí)驗(yàn)準(zhǔn)確率
表3 新語義關(guān)系分類
聚類后得到的語義關(guān)系與原語義關(guān)系的映射關(guān)系如表3。
本文的實(shí)驗(yàn)獲取了較好的準(zhǔn)確率,通過分析實(shí)驗(yàn)結(jié)果得知,導(dǎo)致沒有正確聚類的原因有兩種,第一種語料中沒有匹配到已定義的句式,識(shí)別結(jié)果為“無類別”,這種類型的語料會(huì)作為一個(gè)獨(dú)立的簇與其他簇分開,在語料的存在4%的語句,隨著語料的擴(kuò)充可能會(huì)增大這種類型的存在比例,同時(shí)也可以通過擴(kuò)展定義更多句式來降低這個(gè)比例;第二種是根據(jù)一個(gè)語料匹配到的多個(gè)句式,采用的最近原則挑選的最佳句式所代表的語義不符合語料中的原語義,這部分所占比例為7.81%。
通過以上實(shí)驗(yàn)結(jié)果可以發(fā)現(xiàn),使用句式作為特征能夠比單使用語句中的詞作為特征更具有區(qū)分度。本文使用的半自動(dòng)半手工的方法提取句式,使自動(dòng)獲取的句式更加符合語料及日常用語習(xí)慣,利用最長(zhǎng)公共子序列和詞語相似度的方法來泛化句式獲取更加通用的句式。進(jìn)一步對(duì)方法進(jìn)行改進(jìn),則需要讓這個(gè)方案逐漸由半監(jiān)督轉(zhuǎn)為無監(jiān)督的實(shí)現(xiàn),在不降低準(zhǔn)確度的情況下減少人工的參與度。此外,在挑選最優(yōu)句式時(shí)使用的最近原則在一些句子成分較多的情況下會(huì)被影響導(dǎo)致誤選,為了避免這些失誤,可以考慮的改進(jìn)方法有兩種思路。第一種是定義更加復(fù)雜的挑選原則,比如句式中不同的詞賦予不同的權(quán)重,挑選句式以權(quán)重為準(zhǔn)。第二種則是對(duì)語料的進(jìn)一步預(yù)處理,剔除一些修飾句子主干的無關(guān)語,避免在挑選時(shí)被影響。這個(gè)方法結(jié)合了句法模式和機(jī)器學(xué)習(xí)的特點(diǎn),還具有更多的改進(jìn)空間。
本文實(shí)驗(yàn)的目的是通過聚類實(shí)現(xiàn)關(guān)系實(shí)例的重新分類,重新分類后的語義關(guān)系體系與原來相比,最大的不同時(shí)根據(jù)語料中表達(dá)的語義來定義語義關(guān)系,擺脫了西方語義體系框架的限制,更加符合中醫(yī)學(xué)領(lǐng)域中語義關(guān)系的表達(dá)。與此同時(shí),由于語料庫收集的語義類型的限制,本文整理的是中醫(yī)臨床語義關(guān)系的常用語義,對(duì)語義關(guān)系的分類更多的是粗化語義信息顆粒,存在的兩個(gè)缺點(diǎn)是,一是對(duì)當(dāng)前語義關(guān)系的覆蓋不夠全面,不能成為整體語義關(guān)系框架的指導(dǎo);二是分類較為粗濾,沒有進(jìn)一步的細(xì)化分類框架。所以還需要進(jìn)一步根據(jù)這兩個(gè)不足進(jìn)行下一步研究。
在中醫(yī)臨床領(lǐng)域中,對(duì)于現(xiàn)有的語義關(guān)系存在的定義模糊,存在交叉等問題,還需要進(jìn)一步研究和討論。沿用西方的語義框架雖然加速了中醫(yī)學(xué)信息化的建設(shè),但是同時(shí)也埋下了根基不牢的隱患,需要對(duì)現(xiàn)有的語義體系根據(jù)中醫(yī)領(lǐng)域的具體情況做調(diào)整。本文根據(jù)語料中抽取日常常用句式,根據(jù)句式所傳達(dá)的語義關(guān)系為基礎(chǔ),對(duì)語義關(guān)系進(jìn)行了重新劃分,嘗試建立更符合中醫(yī)特點(diǎn)的語義分類體系。本文通過使用機(jī)器學(xué)習(xí)和句法模式結(jié)合的方法,使用常用的特征詞進(jìn)行第一輪聚類,在其基礎(chǔ)上使用半監(jiān)督的方法生成句式,然后重新計(jì)算語料符合的各種句式,并自動(dòng)選擇最能表達(dá)語料語義關(guān)系的最佳句式,以此為特征進(jìn)行第二輪聚類。通過聚類的方法粗化信息所含的粒度,以語料中所表達(dá)的實(shí)際語義為準(zhǔn),重新劃分定義了新的語義關(guān)系,并且實(shí)現(xiàn)了在新語義關(guān)系的下識(shí)別語義關(guān)系的準(zhǔn)確率達(dá)到88.23%。
1 賈李蓉,董燕,田野,等.中醫(yī)藥學(xué)語言系統(tǒng)中的語義類型分析.世界中醫(yī)藥,2013,8(5):563-565.
2 于彤,賈李蓉,劉靜,等.中醫(yī)藥學(xué)語言系統(tǒng)研究綜述.中國(guó)中醫(yī)藥圖書情報(bào)雜志,2015,39(6):56-60.
3 楊陽,崔蒙.中醫(yī)臨床標(biāo)準(zhǔn)術(shù)語集的研究概況.首屆中醫(yī)藥信息發(fā)展大會(huì).2006.
4 董燕,朱玲,于彤,等.中醫(yī)臨床術(shù)語研究現(xiàn)狀與系統(tǒng)構(gòu)建方法探討.國(guó)際中醫(yī)中藥雜志,2014,(11):965-968.
5 周霞繼,謝琪,劉保延,等.中醫(yī)醫(yī)療與臨床科研信息共享系統(tǒng)——《中醫(yī)臨床術(shù)語字典》的構(gòu)建.中國(guó)數(shù)字醫(yī)學(xué),2016,11(1):103-105.
6 賈李蓉.中醫(yī)藥學(xué)語言系統(tǒng)語義關(guān)系初探.慶祝中國(guó)中醫(yī)研究院成立50周年首屆中醫(yī)藥發(fā)展國(guó)際論壇暨首屆中醫(yī)藥防治艾滋病國(guó)際研討會(huì)論文集.2005:180-183.
7 于彤,崔蒙,李海燕,等.中醫(yī)藥學(xué)語言系統(tǒng)的語義網(wǎng)絡(luò)框架:一個(gè)面向中醫(yī)藥領(lǐng)域的規(guī)范化頂層本體.中國(guó)數(shù)字醫(yī)學(xué),2014(1):44-47.
8 賈李蓉,于彤,李海燕,等.中醫(yī)藥語義網(wǎng)絡(luò)的頂層框架研究.中國(guó)數(shù)字醫(yī)學(xué),2015(3):54-57.
9 楊陽.中醫(yī)臨床術(shù)語集語義關(guān)系的示范研究.北京:中國(guó)中醫(yī)科學(xué)院碩士學(xué)位論文,2007.
10 李莎莎.中醫(yī)藥學(xué)語言系統(tǒng)超級(jí)敘詞表分類原則和構(gòu)架的探討.北京:中國(guó)中醫(yī)科學(xué)院碩士學(xué)位論文,2011
11 楊陽,崔蒙,李園白.語義關(guān)系在語言系統(tǒng)中的作用及現(xiàn)狀分析.世界科學(xué)技術(shù):中醫(yī)藥現(xiàn)代化,2009,11(4):604-607.
12 Chen J,Wang H,Liu L,et al.A Construction Method for the Semantic Relation Corpus of Traditional Chinese Medicine.Emerging Technologies for Education,2017.
13 田久樂,趙蔚.基于同義詞詞林的詞語相似度計(jì)算方法.吉林大學(xué)學(xué)報(bào)(信息科學(xué)版),2010,28(6):602-608.