?

基于自然語言處理的醫療問答系統研究與實現

2023-08-21 04:19謝崇波
現代信息科技 2023年12期
關鍵詞:自然語言處理知識圖譜深度學習

摘? 要:針對民生的醫療健康大數據,運用知識圖譜構建醫療知識圖譜,通過F1值比較,在知識圖譜構建的知識抽取階段采用Bert模型自然語言處理算法,而關系抽取階段采用基于注意機制的卷積神經網絡(Att-RCNN),通過上述兩種算法將建立好的知識圖譜存儲于圖存儲引擎Neo4j中;其次,為了系統能夠識別用戶的意圖,通過F1值比較,最終采用BERT-TextCNN算法模型處理用戶意圖識別和槽位匹配;最后,利用Django框架搭建后端,前端采用微信接口實現用戶與該系統的交互。

關鍵詞:知識圖譜;自然語言處理;智能問答系統;深度學習

中圖分類號:TP312? 文獻標識碼:A? ? 文章編號:2096-4706(2023)12-0001-06

Research and Implementation of Medical Question Answering System Based on

Natural Language Processing

XIE Chongbo

(Sichuan Vocational College of Information Technology, Guangyuan? 628040, China)

Abstract: Aiming at the big data of medical and health care of the people's livelihood, the knowledge graph is used to construct the medical knowledge graph, and through the F1 value comparison, the Bert model natural language processing algorithm is used in the knowledge extraction stage of the knowledge graph construction, and the convolutional neural network (Att-RCNN) based on the attention mechanism is used in the relation extraction stage. Through the above two algorithms, the established knowledge graph is stored in the graph storage engine Neo4j. Secondly, in order for the system to recognize the user's intention, through the F1 value comparison, the BERT-TextCNN algorithm model is finally used to process the user's intention recognition and slot matching. Finally, the Django framework is used to build the back-end, and the front-end uses the WeChat interface to realize the user's interaction with the system.

Keywords: knowledge graph; natural language processing; intelligent question answering system; Deep Learning

0? 引? 言

人工智能技術的發展帶來各種科學技術革新,引領著各種智能交互方式的發展,“人工智能+”(即AI+)的概念也漸入人心。作為民生問題之一的醫療健康,在人工智能技術推動下衍生出“AI+醫療”[1]的新模式及新交互方式——自動問詢系統。

目前,自動問詢系統的構建存在以下幾個問題:1)互聯網醫療診斷問詢大數據語料信息具有海量、異構、動態的特性且主觀性強,導致信息缺乏系統性、針對性,難以根據具體患者和客戶給出系統性、針對性的問詢。再者,市面上缺乏開源且高質量的醫療語料數據。2)用戶問詢的語義抽取及解析需要自然語言算法建模來進行有監督學習,而醫學成本高,大量的手工標注數據,時間、精力和人力成本巨大[2]。3)海量且領域性強的醫療語料數據通過知識抽取算法進行進一步推理,還存在一定的提升空間[3]。4)早期根據檢索和問答模版匹配來實現的問詢系統,難以滿足復雜場景需求。因此,需要運用語義解析技術實現用戶意圖識別。

針對上述問題,在結構化、半結構化和非結構化醫療語料大數據基礎上,本課題選用知識圖譜技術[4]構建醫療知識圖譜。知識圖譜相比傳統數據庫,知識圖譜一是能夠靈活地將多種來源的語義數據有效地組織成一張具有極強表達能力的語義網絡,解決了醫療語料數據的異構和不規則性,為后續知識推理[5]和意圖識別的工作奠定基礎;二是在知識圖譜知識抽取和知識推理階段,采用基于深度學習的抽取、推理方法,可在已有知識圖譜或者無標注語料基礎上進行對齊和自動化標注,逐漸達到擴充知識圖譜目的,有效地解決了醫療語料數據量大而帶來的各種成本問題。

在醫療知識圖譜構建完成的基礎上,為達到問詢功能,亟待解決用戶意圖識別。本課題采用當下流行的自然語言處理算法基于Transformer雙向編碼表示的(Bidirectional Encoder Representations from Transformers, BERT)模型[6]實現知識抽取、語義解析和意圖識別任務。BERT算法模型相較于傳統自然語言處理算法不僅可以學習句子左右兩邊的上下文信息,而且獲取上下文的句子的距離也更遠,可更好地滿足處理復雜的語義解析場景。

因此,本課題通過數據爬蟲技術[7]獲取百度百科、丁香網、尋醫問藥網等網站的醫療語料數據,在此基礎上構建醫療知識圖譜,奠定問詢系統的數據基礎;其次,利用自然語言處理技術進行用戶語義解析和意圖識別;再者,問詢系統的交互離不開后端的支持,本課題采用Django/Flask框架[8]開發問詢系統的后臺;最后,前端將使用微信進行交互。至此,醫療問詢系統架構圖構建完成,如圖1所示。

1? 知識圖譜技術

1.1? 知識圖譜定義

知識圖譜概念于2013年由谷歌提出,其本質是揭示萬物之間關系的語義網絡。知識圖譜旨在從多種類型復雜、碎片化的數據中抽取概念、實體和關系,再通過知識融合建立以上三者的可計算體系模型。按照知識的覆蓋范圍和領域的不同,知識圖譜整體可以劃分為通用性知識圖譜和領域性知識圖譜。

知識圖譜通用形式為知識圖譜=(實體,關系,實體),即G=(Entityhead, Relation, Entitytail),為了便于區分,前者為頭實體,即Entityhead;后者為尾實體,即Entityhead;而夾在兩者之間為實體之間的關系,即Relation。其中,Entity = [Entity1, Entity2, …, Entityn]表示實體的集合,其包含了n種實體的概念Relation = [Relation1, Relation2, …, Relationn]表述實體之間的關系集合,其包含了n種不同的關系。

1.2? 知識圖譜構建技術路線

醫療知識圖譜構建流程,如圖2所示,大致分為5個部分:1)數據源獲取。2)知識抽取,即在各個數據源中自動或半自動的抽取實體間關系,主要包含實體抽取、關系抽取、屬性抽取等任務。3)知識融合,即建立異構本體或異構實例之間的聯系,使從不同知識源中抽取的知識整合在同一框架下,且異構的知識圖譜間能夠互操作,主要包含框架匹配(對概念、屬性、關系等進行匹配和融合,如對不同來源的病的別名、癥狀等屬性進行融合等)和實體對齊[9](判斷兩個知識庫中的兩個或幾個實體是否表示同一對象,通過對齊合并相同的實體完成知識融合[10])。4)知識推理,又叫知識計算,即從建立好的知識圖譜中推理出實體或者實體間的關系,如本課題根據用戶問題推斷出意圖等。5)知識應用,即將建立好的圖譜應用到相應的垂直領域中。

綜上所述,本課題關于利用自然語言技術實現醫療知識圖譜的構建,在自然語言處理模塊主要涉及的有意圖識別(意圖歸納、意圖分類模型)和槽位填充(語義槽設計、命名實體識別和實體鏈指)。構建完成的知識圖譜存儲在Neo4j中,然后運用Python語言實現前后端的交互問詢。

2? 知識圖譜構建

2.1? 實體抽取

知識抽取包含實體抽?。麑嶓w識別)和關系抽取。實體抽取的方法分為3類:基于傳統規則和模板、基于統計機器學習和基于深度學習的知識抽取。

目前,基于深度學習的知識抽取因其實現了實體抽取的自動化和解決了特征提取誤差傳播的問題,該方法在實際應用中取得效果顯著?;诖?,本文也將幾種基于深度學習的方法應用于本項目自建的數據庫,通過F1值和Acc選取合適的實體抽取方法,F1值和Acc如式(2)和式(3)所示。具體的方法評測值,如表1所示。

其中,Acc表示精確率,Recall表示召回率(R),n表示識別正確的實體數,m表示識別出的虛假實體數,l表示丟失的實體數。

根據表1可知,在自建數據庫上基Trans-former的BERT模型表現較好,F1值為93.2。因此,本課題選用BERT模型作為實體抽取方法。

2.2? 關系抽取

關系抽取方法大致分為三類:基于傳統規則和模板、基于統計機器學習和基于深度學習的關系抽取,基于深度學習的關系抽取是近年來研究的熱點。該方法分為流水線方法[15]和實體關系聯合抽取方法[15]。本項目選取的方法為流水線方法。如表2所示,近幾年流水線方法的關系抽取效果,通過F1的值來衡量。

如表2所示,在公共數據集SemEval-2010數據集上基于注意機制的卷積神經網絡(Att-RCNN)[16]取得更好的效果。同時,在自建數據庫上該方法也獲得了較為理想的F1值。因此,在本項目中采用的關系抽取模型為Att-RCNN,即基于注意力機制的卷積神經模型。

綜上所述,知識圖譜最重要的實體抽取和關系兩個過程算法模型已選取完成,基于BERT模型和Att-RCNN模型建立了一個醫藥知識圖譜,存儲在neo4j中,如圖3所示的部分醫療知識圖譜。

在實體抽取和關系抽取中,將要抽取的語料庫分為訓練集、開發集和測試集,并得到最終的F1值,實體類型概覽表,如表3所示。

如表3所示,本課題整理了約5.3萬條和7個類型的實體類型,基于此5.3萬條實體類型從中抽取實體關系,如表4所示。

如表4所示,本課題最終確定了10個類型,約27萬多條實體關系。根據實體類型和實體關系給出了屬性類型,如表5所示。

3? 意圖識別和槽位填充

基于上述已將醫療知識圖譜建立完成,由于知識問答系統需要通過用戶的問題從知識庫中獲取答案,最終以自然語言形式返回給用戶。所以,整個過程需要解決兩個問題:1)用戶的意圖識別。2)意圖識別后與知識圖譜中的知識建立映射。本課題將問題進行了一個分類,即可將用戶意圖的問題進行分流,如表6所示。

為了解決上述兩個問題,需要用的技術是語義解析和槽位填充。這兩種方法都是基于深度學習的方法,在實際應用中由于關聯性太強,所以一般采用來聯合訓練方法。本課題中采用BERT預訓練模型和深度卷積神經網絡TextCNN來進行語義解析和槽位填充的任務。

基于BERT預訓練-TextCNN模型[17]分為兩個步驟:

1)在預訓練BERT模型基礎上,利用多層雙向的Tran-sformer編碼器進行訓練所有標記化文本,輸出文本語義特征向量;2)將第1步中文本語義特征向量輸入到TextCNN模型中進行監督式訓練,最大程度提取文本序列中不同抽象層次的語義信息,最終得到文本高層特征向量。整個過程如圖4所示。

BERT-Text模型如圖4所示,其中X = {x1, x2, …, xn}為醫療問句,T1, T2, …, Tn為Transformer輸出的文本特征向量,y1, y2, …, yn為文本高層特征向量。

將上述模型應用到本課題的意圖識別和槽位填充上,并且與Word2Vec-TextCNN[18]模型做對比,結果如表7所示。

從表7可以得出,BERT-TextCNN模型適合本課題的意圖識別和槽位填充。

4? 醫療助手的設計與實現

本項目由圖譜構建、數據存儲和智能助手三個模塊組成,圖譜構建模塊利用多種數據源抽取醫學知識并以此構建知識圖譜;數據存儲模塊利用圖存儲引擎Neo4j來存儲知識圖譜信息;智能助手負責用戶的交互,通過意圖識別和槽位填充實現問答功能。整個系統構建流程,如5所示。

上述已經將圖譜構建模塊、數據存儲模塊構建完成,接下來,將繼續介紹智能助手的設計與實現。智能助手的設計與實現,如圖6所示。

根據圖6的構建圖,利用微信搭建出醫療問詢系統。為了測試系統準確性,本課題測試1 000條數據,其中有903條達到用戶需求,測試結果達到較高準確性,如圖7所示。

與此同時,本課題也測試了微信接口,結果如圖8所示。由圖可以看出,系統較好地響應了用戶的問題。

5? 結? 論

本項目利用知識圖譜技術和自然語言技術實現醫療智能問詢系統,知識圖譜技術解決數據結構問題,自然語言技術解決知識圖譜的知識抽取、關系抽取、意圖識別和槽位填充的問題,雖取得了較好的精確性,但本項目在關系抽取、多輪對話和知識圖譜的泛化性上還有待提高。

參考文獻:

[1] 程國華.“AI+醫療”時代,我國醫療服務砥礪前行 [J].張江科技評論,2020(4):52-53.

[2] 金朋.意圖識別與槽位填充關鍵技術研究 [D].哈爾濱:哈爾濱工業大學,2021.

[3] 張吉祥,張祥森,武長旭,等.知識圖譜構建技術綜述 [J].計算機工程,2022,48(3):23-37.

[4] 杭婷婷,馮鈞,陸佳民.知識圖譜構建技術:分類、調查和未來方向 [J].計算機科學,2021,48(2):175-189.

[5] 封皓君,段立,張碧瑩.面向知識圖譜的知識推理綜述 [J].計算機系統應用,2021,30(10):21-30.

[6] YU G H,ZHANG Z X,LIU H,et al. Masked Sentence Model Based on BERT for Move Recognition in Medical Scientific Abstracts [J].Journal of Data and Information Science,2019,4(4):42-55.

[7] 羅安然,林杉杉.基于Python的網頁數據爬蟲設計與數據整理 [J].電子測試,2020(19):94-95+31.

[8] 徐秀芳,夏旻,徐森,等.基于Django的校園疫情防控系統設計與實現 [J].軟件導刊,2021,20(2):24-30.

[9] 楊秀璋,彭國軍,李子川,等.基于Bert和BiLSTM-CRF的APT攻擊實體識別及對齊研究[J].通信學報,2022,43(6):58-70.

[10] 馬忠貴,倪潤宇,余開航.知識圖譜的最新進展、關鍵技術和挑戰 [J].工程科學學報,2020,42(10):1254-1266.

[11] YAN H,DENG B C,LI X N,et al. TENER:Adapting Transformer Encoder for Named Entity Recognition [J/OL].arXiv:1911.04474 [cs.CL].[2022-11-05].https://arxiv.org/abs/1911.04474v3.

[12] DEVLIN J,CHANG M W,LEE K,et al. BERT:Pre-training of Deep Bidirectional Transformers for Language Understanding [EB/OL].[2022-11-05].https://arxiv.org/pdf/1810.04805.pdf.

[13] 曾青霞,熊旺平,杜建強,等.結合自注意力的BiLSTM-CRF的電子病歷命名實體識別 [J].計算機應用與軟件,2021,38(3):159-162+242.

[14] LUO X,XIA X Y,AN Y,et al. Chinese CNER Combined with Multi-head Self-attention and Bi LSTM-CRF [J].Journal of Human University:Natural Sciences,2021,48(4):45-55.

[15] 姜天文.條件性知識圖譜構建及其應用研究 [D].哈爾濱:哈爾濱工業大學,2021.

[16] GUO X Y,ZHANG H,YANG H J,et al. A Single Attention-Based Combination of CNN and RNN for Relation Classification [J].IEEE Access,2019,7:12467-12475.

[17] 鄭承宇,王新,王婷,等.基于ALBERT-TextCNN模型的多標簽醫療文本分類方法 [J].山東大學學報:理學版,2022,57(4):21-29.

[18] KIM Y. Convolutional Neural Networks for Sentence Classification [J/OL].arXiv:1408.5882 [cs.CL].[2022-11-10].https://arxiv.org/abs/1408.5882v2

作者簡介:謝崇波(1992—),男,漢族,陜西漢中人,助教,碩士,研究方向:深度學習、自然語言處理。

收稿日期:2022-10-12

基金項目:四川信息職業技術學院校級課題(2022C18)

猜你喜歡
自然語言處理知識圖譜深度學習
基于組合分類算法的源代碼注釋質量評估方法
MOOC與翻轉課堂融合的深度學習場域建構
基于知識圖譜的產業集群創新績效可視化分析
基于知識圖譜的產業集群創新績效可視化分析
大數據技術在反恐怖主義中的應用展望
基于知識圖譜的智慧教育研究熱點與趨勢分析
深度學習算法應用于巖石圖像處理的可行性研究
基于深度卷積網絡的人臉年齡分析算法與實現
從《ET&S》與《電化教育研究》對比分析中管窺教育技術發展
面向機器人導航的漢語路徑自然語言組塊分析方法研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合