李茹,孫正,王崇駿,謝俊元
(1.南京大學 計算機科學與技術系,江蘇 南京210046; 2.南京大學 計算機軟件新技術國家重點實驗室,江蘇 南京 210046)
中醫是中華民族千百年流傳下來的精髓,而且越來越得到全球醫學界的認可。由于古人對中醫記載的重大貢獻使得中醫體系保存得比較完整。現存的有關文獻中,經專家統計,方劑數量大約100 000種。而正是這些相對完整的醫藥體系以及大量的方劑數據為探索中藥方劑的配伍規律提供了很重要的依據,使中醫藥的發展更加科技化、體系化。
在中醫藥研究方面,已經有很多專家系統存在,而這些系統大都是針對方劑和藥物進行表層的分析。為了發掘出大量數據中包含的隱藏、有價值的信息,可以引用數據挖掘技術。數據挖掘可以對數據進行多方面分析,包括:核心藥物的發現,中藥方劑的配伍規律,藥物之間的關聯分析等。可是這種簡單的分析不利于對藥物配伍規律深層次的認識。最近研究表明,中藥藥物之間的互相聯系可以用網絡來描述,在藥物上建立復雜網絡模型,可以更加直觀地展示藥物間的聯系。而傳統中藥方劑的復雜網絡模型的構建只是關注藥物間的聯系而不考慮藥物自身屬性,這樣就會忽略一些藥物之間潛在的關聯。本文的主要思想是在復雜網絡模型的基礎上,加入藥物本身的屬性,結合藥物的屬性和藥物間的聯系構建一個新的組網模型,讓藥物屬性信息作為社團劃分的依據。這樣不僅能夠得到藥物之間的聯系,而且還能得出藥物屬性之間的一些隱藏的信息,更能深入了解藥物之間內在的鏈接關系。
在對中醫藥方劑數據組網進行數據挖掘方面,國內外已有大量學者進行了相關的研究[1-3],如周學忠等通過完全圖的方式對中藥方劑數據進行組網,發現網絡的節點度分布特性符合冪律分布,從而將其劃分到無尺度網絡;李稍等[4]從網絡藥理學、系統生物學角度提出了“網絡靶標”的概念,并將方藥、病癥映射于生物分子網絡,以網絡為基礎建立方藥與病證的關聯機制;孫道平等[5]基于貢獻度和同方率構建傳統中藥方劑(traditional Chinese medicine formula,TCMF)網絡,提出了高重疊的社區發現算法,劃分了藥物社區結構。而在復雜網絡[6]的研究中,更是涉及到諸多領域,如細胞網絡、蛋白質作用網絡、神經網絡、社會網絡[7-10]等。復雜網絡具有一些重要的統計特征,如Watts和Strogatz[11]在Nature雜志提出的小世界網絡模型,體現了“小世界”特征;Barabasi 和Albert[12]提出著名的BA模型,提出“無標度”網絡這個概念;Newman[7]提出了復雜網絡的社團結構的概念。其中,也有很多學者提出了很多基于復雜網絡的經典重疊性聚類算法,如Palla等[13]提出了最大團過濾理論,并提出了能夠識別重疊網絡簇結構的CPM(clique percolation method)算法;B.Yang等[14]提出基于馬爾可夫隨機游走模型的FEC(finding and extracting communities)聚類算法.
在數據挖掘中,數據處理對后續的數據挖掘工作很重要。中醫藥的原始數據存在一些問題,由于方劑通過不同文獻的記載,而且歷經歷史的變遷,很多藥方中藥物的名字發生了各種變化,這樣就出現了藥物同異名、藥名重名、藥效術語不規范問題,同時藥方中存在一些空缺值和錯誤記錄。因此,為了更好地發現中醫藥的配伍規律,數據處理是不可缺少的重要環節之一。
醫藥同異名是一個很嚴重的問題,經過對醫藥數據的分析,可以將藥物名分為以下幾種情況:
1)一名獨正:一個正名不存在任何異名;2)一名多異:一個正名有一個或者多個異名;3)一正一異:一個異名只屬于一個正名;4)多正同異:一個異名屬于多個正名。
為了解決上述所有問題,本文針對一名獨正不做處理,對于一名多異和一正一異統一用正名來代替,對于多正多異這種情況,采用上下文(功能、主治等)判斷識別本體再進行正名替換。
中醫藥方劑中還存在另一個問題是功能術語的規范問題。在中醫藥的一些文獻中,中藥的功效存在很多歧義,而且針對同種功效具有多種不同的表述。如“祛風除濕”、“祛風濕”、“祛風散寒”等功效表達意義都是相同的。由于傳統文化的影響,為保證工整優美,在方劑存儲中,功效大多都是“四字為文”的形式。因功效術語存在一些復雜性,所以幾乎沒有文獻提供一種統一的方法去規范用語。本文的主要思想是首先將原始功能字段分別以2字、3字和4字集合進行排序。之后對4字形式的功能術語進行拆分,將其分為2字形式,如將“清熱解毒”拆為“清熱”和“解毒”。如若有不符合這個形式的拆為,可以將4字形式轉換成3字形式,如“補益元氣”改成“補元氣”。
將4字形式拆分后,接下來是合并意思相同的功效術語。本文采用的根據混合相似度的方法來進行合并。混合相似度的定義為
SimUnion(A,B)=(SimContext(A,B)+
SimLiterally(A,B))/2
(1)
式中:SimContext(A,B)表示上下文相似度,定義為
SimContext(A,B)=

ContextOfA表示A的前K個同現術語組成的集合,ContextOfB表示B的前K個同現術語組成的集合,SimLiterally(A,B)表示字面相似度,定義為
經實驗發現,5個同現術語中如果3個相同并且字面一半相似,就可以說明問題。因此,可以設置SimUnion(A,B)閾值為0.55,如果2個術語的混合相似度超過該閾值就認為這2個術語可以合并。
藥物屬性(藥性),即所謂的藥物屬性中藥與治療有關的性能,概括為四氣五味、歸經 、升降沉浮、毒性[15]等。本文中主要選擇藥物表中“性味”、“歸經”、“功效”3個方面作為藥物屬性定義的基礎。其中“性味”包含了四氣五味、毒性等描述,而“功效”上體現了“升降沉浮”等。
藥物屬性向量的具體構建方法是:假定每個字段有N個離散取值,將其定義成N維的屬性向量,每維取值0或1(0代表沒有出現該取值,1代表出現該取值)。據此方法,可以得到“性味”、“歸經”、“功效”3個方面的屬性向量如表1~3所示。

表1 性味向量

表2 歸經向量

表3 功效向量
本文的目的是在傳統中醫藥基于結構相似性或屬性相似性進行聚類的研究基礎上進行改進,將結構相似性和屬性相似性結合起來,將屬性作為節點添加到組網中,通過藥物屬性可以使藥物建立更多的連接,從而發現隱藏的藥物之間的聯系。
在組建TCMF網絡之前,需要一些準備工作。通過計算藥物之間的關聯度定義一個閾值,關聯度比該閾值高,則組網中有邊連接,反之則認為無連接。
3.1.1 基于藥物依賴度的關聯度
常用的組網方式有很多,如完全圖[1]、基于頻次[5]、基于Jaccard相似度[16]、基于熵[17]、基于互信息[18]等。而在中藥方劑數據組網應用場景下,上述相似度量方法存在不均衡情況下的單向依賴關系和對組方長度不敏感等不足,為了解決這些問題,本文提出了藥物依賴度的關聯度。
定義藥物X對Y的依賴度為
Ind(Y|X)=
(∑i1/(Formula(X,Y)i.length-1))/|X|
(2)
式中:Formula(X,Y)表示X和Y的共同組方集合,Formula(X,Y)i.length表示組方集合中第i個方劑的長度,減一是為了消除自身對方劑長度影響。藥物關聯度的公式為
sim(X,Y)=max{Ind(X|Y),Ind(Y|X)}=
(3)
為了解決X和Y頻次不均衡的問題,取X、Y相互依賴度中的最大值,同時還考慮了方劑長度的影響。
但是,通過式(2)和式(3)不難發現:直接取藥對依賴度中的最大值是有問題的,如果分母本身過小,也會導致結果很高。所以為了解決這個問題,本文對藥物關聯度做了改進:
最終的關聯度定義為一個分段函數,當X、Y最小頻次小于某個閾值時,取依賴度中的較小者;當X、Y最小頻次大于閾值時,取依賴度中的較大者,這樣就避免了頻次過低導致依賴度過高的錯誤。
3.1.2 組網算法
本文的組網算法的思想是:遍歷所有的方劑,計算當前方劑對藥物關聯度的增益,并將其加到原關聯度上。最后,查詢所有關聯度大的藥對進行組網。
組網算法如下:TCMFCreat (DrugSet,FormulaSet,k,x)
Input:藥物集合 DrugSet,方劑集合 FormulaSet,頻次閾值k,關聯度閾值x;
Output:所要構建網絡中的邊 EdgeSet;
Description:遍歷方劑集合,每一個方劑根據定義的藥物關聯度計算對相關藥對的關聯度的增益;
方劑集合遍歷完之后,再遍歷所有藥對,根據輸入閾值判斷藥物間是否有邊:
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個藥物的頻次,即它在所有方劑當中出現的次數。在肺痿方劑數據上運行組網算法,通過對網絡的性質進行統計,發現網絡節點的度分布是符合冪律分布的[2],因此可以將TCMF網絡加入到復雜網絡的范疇,這樣就可以運用復雜網絡的分析方法。 通過對網絡的性質統計,發現網絡節點的度分布是符合冪律分布的[2],因此可以將TCMF網絡加入到復雜網絡的范疇,這樣就可以運用復雜網絡的分析方法。 在中醫藥組成的TCMF網絡中,試圖權衡結構和屬性相似度得到結果。也就是說經常在一起的藥物劃分在同一社團,并且它們的藥性也大致相似。為了達到這個目的,本文提出一種將結構和屬性一體化度量的方法,即“屬性擴展圖”的做法。具體思想是:將節點的每個屬性的離散取值作為一個“虛擬”節點,加到原網絡中,稱為“屬性節點”,然后在新網絡上利用節點間度量的方式進行聚類。 關于“屬性擴展圖”的形式化定義: 為了分析基于藥物屬性的中藥方劑組網模型的可行性和有效性,本文在肺痿方劑數據庫中的 211 味方劑上進行了試驗,并和傳統的組網方式進行了對比。試驗環境如下:處理器 Intel(R) Pentium(R) G 640 2.8GHz,內存2 GB,硬盤500 GB,操作系統Windows7 32位版,編程語言為Java6.0。 K-clique派系過濾算法(CPM)[13]是由Palla提出的第1個發現重疊社區的算法。它的簡要思想是將相鄰的K-clique進行合并,有些節點會屬于多個K-clique,因此構成了網絡中的社區重疊部分。主要實現步驟是,給定一個K值,計算出網絡中所有的K-團,建立團-團之間的重疊矩陣,然后通過重疊矩陣來得到重疊的網絡簇結構。在本實驗中,設置K=4。 本文實驗所采用的數據集為肺痿方劑數據庫中的 211 味方劑,從中提取了 125 種藥物、13 種性味、12 種歸經、90 種功效。屬性擴展圖上有(125+13+12+90)240 個節點, 254 條兩兩藥物組成的“結構邊”、 339條“性味邊”、493 條“歸經邊”、679 條“功效邊”。 實驗結果獲得藥物社團如表4~5所示。 表4 肺痿藥物(未添加屬性)社團 表5 肺痿藥物(添加屬性)社團 在未添加屬性的組網中社團劃分個數為4個,如表4所示。在添加屬性之后,同樣根據CPM(K=4)算法,發掘出來的社團數目為19個,在表5中,列出了具有代表性的5個數據。 將表4和表5中的社團進行比較,可以發現: 1)最明顯的一點是:添加上屬性之后,可以明顯的看到一個藥物群屬于哪些“性味”,“歸經”和“功效”,這樣更方便獲得藥物的屬性信息。 2)在未添加屬性的組網中,通過PCM算法僅僅獲得4個社團,而在添加屬性之后,獲得了19個社團。實驗結果表明添加屬性這種組網方式是可行的。 3)對表4和表5中社團進行比較發現,表5中的第4、5社團在表4中是不存在的。從此可以說明,通過添加屬性可以使藥物之間在原基礎上增加更多的關聯。這也是采用這種組網方式的目的。 結果分析表明將藥物的屬性添加到網絡中進行組網的模型是可行的,并且比傳統的組網方式更有效。 由于現實中處理的數據很多是不完備的且存在偏序性,因此研究處理這種復雜數據情況的粗糙集方法是很有實際意義的。本文通過對現有優勢關系的分析后提出了α優勢關系及其相應的粗糙集模型,以使得對不完備序信息系統的數據分析更加合理。此外,在基于α優勢關系的粗糙集模型上,給出了不完備序信息系統的優勢區分矩陣以及不完備序決策系統的優勢決策區分矩陣,從而實現了屬性約簡,同時也表明了區分矩陣只能運用屬性集的冪集進行構造,而不能運用單個屬性集進行構造。 需要指出的是,在α優勢關系的基礎上,還可以進一步研究不協調不完備序決策系統的屬性約簡算法,這是本文的下一步工作任務。 參考文獻: [1]周雪忠,劉保延,王映輝,等.復方劑藥物配伍的復雜網絡方法研究[J].中國中醫藥信息雜志, 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]李稍.網絡靶標中藥方劑網絡藥理學研究的一個切入點[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]孫道平. 復雜網絡方劑配伍研究[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]胡愛萍. 關于中藥藥性理論現代化研究的思考[J]. 光明中醫, 2006, 21(10): 20-22. [16]劉正. 基于MapReduce的中藥數據網絡化及挖掘[D]. 南京:南京大學, 2012: 16-22. [17]唐仕歡, 陳建新, 楊洪軍, 等. 基于復雜系統熵聚類方法的中藥新藥處方發現研究思路六[J]. 世界科學技術, 中醫藥現代化, 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 實驗數據
5 結果分析


6 結束語