999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Rasa框架的中醫問答系統設計

2022-05-31 01:13:50鐘有東王峰邱逸銘區汝軒
電腦知識與技術 2022年11期

鐘有東 王峰 邱逸銘 區汝軒

摘要:隨著深度學習技術、自然語言處理技術、知識圖譜技術、對話系統等相關技術的不斷發展以及中醫藥在我國新冠肺炎疫情的治病救人中扮演了重要的角色,中醫得到了前所未有的關注,文章正是在這種背景下提出來一種基于Rasa框架的中醫問答系統設計的,該文是在ubuntu16.04的環境下,采用Rasa開源問答系統框架和基于Flask框架的輕量級的Web服務器,通過云端服務器的公網實現任何人都可訪問的中醫智能化問答系統。

關鍵詞:Rasa;中醫問診;問答系統;知識圖譜

中圖分類號:TP311? ? ? ? 文獻標識碼:A

文章編號:1009-3044(2022)11-0074-03

1 研究的背景和意義

問診作為中醫傳統“望、聞、問、切”四診的重要診斷方式之一[1],是指醫生與病人或者陪診者通過對話的形式,進行有目的有步驟的詢問,從而掌握病人的疾病的發生發展情況、目前和歷史癥狀表現以及疾病相關的所有相關信息[2],為醫生對病人疾病的確診提供重要的參考依據。據相關資料統計,病人的75%以上癥狀都是通過醫生問診的形式得到的[2],由此可見問診在中醫四診中有多么重要的地位。

中醫問診的歷史源遠流長,內容極其豐富,經過歷代醫家的發展,形成獨特的理論體系[3]。問診內容主要包括一般情況、主訴、現病史、既往史、個人生活史、家族史[3],問診過程就是醫生問辨結合的過程,醫生需要抓住主訴,全面詢問;邊問邊辨,問辨結合;鑒別診斷,避免誤診[4]。

隨著計算機技術、深度學習技術、自然語言處理技術、聊天機器人等相關技術不斷地發展,中醫問診與相關技術的結合也迎來了新的發展。本文也正是在這種背景下設計了一種中醫智能化問答系統。

2 Rasa開發環境的配置

2.1 Rasa開源自然語言處理框架概述

Rasa是一個基于自動文本和基于語音的對話的開源機器學習框架,支持多種語言,內置支持 Spacy、MITIE、Jieba 等多種開源 NLP 工具,可對各種組件進行組合配置,可根據需要構造定制化的 NLP Pipeline。

Rasa主要包括兩部分:Rasa NLU和Rasa core。Rasa NLU可用于機器人的意圖分類和實體識別;Rasa Core 會話引擎用真實的對話文本和機器學習算法訓練得到模型,從而預測在收到消息后機器人該作何回復(動作) 。如圖1所示為Rasa的消息處理流程。

用戶輸入文本信息或者語音信號后,Rasa的自然語言解釋器(Interpreter) 將用戶的信息轉換成意圖信息和實體信息,然后構建語義詞典包括:用戶原始文本(Text) 、用戶意圖(Intent) 、實體(Entity) 傳輸給Rasa Core。Rasa的對話狀態追蹤器(Tracker)獲取當前的對話狀態(實體信息和詞槽情況) 并記錄下來,策略(Policy)接收到當前的對話狀態后,進而通過特征提取組件得到對話狀態特征,按照對話狀態特征預測和選擇下一個動作(Action) ,然后Tracker記錄當前執行的動作(Action) ,最后執行action將結果反饋給用戶。

2.2 Rasa開發環境的配置

首先在ubuntu16.04系統安裝Anconda用來配置Python的虛擬環境,在創建虛擬環境前安裝python3的python依賴python3-devpython3-pip,然后運用conda create命令創建python3的虛擬環境。source activate激活剛創建的虛擬環境,然后安裝執行pip3 install Rasa,接著分別執行pip3 install Rasa[spacy], pip3 install Rasa[MITIE],安裝spaCy、MITIE、Jieba等必要的配置。首先創建工程文件夾,主要包括Rasa NLU和Rasa Core文件。整個項目在ubuntu16.04系統下使用Pycharm作為開發工具,程序語言以Python3為主。工程目錄文件主要包括:config.yml、credentials.yml、domain.yml、endpoints.yml、data/nlu.yml、data/rules.yml、data/stories.yml、actions.py、data.json、data_to_neo4j.py、neo4j_Knowledge.py、models。其中config.yml用來存放組件配置的信息;nlu.yml用來存放訓練模型的數據;models用來存放訓練好的模型;其中domain.yml定義了問答機器人的所有信息,包括意圖(intents) 、實體(entity) 、詞槽(slots) 以及動作(actions) 、表單(form) 和回復(response) 等;actions.yml用來存放自定義actions的代碼;credentials.yml用來連接到其他服務(services);data/stories.yml,用于訓練Core模型的故事數據集。

3 中醫智能問答機器人實現過程

3.1 中醫術語語料收集

中醫語料相關的原始數據往往需要經過非結構化轉化為結構化的形式的預處理過程,便于后續的中文分詞、詞性標注、命名實體識別、意圖識別、實體關系抽取、自然語言生成、對話系統等過程。本文數據收集了來自《中醫臨床診療術語 第1部分:疾病 修訂版 2020年版》《中醫臨床診療術語 第1部分:證候 修訂版 2020年版》《中醫臨床診療術語 第1部分:治法 修訂版 2020年版》《中國名老中醫藥專家學術經驗集》1-5卷、《傳統醫學名詞術語國際標準》《中醫基本名詞術語中英對照國際標準》《中醫藥學名詞》《中醫藥名詞術語英譯》《實用英文中醫詞典》等中醫藥術語語料[5]。

首先通過Adobe Acrobat軟件將相關中醫書籍從PDF格式轉成WORD文檔,然后校對WORD文檔中的錯誤信息,再將WORD文檔轉換成計算機便于讀取的UTF-8格式的TXT文檔,便于建立中醫語料庫。在多名中醫醫學相關研究生幫助下,其中證名按照證名ID、證名、同義證名、證名英文術語、病因、主要癥狀、伴隨癥狀,通過編寫相關標記程序構建證候數據庫;疾病按照疾病ID、同義疾病名、病因、主要證候、伴隨證候進場程序化標記構建疾病數據庫。治則按照治則ID、治則名、治則英文術語、同義治則、治則的前提情況、治療的原則進行程序化處理;治法按照治法ID、治法名、治法英文術語、同義治法、方藥或相關療法、治療的病癥進行程序化處理;療法按照療法ID、療法名、同義療法、療法介紹、療法適用范圍進行程序化處理構建治法數據庫。其中對癥狀先從癥候中提取出癥狀,按照一詞一義的原則在多名中醫醫學研究生的幫助下人工盡量地枚舉,然后通過分析不同癥狀之間的關系發現大概存在6種關系:同義關系、屬種關系、交叉關系、互斥關系、矛盾關系、全異關系[6]。基于此,在枚舉完后,先對癥狀按照始因、寒熱、汗出、疼痛部位、疼痛性質、頭身不適、睡眠情志聲音、咳痰喘、飲食口味、大便、小便、經帶精液、出血、神志血色、頭面五官體征、頸胸腹部體征、形體肌膚體征、舌象、脈象等19種分類進行分類[7],然后對其中的同義關系進行標記。接著按照癥狀ID、癥狀名、同義癥狀名進行處理構建癥狀數據庫。對相關的醫案按照醫案ID、患者基本信息、經查、辨證、治法、診次、藥用、隨訪、專家名、醫案名稱、醫案來源對醫案數據進行處理構建醫案數據庫。

3.2 中醫知識圖譜的構建

知識圖譜(Konwledege Graph) 最早是由Googel公司在2012年提出,用于優化其搜索引擎。從學術的角度來說,知識圖譜本質上把實體之間的關系表示成一種多關系的圖譜構建的一個語義網絡(Semantic Network) 知識庫。其中實體是現實中人、事、物用概念的方法來描述,又叫作本體(Ontology) ;圖(Graph) 中的節點表示實體(Entity) ,圖(Graph) 中用邊(Edge) 則表示實體之間的關系;組成知識圖譜的三要素分別是:實體、實體的屬性、實體之間的關系三元組。從原始數據到完成知識圖譜的構建往往需要經歷:知識的存儲、知識的抽取、知識的融合、數據的建模、質量的評估等多個過程[8]。如今知識圖譜成功地應用到了很多行業,如信息檢索、自然語言理解、問答系統、推薦系統、電子商務、金融風控、教育醫療、司法輔助,公安刑事偵查等[9]。

通過構建中醫知識圖譜可以幫助人們更加深入了解癥狀、疾病、證候、辨證、治法、方藥、藥物之間的關系,結合名老中醫的經驗集、中醫醫案、中醫臨床數據、診療規范、中醫臨床研究等可以實現中醫資源的有效整合,促進中醫的標準化、現代化、智能化的發展。

構建中醫知識圖譜,首先要對中醫行業知識建模,主要包括實體的定義、實體的屬性的定義、實體關系的定義。本文基于《中醫臨床診療術語2020》《中國名老中醫藥專家學術經驗集》1-5卷等相關中醫術語資料,運用Neo4j圖數據庫構建了以證候、癥狀、疾病、經查、治法治則療法、病因、藥用、患者基本信息、醫案名稱、醫案來源等為實體,以證候屬性:證名ID、證名、同義證名、證名英文術語、病因、主要癥狀、伴隨癥狀;疾病屬性:疾病ID、疾病英文術語、同義疾病名、病因、主要證候、伴隨證候;癥狀屬性:癥狀ID、癥狀名、同義癥狀名;醫案屬性:醫案ID、患者基本信息、主訴、經查、辨證、治法、診次、藥用、隨訪、專家名、醫案名稱、醫案來源的中醫知識圖譜。

3.3 中醫問診機器人的對話腳本設計

中醫醫生問診過程往往采取以主訴為切入點,圍繞病人主要癥狀的演變、新舊、時間、緩解和加重因素、主要癥狀的伴隨癥狀和其他相關伴隨癥狀[10]。其中如肺部相關的伴隨癥狀,需要詢問病人咳嗽時是否有痰、喘、哮、胸痛、胸悶等癥狀。有時還需要根據患者的病情實際情況有選擇性地詢問病人的既往史、個人史、家族史等。基于此,對中醫問診的內容圍繞以病人主要癥狀相關的情況詢問和病人伴隨癥狀相關情況的對話腳本設計,以避免過度的詢問和病人主要病情不相關問題的無效詢問。可以采取基于規則的對話管理來實現對病人主要癥狀和伴隨癥狀等信息的收集。采用基于知識庫的問答系統實現如疾病的同類名、病因、疾病的主要癥狀、伴隨癥狀、疾病的英文術語的信息問答查詢等。

3.4 RasaNLU意圖識別數據訓練

RasaNLU是一個開源的自然語言處理庫,可用于問診機器人的意圖分類和實體識別。Rasa的NLU是一個基于有向無環圖的通用型自然語言處理框架,組件(component) 之間通過有向無環圖形式相互連接,且組件之間需要按照一定的順序運行,如命名實體(NER) 組件前面必須先提供分詞器才可以正常進行;同類組件之間可以相互替換,如復旦大學開發的分詞器和清華大學開發的分詞器均有同樣的分詞的功能。Rasa NLU典型的組件配置主要包括:語言模型組件、分詞組件、特征提取組件、命名實體組件(NER) 、意圖分類組件、結構化輸出組件。比較適合中文開發者流水線(pipeline) 如下:

recipe:default.v1

laungue:”zh”

pipeline:

-name:JiebaTokenizer

-name:LanguageModelFeaturizer

model_name:”bert”

model_weigths:”bert-base-chinese”

-name:”DIETClassifier”

使用Chatito工具快速的構建Rasa NLU訓練意圖識別數據集,訓練模型使用Rasa train nlu命令。

3.5 Rasa Core 對話管理數據訓練

運用Rasa Core可以讓指定問診機器人該做什么或者該說什么(actions) 。Rasa Core同時也為我們提供了訓練預測概率模型的工具,從而根據當前用戶或者其他用戶的歷史會話預測下一步動作。首先為問診機器人創建Domain文件,Domain文件由意圖(intent) 、實體(entities) 、槽(slots) 、模板(templates) 、動作(actions) 組成。然后編寫機器人的自定義動作(actions.py) ,實現調用API以及使用python程序實現的相關的操作。接著構造故事(story) ,即用戶與中醫問診機器人之間的真實對話,用戶輸入的內容都會被轉換成意圖(intent) 和實體(entities) ,機器人對用戶的響應都會視作動作(actions) 。在上述文件配置好(nlu、domain、stories、config) 便可以進行Rasa整個模型的訓練,直接運行Rasa train即可。

3.6 云端部署和測試

文章通過python的Flask框架實現了一個輕便的web服務器,并將web服務器部署在阿里云服務器上,便于與Rasa進行交互。其中開發流程主要包括:python環境的配置、Mysql安裝配置、VirtualEnv虛擬環境的配置、Flaskweb服務器安裝配置、uwsgi和nginx的安裝和配置、supervisor的安裝配置。客戶端和服務端工作的流程:客戶端發送一個HTTP請求后,作為反向代理服務器的Nginx接收到請求,然后以uwsgi的協議形式將請求分發給WSGI server,WSGI server傳給Flask web服務端,服務端處理請求后通過WSGI server和Nginx傳回相應給客戶端。

App核心就是實現HTTP請求(訪問上述的web服務器) ,通過開啟阿里云服務器的公網即可在任何地方都可以測試這個Rasa模型。做完這些步驟即可實現云端的測試。接下來發送HTTP請求,測試Rasa模型。

4 結論

本文首先簡單地闡述了中醫智能化問診研究的背景和意義,然后描述了問答系統實現幾個步驟,包括中醫術語語料收集、中醫知識圖譜的構建、中醫問診機器人的對話腳本設計、意圖識別和對話管理數據的訓練、問答系統的云端部署和測試。由于不同中醫書籍的中醫術語具有時代性和概念不一致性以及缺乏醫療專業術語與病人口語用語相關的語料庫,往往會出現提取實體不到位,從而導致無法識別出病人的證候,進而影響問答的效果;后續需要構建更加豐富的數據庫來進一步完善。

參考文獻:

[1] 迪盼祺,夏春明,王憶勤,等. 基于協同過濾算法的中醫智能問診系統研究[J].世界科學技術-中醫藥現代化,2021,23(1):247-255.

[2] 王旸.中醫智能化問診系統開發及應用前景[J].計算機產品與流通,2019(8):160.

[3] 梁建慶,何建成.中醫問診文獻綜述[J].中華中醫藥學刊,2014,32(10):2354-2356.

[4] 李媛媛,胡亮亮,趙倩倩,等.中醫問診方法和技巧[J].中醫藥導報,2019,25(24):139-141.

[5] 葉曉,童凌.中醫藥術語漢英雙語平行語料庫的創建和應用探討[J].現代語言學,2019,7(2):207-211.

[6] 鄒愛云,張啟明.中醫癥狀間的9種關系[J].北京中醫藥大學學報,2013,36(4):224-226.

[7] 朱文鋒.證素辨證學[M].北京:人民衛生出版社,2008.

[8] 張吉祥,張祥森,武長旭,等.知識圖譜構建技術綜述[J].計算機工程,2021(10):1-16.

[9] 劉燁宸,李華昱.領域知識圖譜研究綜述[J].計算機系統應用,2020,29(6):1-12.

[10] 石強.“問所當問”——中醫臨床問診的思路[J].江西中醫藥,2018,49(6):9-11.

收稿日期:2022-03-02

基金項目:基于累積展開方法的納米電子器件非平衡輸運和量子效應理論研究(2016A030313698) ;廣東省產學研合作項目(2015B09091060) ;基于光載無線技術的艦艇物聯網平臺的研究開發(2015B090901060) ;廣州市科技計劃項目(201604046007) ;廣東省省級科技計劃(產學研) 項目(2016B090918031)

作者簡介:鐘有東(1991—) ,男,江西贛州人,在讀碩士,主要研究方向為機器學習和深度學習;王峰(1961—) ,男(美籍華裔) ,研究生導師,教授,博士,主要研究方向為衛星導航、納米電子器件仿真、機器人和智能車輛建模和控制;邱逸銘,在讀研究生;區汝軒,在讀研究生。

主站蜘蛛池模板: 日韩成人高清无码| 操操操综合网| 91偷拍一区| 欧美不卡二区| 亚洲全网成人资源在线观看| www欧美在线观看| 久久特级毛片| 福利小视频在线播放| 亚洲一级毛片| 97在线碰| 国产亚洲现在一区二区中文| 免费一级无码在线网站| 精品人妻无码中字系列| 丝袜久久剧情精品国产| 国产肉感大码AV无码| 亚洲一区无码在线| 美女被操黄色视频网站| 欧美日韩国产在线播放| 日韩色图区| 91精品免费久久久| 成人国产免费| 男女男免费视频网站国产| 无码免费试看| 无码福利日韩神码福利片| 国产日韩欧美一区二区三区在线| 亚洲精品手机在线| 亚洲精品国产综合99久久夜夜嗨| 国产日韩精品一区在线不卡| 欧美a级在线| 欧美久久网| 国产激情影院| 国产91精品调教在线播放| 国产永久无码观看在线| 国产AV无码专区亚洲精品网站| 国产亚洲欧美在线人成aaaa| 国产欧美日韩va另类在线播放| 人妻丝袜无码视频| 人人爱天天做夜夜爽| 91极品美女高潮叫床在线观看| 欧美午夜网| 五月天久久综合| 54pao国产成人免费视频| 一级毛片在线播放免费观看| 米奇精品一区二区三区| 国产免费黄| 国产av色站网站| 91精品国产无线乱码在线| 日韩AV无码免费一二三区| 亚洲综合经典在线一区二区| 五月激情婷婷综合| 国产乱人视频免费观看| 亚洲日韩Av中文字幕无码| 国产一区二区网站| 国产福利在线观看精品| 国产jizz| 国产视频一二三区| 欧美另类精品一区二区三区| 国产丝袜啪啪| 亚洲网综合| 国产精品手机在线播放| 免费无码网站| 亚洲综合香蕉| 91麻豆国产精品91久久久| 老司机午夜精品网站在线观看| 91九色国产在线| 中文字幕一区二区人妻电影| 2020国产免费久久精品99| 四虎AV麻豆| 国内a级毛片| 国产美女主播一级成人毛片| 国产无码在线调教| 亚洲香蕉在线| 毛片最新网址| 久久永久精品免费视频| 免费大黄网站在线观看| 毛片最新网址| 色噜噜狠狠狠综合曰曰曰| 成人福利在线观看| 一级毛片免费高清视频| 有专无码视频| 中文字幕人成乱码熟女免费| 免费毛片a|