摘 要: 在數(shù)據(jù)挖掘" title="數(shù)據(jù)挖掘">數(shù)據(jù)挖掘得出的知識庫基礎上,,結合中藥方劑配伍理論及組方過程,提出了方劑配方模型,,采用自定義的U連接操作生成主方劑,,用中藥配伍規(guī)則修正主方劑中的藥物相克,、有毒等不正常現(xiàn)象,,再對方劑的四氣,、五味進行數(shù)字化調整,成功為用戶開出治療特定癥狀的量化中藥方劑,,切實為醫(yī)生及中藥研發(fā)人員提供計算機輔助決策支持,。
關鍵詞: 中醫(yī)藥; 配方模型,; 知識管理,; 決策支持
?
自人工智能技術誕生以來,專家系統(tǒng)一直是最活躍的分支之一,,而醫(yī)療也一直是專家系統(tǒng)的典型實際應用領域,。在此中,疾病診斷系統(tǒng)是近年來的研究熱點,,眾多學者已先后提出多種疾病診斷模型[1-4],。然而,對癥開方系統(tǒng)尤其是中藥配方系統(tǒng)卻少有人涉及,。中醫(yī)藥是我國的國粹,,經過數(shù)千年的發(fā)展,,它積累了豐富的經驗,,擁有浩瀚的文獻,運用最新科學技術來促進中醫(yī)藥的國際化,、現(xiàn)代化已成為中醫(yī)發(fā)展的必然趨勢,。
為此,作者初步研制了中醫(yī)藥應用決策支持系統(tǒng),。該系統(tǒng)是數(shù)據(jù)挖掘技術與中醫(yī)配伍理論相結合的結果,。系統(tǒng)首先從原始的中藥專利數(shù)據(jù)庫中提取數(shù)據(jù)加以預處理,再經數(shù)據(jù)挖掘得到有用的知識組建配方知識庫[5-6],;然后用本文提出的對癥開方模型為用戶自動開出中藥方劑,,從而達到決策支持的目的。這種方法智能而且高效,,是人為中藥配伍所不及的,。
1 對癥開方系統(tǒng)結構
對癥開方系統(tǒng)模型結構圖如圖1所示。從圖中可以看出,,對癥開方模型針對病人或中藥研發(fā)人員輸入的癥狀集,,從配方知識庫中匹配癥狀,生成初始主方劑,;然后應用配伍知識對主方劑進行修正,;最終生成期望的中藥方劑??梢?,其最核心的部分是配方知識庫,,下面介紹該模型的知識表示。
?
2 配方知識管理
本模型中的知識庫分為三大類:癥-藥組知識庫,、配伍知識庫和藥性知識庫,。每個知識庫主要包括配方參量和規(guī)則兩部分。配方參量是指開方過程中所利用的反映疾病或藥物的基本參數(shù),;規(guī)則一般是指專家的經驗知識,,表現(xiàn)了病癥與藥組、藥物與藥物之間的內在聯(lián)系,。
2.1 配方知識的表示
配方參量在不同的情況下將會有不同的取值,,為了有利于配方參量的組織和管理,本專家系統(tǒng)使用對象,、屬性,、值的三元組表示標準。對象可以是抽象的實體,,如疾病,、藥物等,屬性是與對象相關的普通特征,,如疾病的癥狀,、藥物的四氣五味等,值是指在特定環(huán)境下屬性的特殊性質,。在對癥開方系統(tǒng)中配方參量的結構定義為:
? Struct Parameter{
??? Char *ParameterObj;? //對象
??? Char *ParameterAttr;? //屬性名
?? ? Int? *ParameterType;? //屬性類型
??? Int? *ParameterNum;? //屬性值的數(shù)目
? ? Char *ParameterVal;? //屬性值
??? },;
產生式規(guī)則是應用最廣泛的知識描述方法,其表示形式為:
IF〈前提〉THEN〈結論〉|〈動作〉[〈可信度〉c]
??ELSE〈結論〉 [〈可信度〉c]
即:當前提滿足時,,得出結論或執(zhí)行動作,,其可信度是c。系統(tǒng)中規(guī)則類的定義為:
class rules{
?? Char *name;? ?? //規(guī)則名
?? Premise *clause;? ?//規(guī)則前提
?? Premise? *action;? ?//前提成立時要執(zhí)行的結論
Float *certainty;? //規(guī)則可信度
Void set_medicine();?
?? Void get_medicine();
?? Premise reference(Premise pr);
??? },;
其中,,前提是由配方參量在特定環(huán)境下取值。它是單個命題的五元組,,定義為:
Struct Premise{
?? Char *ParameterObj;? ?//對象
?? Char *ParameterAttr;? ?//屬性名
?? char *ParameterOper;? ?//關系運算符
?? Char *ParameterVal;? ?//屬性值
?? Struct Premise*next;
??? },;
2.2 配方知識庫的建立和維護
對知識進行系統(tǒng)化的組織與存儲并能夠進行有效的管理是建立專家系統(tǒng)時必須要考慮的問題。在關系數(shù)據(jù)庫" title="關系數(shù)據(jù)庫">關系數(shù)據(jù)庫的基礎上建立知識庫,,充分利用關系數(shù)據(jù)庫管理系統(tǒng)" title="管理系統(tǒng)">管理系統(tǒng)功能,,可以方便知識庫管理系統(tǒng)的設計。它通過數(shù)據(jù)庫本身的技術,,如關聯(lián),、索引等技術來實現(xiàn)簡單的知識推理,并實現(xiàn)對知識庫的維護。
從知識的邏輯表示觀點來看,,配方知識庫中只存在兩種謂詞:配方參量和規(guī)則,;而從數(shù)據(jù)的關系模型的觀點看,知識庫中存在兩種關系,,對應這兩種關系可以建立兩張表,,如表1和表2所示。
表1中定義的六個字段分別對應于參量的結構定義,。表2中的每一條規(guī)則都在特定的知識庫中,,屬性名、關系運算符和屬性值構成規(guī)則的前提,,藥組即是由前提推導出的結論,。
3 對癥開方模型的設計
根據(jù)圖1的系統(tǒng)結構,對癥開方模型分四步進行處理:
步驟1 藥組U連接,,生成主方劑
當病人或者中藥研發(fā)人員向中藥配方系統(tǒng)輸入他們需要配置中藥藥方的癥狀集時,,對癥開方模塊第一步做的處理就是為輸入的各個癥狀,從(癥-藥組)知識庫中查找各自的藥組,,然后進行一個U連接,,生成主方劑。
定義1? X操作 (藥組與藥組間的操作)
設有藥組B1=(aL, bH, dM),;B2=(aM, bH, cL)(小寫字母表示藥物名,,大寫字母表示藥劑量,以下類同),,則B1 X B2 =(aM, bH, cL, dM),,即當藥組中存在相同的藥物時合并同一藥物,,藥劑量取相同藥物中最高的一項(L
若對59 049種不同的中藥方劑進行分析,,可以發(fā)現(xiàn),其中有大量的方劑只有很細微的區(qū)別,并不具代表性,,完全可以合并,。為了組合方劑,使方劑的數(shù)量盡量地少,,而各條方劑又都具代表性,,本系統(tǒng)設計了如下的藥組連接方法:
定義2? U連接
設有n個癥狀(A1, A2, … An) (n≥1),分別從(癥-藥組)知識庫中查找到各自的藥組有:(A1,;B11, B12,…,B1i),,(A2;B21,B22,…,B2j),,(A3,;B31, B32,…,B3k)…(An;Bn1, Bn2, …,Bnl)(一個癥狀對應的藥組個數(shù):i, j,k…l≥1),,取前三位癥狀的藥組個數(shù)i,、j、k,,設y=max(i,j,k),,則這n個癥狀的U連接操作如下:
當癥狀Ax對應的藥組個數(shù)Γ(Γ≥1)小于y時,,則取Bxt=B1(Γ
(1)對用戶輸入的癥狀進行一定的限制,按照癥狀表現(xiàn)的明顯程度和影響程度從高到低輸入癥狀,,即(A1, A2,…An) n個癥狀中A1的影響和表現(xiàn)是最強的,。
(2)對已知的一個癥狀從(癥-藥組)知識庫中查找藥組時,按照藥組的支持數(shù)由高到低排列,。
通過以上的預處理再進行U連接,,便得出了比較具有代表性、數(shù)量較少的中藥方劑,。從醫(yī)學的角度看,,某種疾病一般而言有1~5種最能體現(xiàn)疾病的基本癥狀,因此,,本系統(tǒng)在生成主方劑時重新考慮了前三個癥狀,,所以有y=max(i,j,k),,前三個癥狀所擁有的藥組數(shù)決定了將生成中藥方劑的數(shù)目。
為了加深U連接操作的理解,,以圖2表示主方劑的生成過程,。
?
通過以上方法,就可以將(癥-藥組)知識庫轉換成癥狀的主方劑,。
步驟2? 應用配伍知識修正主方劑
在數(shù)據(jù)庫設計中,,可以知道配伍知識主要是收集了中藥性相克、會發(fā)生反應,、藥物組合顯毒性的規(guī)則,。這項處理起來比較簡單,關鍵問題在于如何建立知識庫,。
修正方法:把各主方劑依次和配伍知識庫中的屬性進行匹配,,如匹配成功,則說明需對主方劑添加或減去藥組中的相應藥物,,從而達到方劑的配伍修正,。
步驟3 方劑四氣調整
四氣的調整旨在為用戶開出特定四氣的中藥方劑。為了便于調整,,可將四氣分成如表3所示的幾種,,并且加以數(shù)字化。
?
經過對方劑四氣的數(shù)字化,,就可以用數(shù)字來計算方劑的平均四氣,,并可以為用戶配出一定四氣值的方劑。有關方劑的四氣計算公式如下:
在公式(3)中,,調整藥物是系統(tǒng)提供的少量幾種不影響藥性但能調整方劑四氣的中藥材,,可以供用戶選擇或系統(tǒng)推薦(按最大推薦法,即如果需要添加四氣為涼的藥物,,則選擇四氣值最低的藥物進行調整)并自動計算需要的劑量,。通過公式(3),用戶即可以得到想要的四氣方劑,。
步驟4? 方劑五味調整
中藥理論將五味分為:甘,、苦、酸,、咸、辛,。五味的調整旨在為用戶開出特定五味的中藥方劑,。為了方便調整可將五味數(shù)字化,用一個四元向量β(a, b, c, d)來表示,,如表4所示,。
?
因此,,可以得出一個方劑的五味,其計算公式如下:
根據(jù)公式(4)就可以得到已經方劑的五味向量,。由于五味中只有甘,、苦是明顯相克的,所以對五味的調整主要是對方劑甘,、苦味覺的調整,,調整的方法與四氣的調整方法相似,這里不再贅述,。
經過以上一系列過程的處理,,系統(tǒng)已經對用戶的需求開出了系統(tǒng)認為最佳的方劑。
4 對癥開方模型的實現(xiàn)
對癥開方系統(tǒng)運行于Windows操作系統(tǒng)上,,采用了B/S結構,,Tomcat5.5 作為Web服務器,SQL Sever2000作為系統(tǒng)數(shù)據(jù)庫,,用Java Server Page(JSP) 及JavaBean技術編寫而成,。用戶只需根據(jù)上述對癥開方流程在操作界面內輸入相應參數(shù),系統(tǒng)就可自動生成中藥方劑,。例如,,用戶在完成輸入如下四個癥狀:鼻塞、咳嗽,、發(fā)熱和頭痛,;方劑四氣設置為:微溫;方劑五味設置為微甘等步驟后,,系統(tǒng)就會針對所輸入癥狀給出如圖3所示的推薦的中藥方劑,。
?
本文重點研究了中醫(yī)藥的對癥開方模型,該模型是數(shù)據(jù)挖掘技術與中醫(yī)配伍理論相結合的結果,。中醫(yī)藥與計算機的結合是全新的中藥配伍方法,。它通過對藥組進行U連接產生主方劑,再經配伍修正,、四氣,、五味調整,實現(xiàn)了對癥開方功能,,成功地為用戶開出治療特定癥狀的量化中藥方劑,,以此形式為病人、中藥研發(fā)人員提供強有力的決策支持,,也為中醫(yī)藥現(xiàn)代化建設做出了貢獻,。
參考文獻
[1] ?邵虹,崔文成,,張繼武,,等.醫(yī)療診斷專家系統(tǒng)研究進展[J]. 小型微型計算機系統(tǒng),,2003,24(3):509-512.
[2] ?林媛,,陳新,,崔智.面向對象的醫(yī)療診斷推理機設計[J].?計算機應用" title="計算機應用">計算機應用與軟件,2001,,18(1):5-9.
[3] ?張紅梅,,王永成.一個仿人疾病診斷專家系統(tǒng)模型[J].?計算機應用研究,2000,,(1):41-43.
[4] ?譚義紅,,陳治平,李學勇.基于決策樹?的中毒診斷專家系統(tǒng)實現(xiàn)[J]. 計算機應用,,2005,,(10):2315-2317.
[5] ?朱金偉,鞠時光,,辛燕.基于數(shù)據(jù)挖掘?的中醫(yī)藥數(shù)據(jù)預處理方法[J].計算機工程,,2006,32(15):280-282.
[6] ?辛燕,鞠時光.基于多維數(shù)據(jù)模型的交叉層關聯(lián)規(guī)則挖掘[J]. 小型微型計算機系統(tǒng),,2006,,27(4):681-686.
?