于彤 朱玲 李敬華 高宏杰
中醫藥文獻是中醫藥文化的重要載體之一,記載著歷代醫家的智慧和經驗。如何對浩如煙海的中醫藥文獻進行系統梳理和深度挖掘,是中醫藥知識管理中的一個重要問題[1-2]。文本信息抽取(Text Information Extraction)是指從一段文本中自動抽取特定信息的計算機技術,它能顯著提升人類處理海量文獻并從中獲取知識的效率[3-4]。文本信息抽取的任務包括命名實體識別[5]、語義關系發現[6]、事件抽取[7]、情感分析[8]等。筆者構建了基于本體的文本信息抽取系統,用于輔助中醫專家從中醫文獻中挖掘知識,并進一步完善中醫領域本體系統。本文介紹該系統所使用的文本信息抽取方法,以及該系統的主要功能和使用情況。
該系統使用一種本體驅動的文本信息抽取方法。本體(Ontology)是一種用于表示領域知識的計算機模型,它能幫助計算機更好地理解領域術語并處理文本內容[9]。它定義了一個領域中的語義類型和語義關系,并構建了領域的概念層次結構和語義網絡[10]。中醫界從本世紀開始在中醫藥領域中引入了本體技術,對該領域的概念和術語體系進行系統性的表達[11]。其中的代表性系統包括中醫藥學語言系統和中醫古籍語言系統等[12-13]。本體為文本信息抽取提供了領域背景知識,可將領域本體與文法分析技術相結合,從而改進文本信息抽取的效果[9,14]。本系統基于中醫藥本體,從文獻中提取關鍵性詞匯,識別領域概念,進而發現領域實體之間的語義關系。信息提取有2種途徑:(1)關系提取,即理解作者在文本中直接提出的顯性關系;(2)假設生成,即根據顯性關系推理出文本中并未直接提出的隱性關系。該方法包括如下4步。
第一步、提取關鍵性詞匯。文本中僅有部分詞匯有助于機器理解文本中蘊含的語義關系,這部分詞匯被稱為關鍵性詞匯。首先,根據應用需求,從本體中導出關鍵性詞匯,創建領域詞庫。例如,在藥物發現應用中,“藥物組成”“感冒”“甘草”“主治”等詞匯往往用于表示領域專家關切的醫藥學關系,而“西藏”等地理名稱一般不可能構成有意義的醫藥學關聯。又如,中醫古籍文獻中的某些關鍵動詞(如“主”)往往對應概念之間的語義關系(如“管理”),因此需要找出這些關鍵動詞,并建立關鍵動詞與語義關系之間的對照表。在建立關鍵性詞匯的詞庫后,利用一種詞庫驅動的最大匹配算法,從文獻中提取關鍵性詞匯,從而將原始的中文文本轉化為詞匯序列。
第二步、識別關鍵性概念。為消除領域知識表達中的歧義性,領域本體中定義了概念和詞匯之間的語義關系,包括概念的正名和異名等。機器根據領域本體從詞匯序列中識別對應的概念,并判斷概念的語義類型。例如,根據本體中定義的異名關系〈甘草,藏名,‘相額爾’〉(即甘草在藏醫藥學中稱為‘相額爾’),將藏醫藥學文本中出現的詞匯‘相額爾’理解為概念甘草;并根據本體中定義的類型關系〈甘草,rdf:type,草藥〉,將概念甘草歸屬于草藥這個類。此后,將概念及其類別加入詞匯序列中的對應位置,生成文本對應的概念序列。
第三步、抽取語義關系。通過一系列預先定義的語義模板與概念序列進行匹配,若匹配成功則生成對應的陳述。該過程分為3步:(1)基于領域本體生成一個語義模板庫,其中的每個語義模板為由領域概念和詞匯構成的三元組;(2)根據資源序列中出現的概念在模板庫中檢索對應的一系列語義模板;(3)將每個模板與資源序列匹配,如果匹配成功,則生成對應的陳述。例如,針對文本“[七十味珍珠丸]的[藥物組成]為:…… [相額爾] ……”,首先提取出其中的3個關鍵詞,并識別對應的概念;其次根據本體中定義的概念類型〈七十味珍珠丸,類型,方劑〉和〈甘草(相額爾),類型,藥物〉,獲取相應的模板〈方劑,‘藥物組成’,藥物〉;最后,將模板與資源序列匹配,從而推出陳述:〈七十味珍珠丸,包含,甘草〉。將所獲得的陳述融合為一個圖,并將其加入索引結構中。
第四步、推導假設性語義關系。根據文本中的語義信息,使用領域規則進一步推導出假設性的語義關系。領域規則形如 Body Head,在Body和Head中均可出現變量。例如,規則R1:〈?x, 包含,?y〉 〈?y, 屬于,?x〉表示對于任意x和y,如果x包含y,那么y屬于x;根據規則R1和陳述〈七十味珍珠丸,包含,甘草〉,可以推出〈甘草,屬于,七十味珍珠丸〉。又如,規則R2:〈?x, 包含,?y〉〈?y, 具有功效,?z〉 〈?x, 具有功效,?z〉表示如果某種藥物x的成分y具有功效z,則x具有功效z;根據規則R2和〈七十味珍珠丸,包含,當歸〉、〈當歸,具有功效,補血〉可推出〈七十味珍珠丸,具有功效,補血〉。
下面通過一個關于方劑生化湯的案例來解釋上述過程。下面是《中華藥典》中描述傳統方劑生化湯的組成和功效的部分文本:“ ……[生化湯]中重用[當歸],補血活血,祛瘀生新為[君];[川芎]行血中之氣,[桃仁]活血祛瘀為[臣];[黑姜]入血散寒,溫里定痛為[佐];[炙甘草]調和諸藥為[使]。[功效]為[活血化瘀] ……”。首先,根據中醫領域本體,從詞匯序列中提取對應的概念,并對概念歸類。據本體可知,生化湯為方劑的實例,當歸、川芎、桃仁、黑姜和炙甘草為中藥的實例,活血化瘀為功效的實例。進而,提取文中的語義關系。例如,根據模板〈方劑,藥物,‘君’〉,和序列(生化湯,當歸,‘君’),推出:〈生化湯,君,當歸〉。最后,根據已知的語義關系生成假設。例如,根據陳述〈生化湯,具有功效,活血化瘀〉和規則〈?x, 具有功效,活血化瘀〉 〈?x, 治療,血瘀證〉,推出假設:〈生化湯,治療,血瘀證〉。提取出的語義信息構成了如圖1所示的語義圖。

圖1 從文本中提取出的關于方劑生化湯的信息
筆者采用上面的方法,構建了中醫文本信息抽取系統。該系統基于本體對中醫文獻進行處理,自動識別其中出現的中醫概念,生成文本內容的索引。該系統還能從文本中自動發現語義關系,再將所發現的語義關系交由領域專家進行檢驗。筆者以綜合性醫學著作《醫學綱目》等中醫古籍作為試驗文本對該系統進行了測試。該系統基于“中醫古籍語言系統”對中醫古籍進行處理,從中提取出中醫藥領域概念及其語義關系,取得了良好的效果。

圖2 文本信息抽取系統界面截圖(以《醫學綱目》為例)
該系統還實現了文本語義關系管理與檢閱的功能,對從文本中發現的語義關系進行集中管理,支持用戶查看語義關系在中醫文本中的用法,并完成語義關系的檢閱、分析和標注工作。如圖2所示,該系統以網頁的形式展示《醫學綱目》古籍全文,以不同的顏色標出文本中出現的中醫名詞和謂詞。該系統在左側建立書籍目錄導航,在頁面主體部分顯示全文,自動識別文中出現的中醫概念并在文本右側列出,用戶可點擊查看概念定義。該系統還找出文中出現的謂詞,據此識別文中出現的語義關系。用戶也可以點擊查看原文中蘊含的語義關系。該系統還實現了中醫本體加工輔助工具,將文本語義關系正式插入某個本體系統,為中醫本體的修訂和完善提供可行的技術路徑。
中醫藥文獻是中醫藥知識共享的主要手段。近年來,隨著文字識別等信息技術的廣泛應用,大量的中醫藥文獻被轉換為數字文件、數據庫等數字資源[15]。中醫藥文獻的數字化,為將文本信息抽取等各種文獻處理技術應用于中醫藥領域奠定了基礎。本文介紹了中醫文本信息抽取系統,它能從中醫文獻中提取領域實體及語義關系,并支持用戶完成文本語義關系的檢閱、分析和標注工作。這套系統能輔助中醫專家開展文獻知識挖掘工作,為梳理中醫藥知識體系,實現中醫文獻和知識的共享和重用提供技術支持。
[1]劉毅.中醫古籍數字化與知識挖掘[J].圖書館工作與研究,2010,14(12):92-94.
[2]周雪忠,崔蒙,吳朝暉,等.基于文本挖掘的中醫學文獻主題自動標引[J].中國中醫藥信息雜志,2003,10(1):71-74.
[3]顧錚,顧平.信息抽取技術在中醫研究中的應用[J].醫學信息,2007,20(1):27-30.
[4]楊博,蔡東風,楊華,等.開放式信息抽取研究進展[J].中文信息學報,2014,28(4):1-11,36.
[5]趙軍.命名實體識別、排歧和跨語言關聯[J].中文信息學報,2009,23(2):3-17.
[6]陶金火,陳華鈞,胡雪琴,等.中醫藥文獻語義關系圖發現[J].計算機科學,2011,38(3):213-217,251.
[7]吳家皋,周凡坤,張雪英,等.HMM模型和句法分析相結合的事件屬性信息抽取[J].南京師大學報(自然科學版),2014,14(1):30-34.
[8]趙妍妍,秦兵,劉挺,等.文本情感分析[J].軟件學報,2010,21(8):1834-1848.
[9]丁晟春,劉逶迤,熊霞,等.基于領域本體和語塊分析的信息抽取的研究與實現[J].情報學報,2010,29(1):53-58.
[10] Gruber T R. Ontology. Entry in the Encyclopedia of Database Systems,Ling Liu and M[M]. Tamer ?zsu (Eds.), Springer-Verlag, 2008.
[11]于彤,崔蒙,李敬華,等. 中醫藥本體工程研究現狀[J]. 中國中醫藥信息雜志,2013,20(7):110-112.
[12]賈李蓉,楊碩,董燕,等.中醫藥學語言系統評價體系的研究與建立[J]. 中國數字醫學,2012,7(10):13-16.
[13]朱玲,尹愛寧,崔蒙,等.中醫古籍語言系統構建的關鍵問題與對策[J].中國中醫藥信息雜志,2010,17(4):98-99.
[14]方純潔,王波,羅杰,等.基于信息抽取的中醫藥文獻知識發現[J].浙江中醫藥大學學報,2012,36(1):88-90,96.
[15]張稚鯤,李文林.古籍數字化建設的文獻計量學研究[J].圖書館理論與實踐,2011,12(2):45-51.