何林娜,楊志豪,林鴻飛,李彥鵬,唐利娟
(1.大連理工大學(xué)計算機科學(xué)與技術(shù)學(xué)院,遼寧大連116024;2.山東省農(nóng)業(yè)管理干部學(xué)院機械電子工程系,山東濟南250100)
生物命名實體識別的直接目的是從文本集中識別出指定類型的名稱,例如,蛋白質(zhì)、基因、核糖核酸、脫氧核糖核酸、細(xì)胞、疾病、藥物的名稱等[1]。鄭強等[2]對目前實體識別的研究情況進(jìn)行了概述,其結(jié)論是近年來生物醫(yī)學(xué)命名實體識別在語料庫、特征選擇、識別方法等方面取得了一定的進(jìn)展,但由于生物醫(yī)學(xué)領(lǐng)域的命名實體具有一些獨有的特點,要使系統(tǒng)達(dá)到更高的性能仍面臨著很大的挑戰(zhàn)。生物命名實體識別的研究方法主要集中在以下幾個方面:詞典匹配方法[3]、基于規(guī)則的方法[4]、基于語言的方法[5]、基于主動學(xué)習(xí)的方法[6]以及基于機器學(xué)習(xí)的方法,如支持向量機(SVM)[7]、隱馬爾可夫模型(HMM)[8]、最大熵[9]和條件隨機場(CRF)[10]、分類器組合[11]以及詞典和CRF相結(jié)合的半監(jiān)督學(xué)習(xí)方法FCG[12]等。
目前制藥工業(yè)正日益成為以知識為基礎(chǔ)的行業(yè),科學(xué)家們在發(fā)明藥物的過程中需要獲取相關(guān)的信息和知識。藥物相關(guān)的研究呈爆炸式發(fā)展,遠(yuǎn)遠(yuǎn)超出了維護(hù)人員更新數(shù)據(jù)庫的速度,這就迫切需要有一種自動提取藥物信息的技術(shù)。Segura-Bedmar等[13]構(gòu)建的藥名識別系統(tǒng)可以同時對識別出的藥名進(jìn)行分類,該系統(tǒng)用MetaMap Transfer(MMTx)工具對文本中的信息進(jìn)行抽取,將每個句子中的短語抽取出來并賦予相關(guān)的語義類型,然后將語義類型為“Pharmacological Substance”(PHSU)和“Antibiotics”(ANTB)的短語看作是藥名,之后再用Stem方法(所有與藥相關(guān)的詞干均可從文獻(xiàn)[14]中獲取)對MMTx的結(jié)果進(jìn)行補充和分類。徐博等[15]采用上下文模板抽取的方法構(gòu)造了一個藥名詞典,然后用詞特征的方法對藥名詞典進(jìn)行去噪。本文中我們用同樣的方法構(gòu)造了一個藥名詞典,然后用半監(jiān)督學(xué)習(xí)方法FCG[12]對藥名詞典進(jìn)行去噪過濾,最后用去噪后的藥名詞典和CRF相結(jié)合的方法進(jìn)行藥名實體識別。
本文提出了一種詞典查找和CRF相結(jié)合的實體識別方法。首先,我們利用上下文模板匹配的方法從外部資源PUBMED中進(jìn)行藥名提取,從而構(gòu)成一個藥名詞典;然后再利用半監(jiān)督學(xué)習(xí)方法——特征耦合泛化(FCG)對詞典進(jìn)行去噪;最后我們將去噪后的詞典和CRF相結(jié)合在測試集上進(jìn)行藥名實體識別。
我們的方法主要包括兩個處理過程,一個是構(gòu)造藥名詞典,另一個是用生成的藥名詞典結(jié)合CRF進(jìn)行藥名實體識別。
由于已有的藥名詞典中包含的藥名很少,而且藥名詞典不能得到及時的更新,所以必須對原有的詞典進(jìn)行擴充。本文中對于藥名詞典的生成,用的是上下文模板匹配方法[15]。此方法不依賴于已有的數(shù)據(jù)庫,所以它識別出的實體名可以超出已有數(shù)據(jù)庫,能夠滿足擴充詞典的要求。然后我們用半監(jiān)督學(xué)習(xí)方法FCG對擴充后的詞典進(jìn)行去噪,最后生成藥名詞典,方法流程如圖1所示。
該流程圖可以概括如下:
1.選取藥名種子以及用于抽取模板和藥名的語料。藥名種子均選自Drugbank,我們把Drugbank中能下載下來的藥名均作為種子。抽取模板和藥名用的語料是1979年到2009年的PUBMED摘要;
圖1 藥名詞典生成流程
2.從PUBMED語料中找到每個藥名種子對應(yīng)的上下文,組成上下文集合。
我們用Drugbank中的藥名作為種子,從PUBMED摘要中抽取每個藥名的上下文內(nèi)容。本文在藥名前后確定了窗口大?。ù翱诖笮〖礊閱卧~的數(shù)量),我們確定的藥名前的窗口大小為3,藥名后的窗口大小為2,并用-ENT-來代替藥名。圖2為本文方法抽取到的上下文的例子;
圖2 由藥名種子抽取到的上下文
3.根據(jù)上下文集合確定觸發(fā)詞,因為不同的上下文可能對應(yīng)相同的觸發(fā)詞,所以每個觸發(fā)詞都對應(yīng)一個上下文集合。
每個模板都由幾個詞組成,然而并非每個詞的重要性都一樣,圖2所示例子中單詞“treatment”的重要性就比其他的詞大,因為這個詞后面出現(xiàn)藥名的概率比較大。我們把像“treatment”這樣的詞定義為觸發(fā)詞。觸發(fā)詞滿足以下兩個條件:(1)在上下文集合中出現(xiàn)的次數(shù)比較多;(2)在其周圍可以確定藥名;
4.根據(jù)每個觸發(fā)詞確定的上下文集合構(gòu)建有向連通圖。圖3為所構(gòu)建有向圖的示意;
圖3 根據(jù)選定的上下文模板構(gòu)造的有向圖
5.根據(jù)有向圖中的權(quán)重進(jìn)行剪枝,確定最后的上下文模板。本文中我們把權(quán)重小于150的分枝去掉,然后對模板進(jìn)行排序,取排名前4 000的模板做為最終模板。
上面所述的步驟與徐博等[15]描述的基本相同,因此詳細(xì)信息可參考文獻(xiàn)[15]。
本文中我們把藥名詞典去噪看作分類問題,采用的是基于半監(jiān)督學(xué)習(xí)的FCG方法,此方法由Li[12]提出,可以有效地解決數(shù)據(jù)稀疏的問題。
FCG算法的基本思想是將特征共現(xiàn)的信息轉(zhuǎn)化為新的特征。特征共現(xiàn)要涉及兩種特征,一種是低頻特征,一種是區(qū)分性較強的類別特征。本文中將低頻特征推廣到任何特征,根據(jù)這兩種類型特征在未標(biāo)注語料(PUBMED摘要)中的共現(xiàn)情況我們得到新的特征。這些新的特征融合了未標(biāo)注語料信息,所以彌補了有限訓(xùn)練集中信息量的不足。
在FCG方法中稱第一類特征為實例識別特征(EDF),第二類特征為類別識別特征(CDF),而共現(xiàn)的值用特征耦合度(FCD)來表示。FCD的定義如下
其中x代表EDF,y代表CDF,b在本文中設(shè)置為常量1。
因為EDF可以是任何特征,所以一個樣本中可以含有很多EDF,每個EDF可以與多個CDF計算得到FCD。FCG方法的基本思路是:新特征是由EDF的上層“抽象概念”、CDF以及FCD類型組合而成,特征的值是當(dāng)前實例中隸屬于同一“抽象概念”的FCD的和。其中“抽象概念”我們用EDF root來表示。圖4與圖5是這幾個概念的一個例子。
圖4 EDF和EDF root的層次概念
圖5 FCG方法中新特征的形成
本文中我們用的EDF root主要包含以下幾種:{Name,Left-1,Left-2,Left-3,Right-1,Right-2,Right-3}其中Name是待去噪的藥名,Left-n和Right-n分別表示該藥名最左邊和最右邊的n個詞,即邊界n-gram。表1是EDF的一個實例。
本文中的CDF是根據(jù)卡方特征選擇方法從EDF中選擇出的,其中Left n-gram 300個,Right n-gram 300個。關(guān)于FCG算法的詳細(xì)描述,以及EDF、CDF的選擇可參考文獻(xiàn)[12]。
最后我們將去噪后的詞典和Drugbank中的詞典融合在一起作為最終的藥名詞典。
表1 本文用到的EDF特征
這里我們采用兩種方法,并結(jié)合前面生成的藥名詞典進(jìn)行命名實體識別。一種方法是詞典匹配,所用到的算法是最大長度匹配,此方法簡單快速;另一種方法是條件隨機場,在條件隨機場中主要用到了以下幾種詞特征:
1.詞典前綴。以藥名的前3~4個字母作為特征。
2.詞典后綴。以藥名的后3~4個字母作為特征。
3.以藥名本身作為特征。
4.以詞典查找結(jié)果作為特征(詳細(xì)信息參考文獻(xiàn)[12])
在藥名詞典生成中我們用Drugbank中的藥名作為種子從PUBMED摘要中提取模板,用最終選出的模板再到PUBMED摘要中提取藥名,從而生成初步的藥名詞典。然后用Drugbank中藥名、疾病名和常用詞構(gòu)造一個訓(xùn)練集,通過FCG方法對生成的藥名詞典進(jìn)行去噪。
在命名實體識別中用到的訓(xùn)練集語料是DDIE-xtraction 2011評測的訓(xùn)練集語料(http://labda.inf.uc3m.es/DDIExtraction2011/dataset.html)。該語料是用于提取藥物與藥物之間的關(guān)系的。語料是XML格式,每個句子中的藥名已經(jīng)識別出,所以我們可以將此語料作為訓(xùn)練集。實驗一是用該評測的測試集語料作為藥名實體識別的測試集,以檢驗生成的藥名詞典的性能;實驗二用Segura-Bedmar等[13]用的語料(http://labda.inf.uc3m.es/DrugDDI/DrugNer.html)作為測試集,以便與其方法進(jìn)行比較;實驗三中我們將DDIExtraction 2011評測的訓(xùn)練集和測試集共同作為藥名實體識別的訓(xùn)練集,將Segura-Bedmar等用的語料作為測試集,以檢驗在增加訓(xùn)練集的情況下我們方法的性能是否有所提高。
表2給出了實驗一的結(jié)果,其中CRF和詞典相結(jié)合的方法(即表中“CRF+詞典”項)是指將詞典查找的結(jié)果作為特征加入到CRF中去。從表2中我們可以看到只用CRF的方法優(yōu)于詞典匹配的方法。因為詞典匹配使用的算法是前向最大匹配和后向最大匹配,所以識別出來的很多實體都只是部分匹配。另外由于我們把詞典中的每個實體都轉(zhuǎn)化成了它的小寫形式,這樣就加入了一些噪音,例如,“THE”是一個藥名的縮寫,但是其小寫形式“the”則只是英語中常用的定冠詞。因此,詞典匹配方法識別出的實體很多,但準(zhǔn)確率和召回率卻并不高。從表2我們看出CRF的效果優(yōu)于詞典匹配的方法,而CRF和詞典相結(jié)合的方法又優(yōu)于前兩種方法,這充分說明詞典在藥名實體識別中具有一定的輔助作用,而且詞典和CRF具有互補效果。
表2 本文中的方法在DDIExtraction 2011評測語料上的結(jié)果
表3顯示了實驗二和實驗三的結(jié)果。此表中前3行是實驗二的結(jié)果,該結(jié)果進(jìn)一步驗證了我們對上一個實驗的分析。表3將我們的方法和Segura-Bedmar等的Stem方法進(jìn)行了比較,所用的語料是Segurar-Bedma I.等在文獻(xiàn)[13]用到的。這些方法的比較是在文獻(xiàn)[13]中MMTx識別出的藥名作為標(biāo)準(zhǔn)答案的基礎(chǔ)上進(jìn)行的。通過表3可以看出,我們所用的任何一個方法都比文獻(xiàn)[13]中的Stem方法要好,這是因為Stem方法在一定程度上限制了藥名的范圍,有些藥名并不包含給定的詞干,對于這樣的藥名Stem方法就無法識別出。另外有些詞包含給定的詞干但它并不是藥名,這樣的詞相對于前者比較少。
表3 本文中的方法在Segura-Bedmar等語料上的結(jié)果
除此之外,DDIExtraction 2011評測語料很有限,這也可能是影響性能的原因。于是我們做了第三個實驗,將評測中的訓(xùn)練集和測試集一起作為藥名實體識別的訓(xùn)練集。在第三個實驗中,我們對CRF和CRF結(jié)合詞典匹配兩種方法進(jìn)行了測試,結(jié)果如表3中的最后兩行所示。從中我們可以看到,CRF和CRF結(jié)合詞典匹配這兩種方法在訓(xùn)練集增加的情況下,結(jié)果都有所提高,這證實了我們之前的推測。我們之所以沒有在詞典匹配方法上進(jìn)行測試,是因為詞典匹配方法用不到訓(xùn)練集,它只是以詞典為基礎(chǔ)在測試集上進(jìn)行查找匹配。實際上這些方法的結(jié)果應(yīng)該更好,因為訓(xùn)練集中存在一些錯誤,即有些非藥名的詞也被標(biāo)注為藥名,如“drug”、“n=7”等。然而,對比表2和表3我們可以發(fā)現(xiàn)測試集不同時性能差別比較大,這主要是因為表2的訓(xùn)練集和測試集均是DDIExtraction 2011評測語料,它們來都自于Drugbank數(shù)據(jù)庫,有著相似的分布;而表3中我們用到的測試集是從PUBMED摘要中選出的,訓(xùn)練集和表2實驗中的一樣,分布情況差別較大,因而會在性能上存在差別。
Segura-Bedmar等用Stem方法除了識別MMTx識別出的藥名外,還對MMTx未識別出來的藥名進(jìn)行了識別,本文中我們的方法也對MMTx未識別出的藥名進(jìn)行了識別。表4列出了我們的方法和Stem方法的比較。因為在通常情況下訓(xùn)練集是有限的,所以此實驗中我們用的訓(xùn)練集是DDIE- xtraction 2011評測語料的訓(xùn)練集而沒有加入評測的測試集。從表4中可以看出Stem方法在準(zhǔn)確率上優(yōu)于詞典匹配方法和只用CRF的方法,因為Stem方法用的是詞干,它使得兩種藥名之間的區(qū)別性更強。不過這兩種方法識別出的藥名總數(shù)多于Stem方法,因為我們構(gòu)造的詞典包含了很多數(shù)據(jù)庫中所沒有的藥名,所以找出的藥名數(shù)量比較大。由于CRF方法是根據(jù)詞特征來進(jìn)行識別的,它將具有某些特征的詞均看作藥名,因而識別出的藥名數(shù)量更多。我們的另一種方法——CRF結(jié)合詞典的方法不僅找到藥名總數(shù)比Stem方法的多,而且在準(zhǔn)確率上也比Stem方法好。然而它找出的藥名總量少于CRF方法,這是因為在CRF的特征中加入了詞典查找結(jié)果的特征,而此特征的加入增強了CRF的識別能力。對于數(shù)據(jù)庫管理員來說,他們比較傾向于找到的藥名多而準(zhǔn)確率又高的方法,因此我們的方法比較有優(yōu)勢。
表4 MMTx之外的藥名識別結(jié)果
藥物相關(guān)研究不斷出現(xiàn),各種新藥層出不窮,遠(yuǎn)遠(yuǎn)超出了維護(hù)人員對更新數(shù)據(jù)庫的速度,這就迫切需要有一種自動提取藥物信息的技術(shù),本文提出一種基于特征耦合泛化的半監(jiān)督學(xué)習(xí)技術(shù),可以在很大程度上提高數(shù)據(jù)庫維護(hù)人員手工檢索的效率。通過上述實驗的結(jié)果可以看出,用本文所描述的方法進(jìn)行藥名詞典的生成,對藥名實體識別有較好的效果。我們的方法除了識別出已有的藥名外,還識別出了一些標(biāo)準(zhǔn)答案中所沒有的藥名,我們對其進(jìn)行人工評測,準(zhǔn)確率達(dá)到70%。
本文的工作還存在改進(jìn)的地方,例如在詞典去噪的時候,我們構(gòu)造的訓(xùn)練集樣本數(shù)量不足,加入更多的負(fù)例時詞典的去噪結(jié)果會更好,在下一步工作中我們會嘗試增加更多負(fù)例,例如,蛋白質(zhì)名、基因名等,以進(jìn)一步提高性能。
[1] 王浩暢,趙鐵軍,于浩.生物文本中蛋白質(zhì)名稱的識別[J].計算機應(yīng)用,2007,24(1):100-102.
[2] 鄭強,劉齊軍,王正華,等.生物醫(yī)學(xué)命名實體識別的研究與進(jìn)展[J].計算機應(yīng)用研究,2010,27(3):811-815.
[3] Tuason O,Chen L,Liu H,et al.Biological nomenclatures:A source of lexical knowledge and ambiguity[J].Pac Symp Biocomput,2004,9:238-249.
[4] Fukuda K,Tamura A,Tsunoda T,et al.Toward information extraction:Identifying protein names from biological papers[J].Pac Symp Biocomput,1998:707-718
[5] Sang EFTK,Meulder F D.Introduction to the CoNLL-2003shared task:language-independent named entity recognition[C]//Proceedings of the seventh conference on Natural language learning at HLT-NAACL.Edmonton,Canada,2003:142-147.
[6] Kim S,Song Y,Kim K,et al.MMR-based Active Machine Learning for Bio Named Entity Recognition[C]//Proceedings of the Human Language Technology Conference of the NAACL,New York,2006:69-72.
[7] Tsochantaridis I,Hofmann T,Joachims T,et al.Support vector machine learning for interdependent and structured output spaces[C]//Proceedings of the twenty-first international conference on Machine learning.Banff,Alberta,Canada,2004:104.
[8] Zhou G D,Su J.Named entity recognition using an HMM-based chunk tagger[C]//Proceedings of the 40th Annual Meeting on Association for Computational Linguistics,Philadelphia,Pennsylvania,2002:473-480.
[9] Lin Y F,Tsai T H,Chou W C,et al.A maximum entropy approach to biomedical named entity recognition[C]//Proceedings of the 4th ACM SIGKDD Workshop on Data Mining in Bioinformatics.Seattle,WA,2004:56-61.
[10] Settles B.Biomedical named entity recognition using conditional random fields and rich feature sets[C]//Proceedings of the International Joint Workshop on Natural Language Processing in Biomedicine and its Applications,Geneva,Switzerland,2004:104-107.
[11] Florian R,Ittycheriah A,Jing H Y,et al.Named entity recognition through classifier combination[C]//Proceedings of the seventh conference on Natural language learning at HLT-NAACL 2003,Edmonton,Canada,2003:168-171.
[12] Li Y P,Lin H F,Yang Z H.Incorporating rich background knowledge for gene named entity classification and recognition[J].BMC Bioinformatics,2009,10:223.
[13] Segura-Bedmar I,Martínez P,Segura-Bedmar M.Drug name recognition and classification in biomedical texts:A case study outlining approaches underpinning automated systems[J].Drug Discovery Today,2008,13(17-18):816-823.
[14] World Health Organization Programme on International Nonproprietary Names.(2006)The use of stems in the selection of International Nonproprietary Names(INN)forpharmaceutical substances.WHO Press,World Health Organization.[DB/OL].http://www.who.int/medicines/services/inn/Revised-FinalStemBook2006.pdf.
[15] 徐博,林鴻飛,楊志豪.基于模板抽取和豐富特征的藥名詞典生成[C].第五屆全國信息檢索學(xué)術(shù)會議論文集,2009.