尹延鑫 李傳富
(安徽中醫(yī)藥大學 合肥 230012) (安徽中醫(yī)藥大學第一附屬醫(yī)院 合肥 230012)
隨著物質生活水平不斷提高,公眾的健康重視程度和健康信息需求持續(xù)提升。大數(shù)據(jù)背景下互聯(lián)網成為獲得醫(yī)療信息的重要渠道。根據(jù)中國科學技術協(xié)會2019年第1季度發(fā)布的《中國網民科普需求搜索行為報告》[1],“健康與醫(yī)療”主題在全部參與分析主題中占比35.63%,位居第2。隨著計算機及互聯(lián)網應用發(fā)展,健康信息交流活動遭遇新困難。主要體現(xiàn)在健康信息用戶[2]信息搜索和信息內容理解的問題和阻礙,用戶使用信息與源信息之間存在表達差異。在信息獲取過程中該差異表現(xiàn)為醫(yī)生與患者之間溝通不暢,以及患者使用檢索系統(tǒng)查詢相關醫(yī)療知識時實際檢索結果與預期檢索結果存在出入。目前的檢索語言體系無法滿足社會需要,造成用戶對專業(yè)醫(yī)學術語理解與使用困難、檢索系統(tǒng)無法理解用戶表達的信息等交流障礙。用戶健康詞表(Consumer Health Vocabulary,CHV)[3]可輔助實現(xiàn)健康信息用戶與醫(yī)生、檢索系統(tǒng)之間的良性信息互動[4]。
可利用八爪魚搜集器對醫(yī)藥健康網站部分用戶健康用詞進行搜集,以此作為語料庫來源;通過用戶問卷調查等方式收集用詞建立語料庫。
利用Jieba分詞工具通過神經網絡理論[5]模擬人腦詞匯處理過程對原始語料進行分詞,過濾并確定用戶健康用詞有效詞。
利用Word2vec工具通過選擇合適語言模型對分詞結果進行詞向量訓練,得到用戶健康用詞的詞向量模型。完成構建后使用詞向量模型通過余弦相似度與專業(yè)醫(yī)療健康用詞建立對應聯(lián)系(實驗中所有詞匯處理工具的調用均通過Python代碼實現(xiàn))。
3.1.1 語料搜集器 使用八爪魚采集器(爬蟲工具),選定采集模式,輸入目標語料的數(shù)據(jù)來源網址、要采集頁面元素并對其設定采集要求(如采集文本、采集鏈接、循環(huán)點擊等),實現(xiàn)數(shù)據(jù)全自動采集。
3.1.2 分詞工具 Python編輯器的Jieba分詞工具是深度學習方法在自然語言處理領域的實踐之一。通過Python調用Jieba分詞工具包以添加自定義詞和自定義詞庫實現(xiàn)不同需求的分詞要求。Jieba分詞工具包含全模式、精準模式、搜索引擎3種分詞模式,各具優(yōu)勢,可視具體需要選擇。Jieba分詞工具還可實現(xiàn)關鍵詞提取、根據(jù)詞匯出現(xiàn)頻率排序、標注詞性、合并同義詞等功能。本實驗選用精準模式分詞,分詞要求僅限于實現(xiàn)原始語料的基本分詞、去除停用詞干擾。
3.1.3 模型訓練工具 本次實驗選擇在Anaconda的Jupyter Notebook中運行Python3代碼,調用Gensim工具包中的Word2vec。
3.2.1 語料抓取 使用八爪魚采集器對39問醫(yī)生-39健康網頻道內科模塊中的用戶健康用詞進行搜集,作為實驗語料。通過對網頁內提問語句元素進行自動爬取獲得“地中海貧血是什么原因”、“坐太久了頭暈想吐是貧血嗎”、“舌頭發(fā)白不知道怎么回事”等4 810條有關內科健康的提問語句,以疑問句為主,主要構成為用戶癥狀描述+病情提問。
3.2.2 分詞處理 將爬取的用戶健康用詞以文本文件(Text File,TXT)格式保存,使用 Jupyter Notebook調用 Jieba分詞工具分別上傳語料、停用詞表與《內科醫(yī)學名詞中英文對照表》。輸入分詞代碼對原始語料進行初步中文分詞處理,見圖1。經過Jieba分詞處理,原始語料庫中語句劃割成若干個獨立詞匯,如“貧血、請問、地中海、原因”;“體能、貧血、頭暈、月經、頭痛”;“太久、貧血、頭暈”;“產后檢查、缺鐵性、貧血、呼吸”等。經篩查發(fā)現(xiàn)分詞結果與預期實驗用分詞文本存在一定差別,具體表現(xiàn)為:(1)存在誤差詞。除了醫(yī)藥健康方面詞匯外,存在包括語氣詞、形容詞和地名等與實驗不相關的誤差詞。(2)專業(yè)名詞誤分。如將斯利安葉酸片分成“斯利安”和“葉酸片”,在中文表述中“斯利安”和“葉酸片”可指代同一樣藥物,而“斯利安葉酸片”是該藥物的標準名稱。
3.2.3 模型訓練 經過Jieba分詞的分詞語料可作為Word2vec的輸入文本訓練詞向量,訓練代碼運行成功后可得到有關內科用戶健康詞表的詞向量模型。編寫代碼并設置Word2vec內詞向量模型的訓練參數(shù),然后開始訓練。由于模型訓練的目的是測定指定醫(yī)學用詞出現(xiàn)概率,選擇連續(xù)詞袋(Continuous Bag-of-Words,CBOW)算法更合適,未對算法進行指定設置,而是默認算法選擇,即sg=0。由于本次實驗中的語料不夠充分,為避免因參數(shù)設置過大導致部分詞匯被過濾遺漏,盡可能保證對所有詞匯都進行訓練處理,故參數(shù)設置均較小,見圖2、圖3。
圖2 模型構造代碼及構造過程
圖3 部分模型訓練結果
于《內科醫(yī)學名詞中英文對照表》中選取100個中文內科醫(yī)學名詞作為種子詞,在Python中調用在上一實驗步驟中已設置并訓練好的Word2vec的詞向量模型文件,計算在種子詞中有無與模型中相近似的詞并按照相似性倒序排列,以此為依據(jù)得到種子詞在用戶健康用詞中的同義詞。如通過運行代碼輸入“呼吸困難”,在詞向量中共有10個返回項,分別為“呼吸”——0.518 497 765 064 239 5、“身體”——0.500 917 851 924 896 2、“患者”——0.493 879 109 621 048、“胸悶”——0.485 214 829 444 885 25、“老想” —— 0.480 314 433 574 676 5、 “一點”——0.480 262 249 708 175 66、“頭暈”——0.470 977 306 365 966 8、“昨晚”——0.466 171 026 229 858 4、“氣短”——0.459 644 794 464 111 33、 “早上”——0.457 675 486 803 054 8,見圖4。根據(jù)余弦相似度排序判斷該模型中與種子詞最接近的為“呼吸”。通過測試,發(fā)現(xiàn)100個內科醫(yī)學名詞中只有41個詞語存在返回值且通過人工審查,使用模型得到的種子詞的相似詞大部分余弦相似度都低于0.5且并不具備同義詞的實際意義,見表1。
圖4 輸入“呼吸困難”后模型生成的同義詞列表及其余弦相似度
表1 參與訓練的種子詞返回值及其同義詞最高余弦相似度
續(xù)表1
采用 Word2vec訓練詞向量模型方法構造用戶健康詞表,驗證了其可行性與局限性,說明可以通過深度學習理論及相關技術實現(xiàn)用戶健康信息需求與健康信息資源之間的匹配,為用戶解決部分專業(yè)醫(yī)學檢索需求。利用深度學習的神經網絡擬合目標函數(shù)構造語言模型,可完成非醫(yī)學專業(yè)用戶詞和醫(yī)學專業(yè)術語之間的“映射”,進而實現(xiàn)用戶健康詞表在健康信息用戶與醫(yī)生、檢索系統(tǒng)之間信息互動的“橋梁”工具功能,即深度學習方法在構建用戶健康詞表方面具備較高適用性。
4.2.1 原始語料多樣性及數(shù)據(jù)規(guī)模 深度學習理論中,所有在神經網絡基礎上模擬人腦信息處理的操作和模型構建,都必須以大規(guī)模正規(guī)數(shù)據(jù)為基礎,即給予所構造“神經網絡系統(tǒng)”規(guī)范且充分的學習資料,供其總結學習信息處理規(guī)律。在實驗中存在大量種子詞未檢索到滿足條件的用戶健康用詞,其主要原因包括以下兩方面:一是前期爬取的內科相關用戶健康用詞語料數(shù)據(jù)規(guī)模較小,無法全面體現(xiàn)普通用戶關于內科健康的用詞習慣;二是所爬取語料資源內容形式不規(guī)范,存在類似"PCR"(Polymerase Chain Reaction,聚合酶鏈式反應)、"MCHC"(Mean Corpusular Hemoglobin Concerntration,紅細胞平均血紅蛋白濃度)等英文縮寫或疾病代稱以及“地貧”(地中海貧血)等中文簡稱,導致后期模型訓練獲取同義詞出現(xiàn)誤差。
4.2.2 分詞程序的分詞結果 利用Jieba分詞程序對原始語料進行簡單分詞處理后,兩方面原因導致分詞結果未完全滿足用戶健康用詞標準劃分的分詞預期:一是中文表達的多樣性導致分詞結果出現(xiàn)誤分、多分(如將斯利安葉酸片分成“斯利安”和“葉酸片”);二是分詞過程中選用的停用詞表覆蓋范圍有限,導致分詞結果中保留了部分與實驗所測試用戶健康用詞不相關的無意義的詞(如“一會兒”、“晚上”等)。此外分詞程序的分詞結果對后期模型訓練查找同義詞無返回值、增加程序篩選時間產生一定影響。
調用Word2vec工具包,借助詞向量模型訓練,以詞向量模型中內科醫(yī)學專業(yè)名詞與非專業(yè)用戶健康詞表之間返回的余弦值為依據(jù)建立二者對應關系。根據(jù)實驗結果中醫(yī)學專業(yè)用語在用戶健康用詞詞向量模型中余弦值的反饋,可以認為深度學習理論在用戶健康詞表構建方面具有較高適用性,可實現(xiàn)醫(yī)學專業(yè)用語與用戶健康用詞之間“映射”關系,但存在醫(yī)學專業(yè)術語無詞向量模型返回值及返回值無意義等問題。說明目前深度學習技術在用戶健康詞表構建方面發(fā)展成熟度不足,詞表構建尚未達到高度智能化、完全自動化,需人工篩選介入,該領域仍有廣闊研究發(fā)展空間。