李 穎,唐廣發(fā),陳 立,盧子忱,許金森
[1.東莞中科云計算研究院,廣東 東莞 523000;2.臉萌技術(深圳)有限公司,廣東 深圳 518000;3.福建省中醫(yī)藥科學院,福建 福州 350000]
中醫(yī)學是我國歷代傳承并創(chuàng)新發(fā)展的原創(chuàng)性醫(yī)學理論體系。中醫(yī)的診療過程主要包括四診、辨證分析、制定和調整治療方案、鞏固療效4 個步驟。醫(yī)生先根據望診、聞診、問診、切診所得的信息,結合患者的具體情況進行辨證分析,確定疾病的病因、病機、病位等。醫(yī)生根據辨證分析的結果,制定針對性的治療方案,包括藥物治療、針灸治療、推拿治療、拔火罐治療、正骨治療等。辨證論治這種模糊的、經驗型的思辨模式,造成中醫(yī)學的傳承難以批量、標準化地進行。因此,需要將傳統(tǒng)的中醫(yī)理論和方法與現代科學技術相結合。
人工智能是一種研究、開發(fā)用于模擬、延伸和擴展人的智能的一門新的技術科學。人工智能包括自然語言處理、圖像識別與計算機視覺等多種技術,應用范圍非常廣泛。人工智能技術在醫(yī)學影像診斷、疾病監(jiān)測和藥物研發(fā)取得了較大進展,提高了醫(yī)療水平和效率[1-2]。在中醫(yī)藥領域[3],人工智能的應用主要體現在數據挖掘與分析、智能診療和醫(yī)學影像智能識別等方面。表示學習作為一種新興的人工智能方法,其目的是從原始數據中學習數據的表示方式,以便于后續(xù)的分類、聚類、回歸等任務的完成[4]。表示學習在從海量數據中提取有用信息、促進中醫(yī)證候的量化與標準化方面具有巨大潛力。
中醫(yī)證候學是中醫(yī)學的重要組成部分,它涉及對疾病癥狀的觀察、分析和診斷。為了使中醫(yī)的診斷和治療更加科學、客觀、準確,證候的量化是重要內容。鄭淑美等[5]提出條件概率指數轉化法,通過統(tǒng)計已知某?。ɑ蜃C)存在,某癥狀出現的條件概率,計算該癥狀的量化值。梁茂新等[6]提出主觀離散賦分法,通過各癥狀按顯著程度記分的總和,計算該病癥的總體癥狀水平積分值。余江維等[7]通過TFIDF 相對熵函數進行癥狀信息的量化。
中醫(yī)證候的表示學習涉及利用無監(jiān)督學習或監(jiān)督學習等技術,將中醫(yī)證候的描述性語言轉化為計算機可理解的向量表示。將表示學習應用于中醫(yī)證候學,可以幫助我們從大量的中醫(yī)證候數據中學習到更準確、更有效的表示方式,提高中醫(yī)證候的分類和診斷精度。
本文利用人工智能技術,將中醫(yī)證候的描述性語言轉化為計算機可理解的向量表示,以便于進行機器學習和數據分析,提高研究的準確性和效率。
本文的中醫(yī)經驗傳承輔助診療系統(tǒng)(圖1)主要包括在線癥狀輸入、癥狀表示、癥狀推薦和輔助論治4 個模塊。
圖1 基于人工智能的中醫(yī)經驗傳承輔助診療系統(tǒng)
在線癥狀輸入模塊輸入用戶的當前癥狀;癥狀提取與表示模塊構建癥狀病例數據集;問診提示模塊計算與輸入癥狀相關聯的前k 個癥狀;輔助論治模塊輸出根據推薦的病型和治療方案。
原始病例數據是描述患者信息的自然語言文本,而基于人工智能的中醫(yī)經驗傳承輔助診療系統(tǒng)的數據處理需使用癥狀向量,因此,需要對病例數據進行癥狀提取與表示操作。
本文提出了一種使用高維向量表示癥狀作為輔助論治的輸入,預測病型和治療方案的模型。該模型將主訴、現病史中的癥狀文本轉換為高維向量,并將這些向量作為輸入,用于預測病型和治療方案,連續(xù)詞袋模型架構如圖2 所示。
圖2 連續(xù)詞袋模型架構
連續(xù)詞袋模型的架構包括輸入層、隱藏層和輸出層。在輸入層A,對于給定一個詞的上下文(即窗口內的其他詞),連續(xù)詞袋模型會接收這些上下文詞作為輸入,并將它們映射到神經網絡的隱藏層。在隱藏層B,上下文詞會被處理成一個固定長度的向量,這個向量的長度和訓練樣本的數量有關。在輸出層,連續(xù)詞袋模型會計算出目標詞的概率分布。
連續(xù)詞袋模型的訓練過程是基于重構語言的詞袋模型假設進行的,它假設詞的順序是不重要的。在訓練過程中,神經網絡需要重新構造輸入的上下文詞,以便學習上下文詞和目標詞之間的關系。具體來說,連續(xù)詞袋模型首先會將每個詞映射到一個固定長度的向量,然后將這些向量輸入神經網絡中。神經網絡會根據這些向量的值來預測目標詞的概率分布。本文建立了將4個未來詞和4 個歷史詞的向量作為輸入的分類器,訓練標準是正確預測當前詞。
在訓練好連續(xù)詞袋模型后,可以使用該模型獲取每個癥狀詞語的向量表示,即詞向量。這些詞向量構成了高維向量空間中的一組向量。對于主訴、現病史中的癥狀文本,可以將其中的每個癥狀詞語替換為其對應的詞向量,從而將該文本轉換為高維向量的癥狀文本表示。
通過癥狀關聯度計算得到癥狀病例數據集的互信息矩陣后,新的在線輸入癥狀可利用該互信息矩陣計算當前癥狀與數據集中其他癥狀的互信息值,最后選取前k 個互信息值高的癥狀作為當前癥狀的推薦癥狀。
根據癥狀提取和表示的結果,從診療模型中得到初步的診斷結果和建議,供醫(yī)生參考。同時,模塊還可以根據醫(yī)案庫的歷史病例數據,為醫(yī)生提供更加全面和客觀的診斷依據和治療方案。
本文采用的病例數據來自某醫(yī)院臨床門診病例數據共2383 條,訓練集數據1906 條,測試集數據477 條。
首先,使用預處理過的主訴、現病史中的癥狀文本訓練詞向量模型。其次,訓練好詞向量模型后,用它來將主訴、現病史中的癥狀文本轉換為向量。最后,將轉換后的癥狀文本向量用于后續(xù)分類任務,對主訴、現病史進行分類,預測病型。其中,在計算距離時采用了余弦相似度,準確率如表1 所示。
表1 癥狀提取病型預測準確率
由表1 可知,隨著向量維度的增加,癥狀表示病型預測的準確率呈現出一種波動上升的趨勢。當向量維度為150 時,準確率最高,達到了87%。然而,當向量維度增加到200 時,準確率下降到了85%。這表明在癥狀表示病型預測任務中,過高的向量維度并不一定能帶來準確率的持續(xù)提升。癥狀表示病型預測的準確率均優(yōu)于或與癥狀提取病型預測相同,這表明使用癥狀表示的方法進行分類,預測病型更為有效。
使用癥狀表示的方法按疾病分類病型預測準確率如表2 所示。
表2 疾病分類病型預測準確率
以上實驗結果反映的是模型在預測給定疾病類型的病例時的準確性。在測試病例數較多的疾病中,郁證、癌、咳嗽、消渴、痹癥的準確率為80%以上,表現出良好的性能。相比之下,一些疾病的準確率較低,如不寐、心悸、眩暈、少陽病、癭瘤,需要在未來的研究中進一步改進和優(yōu)化。胸痹、乳癖、頭痛、口瘡、月經病、心悸的測試病例數較少(少于10 例),可能存在數據偏倚或統(tǒng)計誤差,需要更多的數據來驗證其準確率。
本文主要研究了從臨床病例數據的癥狀提取和表示到輔助論治的病型預測,實驗結果表明本文方法可有效的對當前癥狀進行提取和表示,可在醫(yī)生論治過程中給予輔助,減輕年輕醫(yī)生辯證論治或學生在學習過程中經驗不足導致的困難。后續(xù)工作中可不斷補充完善病例數據庫資源,進一步提高算法的穩(wěn)定性和可靠性。