《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > 基于知識(shí)的中醫(yī)藥對(duì)癥開(kāi)方專家系統(tǒng)

基于知識(shí)的中醫(yī)藥對(duì)癥開(kāi)方專家系統(tǒng)

2008-11-21
作者:鄒志文, 朱金偉, 鞠時(shí)光

  摘 要:數(shù)據(jù)挖掘" title="數(shù)據(jù)挖掘">數(shù)據(jù)挖掘得出的知識(shí)庫(kù)基礎(chǔ)上,結(jié)合中藥方劑配伍理論及組方過(guò)程,提出了方劑配方模型,采用自定義的U連接操作生成主方劑,用中藥配伍規(guī)則修正主方劑中的藥物相克、有毒等不正?,F(xiàn)象,再對(duì)方劑的四氣、五味進(jìn)行數(shù)字化調(diào)整,成功為用戶開(kāi)出治療特定癥狀的量化中藥方劑,切實(shí)為醫(yī)生及中藥研發(fā)人員提供計(jì)算機(jī)輔助決策支持。
  關(guān)鍵詞: 中醫(yī)藥; 配方模型; 知識(shí)管理; 決策支持

?

  自人工智能技術(shù)誕生以來(lái),專家系統(tǒng)一直是最活躍的分支之一,而醫(yī)療也一直是專家系統(tǒng)的典型實(shí)際應(yīng)用領(lǐng)域。在此中,疾病診斷系統(tǒng)是近年來(lái)的研究熱點(diǎn),眾多學(xué)者已先后提出多種疾病診斷模型[1-4]。然而,對(duì)癥開(kāi)方系統(tǒng)尤其是中藥配方系統(tǒng)卻少有人涉及。中醫(yī)藥是我國(guó)的國(guó)粹,經(jīng)過(guò)數(shù)千年的發(fā)展,它積累了豐富的經(jīng)驗(yàn),擁有浩瀚的文獻(xiàn),運(yùn)用最新科學(xué)技術(shù)來(lái)促進(jìn)中醫(yī)藥的國(guó)際化、現(xiàn)代化已成為中醫(yī)發(fā)展的必然趨勢(shì)。
  為此,作者初步研制了中醫(yī)藥應(yīng)用決策支持系統(tǒng)。該系統(tǒng)是數(shù)據(jù)挖掘技術(shù)與中醫(yī)配伍理論相結(jié)合的結(jié)果。系統(tǒng)首先從原始的中藥專利數(shù)據(jù)庫(kù)中提取數(shù)據(jù)加以預(yù)處理,再經(jīng)數(shù)據(jù)挖掘得到有用的知識(shí)組建配方知識(shí)庫(kù)[5-6];然后用本文提出的對(duì)癥開(kāi)方模型為用戶自動(dòng)開(kāi)出中藥方劑,從而達(dá)到?jīng)Q策支持的目的。這種方法智能而且高效,是人為中藥配伍所不及的。
1 對(duì)癥開(kāi)方系統(tǒng)結(jié)構(gòu)
  對(duì)癥開(kāi)方系統(tǒng)模型結(jié)構(gòu)圖如圖1所示。從圖中可以看出,對(duì)癥開(kāi)方模型針對(duì)病人或中藥研發(fā)人員輸入的癥狀集,從配方知識(shí)庫(kù)中匹配癥狀,生成初始主方劑;然后應(yīng)用配伍知識(shí)對(duì)主方劑進(jìn)行修正;最終生成期望的中藥方劑??梢?jiàn),其最核心的部分是配方知識(shí)庫(kù),下面介紹該模型的知識(shí)表示。

?

2 配方知識(shí)管理
  本模型中的知識(shí)庫(kù)分為三大類:癥-藥組知識(shí)庫(kù)、配伍知識(shí)庫(kù)和藥性知識(shí)庫(kù)。每個(gè)知識(shí)庫(kù)主要包括配方參量和規(guī)則兩部分。配方參量是指開(kāi)方過(guò)程中所利用的反映疾病或藥物的基本參數(shù);規(guī)則一般是指專家的經(jīng)驗(yàn)知識(shí),表現(xiàn)了病癥與藥組、藥物與藥物之間的內(nèi)在聯(lián)系。
2.1 配方知識(shí)的表示
  配方參量在不同的情況下將會(huì)有不同的取值,為了有利于配方參量的組織和管理,本專家系統(tǒng)使用對(duì)象、屬性、值的三元組表示標(biāo)準(zhǔn)。對(duì)象可以是抽象的實(shí)體,如疾病、藥物等,屬性是與對(duì)象相關(guān)的普通特征,如疾病的癥狀、藥物的四氣五味等,值是指在特定環(huán)境下屬性的特殊性質(zhì)。在對(duì)癥開(kāi)方系統(tǒng)中配方參量的結(jié)構(gòu)定義為:
?  Struct Parameter{
???  Char *ParameterObj;? //對(duì)象
 ??? Char *ParameterAttr;? //屬性名
?? ? Int? *ParameterType;? //屬性類型
???  Int? *ParameterNum;? //屬性值的數(shù)目
? ?  Char *ParameterVal;? //屬性值
???    };
  產(chǎn)生式規(guī)則是應(yīng)用最廣泛的知識(shí)描述方法,其表示形式為:
  IF〈前提〉THEN〈結(jié)論〉|〈動(dòng)作〉[〈可信度〉c]
 ??ELSE〈結(jié)論〉 [〈可信度〉c]
  即:當(dāng)前提滿足時(shí),得出結(jié)論或執(zhí)行動(dòng)作,其可信度是c。系統(tǒng)中規(guī)則類的定義為:
  class rules{
??  Char *name;? ??  //規(guī)則名
 ?? Premise *clause;? ?//規(guī)則前提
??  Premise? *action;? ?//前提成立時(shí)要執(zhí)行的結(jié)論
   Float *certainty;? //規(guī)則可信度
   Void set_medicine();?
??  Void get_medicine();
??  Premise reference(Premise pr);
???   };
  其中,前提是由配方參量在特定環(huán)境下取值。它是單個(gè)命題的五元組,定義為:
  Struct Premise{
??  Char *ParameterObj;? ?//對(duì)象
??  Char *ParameterAttr;? ?//屬性名
??  char *ParameterOper;? ?//關(guān)系運(yùn)算符
??  Char *ParameterVal;? ?//屬性值
??  Struct Premise*next;
???   };
2.2 配方知識(shí)庫(kù)的建立和維護(hù)
  對(duì)知識(shí)進(jìn)行系統(tǒng)化的組織與存儲(chǔ)并能夠進(jìn)行有效的管理是建立專家系統(tǒng)時(shí)必須要考慮的問(wèn)題。在關(guān)系數(shù)據(jù)庫(kù)" title="關(guān)系數(shù)據(jù)庫(kù)">關(guān)系數(shù)據(jù)庫(kù)的基礎(chǔ)上建立知識(shí)庫(kù),充分利用關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)" title="管理系統(tǒng)">管理系統(tǒng)功能,可以方便知識(shí)庫(kù)管理系統(tǒng)的設(shè)計(jì)。它通過(guò)數(shù)據(jù)庫(kù)本身的技術(shù),如關(guān)聯(lián)、索引等技術(shù)來(lái)實(shí)現(xiàn)簡(jiǎn)單的知識(shí)推理,并實(shí)現(xiàn)對(duì)知識(shí)庫(kù)的維護(hù)。
  從知識(shí)的邏輯表示觀點(diǎn)來(lái)看,配方知識(shí)庫(kù)中只存在兩種謂詞:配方參量和規(guī)則;而從數(shù)據(jù)的關(guān)系模型的觀點(diǎn)看,知識(shí)庫(kù)中存在兩種關(guān)系,對(duì)應(yīng)這兩種關(guān)系可以建立兩張表,如表1和表2所示。

  表1中定義的六個(gè)字段分別對(duì)應(yīng)于參量的結(jié)構(gòu)定義。表2中的每一條規(guī)則都在特定的知識(shí)庫(kù)中,屬性名、關(guān)系運(yùn)算符和屬性值構(gòu)成規(guī)則的前提,藥組即是由前提推導(dǎo)出的結(jié)論。
3 對(duì)癥開(kāi)方模型的設(shè)計(jì)
  根據(jù)圖1的系統(tǒng)結(jié)構(gòu),對(duì)癥開(kāi)方模型分四步進(jìn)行處理:

  步驟1 藥組U連接,生成主方劑
  當(dāng)病人或者中藥研發(fā)人員向中藥配方系統(tǒng)輸入他們需要配置中藥藥方的癥狀集時(shí),對(duì)癥開(kāi)方模塊第一步做的處理就是為輸入的各個(gè)癥狀,從(癥-藥組)知識(shí)庫(kù)中查找各自的藥組,然后進(jìn)行一個(gè)U連接,生成主方劑。
  定義1? X操作 (藥組與藥組間的操作)
  設(shè)有藥組B1=(aL, bH, dM);B2=(aM, bH, cL)(小寫(xiě)字母表示藥物名,大寫(xiě)字母表示藥劑量,以下類同),則B1 X B2 =(aM, bH, cL, dM),即當(dāng)藥組中存在相同的藥物時(shí)合并同一藥物,藥劑量取相同藥物中最高的一項(xiàng)(L  通過(guò)對(duì)各個(gè)癥狀對(duì)應(yīng)的藥組進(jìn)行X操作,就可以得到治療癥狀集的中藥主方劑。但是仍然存在如下問(wèn)題:規(guī)則中,同一個(gè)癥狀可能對(duì)應(yīng)有幾個(gè)不同的藥組(一般會(huì)得到1~3個(gè)藥組),這樣,假設(shè)用戶輸入" title="用戶輸入">用戶輸入的癥狀共有10個(gè),最壞的情況(每個(gè)癥狀對(duì)應(yīng)的藥組為3個(gè))下,如果通過(guò)從每個(gè)癥狀中選取一個(gè)藥組來(lái)組成中藥方劑,則一共有310=59 049個(gè)不同的中藥方劑。如果在這么多的方劑中要人為去選擇,就不可能提供良好的決策支持。
  若對(duì)59 049種不同的中藥方劑進(jìn)行分析,可以發(fā)現(xiàn),其中有大量的方劑只有很細(xì)微的區(qū)別,并不具代表性,完全可以合并。為了組合方劑,使方劑的數(shù)量盡量地少,而各條方劑又都具代表性,本系統(tǒng)設(shè)計(jì)了如下的藥組連接方法:
  定義2? U連接
  設(shè)有n個(gè)癥狀(A1, A2, … An) (n≥1),分別從(癥-藥組)知識(shí)庫(kù)中查找到各自的藥組有:(A1;B11, B12,…,B1i),(A2;B21,B22,…,B2j),(A3;B31, B32,…,B3k)…(An;Bn1, Bn2, …,Bnl)(一個(gè)癥狀對(duì)應(yīng)的藥組個(gè)數(shù):i, j,k…l≥1),取前三位癥狀的藥組個(gè)數(shù)i、j、k,設(shè)y=max(i,j,k),則這n個(gè)癥狀的U連接操作如下:
    

  當(dāng)癥狀A(yù)x對(duì)應(yīng)的藥組個(gè)數(shù)Γ(?!?)小于y時(shí),則取Bxt=B1  因此,通過(guò)把用戶輸入的癥狀進(jìn)行U連接,可以得到中藥方劑個(gè)數(shù)為y。為了更明顯地區(qū)分各個(gè)方劑的代表性,再做如下預(yù)處理:
  (1)對(duì)用戶輸入的癥狀進(jìn)行一定的限制,按照癥狀表現(xiàn)的明顯程度和影響程度從高到低輸入癥狀,即(A1, A2,…An) n個(gè)癥狀中A1的影響和表現(xiàn)是最強(qiáng)的。
  (2)對(duì)已知的一個(gè)癥狀從(癥-藥組)知識(shí)庫(kù)中查找藥組時(shí),按照藥組的支持?jǐn)?shù)由高到低排列。
通過(guò)以上的預(yù)處理再進(jìn)行U連接,便得出了比較具有代表性、數(shù)量較少的中藥方劑。從醫(yī)學(xué)的角度看,某種疾病一般而言有1~5種最能體現(xiàn)疾病的基本癥狀,因此,本系統(tǒng)在生成主方劑時(shí)重新考慮了前三個(gè)癥狀,所以有y=max(i,j,k),前三個(gè)癥狀所擁有的藥組數(shù)決定了將生成中藥方劑的數(shù)目。
  為了加深U連接操作的理解,以圖2表示主方劑的生成過(guò)程。

?


  通過(guò)以上方法,就可以將(癥-藥組)知識(shí)庫(kù)轉(zhuǎn)換成癥狀的主方劑。
  步驟2? 應(yīng)用配伍知識(shí)修正主方劑
  在數(shù)據(jù)庫(kù)設(shè)計(jì)中,可以知道配伍知識(shí)主要是收集了中藥性相克、會(huì)發(fā)生反應(yīng)、藥物組合顯毒性的規(guī)則。這項(xiàng)處理起來(lái)比較簡(jiǎn)單,關(guān)鍵問(wèn)題在于如何建立知識(shí)庫(kù)。
  修正方法:把各主方劑依次和配伍知識(shí)庫(kù)中的屬性進(jìn)行匹配,如匹配成功,則說(shuō)明需對(duì)主方劑添加或減去藥組中的相應(yīng)藥物,從而達(dá)到方劑的配伍修正。
  步驟3 方劑四氣調(diào)整
  四氣的調(diào)整旨在為用戶開(kāi)出特定四氣的中藥方劑。為了便于調(diào)整,可將四氣分成如表3所示的幾種,并且加以數(shù)字化。

?


  經(jīng)過(guò)對(duì)方劑四氣的數(shù)字化,就可以用數(shù)字來(lái)計(jì)算方劑的平均四氣,并可以為用戶配出一定四氣值的方劑。有關(guān)方劑的四氣計(jì)算公式如下:
 

  

  在公式(3)中,調(diào)整藥物是系統(tǒng)提供的少量幾種不影響藥性但能調(diào)整方劑四氣的中藥材,可以供用戶選擇或系統(tǒng)推薦(按最大推薦法,即如果需要添加四氣為涼的藥物,則選擇四氣值最低的藥物進(jìn)行調(diào)整)并自動(dòng)計(jì)算需要的劑量。通過(guò)公式(3),用戶即可以得到想要的四氣方劑。
  步驟4? 方劑五味調(diào)整
  中藥理論將五味分為:甘、苦、酸、咸、辛。五味的調(diào)整旨在為用戶開(kāi)出特定五味的中藥方劑。為了方便調(diào)整可將五味數(shù)字化,用一個(gè)四元向量β(a, b, c, d)來(lái)表示,如表4所示。

?


  因此,可以得出一個(gè)方劑的五味,其計(jì)算公式如下:
    
  根據(jù)公式(4)就可以得到已經(jīng)方劑的五味向量。由于五味中只有甘、苦是明顯相克的,所以對(duì)五味的調(diào)整主要是對(duì)方劑甘、苦味覺(jué)的調(diào)整,調(diào)整的方法與四氣的調(diào)整方法相似,這里不再贅述。
  經(jīng)過(guò)以上一系列過(guò)程的處理,系統(tǒng)已經(jīng)對(duì)用戶的需求開(kāi)出了系統(tǒng)認(rèn)為最佳的方劑。
4 對(duì)癥開(kāi)方模型的實(shí)現(xiàn)
  對(duì)癥開(kāi)方系統(tǒng)運(yùn)行于Windows操作系統(tǒng)上,采用了B/S結(jié)構(gòu),Tomcat5.5 作為Web服務(wù)器,SQL Sever2000作為系統(tǒng)數(shù)據(jù)庫(kù),用Java Server Page(JSP) 及JavaBean技術(shù)編寫(xiě)而成。用戶只需根據(jù)上述對(duì)癥開(kāi)方流程在操作界面內(nèi)輸入相應(yīng)參數(shù),系統(tǒng)就可自動(dòng)生成中藥方劑。例如,用戶在完成輸入如下四個(gè)癥狀:鼻塞、咳嗽、發(fā)熱和頭痛;方劑四氣設(shè)置為:微溫;方劑五味設(shè)置為微甘等步驟后,系統(tǒng)就會(huì)針對(duì)所輸入癥狀給出如圖3所示的推薦的中藥方劑。

?

  本文重點(diǎn)研究了中醫(yī)藥的對(duì)癥開(kāi)方模型,該模型是數(shù)據(jù)挖掘技術(shù)與中醫(yī)配伍理論相結(jié)合的結(jié)果。中醫(yī)藥與計(jì)算機(jī)的結(jié)合是全新的中藥配伍方法。它通過(guò)對(duì)藥組進(jìn)行U連接產(chǎn)生主方劑,再經(jīng)配伍修正、四氣、五味調(diào)整,實(shí)現(xiàn)了對(duì)癥開(kāi)方功能,成功地為用戶開(kāi)出治療特定癥狀的量化中藥方劑,以此形式為病人、中藥研發(fā)人員提供強(qiáng)有力的決策支持,也為中醫(yī)藥現(xiàn)代化建設(shè)做出了貢獻(xiàn)。

參考文獻(xiàn)
[1] ?邵虹,崔文成,張繼武,等.醫(yī)療診斷專家系統(tǒng)研究進(jìn)展[J]. 小型微型計(jì)算機(jī)系統(tǒng),2003,24(3):509-512.
[2] ?林媛,陳新,崔智.面向?qū)ο蟮尼t(yī)療診斷推理機(jī)設(shè)計(jì)[J].?計(jì)算機(jī)應(yīng)用" title="計(jì)算機(jī)應(yīng)用">計(jì)算機(jī)應(yīng)用與軟件,2001,18(1):5-9.
[3] ?張紅梅,王永成.一個(gè)仿人疾病診斷專家系統(tǒng)模型[J].?計(jì)算機(jī)應(yīng)用研究,2000,(1):41-43.
[4] ?譚義紅,陳治平,李學(xué)勇.基于決策樹(shù)?的中毒診斷專家系統(tǒng)實(shí)現(xiàn)[J]. 計(jì)算機(jī)應(yīng)用,2005,(10):2315-2317.
[5] ?朱金偉,鞠時(shí)光,辛燕.基于數(shù)據(jù)挖掘?的中醫(yī)藥數(shù)據(jù)預(yù)處理方法[J].計(jì)算機(jī)工程,2006,32(15):280-282.
[6] ?辛燕,鞠時(shí)光.基于多維數(shù)據(jù)模型的交叉層關(guān)聯(lián)規(guī)則挖掘[J]. 小型微型計(jì)算機(jī)系統(tǒng),2006,27(4):681-686.

?

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。