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