李茹,孫正,王崇駿,謝俊元
(1.南京大學 計算機科學與技術系,江蘇 南京210046; 2.南京大學 計算機軟件新技術國家重點實驗室,江蘇 南京 210046)
中醫(yī)是中華民族千百年流傳下來的精髓,而且越來越得到全球醫(yī)學界的認可。由于古人對中醫(yī)記載的重大貢獻使得中醫(yī)體系保存得比較完整。現(xiàn)存的有關文獻中,經(jīng)專家統(tǒng)計,方劑數(shù)量大約100 000種。而正是這些相對完整的醫(yī)藥體系以及大量的方劑數(shù)據(jù)為探索中藥方劑的配伍規(guī)律提供了很重要的依據(jù),使中醫(yī)藥的發(fā)展更加科技化、體系化。
在中醫(yī)藥研究方面,已經(jīng)有很多專家系統(tǒng)存在,而這些系統(tǒng)大都是針對方劑和藥物進行表層的分析。為了發(fā)掘出大量數(shù)據(jù)中包含的隱藏、有價值的信息,可以引用數(shù)據(jù)挖掘技術。數(shù)據(jù)挖掘可以對數(shù)據(jù)進行多方面分析,包括:核心藥物的發(fā)現(xiàn),中藥方劑的配伍規(guī)律,藥物之間的關聯(lián)分析等??墒沁@種簡單的分析不利于對藥物配伍規(guī)律深層次的認識。最近研究表明,中藥藥物之間的互相聯(lián)系可以用網(wǎng)絡來描述,在藥物上建立復雜網(wǎng)絡模型,可以更加直觀地展示藥物間的聯(lián)系。而傳統(tǒng)中藥方劑的復雜網(wǎng)絡模型的構建只是關注藥物間的聯(lián)系而不考慮藥物自身屬性,這樣就會忽略一些藥物之間潛在的關聯(lián)。本文的主要思想是在復雜網(wǎng)絡模型的基礎上,加入藥物本身的屬性,結合藥物的屬性和藥物間的聯(lián)系構建一個新的組網(wǎng)模型,讓藥物屬性信息作為社團劃分的依據(jù)。這樣不僅能夠得到藥物之間的聯(lián)系,而且還能得出藥物屬性之間的一些隱藏的信息,更能深入了解藥物之間內(nèi)在的鏈接關系。
在對中醫(yī)藥方劑數(shù)據(jù)組網(wǎng)進行數(shù)據(jù)挖掘方面,國內(nèi)外已有大量學者進行了相關的研究[1-3],如周學忠等通過完全圖的方式對中藥方劑數(shù)據(jù)進行組網(wǎng),發(fā)現(xiàn)網(wǎng)絡的節(jié)點度分布特性符合冪律分布,從而將其劃分到無尺度網(wǎng)絡;李稍等[4]從網(wǎng)絡藥理學、系統(tǒng)生物學角度提出了“網(wǎng)絡靶標”的概念,并將方藥、病癥映射于生物分子網(wǎng)絡,以網(wǎng)絡為基礎建立方藥與病證的關聯(lián)機制;孫道平等[5]基于貢獻度和同方率構建傳統(tǒng)中藥方劑(traditional Chinese medicine formula,TCMF)網(wǎng)絡,提出了高重疊的社區(qū)發(fā)現(xiàn)算法,劃分了藥物社區(qū)結構。而在復雜網(wǎng)絡[6]的研究中,更是涉及到諸多領域,如細胞網(wǎng)絡、蛋白質(zhì)作用網(wǎng)絡、神經(jīng)網(wǎng)絡、社會網(wǎng)絡[7-10]等。復雜網(wǎng)絡具有一些重要的統(tǒng)計特征,如Watts和Strogatz[11]在Nature雜志提出的小世界網(wǎng)絡模型,體現(xiàn)了“小世界”特征;Barabasi 和Albert[12]提出著名的BA模型,提出“無標度”網(wǎng)絡這個概念;Newman[7]提出了復雜網(wǎng)絡的社團結構的概念。其中,也有很多學者提出了很多基于復雜網(wǎng)絡的經(jīng)典重疊性聚類算法,如Palla等[13]提出了最大團過濾理論,并提出了能夠識別重疊網(wǎng)絡簇結構的CPM(clique percolation method)算法;B.Yang等[14]提出基于馬爾可夫隨機游走模型的FEC(finding and extracting communities)聚類算法.
在數(shù)據(jù)挖掘中,數(shù)據(jù)處理對后續(xù)的數(shù)據(jù)挖掘工作很重要。中醫(yī)藥的原始數(shù)據(jù)存在一些問題,由于方劑通過不同文獻的記載,而且歷經(jīng)歷史的變遷,很多藥方中藥物的名字發(fā)生了各種變化,這樣就出現(xiàn)了藥物同異名、藥名重名、藥效術語不規(guī)范問題,同時藥方中存在一些空缺值和錯誤記錄。因此,為了更好地發(fā)現(xiàn)中醫(yī)藥的配伍規(guī)律,數(shù)據(jù)處理是不可缺少的重要環(huán)節(jié)之一。
醫(yī)藥同異名是一個很嚴重的問題,經(jīng)過對醫(yī)藥數(shù)據(jù)的分析,可以將藥物名分為以下幾種情況:
1)一名獨正:一個正名不存在任何異名;2)一名多異:一個正名有一個或者多個異名;3)一正一異:一個異名只屬于一個正名;4)多正同異:一個異名屬于多個正名。
為了解決上述所有問題,本文針對一名獨正不做處理,對于一名多異和一正一異統(tǒng)一用正名來代替,對于多正多異這種情況,采用上下文(功能、主治等)判斷識別本體再進行正名替換。
中醫(yī)藥方劑中還存在另一個問題是功能術語的規(guī)范問題。在中醫(yī)藥的一些文獻中,中藥的功效存在很多歧義,而且針對同種功效具有多種不同的表述。如“祛風除濕”、“祛風濕”、“祛風散寒”等功效表達意義都是相同的。由于傳統(tǒng)文化的影響,為保證工整優(yōu)美,在方劑存儲中,功效大多都是“四字為文”的形式。因功效術語存在一些復雜性,所以幾乎沒有文獻提供一種統(tǒng)一的方法去規(guī)范用語。本文的主要思想是首先將原始功能字段分別以2字、3字和4字集合進行排序。之后對4字形式的功能術語進行拆分,將其分為2字形式,如將“清熱解毒”拆為“清熱”和“解毒”。如若有不符合這個形式的拆為,可以將4字形式轉換成3字形式,如“補益元氣”改成“補元氣”。
將4字形式拆分后,接下來是合并意思相同的功效術語。本文采用的根據(jù)混合相似度的方法來進行合并?;旌舷嗨贫鹊亩x為
SimUnion(A,B)=(SimContext(A,B)+
SimLiterally(A,B))/2
(1)
式中:SimContext(A,B)表示上下文相似度,定義為
SimContext(A,B)=
ContextOfA表示A的前K個同現(xiàn)術語組成的集合,ContextOfB表示B的前K個同現(xiàn)術語組成的集合,SimLiterally(A,B)表示字面相似度,定義為
經(jīng)實驗發(fā)現(xiàn),5個同現(xiàn)術語中如果3個相同并且字面一半相似,就可以說明問題。因此,可以設置SimUnion(A,B)閾值為0.55,如果2個術語的混合相似度超過該閾值就認為這2個術語可以合并。
藥物屬性(藥性),即所謂的藥物屬性中藥與治療有關的性能,概括為四氣五味、歸經(jīng) 、升降沉浮、毒性[15]等。本文中主要選擇藥物表中“性味”、“歸經(jīng)”、“功效”3個方面作為藥物屬性定義的基礎。其中“性味”包含了四氣五味、毒性等描述,而“功效”上體現(xiàn)了“升降沉浮”等。
藥物屬性向量的具體構建方法是:假定每個字段有N個離散取值,將其定義成N維的屬性向量,每維取值0或1(0代表沒有出現(xiàn)該取值,1代表出現(xiàn)該取值)。據(jù)此方法,可以得到“性味”、“歸經(jīng)”、“功效”3個方面的屬性向量如表1~3所示。
表1 性味向量
表2 歸經(jīng)向量
表3 功效向量
本文的目的是在傳統(tǒng)中醫(yī)藥基于結構相似性或?qū)傩韵嗨菩赃M行聚類的研究基礎上進行改進,將結構相似性和屬性相似性結合起來,將屬性作為節(jié)點添加到組網(wǎng)中,通過藥物屬性可以使藥物建立更多的連接,從而發(fā)現(xiàn)隱藏的藥物之間的聯(lián)系。
在組建TCMF網(wǎng)絡之前,需要一些準備工作。通過計算藥物之間的關聯(lián)度定義一個閾值,關聯(lián)度比該閾值高,則組網(wǎng)中有邊連接,反之則認為無連接。
3.1.1 基于藥物依賴度的關聯(lián)度
常用的組網(wǎng)方式有很多,如完全圖[1]、基于頻次[5]、基于Jaccard相似度[16]、基于熵[17]、基于互信息[18]等。而在中藥方劑數(shù)據(jù)組網(wǎng)應用場景下,上述相似度量方法存在不均衡情況下的單向依賴關系和對組方長度不敏感等不足,為了解決這些問題,本文提出了藥物依賴度的關聯(lián)度。
定義藥物X對Y的依賴度為
Ind(Y|X)=
(∑i1/(Formula(X,Y)i.length-1))/|X|
(2)
式中:Formula(X,Y)表示X和Y的共同組方集合,F(xiàn)ormula(X,Y)i.length表示組方集合中第i個方劑的長度,減一是為了消除自身對方劑長度影響。藥物關聯(lián)度的公式為
sim(X,Y)=max{Ind(X|Y),Ind(Y|X)}=
(3)
為了解決X和Y頻次不均衡的問題,取X、Y相互依賴度中的最大值,同時還考慮了方劑長度的影響。
但是,通過式(2)和式(3)不難發(fā)現(xiàn):直接取藥對依賴度中的最大值是有問題的,如果分母本身過小,也會導致結果很高。所以為了解決這個問題,本文對藥物關聯(lián)度做了改進:
最終的關聯(lián)度定義為一個分段函數(shù),當X、Y最小頻次小于某個閾值時,取依賴度中的較小者;當X、Y最小頻次大于閾值時,取依賴度中的較大者,這樣就避免了頻次過低導致依賴度過高的錯誤。
3.1.2 組網(wǎng)算法
本文的組網(wǎng)算法的思想是:遍歷所有的方劑,計算當前方劑對藥物關聯(lián)度的增益,并將其加到原關聯(lián)度上。最后,查詢所有關聯(lián)度大的藥對進行組網(wǎng)。
組網(wǎng)算法如下:TCMFCreat (DrugSet,F(xiàn)ormulaSet,k,x)
Input:藥物集合 DrugSet,方劑集合 FormulaSet,頻次閾值k,關聯(lián)度閾值x;
Output:所要構建網(wǎng)絡中的邊 EdgeSet;
Description:遍歷方劑集合,每一個方劑根據(jù)定義的藥物關聯(lián)度計算對相關藥對的關聯(lián)度的增益;
方劑集合遍歷完之后,再遍歷所有藥對,根據(jù)輸入閾值判斷藥物間是否有邊:
1)For each drug1,drug2 in DrugSet
2)If drug1≠drug2
3)Sim(drug1,drug2) =0
4)For each formula in FormulaSet do
5)If formula.length>1
6)For each drugi,drugj in formula do
7)If drugi≠drugj
8)If min(count(drugi),count(drugj)) 9)Sim(drugi, drugj) = Sim(drugi, drugj)+1/ formula.length*max(count(drugi),count(drugj)) 10)Else 11)Sim(drugi, drugj) = Sim(drugi, drugj)+1/ formula.length*min(count(drugi),count(drugj)) 12)For each drug1,drug2 in DrugSet do 13)If drug1≠drug2 14)If Sim(drug1,drug2)>x 15)EdgeSet.add(drug1,drug2) 16)Return EdgeSet 其中,count(drugi)為計算第i個藥物的頻次,即它在所有方劑當中出現(xiàn)的次數(shù)。在肺痿方劑數(shù)據(jù)上運行組網(wǎng)算法,通過對網(wǎng)絡的性質(zhì)進行統(tǒng)計,發(fā)現(xiàn)網(wǎng)絡節(jié)點的度分布是符合冪律分布的[2],因此可以將TCMF網(wǎng)絡加入到復雜網(wǎng)絡的范疇,這樣就可以運用復雜網(wǎng)絡的分析方法。 通過對網(wǎng)絡的性質(zhì)統(tǒng)計,發(fā)現(xiàn)網(wǎng)絡節(jié)點的度分布是符合冪律分布的[2],因此可以將TCMF網(wǎng)絡加入到復雜網(wǎng)絡的范疇,這樣就可以運用復雜網(wǎng)絡的分析方法。 在中醫(yī)藥組成的TCMF網(wǎng)絡中,試圖權衡結構和屬性相似度得到結果。也就是說經(jīng)常在一起的藥物劃分在同一社團,并且它們的藥性也大致相似。為了達到這個目的,本文提出一種將結構和屬性一體化度量的方法,即“屬性擴展圖”的做法。具體思想是:將節(jié)點的每個屬性的離散取值作為一個“虛擬”節(jié)點,加到原網(wǎng)絡中,稱為“屬性節(jié)點”,然后在新網(wǎng)絡上利用節(jié)點間度量的方式進行聚類。 關于“屬性擴展圖”的形式化定義: 為了分析基于藥物屬性的中藥方劑組網(wǎng)模型的可行性和有效性,本文在肺痿方劑數(shù)據(jù)庫中的 211 味方劑上進行了試驗,并和傳統(tǒng)的組網(wǎng)方式進行了對比。試驗環(huán)境如下:處理器 Intel(R) Pentium(R) G 640 2.8GHz,內(nèi)存2 GB,硬盤500 GB,操作系統(tǒng)Windows7 32位版,編程語言為Java6.0。 K-clique派系過濾算法(CPM)[13]是由Palla提出的第1個發(fā)現(xiàn)重疊社區(qū)的算法。它的簡要思想是將相鄰的K-clique進行合并,有些節(jié)點會屬于多個K-clique,因此構成了網(wǎng)絡中的社區(qū)重疊部分。主要實現(xiàn)步驟是,給定一個K值,計算出網(wǎng)絡中所有的K-團,建立團-團之間的重疊矩陣,然后通過重疊矩陣來得到重疊的網(wǎng)絡簇結構。在本實驗中,設置K=4。 本文實驗所采用的數(shù)據(jù)集為肺痿方劑數(shù)據(jù)庫中的 211 味方劑,從中提取了 125 種藥物、13 種性味、12 種歸經(jīng)、90 種功效。屬性擴展圖上有(125+13+12+90)240 個節(jié)點, 254 條兩兩藥物組成的“結構邊”、 339條“性味邊”、493 條“歸經(jīng)邊”、679 條“功效邊”。 實驗結果獲得藥物社團如表4~5所示。 表4 肺痿藥物(未添加屬性)社團 表5 肺痿藥物(添加屬性)社團 在未添加屬性的組網(wǎng)中社團劃分個數(shù)為4個,如表4所示。在添加屬性之后,同樣根據(jù)CPM(K=4)算法,發(fā)掘出來的社團數(shù)目為19個,在表5中,列出了具有代表性的5個數(shù)據(jù)。 將表4和表5中的社團進行比較,可以發(fā)現(xiàn): 1)最明顯的一點是:添加上屬性之后,可以明顯的看到一個藥物群屬于哪些“性味”,“歸經(jīng)”和“功效”,這樣更方便獲得藥物的屬性信息。 2)在未添加屬性的組網(wǎng)中,通過PCM算法僅僅獲得4個社團,而在添加屬性之后,獲得了19個社團。實驗結果表明添加屬性這種組網(wǎng)方式是可行的。 3)對表4和表5中社團進行比較發(fā)現(xiàn),表5中的第4、5社團在表4中是不存在的。從此可以說明,通過添加屬性可以使藥物之間在原基礎上增加更多的關聯(lián)。這也是采用這種組網(wǎng)方式的目的。 結果分析表明將藥物的屬性添加到網(wǎng)絡中進行組網(wǎng)的模型是可行的,并且比傳統(tǒng)的組網(wǎng)方式更有效。 由于現(xiàn)實中處理的數(shù)據(jù)很多是不完備的且存在偏序性,因此研究處理這種復雜數(shù)據(jù)情況的粗糙集方法是很有實際意義的。本文通過對現(xiàn)有優(yōu)勢關系的分析后提出了α優(yōu)勢關系及其相應的粗糙集模型,以使得對不完備序信息系統(tǒng)的數(shù)據(jù)分析更加合理。此外,在基于α優(yōu)勢關系的粗糙集模型上,給出了不完備序信息系統(tǒng)的優(yōu)勢區(qū)分矩陣以及不完備序決策系統(tǒng)的優(yōu)勢決策區(qū)分矩陣,從而實現(xiàn)了屬性約簡,同時也表明了區(qū)分矩陣只能運用屬性集的冪集進行構造,而不能運用單個屬性集進行構造。 需要指出的是,在α優(yōu)勢關系的基礎上,還可以進一步研究不協(xié)調(diào)不完備序決策系統(tǒng)的屬性約簡算法,這是本文的下一步工作任務。 參考文獻: [1]周雪忠,劉保延,王映輝,等.復方劑藥物配伍的復雜網(wǎng)絡方法研究[J].中國中醫(yī)藥信息雜志, 2008, 15(11): 98-100. [2]FALOUTSOS M, FALOUTSOS P, FALOUTSOS C. On power-law relationships of the internet topology[C]//ACM SIGCOMM Computer Communication Review. ACM, 1999, 29(4): 251 -262. [4]李稍.網(wǎng)絡靶標中藥方劑網(wǎng)絡藥理學研究的一個切入點[J].中國中藥雜志,2011, 15(36): 2017-2020. LI Shao. Network target: a starting point for traditional Chinese medicine network pharmacology[J]. China Journal of Chinese Materia Medica, 2011, 15(36): 2017-2020. [5]孫道平. 復雜網(wǎng)絡方劑配伍研究[M]. 南京:南京大學出版社, 2012: 1-5. [6]STROGATZ S H. Exploring complex networks[J]. Nature, 2001, 410(6825): 268-276. [7]GIRVAN M, NEWMAN M E J. Community structure in social and biological networks[J]. Proceedings of the National Academy of Sciences, 2002, 99(12): 7821-7826 [8]STROGATZ S H. Exploring complex networks[J]. Nature, 2001, 410(6825): 268-276. [9]PALLA G, DERéNYI I, FARKAS I, et al. Uncovering the overlapping community structure of complex networks in nature and society[J]. Nature, 2005, 435(7043): 814-818. [10]WILKINSON D M, HUBERMAN B A. A method for finding communities of related genes[J]. Proceedings of the National Academy of Sciences of the United States of America, 2004, 101(Suppl 1): 5241-5248. [11]WATTS D J. Six degrees: the science of a connected age[M]. Cambridge: Cambridge Univ Press, 2004:32-36. [13]PALLA G,DERENI I, FARKAS I,et al. Uncovering the overlapping community structure of complex networks in nature and society[J]. Nature, 2005, 435: 814-818. [14]YANG Bo, CHEUNG W K, LIU Jiming. Community mining from signed social networks[J]. IEEE Trans on Knowledge and Data Engineering, 2007, 19(10): 1333-1348. [15]胡愛萍. 關于中藥藥性理論現(xiàn)代化研究的思考[J]. 光明中醫(yī), 2006, 21(10): 20-22. [16]劉正. 基于MapReduce的中藥數(shù)據(jù)網(wǎng)絡化及挖掘[D]. 南京:南京大學, 2012: 16-22. [17]唐仕歡, 陳建新, 楊洪軍, 等. 基于復雜系統(tǒng)熵聚類方法的中藥新藥處方發(fā)現(xiàn)研究思路六[J]. 世界科學技術, 中醫(yī)藥現(xiàn)代化, 2009, 11(2): 225-228. Tang Shihuan, Chen Jianxin, Yang Hongjun, et al. Designing new tcm prescriptions based on complex system entropy cluster[J]. World Science and Technology(Modernization of Traditional Chinese Medicine and Materia Medica, 2009, 11(2): 225-228. [18]PENG H, LONG F, DING C. Feature selection based on mutual information criteria of max-dependency, max-relevance, and min-redundancy[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2005, 27(8): 1226-1238.3.2 屬性擴展圖的構建
4 實驗
4.1 實驗設置
4.2 CPM算法
4.3 實驗數(shù)據(jù)
5 結果分析
6 結束語