一種基于詞向量發(fā)現單味藥與疾病之間的治療關系的方法
【技術領域】
[0001] 本發(fā)明涉及中醫(yī)藥中單味藥與疾病之間治療關系發(fā)現領域,是中醫(yī)藥與計算機科 學相結合相交叉的產物,尤其涉及一種基于詞向量以及SVM對于治療關系發(fā)現的方法。
【背景技術】
[0002] 中醫(yī)藥領域中單味藥與疾病之間存在治療關系這是有據可循的,通過權威書籍和 教材都可以查詢得到,然而如何發(fā)現更多的治療關系卻一直沒有一個有效的方法。隨著計 算機科學的飛速發(fā)展,機器學習方法的不斷深化與完善為解決中醫(yī)藥領域問題提供了新的 思路。特別是詞向量的提出,針對每個詞都有個向量空間,極大擴展了單詞含義,并且單詞 向量的差值也有一定含義,為關系發(fā)現奠定了基礎。
【發(fā)明內容】
[0003] 本發(fā)明的目的在于針對現有技術的不足,提供一種基于詞向量發(fā)現單味藥與疾病 之間的治療關系的方法,利用機器學習的方式來發(fā)現中醫(yī)藥領域中藥物與疾病之間的治療 關系。
[0004] 本發(fā)明的目的是通過以下技術方案來實現的:一種基于詞向量的單味藥與疾病之 間的治療關系的發(fā)現方法,包括以下步驟:
[0005] (1)對《中華本草》進行OCR處理,提取其主治屬性;
[0006] (2)對主治屬性進行三次預處理,第一次預處理按照標點符號分割,得到第一次候 選集;第二次預處理將第一次得到的候選集中的所有詞匯作為關鍵字訪問百度百科、互動 百科以及維基百科,若三者其一包含該關鍵字的頁面,即認為該關鍵字是某種疾病,加入到 疾病集合中,否則加入第二次候選集中;第三次預處理首先利用語法分析器對第二次候選 集的詞匯進行語法分析,找出結果為形容詞+名詞的形式,將其名詞部分作為關鍵字訪問 百度百科、互動百科以及維基百科,若三者其一包含該關鍵字的頁面,即認為該形容詞+名 詞是某種疾病的具體形式,同樣加入到疾病集合中,其余的單詞做舍棄處理;經過三次預處 理,構造出藥與疾病的治療關系三元組;
[0007] (3)將百科數據利用CRF模型與最長單詞匹配方法相組合進行分詞,同時過濾掉 停用詞、介詞和數量詞等無用詞項,構建詞向量的訓練集;利用Word2Vec (google的開源工 具)構造出詞向量矩陣,即對每一個單詞,用一個向量來表示;
[0008] (4)針對步驟3得到的三元組,找出藥和疾病分別對應的詞向量,按照單味藥向量 減去疾病向量的方式構造治療關系的詞向量;
[0009] (5)將步驟4構造的治療關系詞向量作為訓練元組,其向量維數作為SVM的特征空 間,利用SVM進行訓練,得到訓練模型;
[0010] (6)輸入單味藥和疾病,在步驟3構造的詞向量矩陣中找到單味藥和疾病分別對 應的詞向量,用單味藥的詞向量減去疾病的詞向量得到關系向量作為步驟5訓練出的模型 的輸入,根據訓練模型輸出結果判斷二者是否含有治療關系。
[0011] 本發(fā)明的有益效果:本發(fā)明從權威書籍中經過三遍處理步驟得到標準"單味藥、治 療、疾病"三元組,利用百度百科數據和google開源工具 W〇rd2vec訓練出詞向量,將三元組 與詞向量相結合利用SVM分類器進行訓練,最終準確的判斷了單味藥與疾病是否存在治療 關系,并可以有效的揭不一些隱減的治療關系,對于中醫(yī)藥轉接有很大的參考價值;同時, 所闡述的方法具有一般性,只要訓練數據集準備充分,可以適用于一般關系的挖掘。
【附圖說明】
[0012] 圖1為本發(fā)明方法整體流程圖;
[0013] 圖2以"紫野蘇"為例,第一遍預處理過程圖;
[0014] 圖3以"紫野蘇"為例,第二遍預處理過程圖;
[0015] 圖4以"紫野蘇"為例,第三遍預處理過程圖。
【具體實施方式】
[0016] 以下結合附圖和具體實施例對本發(fā)明作進一步詳細說明。
[0017] 如圖1所示,本發(fā)明一種基于詞向量發(fā)現單味藥與疾病之間的治療關系的方法, 包括以下步驟:
[0018] (1)對《中華本草》進行OCR處理,提取其主治屬性;
[0019] (2)對主治屬性進行三次預處理,第一次預處理按照標點符號分割,得到第一次候 選集,如圖2所示,紫葉蘇的主治屬性為"主暑天感冒;頭痛身重;夫汗惡寒;腹痛吐瀉;水 腫;瘡癰腫毒;蟯蟲?。魂幍赖蜗x",經過第一遍處理之后得到的候選集為"暑天感冒頭痛身 重夫汗惡寒腹痛吐瀉水腫瘡癰腫毒蟯蟲病陰道滴蟲";第二次預處理將第一次得到的候選 集中的所有詞匯首先訪問本地疾病數據庫,若存在,則認為該關鍵字是疾病概念,否則,作 為關鍵字訪問百度百科、互動百科以及維基百科,若三者其一包含該關鍵字的頁面,即認為 該關鍵字是某種疾病,加入到疾病集合中,同時爬取該詞條釋義加入至本地數據庫中,否則 加入第二次候選集中,如圖3所示,百科包括的詞匯為"水腫","瘡癰腫毒","蟯蟲病",這些 詞匯被加入到疾病集合中,剩余詞匯加入到第二次候選集中;第三次預處理首先利用語法 分析器對第二次候選集的詞匯進行語法分析,找出結果為名詞+動詞和名詞+名詞的形式, 對名詞+動詞格式的詞匯,將其名詞部分作為關鍵字訪問百度百科、互動百科以及維基百 科,若三者其一包含該關鍵字的頁面,即認為該名詞+動詞格式的詞匯是某種疾病的具體 形式,加入到疾病集合中,同時爬取該詞條釋義加入至本地數據庫中,對名詞+名詞格式的 詞匯,對每一個名詞部分作為關鍵字訪問百度百科、互動百科以及維基百科,若三者其一包 含該關鍵字的頁面,即認為該名詞+名詞格式的詞匯是疾病概念的并列形式,也加入到疾 病集合中同時爬取該詞條釋義加入至本地數據庫中,其余的單詞做舍棄處理,如圖4所示, "腹痛吐瀉""暑天感冒","頭痛身重","陰道滴蟲"被解析為動詞+名詞的形式,分別為"腹痛 吐瀉" "暑天感冒" "頭痛身重" "陰道滴蟲",百科包括的詞匯為"吐瀉""感冒" "身重""滴 蟲"因此這四個詞匯也被加入到疾病候選集中,剩余的"夫汗惡寒"做丟棄處理;經過三次預 處理,構造出藥與疾病的治療關系三元組;
[0020] (3)將百科數據利用CRF模型與最長單詞匹配方法相組合進行分詞,同時過濾掉 停用詞、介詞和數量詞等無用詞項,構建詞向量的訓練集;利用Word2Vec (google的開源工 具)構造出詞向量矩陣,即對每一個單詞,用一個向量來表示;
[0021] (4)針對步驟3得到的三元組,找出藥和疾病分別對應的詞向量,按照單味藥向量 減去疾病向量的方式構造治療關系的詞向量;
[0022] (5)將步驟4構造的治療關系詞向量作為訓練元組,其向量維數作為SVM的特征空 間,利用SVM進行訓練,得到訓練模型;
[0023] (6)輸入單味藥和疾病,在步驟3構造的詞向量矩陣中找到單味藥和疾病分別對 應的詞向量,用單味藥的詞向量減去疾病的詞向量得到關系向量作為步驟5訓練出的模型 的輸入,根據訓練模型輸出結果判斷二者是否含有治療關系。也可以輸入單味藥,模型輸出 其可能治療的疾病,舉例如下表:
[0024]
【主權項】
1. 一種基于詞向量的單味藥與疾病之間的治療關系的發(fā)現方法,其特征在于,包括w 下步驟: (1) 對《中華本草》進行OCR處理,提取其主治屬性; (2) 對主治屬性進行H次預處理,第一次預處理按照標點符號分割,得到第一次候選 集;第二次預處理將第一次得到的候選集中的所有詞匯作為關鍵字訪問百度百科、互動百 科W及維基百科,若H者其一包含該關鍵字的頁面,即認為該關鍵字是某種疾病,加入到疾 病集合中,否則加入第二次候選集中;第H次預處理首先利用語法分析器對第二次候選集 的詞匯進行語法分析,找出結果為形容詞+名詞的形式,將其名詞部分作為關鍵字訪問百 度百科、互動百科W及維基百科,若H者其一包含該關鍵字的頁面,即認為該形容詞+名詞 是某種疾病的具體形式,同樣加入到疾病集合中,其余的單詞做舍棄處理;經過H次預處 理,構造出藥與疾病的治療關系H元組; (3) 將百科數據利用CRF模型與最長單詞匹配方法相組合進行分詞,同時過濾掉停用 詞、介詞和數量詞等無用詞項,構建詞向量的訓練集;利用Word2Vec (google的開源工具) 構造出詞向量矩陣,即對每一個單詞,用一個向量來表示; (4) 針對步驟3得到的H元組,找出藥和疾病分別對應的詞向量,按照單味藥向量減去 疾病向量的方式構造治療關系的詞向量; (5) 將步驟4構造的治療關系詞向量作為訓練元組,其向量維數作為SVM的特征空間, 利用SVM進行訓練,得到訓練模型; (6) 輸入單味藥和疾病,在步驟3構造的詞向量矩陣中找到單味藥和疾病分別對應的 詞向量,用單味藥的詞向量減去疾病的詞向量得到關系向量作為步驟5訓練出的模型的輸 入,根據訓練模型輸出結果判斷二者是否含有治療關系。
【專利摘要】本發(fā)明公開了一種基于詞向量的單味藥與疾病之間的治療關系的發(fā)現方法。首先需要選擇訓練集,本發(fā)明采用《中華本草》書籍中8980味藥作為治療關系的主體,對于其主治描述提取疾病概念,作為治療關系的客體,形成“藥、治療、疾病”的三元組,其次采用Xjishu公布的Word2Vec工具作為詞向量訓練工具,百度百科資源作為訓練語料,最后利用訓練得到的詞向量利用SVM訓練出所需要的模型。輸入單味藥和疾病,該模型可以判斷二者是否具有治療關系。
【IPC分類】G06F17-27, G06F17-30
【公開號】CN104572624
【申請?zhí)枴緾N201510027487
【發(fā)明人】張引, 魏寶剛, 莊越挺, 黎磊, 姚亮
【申請人】浙江大學
【公開日】2015年4月29日
【申請日】2015年1月20日