生物醫學文本挖掘已經從概念介紹與前景展望進入到實際應用階段,越來越多的生物醫學領域的專業人員開始應用文本挖掘工具來解決實際的生物學乃至臨床問題。
簡單地說,文本挖掘(Text Mining,TM)就是自動分析和處理文本。比較流行的定義是指利用計算機,通過自動抽取和關聯來自不同文本資源的信息,發現新的、以往未知的信息,顯示其隱含的意義。文本挖掘所發現的事實和形成的假說還要通過實驗加以驗證[1]。本文介紹文本挖掘的主要步驟及相應的工具,包括信息檢索、命名實體識別、信息抽取、知識發現和可視化表達。
文本挖掘的第一步是檢索與某一特定主題相關的文本資源,一般采用對書目文獻數據庫關鍵詞或主題詞查詢的方法。在生物醫學領域開展文本挖掘最常用的文獻數據庫是PubMed,這是因為MEDLINE數據庫免費、提供豐富的編程接口并用MeSH主題詞標引。利用MEDLINE數據庫進行文本挖掘的工具軟件目前層出不窮,已經成為信息檢索領域里的重要資源。文本挖掘的工具軟件也增強和優化了這些數據庫檢索功能,比如利用受控詞表將同義詞等映射到統一的概念上,同時對檢索結果中的文獻記錄進行進一步的分析和分類,抽取含有檢索概念的句子等。除了科研論文,還應當注意到專利、醫療記錄、藥品管理機構的報告、流行病學監測報告、與健康有關的博客和網站中的文本都可以作為文本挖掘的樣本[2-5]。
所謂命名實體就是文本中具有特定意義的實體,主要包括人名、地名、機構名、專有名詞等。命名實體也可以說是明確表述一個事物或者概念的一個或者一組關鍵詞。命名實體識別就是把在文本中找到的關鍵詞與文中所指的特定概念對應起來,因此命名實體識別不僅要完成識別出這些實體的任務,還要把表述同一個生物學概念的實體名稱統一起來。如在某一個文本中不僅能通過基因符號(gene symbol)識別出這個基因,也可以通過其同義詞或者以往的名稱識別出該基因,同樣,也可以識別出文本中不同常用名、商品名及同義詞的同一種藥物。文本挖掘的工具或者數據庫一般是把識別出來的術語高亮顯示出來并且提供這些術語與原始概念的鏈接,如IHOP服務器就識別出蛋白質的名稱和MeSH詞并將其在從文本中抽出的句子中高亮表達[6]。目前,命名實體識別的主要方法包括基于詞表的、基于本體的和基于機器學習的3種算法。
多數的文本挖掘系統都是基于受控詞表的,詞表中按照主題或者分類組織關鍵詞。如Whatizit利用預先從各個數據庫中搜集到的基因、蛋白質、通路、藥物和疾病的術語預制出詞典,可以對任何文本進行命名實體識別[7]。CoPub則專門制作了一個肝臟病理術語詞表,用于毒理學研究中對基因表達實驗所涉及到的藥物進行注釋[8]。
本體(ontology)可以理解為一種更為高級的受控詞表。本體與詞表最大的區別就是概念及描述這些概念的關鍵詞定義的更加正式,并且對概念間的關系和規則做出了特殊的規定。由于本體使用正式的結構并且將領域特有的信息進行了分類,如生物學通路或者疾病,因此可以用于文本挖掘。Younesi等開發了一個專門用于從文獻中檢索生物標記物知識的生物標記物本體,本體中的概念涉及到生物標記物研究的各個類別,如臨床管理、診斷和預后及其統計[9]。他們利用這個本體檢索非小細胞肺癌和神經退行性疾病的生物標記物。本體可以幫助擴展和重建關鍵詞檢索的策略,通過使用MeSH主題詞的樹狀結構信息,顯著改善了圖像檢索系統[10]。很多專門的本體可以免費獲取,BioPortal for Biomedical Ontologies[11]搜集了大量的此類本體供下載和瀏覽。很多文本挖掘軟件將本體安裝在自己的系統內來構建檢索策略和可視化表現及分類檢索結果。
具體算法包括隱馬爾科夫模型(hidden Markov models ,HMM)、最大熵馬爾科夫模型(maximum entropy Markov models,MEMM)、條件隨機場(conditional random fields,CRF)以及支持向量機(support vector machines,SVM) 。在開始真正的命名實體識別之前,首先要在能代表實際數據集的結構化注釋的訓練數據集里進行嚴格訓練,利用機器學習的文本挖掘系統可識別文本中的化學實體[12],或與規則和詞典算法結合識別文本中的生物名稱[13],抽取健康檔案中的癌癥分期信息以輔助臨床決策[14]。
信息檢索和命名實體識別之后,就要用到特殊的算法來發現文本中概念之間的關系。通過將概念鏈接起來,給概念添加了額外的信息,產生了可以在隨后進行分析的有價值的知識。當前,從文本中抽取這些知識的主要方法包括共現分析法和自然語言處理方法(Natural language processing,NLP)。
共現分析法的理論基礎是:如果兩個概念經常一起在同一文本中出現,那么這兩個概念之間就有語義上的相關。如視黃醇結合蛋白4(retinol-binding protein 4,RBP4)和胰島素抵抗經常在MEDLINE文摘中共現,表明基因與疾病之間有著功能上的聯系。實際上,很多文本中共現的關鍵詞并沒有功能上聯系。為了修正這種誤差,共現分析方法利用兩個關鍵詞各自出現的頻數進行評分,來表現關鍵詞之間關系的重要程度,以此篩選出重要的功能上的聯系[15]。共現分析法在命名實體識別中很容易實施,但是不能指出概念間的關系具體是什么關系。因此與自然和語言處理方法相比,其查全率很高但是查準率很低。
自然語言處理利用計算機處理自然語言(即人類語言)。自然語言處理方法的基礎是有關語言結構的先驗知識和文獻中生物學信息表達方式的專門知識。自然語言方法可以發現文本中的主謂賓三元結構,如基因A抑制基因B,或者基因C與疾病G有關等等,其與共現分析法的不同是提供了兩個概念間具體的關系信息。因此,以詞組為基礎的自然語言處理方法與共現分析法相比,往往有較高的精確度但是抽取出的往往是預先定義好的概念關系。一般自然語言處理方法要比共現分析法更消耗計算機資源。另外,通過訓練集獲得的特定關系往往受到訓練集數據的規模和質量的限制,如果需要發現更多的關系就可能力所不及。另一方面,開放式信息抽取方法不依賴于特定的動詞和名詞,而是注重在文本中關系是如何定義的,因此可以抽取出無限多的關系。
在實際研究中往往采用混合的方法,即采用共現分析法發現概念間存在關系,然后采用自然語言處理方法發現具體關系的性質。MEDLINE就使用自然語言方法發現概念之間的關系,用戶可以在界面輸入來源或者目標概念,定義想要了解的相互作用,如阻滯、結合、調節等。該系統返回給用戶MEDLINE文摘中有關概念之間的描述,可以幫助用戶獲得藥物(來源)和藥物靶標(目標)之間是否存在相互作用,如“what binds to IP-10?”,但是也可以使用很多更為通用的術語,如“what causes rheumatoid arthritis?”[16]。
如果遵循文本挖掘的定義,嚴格地說大多數文本挖掘系統只能算作為信息抽取系統,即抽取已經發表的概念之間的關系并對其進行排序。盡管如此,這些系統把已知的事實系統地搜集在一起,如果按照反復迭代的方式使用這些系統,也能根據從文獻中獲得的已知事實推導出關鍵詞之間的新關系。
基于文獻的知識發現(Literature-Based Knowledge Discovery,LBD)由D. Swanson于1986年提出,其主要原理稱為ABC模式:如果A和C分別是兩個從來沒有在同一文本中同時出現的關鍵詞,但是它們又分別都提及到同一組關鍵詞B,那么A和C就有著間接聯系。Swanson自1986年首次提出食用魚油可能對雷諾氏病病人有益處之后,他又開展了一系列研究證明ABC規則的有效性,如偏頭痛與鎂缺乏、攝取精氨酸與血中生長調節素水平有關[17-19]。
ABC模式在概念上比較簡單易懂,但是實施中要求比較嚴格,要通過嚴格的統計才能發現有效的預測,并估計預測的假陽性率。
利用ABC模式進行基于文獻知識發現的相關工具可以分為開放式和閉合式兩種。最早的工具遵循Swanson的思想,采用的是閉合模式,用戶首先要確定關鍵詞A和C,探索發現是否能找到能把A和C聯系起來的概念B。最早Swanson等開發的Arrowsmith就是采用該方式[20]。ChemoText根據MEDLINE文摘將化學物質與疾病鏈接起來[21],有學者利用這個大型數據庫發現與新的偏頭痛有關的化合物[22]。
在采用開放模式的工具中,用戶先確定一個目標概念A,以及可能的中介概念B,系統會自動返回所有可能有關的概念C。Bitola則是采用了開放與閉合并存的模式[23],CoPub則采用的是開放式的發現模式。
ABC發現模式進一步深入發展后,出現了關鍵詞概念譜(keyword concept profiling)的方法。如對于某一個基因,統計出在文獻中發現的所有與該基因有某種關系(如共現關系)的關鍵詞,列表后就如同繪制出了該基因的概念譜。根據基因的概念譜,利用普通聚類技術就可以把相關的概念聚成類。例如,如果一種藥物與一種疾病有相似的概念譜,那么它們之間可能有生物學關關系;如果被聚類到一起的相關概念從沒有在一篇文本中出現過,可能代表著新的知識,應當特殊關注。Anni軟件就采用概念譜的理念使用微陣列數據成功地預測了細胞類型和信號傳導通路[24-27]。
文本挖掘的最后步驟是對抽取到的知識進行可視化表達,用可視化表達快速和正確地解釋挖掘結果,并指導研究人員構建新的假說開始下一步實驗研究。
大多數檢索系統可以把文本中通過命名實體識別出來的概念高亮顯示出來,有的還提供概念與來源文獻間的鏈接進而提供更多的相關信息。概念之間的關系可以用表格表現出來,表格中概念按照評分過濾和排序,可以用于開展深入實驗的基因、藥物或者疾病[28-30]。
大多數文本挖掘工具的目標是顯示文本中發現的概念間的鏈接,因此人們首先想到用文獻網絡表示挖掘結果。String、CoPub、PubViz及PubNet都可以生成網絡,網絡中的節點是概念,而邊則是通過文獻建立起來的。一般網絡中的邊可以鏈接到把兩個概念連接起來的文獻,節點則可以鏈接到提供該概念信息的數據庫。這里要特別提到一種語義網絡技術,即將其他科研數據整合到網絡中來富集文獻網絡[31]。 OpenPhacts就把臨床、生物學和化學數據整合到藥學實體中,為藥物發現提供幫助[32]。Leach等開發出Hanalyzer系統預設了來自8 000多鼠基因的生物學網絡,利用本體術語定義將文獻中的發現與之匹配起來,并連接到多個基因表達數據庫[33]。利用這個網絡他們分析來自鼠頜面部發育的轉錄組數據集。
文獻網絡可以把兩個概念間的鏈接繪制在一個空間,可視化表示概念間的多種聯系,由此可以顯現概念間非直接的聯系,有助于了解基因間的新的關系以及未知的基因與疾病之間的聯系,此外還可以通過查詢基于網絡的聚類工具發現這些文獻網絡中生物學相關的基因類群。
詞云主要用于顯示在文本中頻繁出現的單詞,詞云圖中,出現頻次高的單詞字號就大一些。該技術對于了解文本中會出現哪些概念特別有用。如在MEDLINE中檢索所有有關嗜熱鏈球菌、沙眼衣原體和結核分支桿菌等3種微生物的文摘,去掉常用詞,保留有意義的單詞并計數,利用詞云表示最常見的單詞[34]。3種微生物文獻的詞云顯示了這些微生物的生物學屬性以及它們的應用。如在嗜熱鏈球菌的詞云中,顯示出“酸奶”“意大利干酪”“產胞外多糖”,精確地表明嗜熱鏈球菌在奶制品生產中的重要作用;而沙眼衣原體的詞云則表明沙眼衣原體與可以導致“不育”和“輸卵管炎”的衣原體感染有關,并提示衣原體傳播途徑,如“性”“接觸”以及預防方法“安全套”。
因為沒有采用預設好的概念集或者本體, 詞云技術不會產生偏移;也因為來自于比較粗糙的原始文本,可以顯示出新理念并了解特定概念,可以在開始更專門研究之前用詞云初步了解領域概況[35]。
綜上所述,文本挖掘的主要步驟包括信息檢索、命名實體識別、信息抽取、知識發現和可視化表達,研究人員針對每一步驟都開發出了相應的數據庫與軟件工具,并免費提供使用,為同行開展研究提供了良好的條件。在使用中需要注意的問題包括了解數據的性質以及適用的分析方法,掌握具體算法的基本原理,牢記數據挖掘分析的疆界,充分與專業人員溝通,小心提出結論和假說。