于彤 賈李蓉 張竹綠 朱玲
摘要:從中醫(yī)藥文獻(xiàn)中提取語義關(guān)系的方法,能充實(shí)中醫(yī)藥知識庫系統(tǒng),提升知識獲取效率,改進(jìn)知識檢索效果。本研究通過搜集中醫(yī)藥文獻(xiàn)并從中找出在一起頻繁出現(xiàn)的詞對,基于中醫(yī)藥學(xué)語言系統(tǒng)判斷語義關(guān)系的性質(zhì),再將所發(fā)現(xiàn)的語義關(guān)系交由領(lǐng)域?qū)<疫M(jìn)行檢驗(yàn)。該方法向中醫(yī)藥領(lǐng)域?qū)<姨峁┝藦奈谋局邪l(fā)現(xiàn)語義關(guān)系的新穎技術(shù)手段。
關(guān)鍵詞:語義關(guān)系;中醫(yī)藥學(xué)語言系統(tǒng);知識庫
目前,中醫(yī)藥領(lǐng)域?qū)嵱玫闹R庫系統(tǒng)顯現(xiàn)出大型化的趨勢,往往包含百萬條語義關(guān)系。例如,中醫(yī)藥學(xué)語言系統(tǒng)(Traditional Chinese MedicineLanguage System,TCMLS)已收錄概念12萬余條,術(shù)語30萬余條,語義關(guān)系127萬多條。由人工編輯如此大量的語義關(guān)系,是一個耗時費(fèi)力的大工程。若能實(shí)現(xiàn)從文獻(xiàn)中自動抽取語義關(guān)系,則可大幅提升知識獲取效率。因此,語義關(guān)系發(fā)現(xiàn)方法對領(lǐng)域知識庫的構(gòu)建具有很大意義。本文介紹了一項(xiàng)基于TCMLS從文本中發(fā)現(xiàn)語義關(guān)系的初步嘗試。該研究試圖將文本中蘊(yùn)含的語義關(guān)系挖掘出來,與TCMLS現(xiàn)有的語義關(guān)系結(jié)合,得到更為全面、準(zhǔn)確的語義關(guān)系,并明確系統(tǒng)中語義關(guān)系的文獻(xiàn)來源,從而擴(kuò)充TCMLS的數(shù)據(jù)規(guī)模,提升TCMLS中語義關(guān)系的準(zhǔn)確性和可靠性。
1、研究背景和相關(guān)工作
中醫(yī)藥學(xué)是經(jīng)過幾千年的發(fā)展而形成的,文獻(xiàn)記載是其重要的知識流傳的方式之一。近年來,中醫(yī)團(tuán)體開展了大量的知識工程工作,采用各種文獻(xiàn)中的知識來構(gòu)建中醫(yī)藥領(lǐng)域知識庫,提供知識檢索服務(wù)。以TCMLS為例,因缺乏實(shí)用的中醫(yī)藥文本挖掘方法,在語義關(guān)系抽取方面,主要依賴于加工人員的個人知識和手工操作。這種方法與加工人員個人的知識、素養(yǎng)和責(zé)任心有很大關(guān)系,造成數(shù)據(jù)準(zhǔn)確性良莠不齊,難以對數(shù)據(jù)質(zhì)量進(jìn)行有效管理。隨著系統(tǒng)規(guī)模的不斷擴(kuò)大,人工編輯的復(fù)雜性也不斷增大,制約著TCMLS的進(jìn)一步發(fā)展。鑒于此,擬對中醫(yī)藥文獻(xiàn)內(nèi)容進(jìn)行語義關(guān)系提取,得到具體概念之間的語義關(guān)系,與TCMLS的語義關(guān)系進(jìn)行比較,并對TCMLS進(jìn)行進(jìn)一步擴(kuò)充。
從自由文本中挖掘語義關(guān)系是一個非常困難的問題,因?yàn)橥环N關(guān)系在文本中會有多種表達(dá)方式。常見的語義關(guān)系發(fā)現(xiàn)方法,主要包括如下2大類。
1.1 基于語法分析的語義關(guān)系發(fā)現(xiàn)
此類方法的主要思路是:基于自然語言處理(NLP)技術(shù),通過對文本進(jìn)行語法分析,構(gòu)建出語法樹,再通過語法和詞性的分析得到其中的語義關(guān)系。這類方法的優(yōu)點(diǎn)是對語義關(guān)系定位比較準(zhǔn)確,并可以通過語法特征得到文本中的隱含信息。但其缺點(diǎn)在于:此類方法的效果嚴(yán)重依賴于語法分析的結(jié)果,對于一些特殊的領(lǐng)域,現(xiàn)有的語法分析方法往往無法取得令人滿意的結(jié)果。因此,基于語法分析的語義關(guān)系抽取算法其應(yīng)用范圍受到了很大的限制,特別是在一些有著獨(dú)特語法規(guī)則的領(lǐng)域中更是如此,本文中提到的中醫(yī)藥領(lǐng)域就是一個例子。
1.2 基于模式匹配的語義關(guān)系發(fā)現(xiàn)
這種方法是用某種模式對文本進(jìn)行匹配,根據(jù)匹配的情況得到相應(yīng)的語義關(guān)系。根據(jù)匹配模式的不同來源,可以分為兩類:基于領(lǐng)域知識的模式匹配和基于學(xué)習(xí)的模式匹配。基于領(lǐng)域知識的模式是由領(lǐng)域?qū)<覍⑵漕I(lǐng)域知識總結(jié)、升華得到的通用知識模式,然后再使用這些模式作為模板,從文獻(xiàn)中找到相應(yīng)的關(guān)系?;趯W(xué)習(xí)的模式匹配方法,是指使用機(jī)器學(xué)習(xí)方法,通過對文獻(xiàn)特征的分析得到有用的模式。這類方法的目標(biāo)一般限定為僅挖掘某些特定類別的實(shí)體的幾種特定關(guān)系,無法勝任中醫(yī)藥領(lǐng)域中語義關(guān)系種類很多的情況。
綜上所述,這兩類方法都不適合中醫(yī)藥領(lǐng)域的需求。本研究提出基于TCMLS的文本語義關(guān)系發(fā)現(xiàn)方法,該方法以TCMLS中的詞匯為基礎(chǔ),發(fā)現(xiàn)語義關(guān)系中的主體和客體;以TCMLS中已有的語義關(guān)系為根據(jù),推測從文本中挖出的語義關(guān)系的類型。本研究的基本策略,是基于TCMLS從文本中發(fā)現(xiàn)更多的關(guān)系,經(jīng)用戶驗(yàn)證后加入TCMLS之中,從而豐富TCMLS的語義關(guān)系;再用豐富后的TCMLS進(jìn)行新一輪的文本挖掘,進(jìn)一步豐富TCMLS;以此類推,從而形成一套基于文本語義關(guān)系發(fā)現(xiàn)來驅(qū)動TCMLS加工的技術(shù)方案。下面具體介紹基于TCMLS的語義關(guān)系發(fā)現(xiàn)方法。
2、文本語義關(guān)系發(fā)現(xiàn)方法
如圖1所示,文本語義關(guān)系發(fā)現(xiàn),是指從“……人參有‘補(bǔ)五臟、安精神、定魂魄、止驚悸、除邪氣、明目開心益智的功效……”的文本中,發(fā)現(xiàn)“人參補(bǔ)五臟”、“人參安精神”、“人參止驚悸”、“人參除邪氣”這樣的關(guān)系。該方法會統(tǒng)計每條關(guān)系出現(xiàn)的頻數(shù):如果在文檔D1,D2……Dn中都出現(xiàn)了某條關(guān)系R,則R出現(xiàn)的頻數(shù)即為n。該方法的基本策略是:以TCMLS作為領(lǐng)域詞庫,從文獻(xiàn)庫中找出在同一文檔中出現(xiàn)的兩個領(lǐng)域術(shù)語(如“人參、邪氣”、“人參、五臟”等),構(gòu)成候選的文本語義關(guān)系,并統(tǒng)計每條關(guān)系的頻數(shù),以供語言學(xué)家進(jìn)行檢閱和處理。由機(jī)器判斷語義關(guān)系的謂詞(如“人參”與“邪氣”之間的謂詞為“除”)仍是一個技術(shù)難題。本方法會在這兩個詞附近找出一些候選性謂詞(如“補(bǔ)”、“除”等)推薦給用戶;并提供TCMLS中的相關(guān)用法,供用戶參考(例如,針對“人參”和“腎陽虛證”,系統(tǒng)會根據(jù)TCMLS中的用法向用戶推薦“治療”這一謂詞)。
為實(shí)現(xiàn)該策略,首先需要將中醫(yī)藥文本分解成一系列獨(dú)立的語義單元。中醫(yī)藥文獻(xiàn)資源包括書籍、期刊、會議論文集、病歷、報告等,語義單元劃分要針對不同類型的文獻(xiàn)進(jìn)行具體分析。本研究主要考慮書籍、期刊和會議論文集。這些文獻(xiàn)都可被分為一系列“文章”(在書籍中對應(yīng)一章或一節(jié),在期刊和會議論文集中對應(yīng)一篇論文),可對文章進(jìn)一步細(xì)分,將文章分為小節(jié),將小節(jié)分為段落,將段落分為句子。
理論上,在一篇文章中出現(xiàn)的任意兩個詞匯之間都可能存在或強(qiáng)或弱、或直接或間接的語義關(guān)系。因此也可將“文章”作為語義單元進(jìn)行語義關(guān)系發(fā)現(xiàn)。但在語義關(guān)系識別階段,關(guān)鍵詞組過長會極大增加算法復(fù)雜性。為保證算法效率,關(guān)鍵詞組內(nèi)詞匯數(shù)量不宜過多,因此本研究未將整篇文章作為語義單元進(jìn)行挖掘。與全文相比,“句子”是一個相對較小、且有完整語義的單元?!熬渥印蓖ǔC枋鲆粋€完整的意思,且其中的詞匯之間通常有某種聯(lián)系,因此“句子”為中文分詞及后續(xù)處理提供了天然的單元。但語義關(guān)系的主體和客體也有可能分散在不同的句子中,僅以句子作為語義單元會遺失掉很多的關(guān)系。鑒于此,本項(xiàng)目分別以句子和小節(jié)作為基本的語義單元,進(jìn)行語義關(guān)系發(fā)現(xiàn),下面介紹其核心思想和設(shè)計原則。
第一,在文中距離越近的“名詞、動詞、名詞”,越有可能表達(dá)一條語義關(guān)系。因此,本方法會記錄語義關(guān)系中的詞匯在文中的最短距離,作為反映語義關(guān)系真實(shí)性的一個參數(shù)。
第二,在各種文獻(xiàn)中多次出現(xiàn)的“主語謂語賓語”,更有可能代表一條語義關(guān)系。若一條關(guān)系頻繁出現(xiàn)于各種文獻(xiàn)中,則其很可能是領(lǐng)域?qū)<艺J(rèn)可的。因此,本方法對從各種文獻(xiàn)中發(fā)現(xiàn)的關(guān)系進(jìn)行匯總,統(tǒng)計每條關(guān)系在文中共現(xiàn)的頻數(shù),將其作為一個參數(shù)提供給術(shù)語學(xué)家。
第三,文獻(xiàn)量越大、越全面,所得到的語義網(wǎng)絡(luò)就越具有統(tǒng)計價值。鑒于此,采用TCMLS對萬方文獻(xiàn)庫進(jìn)行檢索,以期獲得盡可能全面的文獻(xiàn)。
第四,構(gòu)建在中醫(yī)藥領(lǐng)域中常用的動詞列表,以該表為基礎(chǔ)推測語義關(guān)系中的謂詞。將主語或賓語附近出現(xiàn)的動詞記錄下來,作為語義關(guān)系的候選謂詞,推薦給術(shù)語學(xué)家。
第五,鑒于文本語義關(guān)系發(fā)現(xiàn)方法尚不能保證結(jié)果的準(zhǔn)確性,開發(fā)了一個文本語義關(guān)系的檢閱系統(tǒng),對文本語義關(guān)系進(jìn)行檢查、分析和標(biāo)注等工作,使術(shù)語學(xué)家了解語義關(guān)系與相關(guān)文本的關(guān)聯(lián)。
3、文本語義關(guān)系發(fā)現(xiàn)和檢閱系統(tǒng)
在本研究中,采用Java語言開發(fā)了一套文本語義關(guān)系發(fā)現(xiàn)程序,以實(shí)現(xiàn)文本語義關(guān)系發(fā)現(xiàn)方法。以TCMLS作為關(guān)鍵詞,從萬方數(shù)據(jù)知識服務(wù)平臺檢出了217 667條文獻(xiàn)題錄信息(含摘要),再用文本語義關(guān)系發(fā)現(xiàn)程序從摘要中挖出了87826條關(guān)系,其中部分的關(guān)系如表1所示。所得出的關(guān)系被存入一個關(guān)系型數(shù)據(jù)庫(MySQL數(shù)據(jù)庫)中,通過文本語義關(guān)系檢閱系統(tǒng)展示出來,供語言學(xué)家進(jìn)行檢閱。
如圖2所示,開發(fā)了一套文本語義關(guān)系的檢閱系統(tǒng),支持用戶對文本語義關(guān)系進(jìn)行檢閱、分析和標(biāo)注,查看文本語義關(guān)系的文獻(xiàn)依據(jù)和相關(guān)網(wǎng)頁,并將文本語義關(guān)系正式插入某個術(shù)語系統(tǒng)(如TCMLS)。在語義關(guān)系檢索界面中,系統(tǒng)會將機(jī)器發(fā)現(xiàn)的語義關(guān)系分頁列出。用戶可輸入關(guān)鍵詞(如“陽痿腎陽虛證”)搜索個人關(guān)心的語義關(guān)系。系統(tǒng)列出了每條關(guān)系的主體和客體(如“益腎丸腎陽虛證”),給出每個概念的類型、正名和定義。用戶可點(diǎn)擊查看某個概念,系統(tǒng)會轉(zhuǎn)到這一概念的信息頁面。當(dāng)用戶在上文提到的“語義關(guān)系檢索界面”中點(diǎn)擊查看某條關(guān)系,系統(tǒng)就會跳轉(zhuǎn)到這條語義關(guān)系的展示和處理界面。
在語義關(guān)系的展示和處理界面中,用戶可以查看這條關(guān)系的主體信息、候選謂詞、客體信息、參考性參數(shù)。其中,對于主體和客體,都給出了概念的類型、正名、定義以及概念信息頁面的鏈接。候選謂詞是基于TCMLS中的用法來生成的,例如,若主體為“人參”,客體為“腎陽虛證”,則系統(tǒng)會推薦“治療”作為候選謂詞。用戶可以點(diǎn)擊“文獻(xiàn)資源”,查看該語義關(guān)系所出自的文獻(xiàn)。對于每篇文獻(xiàn),系統(tǒng)都給出了題名和摘要。用戶單擊選擇某篇文獻(xiàn)的題名時,系統(tǒng)會跳轉(zhuǎn)到該文獻(xiàn)的題錄信息頁面。用戶可以點(diǎn)擊“百度搜索”,查看該語義關(guān)系相關(guān)的百度搜索結(jié)果,也可以點(diǎn)擊“相關(guān)陳述”,查看該語義關(guān)系在TCMLS中的相關(guān)陳述,以供語言學(xué)家參考。用戶還可通過系統(tǒng)提供的表單,將這條語義關(guān)系加入語言系統(tǒng)中。系統(tǒng)會根據(jù)TCMLS中的相關(guān)用法,列出一些相關(guān)屬性以供用戶選擇。用戶也可以輸入新的屬性,例如,為添加“人參除邪氣”這條關(guān)系,用戶可輸入“除”這一新屬性。用戶也可以添加一些注釋信息。另外,當(dāng)關(guān)系被錄入TCMLS后,系統(tǒng)會記錄這條關(guān)系的文獻(xiàn)來源。
4、小結(jié)
數(shù)字化文獻(xiàn)是中醫(yī)藥知識密集型數(shù)據(jù)的基礎(chǔ)。中醫(yī)藥語義網(wǎng)若與文獻(xiàn)資源相脫節(jié),則必成為無源之水、無本之木。從文獻(xiàn)中提取語義關(guān)系的方法,能有效豐富中醫(yī)藥語義網(wǎng)的內(nèi)容,建立中醫(yī)藥語義網(wǎng)和文獻(xiàn)資源的有機(jī)聯(lián)系,改進(jìn)中醫(yī)藥文獻(xiàn)檢索的效果。本研究開展了中醫(yī)藥文獻(xiàn)語義關(guān)系發(fā)現(xiàn)方法的初步探索:基于TCMLS,搜集中醫(yī)藥文獻(xiàn),對文獻(xiàn)進(jìn)行分詞處理,從中找出在一起頻繁出現(xiàn)的詞對,判斷語義關(guān)系的性質(zhì),交由領(lǐng)域?qū)<疫M(jìn)行檢驗(yàn)。本研究所開發(fā)的文本語義關(guān)系發(fā)現(xiàn)和檢閱系統(tǒng),向術(shù)語專家提供從文本中發(fā)現(xiàn)新穎語義關(guān)系的技術(shù)能力。
這項(xiàng)工作尚存在一些局限性。例如,我們尚缺乏判斷文本語義關(guān)系準(zhǔn)確類型的有效手段,也尚未實(shí)現(xiàn)發(fā)現(xiàn)新詞的方法。另外,有些中醫(yī)藥領(lǐng)域的詞匯尚未收入TCMLS之中,這影響了語義關(guān)系發(fā)現(xiàn)的效果。在進(jìn)一步研究中,擬對從文本中獲得的語義關(guān)系與TCMLS現(xiàn)有的語義關(guān)系進(jìn)行比較,補(bǔ)充完善TCMLS現(xiàn)有的語義關(guān)系網(wǎng)絡(luò)。擬對從文本中獲得的語義關(guān)系按概念的語義類型進(jìn)行歸納,得到語義類型間的語義關(guān)系,融合成一個基于文獻(xiàn)的頂層語義網(wǎng)絡(luò)。對TCMLS的頂層語義網(wǎng)絡(luò)和從文獻(xiàn)中實(shí)際抽取的語義網(wǎng)絡(luò)進(jìn)行比較,對TCMLS現(xiàn)有的項(xiàng)層語義網(wǎng)絡(luò)進(jìn)行補(bǔ)充和修正,從而指導(dǎo)中醫(yī)藥學(xué)語言系統(tǒng)實(shí)際發(fā)展和應(yīng)用。