本發(fā)明涉及中醫(yī)藥信息檢索領(lǐng)域,特別涉及一種基于LDA主題模型的中醫(yī)藥數(shù)據(jù)挖掘方法。
背景技術(shù):本發(fā)明涉及機(jī)器學(xué)習(xí)領(lǐng)域內(nèi)主題模型的相關(guān)內(nèi)容,主要有向量空間模型,奇異值分解與LSA,概率隱含語義分析pLSA,潛在狄利克雷分配LDA等。向量空間模型被廣泛應(yīng)用在信息檢索領(lǐng)域,最初由Salton在TREC項(xiàng)目中使用BOW(BagOfWords)模型,即文檔中單詞具有可交換性(Exchangeability)來刻畫單詞和文本的關(guān)系。在他的模型中,單詞的語義是獨(dú)立于文本的,每個(gè)單詞是單詞空間中的一個(gè)維度,用這樣的方法可以描述整個(gè)語料庫(文檔的集合)。潛在語義分析(LatentSemanticAnalysis)就是在文檔和單詞之間引入一個(gè)隱含語義層,原有的文檔-單詞關(guān)系變成了文檔-隱含語義-單詞。它使用奇異值分解(SVD,singularvaluedecomposition)來挖掘這個(gè)層隱含的關(guān)系。類似于LSA,概率隱含語義分析(pLSA,ProbabilityLatentSemanticAnalysis)也在文檔-單詞之間引入了一個(gè)隱含語義空間,不過pLSA是用概率模型來描繪的。在pLSA中,文本是由共現(xiàn)矩陣表達(dá),即(d,w)對。其中(di,wj)表示文檔di和單詞wj共同出現(xiàn),即文檔標(biāo)號(hào)為i的文檔里面出現(xiàn)了單詞j。這里需要強(qiáng)調(diào)的是Bag-Of-Words模型忽略掉文檔里面單詞出現(xiàn)次序,語料庫里面的文檔的次序默認(rèn)也是忽略的。潛在狄利克雷分配LDA是一種層次貝葉斯模型。它的概率圖模型如圖1所示。圖中M表示文檔的總數(shù)目,N是一個(gè)文檔中的單詞數(shù)目。α是每個(gè)文檔的主題分布的狄利克雷先驗(yàn)參數(shù),β是每個(gè)主題的單詞分布的狄利克雷先驗(yàn)參數(shù),即P(w|z);θ是語料庫中的每個(gè)文檔與T個(gè)主題的多項(xiàng)分布(MultinomialDistribution)??梢钥闯鯨DA是一個(gè)三層貝葉斯概率模型,它和PLSA最大的區(qū)別是增加了對主題的混合權(quán)重θ引進(jìn)了Dirichlet先驗(yàn),用一個(gè)超參數(shù)(即參數(shù)的參數(shù))α來產(chǎn)生參數(shù)θ。由于中醫(yī)藥處方/藥物數(shù)據(jù)具有其特殊性:中醫(yī)藥處方/藥物成分記錄不完全符合BOW模型,因此采用上述方法對現(xiàn)有的中藥處方進(jìn)行信息檢索無法準(zhǔn)確地得到中藥處方/藥物數(shù)據(jù),因此,需要開發(fā)一種可以進(jìn)一步準(zhǔn)確地挖掘處方/藥物數(shù)據(jù)的方法。
技術(shù)實(shí)現(xiàn)要素:本發(fā)明針對現(xiàn)有方法無法有效地得到中醫(yī)藥處方中隱含的關(guān)系信息的缺點(diǎn),提供了一種新型的基于LDA主題模型的中醫(yī)藥數(shù)據(jù)挖掘方法。為實(shí)現(xiàn)上述目的,本發(fā)明可采取下述技術(shù)方案:基于LDA主題模型的中醫(yī)藥數(shù)據(jù)挖掘方法,包括以下具體步驟:1)先在LDA模型中確定處方-主題和主題-藥劑兩組先驗(yàn),處方-主題和主題-藥劑分別由超參數(shù)α和β確定,使用AS方式對兩組先驗(yàn)進(jìn)行先驗(yàn)假設(shè),所述AS方式為:處方-主題分布采用非對稱的先驗(yàn),主題-藥劑分布采用對稱的先驗(yàn);2)確定LDA模型中的主題數(shù)目;3)采用Gibbs采樣方法對上述LDA模型進(jìn)行求解;4)生成LDA模型的語義RDF文檔,所述語義RDF文檔包括一個(gè)四元組集合,所述四元組包括主體,謂詞,客體,權(quán)重,將LDA模型的結(jié)果映射至四元組,并用語義RDF文檔進(jìn)行表示;5)將藥劑和處方進(jìn)行關(guān)聯(lián),建立處方-主題-藥劑的可視化結(jié)構(gòu)網(wǎng)絡(luò)G,該結(jié)構(gòu)網(wǎng)絡(luò)G由頂點(diǎn)集合V和邊集合E組成,即G=(V,E),頂點(diǎn)集合V是包含處方、主題和藥劑的本體的集合,邊集合E是主題和藥劑之間的關(guān)系的集合,其中,建立可視化結(jié)構(gòu)網(wǎng)絡(luò)G的步驟包括:對于語義RDF文檔中的四元組集合中的每一個(gè)四元組,如果該四元組的權(quán)重高于預(yù)設(shè)的概率閾值p,則將該四元組加入所述可視化結(jié)構(gòu)網(wǎng)絡(luò)G中,將該四元組的主體和客體并入頂點(diǎn)集合V,將該四元組的謂詞并入邊集合E,當(dāng)全部四元組均加入所述可視化結(jié)構(gòu)網(wǎng)絡(luò)G后,即得到最終的中醫(yī)藥主題模型網(wǎng)絡(luò)圖。作為優(yōu)選,還包括預(yù)處理步驟:將所有處方劃分為T個(gè)主題,用θz表示每個(gè)主題z在藥劑庫V上的多項(xiàng)分布,用φd表示每個(gè)處方d對T個(gè)主題的多項(xiàng)分布,其中,處方d的生成方式包括:采樣φd~Dir(α),對于處方中的每個(gè)藥劑w,采樣一個(gè)主題標(biāo)簽z~Multi(φd),并生成與該主題標(biāo)簽z相對應(yīng)的w~Multi(θz),其中θ(.)~Dir(β),Dir表示狄利克雷分布,Multi表示多項(xiàng)分布。作為優(yōu)選,所述步驟3還包括以下具體步驟:預(yù)處理:進(jìn)行中藥處方文檔轉(zhuǎn)換,修改文檔向量集合{w}使得得到{w′},其中重量(wm,n)為處方中藥劑的重量,重量(dm)為每個(gè)處方的重量;初始化:遍歷每個(gè)中藥處方文檔中的每一個(gè)單詞,對Zm,n采樣,使得Zm,n=k~Multi(1/k),令文檔-主題計(jì)數(shù)加1,令主題-單詞計(jì)數(shù)加1,令文檔-主題計(jì)數(shù)nm加1,令主題-單詞計(jì)數(shù)nk加1;Gibbs采樣:遍歷每個(gè)中藥處方文檔中的每一個(gè)單詞,令計(jì)數(shù)nm、nk分別減1;令當(dāng)前單詞滿足令計(jì)數(shù)分別加1;檢查收斂性,如果收斂且未達(dá)到迭代次數(shù)上限,分別從參數(shù)集合Φ和Θ中讀取參數(shù);其中,{w}為文檔向量集合,K為主題數(shù)目,{nm},{nk}分別為計(jì)數(shù)統(tǒng)計(jì)及其計(jì)數(shù)和,{p(zi|.)}為條件概率數(shù)組,{z}為主題相關(guān)度集合,Φ、Θ分別為多項(xiàng)分布參數(shù)集合。本發(fā)明由于采用了以上技術(shù)方案,具有顯著的技術(shù)效果:采用藥劑重量而非普通文檔中的詞頻進(jìn)行數(shù)據(jù)處理,并相應(yīng)地改進(jìn)了Gibbs-LDA算法來適應(yīng)上述對數(shù)據(jù)處理手段的變更,達(dá)到準(zhǔn)確地求解中醫(yī)藥處方數(shù)據(jù)的LDA模型參數(shù)的目的,同時(shí),將處理所得到的數(shù)據(jù)采用結(jié)構(gòu)網(wǎng)絡(luò)的方式輸出,更易于可視化操作,可以準(zhǔn)確地表達(dá)出中醫(yī)藥處方和藥劑之間的特殊關(guān)聯(lián),從而解決了現(xiàn)有技術(shù)無法對其進(jìn)行準(zhǔn)確分析的難題。進(jìn)一步地,通過改進(jìn)現(xiàn)有的Gibbs采樣方法,令推導(dǎo)過程得以簡化,求解效果良好,并減少了數(shù)據(jù)處理的時(shí)間。附圖說明圖1為潛在狄利克雷分配LDA的概率圖模型示意圖。圖2為中醫(yī)藥主題模型網(wǎng)絡(luò)結(jié)果示意圖。圖3為本發(fā)明所使用的數(shù)據(jù)挖掘系統(tǒng)的結(jié)構(gòu)示意圖。具體實(shí)施方式下面結(jié)合實(shí)施例對本發(fā)明作進(jìn)一步的詳細(xì)描述。實(shí)施例1本發(fā)明使用基于B/S架構(gòu)的數(shù)據(jù)挖掘系統(tǒng),如圖3所示,該應(yīng)用系統(tǒng)包括服務(wù)端和客戶端,其中,客戶端為應(yīng)用層,包括第三方平臺(tái)的數(shù)據(jù)挖掘應(yīng)用模塊,數(shù)據(jù)挖掘方案制定模塊和方案執(zhí)行模塊。服務(wù)端包括服務(wù)層、匯聚層和資源層,其中,服務(wù)層包括公用數(shù)據(jù)挖掘接口和DartSpora系統(tǒng)調(diào)用接口,匯聚層包括資源管理模塊、權(quán)限管理模塊和挖掘方案管理模塊,資源層包括數(shù)據(jù)庫、本地文件系統(tǒng)、分布式文件系統(tǒng)、數(shù)據(jù)挖掘算法庫、并行分布式數(shù)據(jù)挖掘算法庫和領(lǐng)域相關(guān)數(shù)據(jù)挖掘算法庫。服務(wù)端,資源層與匯聚層之間的數(shù)據(jù)傳輸格式為JDBC、JSDL、ExampleSet等格式,其中ExampleSet為自定義序列化格式,可以用于算子之間數(shù)據(jù)傳輸;匯聚層與服務(wù)層之間傳輸?shù)臄?shù)據(jù)格式為XML,所有的算子(Operator)和實(shí)驗(yàn)都是通過XML來配置的;服務(wù)端和客戶端與一般WEB容器類似,主要傳輸HTML、js、圖片等靜態(tài)文件和Ajax使用到的XML、JSON格式的動(dòng)態(tài)數(shù)據(jù)。假設(shè)所有處方的集合一共有T個(gè)主題,每個(gè)主題用z表示為藥劑庫V上面的多項(xiàng)分布θz;進(jìn)一步假設(shè)每個(gè)處方d對這T個(gè)主題也是一個(gè)多項(xiàng)分布φd。由于處方的來源是不同的醫(yī)師所開出的藥方,這些藥方被上傳到本地文件系統(tǒng)或者分布式文件系統(tǒng)內(nèi),對藥方/藥劑的數(shù)據(jù)關(guān)聯(lián)進(jìn)行挖掘的過程,也同時(shí)是一個(gè)對所有的中醫(yī)藥藥方的數(shù)據(jù)進(jìn)行檢索的過程。下面描述一個(gè)處方的生成過程:對不同的服務(wù)器中的藥方進(jìn)行采樣φd~Dir(α);對于處方中的每個(gè)藥劑w,進(jìn)行以下操作:采樣一個(gè)主題標(biāo)簽z~Multi(φd);生成對應(yīng)的w~Multi(θz)。其中θ(.)~Dir(β),Dir表示狄利克雷分布,Multi表示多項(xiàng)分布。將上述處方應(yīng)用與以下的中醫(yī)藥數(shù)據(jù)挖掘。先驗(yàn)的假定。在中醫(yī)藥LDA模型中,有處方-主題、主題-藥劑兩組先驗(yàn),他們由超參數(shù)alpha和beta確定。實(shí)際上pLSA是LDA模型的MAP(MaximumAPosteriori)估計(jì),先驗(yàn)采用的是對稱的狄利克雷概率。先驗(yàn)假設(shè)有兩種方式:1)一個(gè)對稱的(Symmetry);2)另外一個(gè)是非對稱的(Asymmetric)。他們一共有四種組合:AA:處方-主題、主題-藥劑分布都采用非對稱的先驗(yàn);AS:處方-主題分布采用非對稱的先驗(yàn),而主題-藥劑分布采用對稱的先驗(yàn);SA:處方-主題分布采用對稱的先驗(yàn),而主題-藥劑分布采用非對稱的先驗(yàn);SS:處方-主題、主題-藥劑都采用對稱的先驗(yàn);我們采用上述的AS的方式。確定LDA主題模型中主題的數(shù)目,這是該模型非常關(guān)鍵的一個(gè)問題。由于中醫(yī)藥理論體系中的一個(gè)重要分支是五行理論,所以我們將中醫(yī)藥主題模型的主題數(shù)目設(shè)為5.改進(jìn)Gibbs采樣方法。標(biāo)準(zhǔn)的LDA的模型求解過程是一個(gè)最優(yōu)化的問題,一般采用極大似然估計(jì)法。實(shí)際中一般使用以下三種不精確的方法進(jìn)行模型的求解:基于Gibbs采樣的方法;基于變分法的期望最大化(EM)方法;基于期望推薦的方法。基于Gibbs采樣的方法推導(dǎo)起來簡單,并且求解效果良好,但是一般的Gibbs-LDA算法是用于處理文本數(shù)據(jù)的,而中醫(yī)藥處方/藥物數(shù)據(jù)具有其特殊性:中醫(yī)藥處方/藥物成分記錄不完全符合BOW模型,因?yàn)槠渌巹┐蠖嗍峭ㄟ^重量來描述的,而不是普通文檔中的詞頻。所以需要改進(jìn)Gibbs-LDA算法來求解中醫(yī)藥處方數(shù)據(jù)的LDA模型參數(shù)。生成主題模型的語義RDF(ResourceDescriptionFramework)文檔。統(tǒng)一資源描述框架RDF是用于描述網(wǎng)絡(luò)資源的W3C標(biāo)準(zhǔn),它使用XML進(jìn)行編寫,包含一組三元組(Triple),即:一個(gè)主體(Subject)、一個(gè)謂詞(Predicate或?qū)傩?,Property)和一個(gè)客體(Object)。由于通過主題模型挖掘所得的結(jié)果中含有權(quán)重,為了表達(dá)方便,這里可以將RDF擴(kuò)展為四元組(主體,客體,謂詞,權(quán)重),從而我們便可以將主題模型挖掘所得的結(jié)果用四元組的RDF圖來進(jìn)行表達(dá)了。主題模型可視化,如圖1所示,中藥藥劑和處方的關(guān)系可以關(guān)聯(lián)起來,讀取本地文件系統(tǒng)或者分布式文件系統(tǒng)上的藥方,并建立一個(gè)處方-主題-藥劑網(wǎng)絡(luò),該網(wǎng)絡(luò)能夠展示他們?nèi)叩年P(guān)系。假設(shè)最終網(wǎng)絡(luò)圖G是由頂點(diǎn)集合V和邊集合E組成,即G=<E,V>,頂點(diǎn)V是本體(ontology)的集合,包含處方、主題和藥劑,即V=...;邊集合E是由處方-主題的關(guān)系,主題-藥劑的關(guān)系E之間的邊的集合,即E=....。中醫(yī)藥主題模型網(wǎng)絡(luò)圖生產(chǎn)算法如下:算法:GRAPH-GENERATE輸入:語義RDF文檔中的四元組集合{w},概率閾值p輸出:中醫(yī)藥主題模型網(wǎng)絡(luò)圖G=(V,E)forw∈{w}doifw權(quán)重>pthen將該條記錄加入結(jié)果:1.V=V∪Wsubject∪Wobject2.E=E∪Wpredicatedone在中醫(yī)藥數(shù)據(jù)中,由于處方/藥物包含的中草藥藥劑并不是以“詞頻”的形式來表示其在這個(gè)文檔中的“重要性”即p(w|d),而一個(gè)處方/藥物里面的中草藥并沒有“詞頻”這個(gè)概念,一個(gè)中草藥一般只出現(xiàn)一次,所以,如果直接采用Gibbs-LDA算法,各個(gè)一個(gè)文檔中的詞頻都是相等的,這樣不能夠很好地對實(shí)際情況進(jìn)行建模,所以需要對原始的Gibbs-LDA算法進(jìn)行改進(jìn)。一個(gè)簡單而有效的方法是利用中草藥重量信息,一個(gè)處方/藥物里面中草藥的重量占比更能夠很好地描述它在這個(gè)處方/藥劑里面的重要程度(實(shí)際中,藥物的作用機(jī)理是中草藥里面的化學(xué)成分的含量,為了簡化模型,這里使用中草藥藥劑重量來描述它的重要程度)。改進(jìn)的Gibbs-LDA算法主要過程如下:算法Improved-GibbsLDA({w},α,β,K)輸入:文檔向量集合{w}(其中,文檔向量集合{w}是藥物/處方的集合,通過映射存儲(chǔ)于本地文件系統(tǒng)或者分布式文件系統(tǒng)內(nèi)的處方的集合可以得到上述文檔向量集合{w}),超參數(shù)α,β,主題數(shù)目K全局?jǐn)?shù)據(jù):計(jì)數(shù)統(tǒng)計(jì)及其計(jì)數(shù)和{nm},{nk},條件概率數(shù)組{p(zi|.)}輸出:主題相關(guān)度集合{z},多項(xiàng)分布參數(shù)集合φ和Θ,超參數(shù)α,β//文檔預(yù)處理:{w}轉(zhuǎn)換為{w′}forall文檔m∈[1,M]doforall單詞n∈[1,Nm]in文檔mdo修改wm,n,使得//初始化將所有參數(shù)置為0:nm,nkforall文檔m∈[1,M]doforall單詞n∈[1,Nm]in文檔mdo對Zm,n采樣,使得Zm,n=k~Multi(1/K)增加文檔-主題計(jì)數(shù):增加主題-單詞計(jì)數(shù):增加文檔-主題計(jì)數(shù):nm+=1增加主題-單詞計(jì)數(shù):nk+=1//初始化結(jié)束//Gibbs采樣whilenotfinisheddoforall文檔m∈[1,M]doforall單詞n∈[1,Nm]in文檔mdo//當(dāng)前單詞wm,n減少計(jì)數(shù):nm-=1;nk-=1//多項(xiàng)分布采樣,更新參數(shù)更新分布參數(shù)使之滿足增加計(jì)數(shù)://檢查收斂性,并讀取參數(shù)if收斂并且沒有達(dá)到迭代次數(shù)上限then//讀取歸一化參數(shù)依據(jù)以下公式從參數(shù)集合φ中讀取參數(shù)依據(jù)以下公式從參數(shù)集合Θ中讀取參數(shù)可以看出上述Improved-GibbsLDA算法主要體現(xiàn)在增加了對文檔的預(yù)處理工作,該步驟能夠使得處方/藥物里面的中草藥的重量占比正比于它對處方/藥物的“貢獻(xiàn)率”,這樣能夠更好地對現(xiàn)實(shí)中的情況進(jìn)行建模,也能夠提升實(shí)驗(yàn)的效果。下面是一個(gè)處方和藥劑所對應(yīng)的關(guān)系表:應(yīng)用上述數(shù)據(jù)挖掘方法對上述處方和藥劑之間的對應(yīng)關(guān)系進(jìn)行挖掘,得到以下的主題挖掘結(jié)果:上表展示了5個(gè)主題,按照由高到低的順序,排列著藥劑對該主題的“貢獻(xiàn)”程度,即P(w|z)。可以看出,主題4中的大多藥物和清熱相關(guān),主題3中大多大多藥物作用是活血化瘀,主題2中大多數(shù)藥物作用于肝脾,主題1中藥物大多和養(yǎng)胃相關(guān),而主題0中藥物主要是“補(bǔ)氣健脾清熱養(yǎng)陰”??傊陨纤鰞H為本發(fā)明的較佳實(shí)施例,凡依本發(fā)明申請專利范圍所作的均等變化與修飾,皆應(yīng)屬本發(fā)明專利的涵蓋范圍。