張順香,張世堯,王 銀
(安徽理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,安徽 淮南 232001)
?
基于術(shù)語提取的藥品作用沖突自動檢測模型
張順香,張世堯,王 銀
(安徽理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,安徽 淮南 232001)
藥品作用沖突自動檢測是快速發(fā)現(xiàn)多種藥物之間不良反應(yīng)關(guān)系的信息檢索技術(shù),其可有效減輕醫(yī)師和患者巨大的認(rèn)知負(fù)擔(dān)。藥品作用沖突識別的核心任務(wù)是以藥品信息為基本語義單元,分析并建立藥品之間的沖突知識規(guī)則,實(shí)現(xiàn)藥品之間沖突作用的深層次檢測。提出的基于術(shù)語提取的藥品作用沖突自動檢測模型包括順序遞進(jìn)的四個(gè)層次,即數(shù)據(jù)源的預(yù)處理、術(shù)語提取、藥品沖突知識庫的構(gòu)建及藥品作用沖突的自動檢測。實(shí)驗(yàn)結(jié)果證明所提出的模型具有較高的準(zhǔn)確度。
藥品作用沖突;術(shù)語提?。粵_突知識庫;自動檢測
藥品沖突作用(Drug Interaction Conflict, DIC)是指兩種或兩種以上的藥品同時(shí)服用時(shí)所可能發(fā)生的理化效應(yīng)、拮抗等,其可能引起藥品療效下降或毒性增加,醫(yī)學(xué)上稱之謂為“配伍禁忌(Contraindications)”?,F(xiàn)代臨床使用的藥品種類繁多,藥品之間的相互作用千差萬別,難免發(fā)生藥品相互作用,要完全掌握藥物之間的相互作用十分不易[1]。
非處方藥中的復(fù)方制劑,都是選擇作用彼此增強(qiáng)、相互抵銷或減少不良反應(yīng)的原則配伍組成[1]。對于處方藥,《首都醫(yī)藥》雜志對北京市二級以上50家醫(yī)院開藥的的處方進(jìn)行調(diào)查,結(jié)果存在明顯相互作用的3類處方占94%[2]。這說明無論是醫(yī)師[3],還是患者對了解藥品的相互作用具有極其重要的意義。然而,藥品種類紛繁復(fù)雜,人們對海量的藥品數(shù)據(jù)無從下手,需要運(yùn)用新的科技手段來減輕醫(yī)師、患者的認(rèn)知負(fù)擔(dān)。
為解決這一問題,本文結(jié)合自然處理中的術(shù)語提取技術(shù)和數(shù)據(jù)庫技術(shù),提出了基于術(shù)語提取的藥品作用沖突自動檢測模型,以期幫助用戶快速檢測、發(fā)現(xiàn)給定藥品之間是否存在作用沖突,使得人們可以智能地、合理地選取藥品,達(dá)到健康用藥的目的。模型框架分成四層,如圖1所示。
圖1 藥品作用沖突自動檢測模型框架
1) 數(shù)據(jù)源預(yù)處理層:對數(shù)據(jù)源進(jìn)行結(jié)構(gòu)化處理,分析藥品屬性數(shù)據(jù),面向藥品作用沖突作用沖突檢測簡化藥品數(shù)據(jù)結(jié)構(gòu);
2) 術(shù)語提取層:借助于NLPIR漢語分詞系統(tǒng),擴(kuò)充用戶字典和更新廢詞庫,利用動態(tài)窗口分割方法進(jìn)行藥品成份術(shù)語和類別術(shù)語的提??;
3) 知識庫構(gòu)建層:在術(shù)語提取的基礎(chǔ)上,設(shè)計(jì)并構(gòu)建三個(gè)基礎(chǔ)數(shù)據(jù)庫:成分庫、類別庫和藥品編碼庫;進(jìn)一步挖掘藥品作用沖突規(guī)則,構(gòu)建沖突知識庫。
4) 應(yīng)用層:設(shè)計(jì)藥品作用沖突檢測算法,供用戶進(jìn)行藥品沖突查詢。沖突檢測算法將查詢沖突知識庫,必要時(shí)結(jié)合基礎(chǔ)實(shí)現(xiàn)沖突查詢。
本文組織如下:第2節(jié)介紹介紹藥品相互作用和術(shù)語提取的相關(guān)工作;第3節(jié)給出藥品數(shù)據(jù)源處理及術(shù)語提取方法;第4節(jié)給出相關(guān)定義及知識庫的構(gòu)建方法;第5節(jié)介紹沖突檢測算法;第6節(jié)給出模型的實(shí)驗(yàn)分析;第7節(jié)對本文進(jìn)行總結(jié)。
1) 藥品相互作用。要做到合理用藥,必須掌握藥物之間的相互作用。面對種類繁多的藥品,藥品的相互作用速查表可供醫(yī)師臨床參考。文獻(xiàn)[4]通過分子熒光互補(bǔ)實(shí)驗(yàn),結(jié)合免疫熒光定位實(shí)驗(yàn)、免疫共沉淀等技術(shù),分析并揭示了L-periaxin蛋白與Ezrin蛋白之間的互作方式。文獻(xiàn)[5]分析不同結(jié)合物對藥物的運(yùn)載能力隨環(huán)糊精數(shù)量的增加而增強(qiáng)。文獻(xiàn)[6]對一些常用中藥進(jìn)行潛在藥物相互作用研究,以預(yù)測其可能發(fā)生的藥物相互作用,提供臨床用藥安全有效的重要途徑。文獻(xiàn)[7]對四物湯有效成分與模擬生物膜相互作用的影響進(jìn)行深入研究。文獻(xiàn)[8]利用電子醫(yī)療記錄數(shù)據(jù)庫進(jìn)行藥品相互作用的識別。
2) 術(shù)語提取。文獻(xiàn)[9]針對錨文本和查詢文本所存在的文本長度過短、語義信息不足等缺點(diǎn),提出一種適用于各種類型網(wǎng)絡(luò)數(shù)據(jù)及網(wǎng)絡(luò)用戶行為數(shù)據(jù)的領(lǐng)域數(shù)據(jù)提取方法。文獻(xiàn)[10]利用自然語言處理技術(shù)過濾掉與術(shù)語無關(guān)的成分,對語句進(jìn)行自然切割,為領(lǐng)域術(shù)語提取提供完整的候選數(shù)據(jù)集。文獻(xiàn)[11]提出一種基于分離模型的中文關(guān)鍵詞提取算法,根據(jù)關(guān)鍵單詞提取和關(guān)鍵詞串的不同特征進(jìn)行關(guān)鍵詞提取。NLPIR漢語分詞系統(tǒng)可有效地實(shí)現(xiàn)中文分詞、詞性標(biāo)注、命名實(shí)體識別、用戶詞典自定義等,為領(lǐng)域術(shù)語提取建立良好的基礎(chǔ)。文獻(xiàn)[12]利用NLPIR漢語分詞系統(tǒng),擴(kuò)充用戶詞典,采用動態(tài)變化的窗口長度實(shí)現(xiàn)從中文課程中提取課程專業(yè)術(shù)語。
從研究現(xiàn)狀來看,藥品相互作用主要集中藥品的成份、藥理等本身研究,術(shù)語提取主要集中網(wǎng)絡(luò)、課程文本的術(shù)語提取。
數(shù)據(jù)源處理主要任務(wù)包含兩個(gè)方面,一是對藥品的說明書進(jìn)行分析,對藥品的主要屬性進(jìn)行提取和分析;二是根據(jù)分析的結(jié)果,利用中科院的開源中文分詞系統(tǒng),結(jié)合用戶詞典的擴(kuò)充和廢詞庫的更新,進(jìn)行藥品成分和類別等術(shù)語提取。
2.1 藥品數(shù)據(jù)源屬性分析
通常藥品數(shù)據(jù)源的屬性主要包括藥品名稱、成份、性狀、作用類別、適應(yīng)癥、規(guī)格、用法用量、不良反應(yīng)、禁忌、注意事項(xiàng)、藥物相互作用、藥理作用和生產(chǎn)企業(yè)等。根據(jù)藥品這些常用屬性,藥品信息的數(shù)據(jù)結(jié)構(gòu)Drug-DS可定義如下。
Struct Drug-DS
{char ID[20],name[20],element[100],
characteristics[30],role-categories[30],
indications[60],specifications[50],
usage-dosage[60],adverse-reactions[256],
contraindications[256],precautions[256];
drug-interaction[256],pharmacological-effect[256];
production-enterprises[60];}
通過大量藥品說明書的研究發(fā)現(xiàn),與分析藥品沖突作用相關(guān)的屬性主要有名稱、成份、作用類別、藥物相互作用。因此,基于藥品屬性的提取與分析角度,藥品信息數(shù)據(jù)結(jié)構(gòu)簡化為
Struct simple-Drug-DS
{char ID[20];
char name[20];
char element[100];
char role-categories[30];
char drug-interaction[256];}
2.2 術(shù)語提取
根據(jù)藥品數(shù)據(jù)源屬性數(shù)據(jù)的分析結(jié)果,本文主要對藥品的成份屬性、類別屬性和相互作用屬性進(jìn)行中文分詞,并進(jìn)行術(shù)語提取。下面以藥品“雙唑泰棉栓”為例,說明術(shù)語提取的過程。
1) 直接應(yīng)用NLPIR漢語分詞系統(tǒng)。NLPIR漢語分詞系統(tǒng)中國科學(xué)院研究開發(fā)的,可用于網(wǎng)絡(luò)搜索、 自然語言理解和文 本挖掘的技術(shù)開發(fā)的基礎(chǔ)工具集。該系統(tǒng)可以使用用戶的自定義字典來進(jìn)行分詞,并對詞性進(jìn)行了標(biāo)注。本文首先利用分詞工具對藥品說明書中的相互作用和成分等進(jìn)行分詞,圖2是對“雙唑泰棉栓”的相互作用屬性的分詞結(jié)果。
1/m氯/n已/d定/v與/p肥皂/n、/wn碘化鉀/n等/udeng有/vyou配/v伍/nr1禁忌/n。/wj與/p硼砂/n、/wn碳酸/n氫/ng鹽/n、/wn碳酸鹽/n、/wn氧化物/n、/wn枸/n櫞/x酸/a鹽/n、/wn磷酸鹽/n和/cc硫酸鹽/n也/d有/vyou配/v伍/nr1禁忌/n?!?/p>
圖2 直接應(yīng)用NLPIR分詞結(jié)果
從圖2可以發(fā)現(xiàn),如果直接應(yīng)用NLPIR漢語分詞系統(tǒng),分詞系統(tǒng)使用默認(rèn)的字典對結(jié)果進(jìn)行分詞,一些醫(yī)學(xué)名詞不能正確分割。例如“氯已定”這一成份術(shù)語被分割成三個(gè)獨(dú)立的詞“氯”,“已”和“定”。為此我們需要對NLPIR漢語分詞系統(tǒng)的用戶詞典和廢詞庫進(jìn)行擴(kuò)充和更新。
2) 擴(kuò)充用戶詞典。進(jìn)行用戶詞典的擴(kuò)充最直接有效的辦法是,從現(xiàn)有的醫(yī)學(xué)詞典中導(dǎo)入專業(yè)詞匯,對分詞工具中的用戶詞典進(jìn)行擴(kuò)充,并結(jié)合數(shù)據(jù)源的內(nèi)容,進(jìn)行人工分析,最終確定導(dǎo)入的醫(yī)學(xué)詞匯,保證導(dǎo)入用戶詞典的正確率。在對用戶詞典導(dǎo)入后,重新使用NLPIR漢語分詞系統(tǒng)對“雙唑泰棉栓”的相互作用屬性進(jìn)行分詞,分詞結(jié)果如圖3所示。
1/m氯已定/n與/p肥皂/n、/wn碘化鉀/n等/udeng有/vyou配伍禁忌/n。/wj與/p硼砂/n、/wn碳酸氫鹽/n、/wn碳酸鹽/n、/wn氧化物/n、/wn枸櫞酸鹽/n、/wn磷酸鹽/n和/cc硫酸鹽/n也/d有/vyou配伍禁忌/n?!?/p>
圖3 擴(kuò)充醫(yī)學(xué)用戶詞典后分詞結(jié)果
從圖3可以看出,在進(jìn)行用戶詞典擴(kuò)充后,一些醫(yī)學(xué)術(shù)語像“氯已定”,“碳酸氫鹽”,“配伍禁忌”等被正確分割,而這也與實(shí)際相符合。但分詞結(jié)果中仍然存在一些廢詞,為此需要進(jìn)一步進(jìn)行廢詞庫更新。
3) 更新廢詞庫。更新廢詞庫的目的是將一些不需要的廢詞進(jìn)行剔除,比如“作用”、“合用”“有”等,這些詞沒有實(shí)際意義,也不便于提取純凈的成份術(shù)語,更新廢詞庫后的分詞結(jié)果如圖4所示。
氯已定/n肥皂/n碘化鉀/n硼砂/n碳酸氫鹽/n碳酸鹽/n氧化物/n枸櫞酸鹽/n磷酸鹽/n硫酸鹽/n…
圖4 擴(kuò)充醫(yī)學(xué)用戶詞典更新廢詞庫后分詞結(jié)果
4.1 基本概念
定義1:藥品成份庫
在本模型中,藥品成份庫是指所有從n個(gè)藥品說明書的成份(element)文本中提取的m個(gè)成份術(shù)語ele-Term所構(gòu)成的集合,每個(gè)成份術(shù)語是表達(dá)藥品的獨(dú)立最小語義單元。每個(gè)成份術(shù)語在藥品成份庫中有唯一的編號ele-ID。從而,藥品成份庫DELib可描述為
DELib={(ele-IDi,ele-Termi)|
i=1,2,…,m} (1)
式中:ele-IDi表示藥品成份庫中的第i個(gè)成份的唯一編號;ele-Termi表示第i個(gè)成份的文本信息。
定義2:藥品類別庫
從藥品的作用類別(categories)來看,每一種藥品都有其所屬的類別,藥品類別庫是指從所有藥品說明書的作用類別中提取的k個(gè)類別術(shù)語cat-Term所構(gòu)成的集合。每個(gè)藥品類別術(shù)語在藥品類別庫中同樣也有唯一的編號cat-ID。相應(yīng)地,藥品類別庫DCLib可描述為
DCLib={(cat-IDi,cat-Termi)|
i=1,2,…,k} (2)
式中:cat-IDi表示藥品類別庫中的第i個(gè)類別的唯一編號;cat-Termi表示第i個(gè)類別的文本信息。
定義3:藥品編碼庫
藥品編碼庫包括每個(gè)藥品的唯一編碼、藥品所有成份編碼以及藥品類別編碼。藥品編碼庫是基于藥品成份庫和藥品類別庫的定義基礎(chǔ)上進(jìn)行的,目的是便于快速查詢每種藥品所屬的類別和可能包含的成份。對于n個(gè)藥品,藥品編碼庫DenLib可定義為
DenLib={(name-IDi,namei,ele-IDseti,cat-ID)} i=1,2,…,n,and ele-IDseti∈DElib,and cat-ID∈DClib
(3)
式中:name-IDi表示第i個(gè)藥品的唯一編號;namei表示第i個(gè)藥品的文本信息;ele-IDseti是第i個(gè)藥品的所有成份編碼的集合,cat-ID第i個(gè)藥品所屬類別的編號。
定義4:沖突類型
藥品相互作用(Drug Interaction)是極其復(fù)雜的,它涉及到藥品的理化性質(zhì)、作用機(jī)理、體內(nèi)過程、受體或作用部位效應(yīng),食物或環(huán)境污染物質(zhì)對藥品的影響;遺傳基因以及藥品對臨床檢查值的干擾等多方面因素。為了簡化模型,只考慮藥品之間的相互作用,不考慮藥品與食物以及環(huán)境物質(zhì)之間的相互作用。藥品之間的相互作用分別包含物理化學(xué)的配伍禁忌、藥代動力學(xué)的相互作用以及藥效學(xué)的相互作用。概括起來,可以分為以下幾種沖突類型:
①分解降效;②混濁或沉淀;③理化反應(yīng);④不相容;⑤拮抗作用;⑥毒性、不良反應(yīng)增加;⑦穩(wěn)定性降低; ⑧增強(qiáng)作用
Con-type={type-IDi|i=1,2,…,8}
(4)
式中:type-IDi表示第i種類型的沖突編碼。
定義5:沖突規(guī)則
考察藥品說明書的相互作用屬性(Drug Interaction),從語義角度分析發(fā)現(xiàn),主要有四種類型的沖突描述,即成份與成份、藥品與成份、藥品與類別和藥品與藥品之間存在不同類型的沖突。結(jié)合沖突類型的定義,沖突規(guī)則可描述為
Crule1={(ele-IDi,type-IDx,ele-IDj)}
(5)
Crule2={(name-IDi,type-IDx,ele-IDj)}
(6)
Crule3={(name-IDi,type-IDx,cat-IDj)}
(7)
Crule4={(name-IDi,type-IDx,name-IDj)}
(8)
式中:Crule1表示成份與成份的沖突規(guī)則;Crule2表示藥品與成份的沖突規(guī)則;Crule3表示藥品與類別的沖突規(guī)則;Crule4表示藥品與藥品的沖突規(guī)則;type-IDx表示某個(gè)沖突規(guī)則所屬沖突類型。
每一種沖突規(guī)則均是一個(gè)三元組,即沖突前鍵、沖突類型和沖突后鍵。從沖突規(guī)則的定義可以看出,沖突前鍵可以是藥品名和藥品成份,沖突后鍵可以是藥品類別、藥品名、沖突成份。
定義這樣四種類型的沖突規(guī)則基于一個(gè)基本思想:大多數(shù)非專業(yè)的用戶只想查詢某種藥品和哪些藥品存在沖突相互作用。同時(shí),在實(shí)際應(yīng)用中,前三種沖突規(guī)則可對第四種沖突規(guī)則Crule4進(jìn)行完善和補(bǔ)充。
定義6:沖突知識庫
沖突知識庫由四種沖突表構(gòu)成,與四種沖突規(guī)則相對應(yīng),每一種沖突表包含從藥品相互作用屬性提取出來的一種規(guī)則。從而沖突知識庫CKLib可描述為
CKLib={(C-sheeti|i∈[1,4])}
(9)
C-sheet1={Crule1i|i=1,…,a}
(10)
C-sheet2={Crule2i|i=1,…,b}
(11)
C-sheet3={Crule3i|i=1,…,c}
(12)
C-sheet4={Crule4i|i=1,…,d}
(13)
式中:C-sheet1表示包含存儲了總共a條Crule1(成份與成份沖突規(guī)則)的沖突表。C-sheet2、C-sheet3和C-sheet4沖突表和C-sheet1意義相同,不再贅述。
這里給出四種沖突表的一些具體實(shí)例,見表1、表2、表3、和表4。例如表1中第一行表示成份“氯已定”和成份“碘化鉀”配伍會發(fā)生定義4中所說的第6種類型的沖突(不良反應(yīng)增加);表2中的第一行表示藥品“土霉素”和成份“甲硝唑”會發(fā)生發(fā)生第1種類型的沖突(降效,影響成分吸收);表3中的第一行表示藥品“氟氯西林”和藥品類別“氨基糖苷類”會發(fā)生第3種類型的沖突(理化反應(yīng));表4中的第9行藥品“亞胺培南”和藥品“乳酸鈉”之間的沖突類型是第4種(不相容)。
表1 成份與成份C-sheet1沖突表
表2 藥品與成份C-sheet2沖突表
表3 藥品與類別C-sheet3沖突表
表4 藥品與藥品C-sheet4沖突表
4.2 沖突知識庫構(gòu)建算法
在沖突知識庫構(gòu)建之前,首先要進(jìn)行基礎(chǔ)數(shù)據(jù)庫的構(gòu)建,包括:
1) 藥品成份庫DELib的構(gòu)建。掃描藥品數(shù)據(jù)源,對每個(gè)藥品成份屬性的藥品成份術(shù)語進(jìn)行逐一提取,添加到DELib中,同時(shí)進(jìn)行消除冗余和編碼;
2) 藥品類別庫DCLib的構(gòu)建。掃描藥品數(shù)據(jù)源,對每個(gè)藥品作用類別屬性中的藥品類別進(jìn)行提取,添加到DCLib中,同時(shí)進(jìn)行消除冗余和編碼,提取完畢按照藥品類別建立索引;
3) 藥品編碼庫DenLib的構(gòu)建。對每個(gè)藥品編碼,記錄藥品名稱,查詢藥品成份庫DELib完成藥品成份編碼的添加,查詢藥品類別庫DCLib以標(biāo)注藥品所屬的類別碼。
在建立好等三個(gè)基礎(chǔ)數(shù)據(jù)庫后,即可進(jìn)行沖突知識庫的構(gòu)建,沖突知識庫構(gòu)建算法見算法1。
算法1:沖突知識庫構(gòu)建算法
輸入:藥品的相互作用(Drug Interaction)文本
輸出:根據(jù)獲取的沖突規(guī)則加入相應(yīng)的沖突表
1:i=1;
2: while (i 3: 取第i個(gè)藥品的相互作用文本; 4:對該文本利用動態(tài)窗口分割方法進(jìn)行逐條提取,獲得沖突規(guī)則的前鍵、后鍵和沖突類型; 5:查詢藥品成份庫DELib和藥品編碼庫DenLib確定前鍵是藥品成份還是藥品名; 6:查詢藥品類別庫DCLib、藥品編碼庫DenLib和藥品成份庫DELib確定后鍵的類型; 7:if 前鍵是成份,后鍵也是成份,將該條沖突規(guī)則加入沖突表C-sheet1; 8:if 前鍵是藥品,后鍵是成份,將該條沖突規(guī)則加入沖突表C-sheet2; 9:if 前鍵是藥品,后鍵也是類別,將該條沖突規(guī)則加入沖突表C-sheet3; 10:if 前鍵是藥品,后鍵也是藥品,將該條沖突規(guī)則加入沖突表C-sheet4; 11:i++; 12:endwhile 在沖突知識庫構(gòu)建算法的執(zhí)行過程中,需要查詢?nèi)齻€(gè)基礎(chǔ)數(shù)據(jù)庫,即藥品成份庫DELib、藥品類別庫DCLib和藥品編碼庫DenLib,為了提高查詢速度,三個(gè)基礎(chǔ)數(shù)據(jù)庫提前建立索引。另外,在第6步查詢后鍵類型時(shí),考慮后鍵的數(shù)量,如果后鍵數(shù)量為較小(<=2),則查詢優(yōu)先次序?yàn)樗幤奉悇e庫DCLib、藥品編碼庫DenLib和藥品成份庫DELib;反之查詢的優(yōu)先次序?yàn)樗幤烦煞輲霥ELib、藥品編碼庫DenLib和藥品類別庫DCLib。 沖突檢測算法的設(shè)計(jì)是以用戶的需求為前提。通常用戶只關(guān)心某種藥品和其他一種或幾種藥品是否存在配伍禁忌,而不是查看與某種藥品存在沖突的所有藥品列表。從認(rèn)知角度來說,如果系統(tǒng)列出與某種藥品存在沖突的所有列表,反而會到導(dǎo)致用戶混亂。因此,沖突檢測算法接受的輸入是至少2種藥品的名稱,且以一個(gè)藥品為主線,檢查發(fā)現(xiàn)其他藥品與該藥品是否存在沖突。沖突檢測算法的過程見算法2。 算法2:藥品沖突檢測算法 輸入:藥品name0和name1,…,namej 輸出:與藥品有沖突藥品名稱和沖突類型 1:i=0;Set=φ; 2:while (i≤j) 3:查詢DenLib庫,獲取輸入藥品的name-IDi; 4:Set=Set∪name-IDi;i++; 5:endwhile 6:i=1;num=0; 7: while (i≤j) 8:以name-ID0為前鍵,以name-IDi為后鍵查詢C-sheet4; 9:if存在符合條件的沖突規(guī)則 then 輸出name0和namei以及沖突類型;num++;Set=Set-name-IDi 10:i++ 11:endwhile 12:if (num=j) goto 27; 13:while (Set≠φ) 14:從Set取一個(gè)name-IDi; 15:在藥品編碼庫DenLib查詢name-IDi的類別cat-IDi; 16:以name-ID0為前鍵,以cat-IDi為后鍵查詢C-sheet3; 17:if存在沖突規(guī)則 then 輸出name0和namei以及沖突類型;num++;Set=Set-name-IDi; 18:else在藥品編碼庫DenLib查詢name-IDi的成份ele-IDseti; 19:以name-ID0為前鍵,以ele-IDseti中的成份為后鍵查詢C-sheet2; 20:if存在沖突規(guī)則 then 輸出name0和namei以及沖突類型;num++;Set=Set-name-IDi; 21:else在藥品編碼庫DenLib查詢name-ID0的成份ele-IDsetx; 22:以ele-IDsetx中的成份為前鍵,以ele-IDseti中的成份為后鍵查詢C-sheet1; 23:if存在沖突規(guī)則 then 輸出name0和namei以及沖突類型;num++;Set=Set-name-IDi; 24:elseSet=Set-name-IDi; 25:endwhile; 26:輸出沖突個(gè)數(shù)num; 27:end 沖突檢測算法說明: 1) 第一個(gè)循環(huán),即step2-step5,實(shí)現(xiàn)在DenLib庫中快速查詢輸入藥品name0編碼name-ID0,查詢name1,…,namej的編碼name-IDi,并將之加入集合中。 2) 第二個(gè)循環(huán),即step7-step11,實(shí)現(xiàn)在C-sheet4沖突表中快速查詢name0與name1,…,namej的每個(gè)藥品是否存在沖突。如果存在輸出該沖突的前鍵、后鍵和沖突類型。 3) 第三個(gè)循環(huán),即step13-step25。如果第二個(gè)循環(huán)已經(jīng)發(fā)現(xiàn)j個(gè)沖突,則第三個(gè)將不再執(zhí)行。相反,如果第二個(gè)循環(huán)發(fā)現(xiàn)沖突的個(gè)數(shù)小于j個(gè),則需要執(zhí)行該循環(huán),依次查詢C-sheet3、C-sheet2、C-sheet1,以期發(fā)現(xiàn)是否存在藥品與藥品類別、藥品與藥品成份、藥品成份與藥品成份等類型的沖突。如果存在,則以Crules4的輸出該沖突, 并更新C-sheet4。 需要進(jìn)一步說明的是: 采用多個(gè)措施提高算法的執(zhí)行效率。包括DenLib庫的索引技術(shù)、沖突知識庫倒查(即依次查詢C-sheet4、C-sheet3、C-sheet2、C-sheet1,如果滿足查詢要求算法提前結(jié)束);沖突知識庫的自我更新機(jī)制。直接通過藥品說明書建立的沖突表C-sheet4是不完整的,在用戶查詢使用的過程中,根據(jù)查詢C-sheet3、C-sheet2、C-sheet1會逐漸發(fā)現(xiàn)一些新的藥品與藥品之間的沖突,來不斷更新補(bǔ)充C-sheet4。 6.1 實(shí)驗(yàn)方法 為了驗(yàn)證藥品作用沖突檢測模型的效果,本文將從兩個(gè)角度驗(yàn)證模型的準(zhǔn)確性。 1) 從成份沖突角度進(jìn)行藥品沖突查詢驗(yàn)證。選擇一種藥品成份ele-Term0及與其沖突的幾種成份ele-Termi,計(jì)算包含成份ele-Termi的各種藥品的召回率。 2) 從藥品沖突的角度進(jìn)行藥品沖突查詢驗(yàn)證。選擇一類藥品成份cat-Term0的多種藥品namei,分別計(jì)算與namei藥品存在沖突的各種藥品的召回率。 6.2 實(shí)驗(yàn)分析 根據(jù)6.1節(jié)的實(shí)驗(yàn)方法,進(jìn)行3組實(shí)驗(yàn): 1) 第1組實(shí)驗(yàn)。選擇的藥品成份為雙唑泰棉栓中“氯己定”,選擇與該成份存在沖突的8種成份。分別計(jì)算包含每種沖突成份的所有藥品的召回率,實(shí)驗(yàn)結(jié)果如圖5所示。 8種藥品沖突成份1. 碘化鉀;2. 硼砂;3. 碳酸氫鹽;4. 碳酸鹽;5. 氧化物;6. 枸櫞酸鹽;7. 磷酸鹽;8. 硫酸鹽圖5 包含沖突成份的藥品召回率 2) 第2組實(shí)驗(yàn)。選擇的藥品類別為“青霉素類”,包含的10種藥品。這10種藥品中每一種藥品存在沖突的所有藥品的召回率,實(shí)驗(yàn)結(jié)果如圖6所示。 10種藥品沖突成份1. 青霉素鈉;2. 阿洛西林;3. 阿莫西林;4. 美洛西林;5. 哌拉西林他唑巴坦;6. 呋布西林;7. 氟氯西林;8. 替卡西林克拉維酸鉀;9. 亞胺培南;10. 美洛培南圖6 與10種青霉素類藥品有沖突的藥品召回率 3) 第3組實(shí)驗(yàn)。選擇的藥品類別為“頭孢菌素”,包含的12種藥品。這12種藥品中每一種藥品存在沖突的所有藥品的召回率,實(shí)驗(yàn)結(jié)果如圖7所示。 12種藥品沖突成份1. 頭孢曲松鈉;2. 頭孢尼西;3. 頭孢噻吩;4. 頭孢噻肟;5. 頭孢哌酮;6. 頭孢甲肟;7. 頭孢西丁鈉;8. 頭孢替安;9. 頭孢硫脒;10. 頭孢美唑;11. 頭孢唑肟;12. 頭孢吡肟圖7 與12種頭孢菌素類藥品有沖突的藥品召回率 從圖5~圖7可以看出,3組實(shí)驗(yàn)均保持較高的召回率(>0.95),即無論從成份沖突的角度進(jìn)行藥品沖突的查詢,還是從藥品沖突的角度進(jìn)行藥品沖突檢測,基于術(shù)語提取的藥品作用沖突檢測模型均保持較高的召回率。 藥品作用沖突檢測可有效減輕醫(yī)師和患者在面對海量醫(yī)藥數(shù)據(jù)環(huán)境下的巨大認(rèn)知負(fù)擔(dān)?;谛g(shù)語提取的藥品作用沖突檢測模型是將自然語言處理和信息檢索技術(shù)應(yīng)用到醫(yī)學(xué)領(lǐng)域中,便于用戶智能、合理、健康地用藥。本文主要貢獻(xiàn)包括以下幾個(gè)方面。 1) 有效進(jìn)行了藥品術(shù)語的提取。利用NLPIR漢語分詞系統(tǒng),結(jié)合動態(tài)窗口分割的術(shù)語提取方法,在擴(kuò)充用戶詞典和更新廢詞庫的基礎(chǔ)上,實(shí)現(xiàn)了藥品成份術(shù)語和類別術(shù)語的有效提取。 2) 成功構(gòu)建了藥品沖突知識庫。在構(gòu)建藥品成份庫、藥品類別庫和藥品編碼庫的基礎(chǔ)上,定義了8種類型的沖突類型和4種類型的沖突規(guī)則,進(jìn)而提出了藥品沖突知識庫的構(gòu)建算法。 3) 有效實(shí)現(xiàn)了藥品沖突的檢測。在藥品沖突知識庫構(gòu)建的基礎(chǔ)上,設(shè)計(jì)了藥品沖突檢測算法。算法采用倒查技術(shù)提高沖突檢測過程的執(zhí)行效率,同時(shí),算法的執(zhí)行能對沖突知識庫進(jìn)行更新和補(bǔ)充。 [1] 何紅梅.藥物相互作用速查表[M].北京:中國醫(yī)藥科技出版社, 2012:1-10. [2] 劉治軍,付得興,孫春華,等. 體內(nèi)藥物相互作用研究進(jìn)展[J]. 藥物不良反應(yīng)雜志,2006:8(1):1-6. [3] L MILLER,KS PATER,S CORMAN.The role of clinical decision support in pharmacist response to drug-interaction alerts. Research in Social & Administrative Pharmacy, 2014, 11(3):480-486. [4] 彭婷婷,王慧, 石亞偉. 熒光雙分子互補(bǔ)分析Ezrin與L-periaxin的互作模式[J]. 中國生物化學(xué)與分子生物學(xué)報(bào), 2015, 31(1):38-46. [5] 秦飛, 姚鑫. 環(huán)糊精固載量不同的殼聚糖藥物載體合成及性能[J]. 中國科學(xué)院大學(xué)學(xué)報(bào), 2015, 32(1):51-56. [6] 葉林虎. 荷葉代謝性藥物相互作用及體內(nèi)成分研究[D].北京協(xié)和醫(yī)學(xué)院,2014. [7] 張海鳴,閆寒,彭娟,等. 脂質(zhì)體平衡透析-液質(zhì)聯(lián)用色譜法篩選四物湯藥效物質(zhì)的研究[J]. 藥物分析雜志, 2014,34(12): 2 107-2 111. [8] P ZHANG,L DU,L WANG.A Mixture Dose—Response Model for Identifying High-Dimensional Drug Interaction Effects on Myopathy Using Electronic Medical Record Databases[J]. Cpt Pharmacometrics & Systems Pharmacology, 2015, 4(8):474-480. [9] 閆興龍,劉奕群,方奇,等. 基于網(wǎng)絡(luò)資源與用戶行為信息的領(lǐng)域術(shù)語提取[J]. 軟件學(xué)報(bào), 2013, 24(9):2 089-2 100. [10] 李江華,時(shí)鵬,胡長軍. 一種適用于復(fù)合術(shù)語的本體概念學(xué)習(xí)方法[J]. 計(jì)算機(jī)科學(xué),2013, 40(5):168-172. [11] 羅準(zhǔn)辰,王挺. 基于分離模型的中文關(guān)鍵詞提取算法研究. 中文信息學(xué)報(bào),2009,23(1):63-70. [12] SHUNXIANG ZHANG, YANYONG DU, KUI LU.A Dynamic Window Split-Based Approach for Extracting Professional Terms from Chinese Courses[J]. International Journal of Computational Science and Engineering, 2016,12(4):341-350. (責(zé)任編輯:李 麗) An Automatic Detection Model for Drug Interaction Conflict Based on Term Extraction ZHANG Shun-xiang, ZHANG Shi-yao ,WANG Yin (School of Computer Science and Engineering ,Anhui Univercity of Science and Technology,Huainan Anhui 232001,China) The automatic detection for Drug Interaction Conflict (DIC) is an information searching technology which can quickly find the conflict relationships among some drugs. It can effectively decrease the huge cognitive burden for some people such as physicians and patients etc. The main task of identifying DIC is analyzing and establishing the knowledge rules of conflict among drugs, and realizing the deep detection of DIC. The drug information is used as the basic semantic unit in this task. This paper proposed an automatic detection model for DIC which includes four progressive levels. That is, the preprocess of data source, term extraction, the construction of knowledge base of drug conflict and the automatic detection for DIC. Experimental results show that the proposed model is of high accuracy. crug interaction conflict; term extraction; knowledge base of drug conflict; automatic detection 安徽省教育廳自然科學(xué)基金資助項(xiàng)目(KJ2015A111);上海市信息安全綜合管理技術(shù)研究重點(diǎn)實(shí)驗(yàn)室基金資助項(xiàng)目(AGK2013002) 張順香(1970-),男,安徽無為人,副教授,博士,研究方向:語義Web,信息檢索與信息提取。 TP391 A 1672-1098(2016)05-0046-085 沖突檢測算法
6 實(shí)驗(yàn)
7 結(jié)論