性味归经与功能的脚本(超过四元素)
生活随笔
收集整理的這篇文章主要介紹了
性味归经与功能的脚本(超过四元素)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
sklearn實戰-乳腺癌細胞數據挖掘(博客主親自錄制視頻教程)
https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campaign=commission&utm_source=cp-400000000398149&utm_medium=share
腳本名稱
censor_relation_xwgj2_functions.py
?
需要導入中藥表excel
# -*- coding: utf-8 -*- """ Created on Thu Aug 25 10:06:52 2016審核性味歸經與功能的腳本(超過四元素)@author: Administrator """import xlrd,csv import chi_square,list_xwgj_function_multiElements#多元素組合 thelist_xwgj_function=list_xwgj_function_multiElements.list_xwgj2_function #數據處理,把['寒,苦,肝,胃', '清熱']轉換為[['寒','苦','肝','胃'], '清熱'] thelist_xwgj_function=[[i[0].split(","),i[1]] for i in thelist_xwgj_function]fileName="性味歸經_功能_關系_多元素.csv" excelFilename="中藥表.xlsx" sheetName="Sheet1" #打開excel數據 excelFile=xlrd.open_workbook(excelFilename)sheet=excelFile.sheet_by_name(sheetName)#表單行與列 number_rows=sheet.nrows number_columns=sheet.ncols #表單內數據 list_sheetData=[] # list_xingWeiFunction_relation=[]#獲取表格數據 def Get_sheetData():for row in range(1,number_rows):list_sheetData.append(sheet.row_values(row))return list_sheetDatalist_sheetData=Get_sheetData()#,卡方統計的a是否成立,實驗組True,對照組True #例如keyWord1=['寒', '苦', '肝', '胃'],keyWord2='清熱' #i為['苦,寒歸胃經\r\n\t', '清熱解毒,消癰,下乳,舒筋通脈。'] def True_a(keyWord1,keyWord2,i):#key為['寒', '苦', '肝', '胃']內元素for key in keyWord1:if key not in i[0]:return Falseif keyWord2 not in i[1]:return Falsereturn True#,卡方統計的b是否成立,實驗組True,對照組False #例如keyWord1=['寒', '苦', '肝', '胃'],keyWord2='清熱' #i為['苦,寒歸胃經\r\n\t', '清熱解毒,消癰,下乳,舒筋通脈。'] def True_b(keyWord1,keyWord2,i):#key為['寒', '苦', '肝', '胃']內元素for key in keyWord1:if key not in i[0]:return Falseif keyWord2 in i[1]:return Falsereturn True #,卡方統計的c是否成立,實驗組False,對照組True #例如keyWord1=['寒', '苦', '肝', '胃'],keyWord2='清熱' #i為['苦,寒歸胃經\r\n\t', '清熱解毒,消癰,下乳,舒筋通脈。'] def True_c(keyWord1,keyWord2,i):#只要count不等于len(keyWord1),就表示keyWord1至少有一個元素不符合len_keyWord1=len(keyWord1)count=0#key為['寒', '苦', '肝', '胃']內元素for key in keyWord1:if key in i[0]:count+=1if len_keyWord1==count:return Falseif keyWord2 not in i[1]:return Falsereturn True #,卡方統計的d是否成立,實驗組False,對照組False #例如keyWord1=['寒', '苦', '肝', '胃'],keyWord2='清熱' #i為['苦,寒歸胃經\r\n\t', '清熱解毒,消癰,下乳,舒筋通脈。'] def True_d(keyWord1,keyWord2,i):#只要count不等于len(keyWord1),就表示keyWord1至少有一個元素不符合len_keyWord1=len(keyWord1)count=0#key為['寒', '苦', '肝', '胃']內元素for key in keyWord1:if key in i[0]:count+=1if len_keyWord1==count:return Falseif keyWord2 in i[1]:return Falsereturn True #卡方統計的keyWord1與keyWord2的關系 #三元素和多元素的腳本不一樣,此函數需要修改 def Get_single_chiSquare(keyWord1,keyWord2):#記錄包含卡方值a的uid號,方便逆向檢測list_a=[]a=0b=0c=0d=0#統計包含a數量for k in range(len(list_sheetData)):i=list_sheetData[k]if True_a(keyWord1,keyWord2,i):a+=1list_a.append(k+2)#統計包含b數量for i in list_sheetData:if True_b(keyWord1,keyWord2,i):b+=1 #統計包含c數量for i in list_sheetData:if True_c(keyWord1,keyWord2,i):c+=1#統計包含d數量for i in list_sheetData:if True_d(keyWord1,keyWord2,i):d+=1#print("a:",a)#print("b:",b)#print("c:",c)#print("d:",d)k2=chi_square.value_independence(a,b,c,d)relation=chi_square.judge_independence(a,b,c,d)lis1=[[a,b,c,d],k2,relation,list_a]return lis1#計算所有性味的相關性 def Get_all_chiSquare(thelist_xwgj_function):for i in thelist_xwgj_function:try:keyWord1,keyWord2=i[0],i[1]relation=Get_single_chiSquare(keyWord1,keyWord2)list1=[i,relation,relation[2]]list_xingWeiFunction_relation.append(list1)except:print("wrong at:",i)continuereturn list_xingWeiFunction_relationdef Write_table_to_csv(list1,fileName):#對列表格式修改,字符串寫入的格式不對file=open(fileName,'w',newline='')writer1=csv.writer(file)writer1.writerows(list1)file.close() list_xingWeiFunction_relation=Get_all_chiSquare(thelist_xwgj_function) Write_table_to_csv(list_xingWeiFunction_relation,fileName)''' #測試數據 i=['苦,寒,胃經\r\n\t', '清熱,解毒,消癰,下乳,舒筋通脈。'] b=thelist_xwgj_function[0] keyWord1,keyWord2=b[0],b[1] '''?
chi_square腳本?
#coding=utf-8#獨立性檢驗test for independence,也是卡方檢驗chi_square #前提條件:a,b,c,d 必須大于5#2.706是判斷標準(90概率),值越大,越有關,值越小,越無關 def value_independence(a,b,c,d):if a>=5 and b>=5 and c>=5 and d>=5:return ((a+b+c+d)*(a*d-b*c)**2)/float((a+b)*(c+d)*(a+c)*(b+d))#返回True表示有關 #返回False表示無關 #2.706表示有90%概率 def judge_independence(a,b,c,d):num_independence=value_independence(a,b,c,d)print("chi_square:",num_independence)if num_independence==None:print("not suit for chi_square statistics")return "wrong"if num_independence>2.706:print ("there is relationship")return Trueif num_independence<=2.706:print("there is no relationship")return False?
?
list_xwgj_function_multiElements 腳本 # -*- coding: utf-8 -*- """ Created on Tue Aug 23 11:38:35 2016 生成多個因素的性味歸經組合,四位,五位算法:卡方@author: Administrator """import xlrd,csv #性味歸經的元數據 list_xing=["寒","涼","溫","熱"] list_wei=["酸","苦","甘","辛","咸"] list_guiJing=["胃","肝","膽","心","肺","腎","脾","膀胱","大腸","小腸"]#四元素以上的性味歸經功能吧 excelFilename="性味歸經清理3.xlsx" excelFilename1="性味歸經清理4.xlsx" sheetName="Sheet1" #打開excel數據 excelFile=xlrd.open_workbook(excelFilename)sheet=excelFile.sheet_by_name(sheetName)#表單行與列 number_rows=sheet.nrows number_columns=sheet.ncols#表格性味歸經 list_xwg2j=sheet.col_values(0)[1:] #功能 list_function=sheet.col_values(1)[1:] list_function1=[i for i in list_function if i!=""] #四元素以上性味歸經與功能組合 list_xwgj2_function=[]#生成兩個歸經的組合 def Get_list_xwg2j():for i in list_xwg2j:for k in list_guiJing:if k not in i:element=i+","+klist_xwg2j.append(element)#print ("i:",i)return list_xwg2j#添加一些元素 def add_some_elements(list_xwg2j):list_xwg2j.append('甘,溫,肝,腎')list_xwg2j.append('甘,溫,脾,胃')list_xwg2j.append('苦,寒,肝,胃,大腸')list_xwg2j.append('辛,溫,脾,胃,肺')list_xwg2j.append('苦,寒,大腸,肺') list_xwg2j.append('苦,寒,心,肝')return list_xwg2j#寫入csv前準備,添加序列號 def add_uid(list_xwgj_clean):list1=[]for i in range(len(list_xwgj_clean)):value=list_xwgj_clean[i]item=[i,value]list1.append(item)return list1def Write_table_to_csv(list1,fileName):#對列表格式修改,字符串寫入的格式不對file=open(fileName,'w',newline='')writer1=csv.writer(file)writer1.writerows(list1)file.close() #性味歸經大于四的多元素組合 def Get_list_xwgj2_function(list1):for i in list1:for k in list_function1:list_xwgj2_function.append([i,k])return list_xwgj2_function #list_xwg2j=Get_list_xwg2j() #list_xwg2j_add=add_some_elements(list_xwg2j)#寫入csv前準備,添加序列號 #list_write=add_uid(list_xwg2j_add) #Write_table_to_csv(list_write,"性味歸經清理3.csv") list_xwgj2_function=Get_list_xwgj2_function(list_xwg2j)list_xwgj_function_multiElements 腳本? 需要性味歸經清理3excel
?
?
?
?
?
結果
計算出細化的性味歸經組合,從三萬多組合中,得到472種組合?
python風控評分卡建模和風控常識(博客主親自錄制視頻教程)
https://study.163.com/course/introduction.htm?courseId=1005214003&utm_campaign=commission&utm_source=cp-400000000398149&utm_medium=share
轉載于:https://www.cnblogs.com/webRobot/p/5841815.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的性味归经与功能的脚本(超过四元素)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gocode+auto-complete
- 下一篇: 多行字符串拼接