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

智能醫(yī)療問答系統(tǒng)的設(shè)計與實現(xiàn)

2021-10-13 02:39:06何艷張寧
中國醫(yī)療設(shè)備 2021年9期
關(guān)鍵詞:頁面數(shù)據(jù)庫用戶

何艷,張寧

西安郵電大學(xué) 通信與信息工程學(xué)院,陜西 西安 710121

引言

通過互聯(lián)網(wǎng)得到科學(xué)準(zhǔn)確的醫(yī)療服務(wù)與人們的幸福生活密切相關(guān),智能問答平臺有助于快速篩選搜索信息。自動聊天機器人可分為以信息提取為基礎(chǔ)的專家系統(tǒng)和自主生產(chǎn)學(xué)習(xí)式的開放領(lǐng)域問答平臺系統(tǒng)[1]。垂直領(lǐng)域的專家系統(tǒng)大大壓縮了數(shù)據(jù)規(guī)模,適用于醫(yī)療領(lǐng)域的應(yīng)用開發(fā)[2]。語義分析是實現(xiàn)智能問答的基本途徑。在傳統(tǒng)TextRank算法和Word2Vec基礎(chǔ)上,Python以MySQL+Flask web +vue分級架構(gòu)實現(xiàn)了知識自動問答[3]。醫(yī)療數(shù)據(jù)包含大量冗余文本數(shù)據(jù)。聯(lián)合標(biāo)注策略的實體關(guān)系抽取模型使用NoSQL數(shù)據(jù)庫Neo4j存儲知識數(shù)據(jù),獲得較高檢索效率[4]。Java語言的MVC(Model、View、Controller)架構(gòu)將后臺運算與前端顯示分離[5-6]。利用多源異構(gòu)數(shù)據(jù)構(gòu)建醫(yī)療相關(guān)知識庫,聯(lián)合中文分詞和醫(yī)療詞典,準(zhǔn)確識別醫(yī)療相關(guān)領(lǐng)域詞匯[7]。不同數(shù)據(jù)庫的知識存儲會影響問答效率。MySQL體積小、速度快,在靈活性上遠(yuǎn)超SQL Sever和Oracle數(shù)據(jù)庫[8]。利用Redis數(shù)據(jù)庫緩存,可提高系統(tǒng)處理高并發(fā)場景時的效率[9]。ANSJ實現(xiàn)分詞,且標(biāo)注分詞后詞性,在內(nèi)存中分詞速率100萬字/s,準(zhǔn)確度達(dá)96%以上[10-11]。Spring作為JavaWeb框架,集成了控制翻轉(zhuǎn)和面向切面編程的特點[12-13]。布隆過濾器利用錯誤率換取更小的空間占用,其操作時間復(fù)雜度為O(1)[14-15]。本文旨在設(shè)計實現(xiàn)一款智能問答系統(tǒng),通過用戶對自身病情癥狀的描述,系統(tǒng)通過語義解析得到合理準(zhǔn)確的醫(yī)療指導(dǎo),進而給人們提供日常的健康醫(yī)療咨詢。

1 醫(yī)療問答系統(tǒng)設(shè)計

本醫(yī)療問答系統(tǒng)設(shè)計框圖如圖1所示,系統(tǒng)采用分級架構(gòu),使得數(shù)據(jù)庫、邏輯層、展示層分開,便于分層開發(fā)維護。

圖1 系統(tǒng)設(shè)計框圖

1.1 后端結(jié)構(gòu)設(shè)計

后端代碼結(jié)構(gòu)大致分為Controller、Dao、Pojo、Service、Test五部分。其中Controller層負(fù)責(zé)與前端代碼的交互,接收或發(fā)送數(shù)據(jù)到前端。Pojo層存儲項目對應(yīng)的數(shù)據(jù)模型類。Service層負(fù)責(zé)處理項目的主要邏輯。Test負(fù)責(zé)代碼的調(diào)試與測試功能。圖2展示了后端項目代碼結(jié)構(gòu)。

圖2 后端項目代碼結(jié)構(gòu)

1.2 數(shù)據(jù)庫連接設(shè)計

在數(shù)據(jù)庫連接的部分,采用基于JDBC的Java數(shù)據(jù)庫連接工具Mybatis進行Java程序與MySQL數(shù)據(jù)庫的連接。使用注解的方式完成連接,并將SQL語句卸載至xml文件中,便于維護管理[16]。同時項目采用了Mybatis自帶的SQL預(yù)處理方式,避免了SQL注入的風(fēng)險。

1.3 醫(yī)療問答系統(tǒng)數(shù)據(jù)庫設(shè)計

醫(yī)療問答系統(tǒng)的數(shù)據(jù)模型包括用戶集合、疾病集合和用戶患病集合。用戶集合用于存儲普通用戶在平臺進行登錄、注冊、問答咨詢所需的基本信息;疾病集合用于存儲爬取的醫(yī)療相關(guān)信息;用戶患病集合用于存儲疾病與用戶之間的對應(yīng)關(guān)系,形成用戶表與疾病表之間多對多的表間關(guān)系。各表間關(guān)系繪制成實體聯(lián)系圖如圖3所示。

圖3 系統(tǒng)數(shù)據(jù)庫實體聯(lián)系圖

1.4 前后端交互資源使用設(shè)計

由于項目前后端分離的設(shè)計,在本機測試時兩端會分別占用不同端口,前端Vue部分占用8080端口,后端占用8081端口。前后端的數(shù)據(jù)交互采用JSON(JavaScript Object Notation)數(shù)據(jù)格式。依照J(rèn)SON將后端Java實體類序列化成字符串的格式發(fā)送至前端解析,同時前端也能發(fā)送JSON至后端,經(jīng)由后端轉(zhuǎn)換為實體類。在Java中,可以將JSON還原為HashMap結(jié)構(gòu)或者一個基本對象。

1.5 系統(tǒng)并發(fā)設(shè)計

本系統(tǒng)在多個角度進行了并發(fā)設(shè)計,確保了程序的穩(wěn)定性(圖4)。系統(tǒng)設(shè)計將Tomcat服務(wù)器默認(rèn)提供的BIO模式改配置為NIO模式。BIO模式下,每次請求會新建一個線程去處理,線程的創(chuàng)建與銷毀極大地浪費了系統(tǒng)資源,改為NIO模式后不用每次阻塞線程,提高了系統(tǒng)效率。在編寫Java代碼時,內(nèi)部使用了HashMap作為緩存暫時存儲數(shù)據(jù)庫查詢結(jié)果,避免每次處理時對數(shù)據(jù)庫的反復(fù)查詢。利用WebMagic的多線程爬蟲特性爬取醫(yī)療數(shù)據(jù),開啟5個線程同時爬取,提高了系統(tǒng)速度。

圖4 醫(yī)療問答系統(tǒng)的并發(fā)設(shè)計圖

1.6 MVC模式解耦設(shè)計

考慮到系統(tǒng)各模塊間耦合度高,本系統(tǒng)在架構(gòu)設(shè)計上采用MVC模式解耦合。將系統(tǒng)拆分為View(前端視圖層)、Controller(邏輯控制層)、Model(中間數(shù)據(jù)邏輯層),分別對應(yīng)后端代碼中的Controller、Service、Pojo三個文件夾。其中Controller文件夾中主要編寫基于SpringMVC的相關(guān)代碼,負(fù)責(zé)通過http協(xié)議完成前后端數(shù)據(jù)交互。Service文件夾中主要編寫問答系統(tǒng)的主要邏輯,即接收到問題后對問題處理并回復(fù)的過程。Pojo文件夾中則存放系統(tǒng)用到的實體類,包括用戶類、醫(yī)療信息類。三層分離編寫,互不干擾。三層間通過數(shù)據(jù)接口交互,方便分模塊糾錯。

1.7 系統(tǒng)功能模塊詳細(xì)設(shè)計

問答模塊是系統(tǒng)的主要邏輯模塊,具體流程是前端接收用戶輸入的語句傳輸至后端,隨后進入Service層。通過Ansj對語句進行分詞處理,并按照詞性摘取出語句中的動詞、名詞等作重點處理,并將其存入HashMap標(biāo)記為InfoMap。依次遍歷InfoMap中的所有詞,并在MySQL數(shù)據(jù)庫中查找相關(guān)疾病的癥狀,并記錄疾病名稱和出現(xiàn)次數(shù)至Disease Map中,最后通過SpringMVC反饋給前端。

用戶信息處理模塊包含對用戶注冊信息的數(shù)據(jù)庫寫入以及對登錄用戶信息的查庫校驗。項目中的User類對應(yīng)MySQL中的User表,分別設(shè)置Uid、UName、Password三個字段,簡單地實現(xiàn)了登錄注冊功能所需要的所有信息。用戶通過/login進入登錄模塊前端頁面,輸入用戶名密碼后發(fā)送至后端,在通過MySQL查詢登錄信息完成校驗,校驗成功后自動轉(zhuǎn)入問答模塊。注冊功能則是在數(shù)據(jù)庫中存入用戶的注冊信息,注冊完成后返回登錄頁面。

信息獲取模塊負(fù)責(zé)自動獲取醫(yī)療網(wǎng)站內(nèi)醫(yī)療相關(guān)的信息,醫(yī)療數(shù)據(jù)內(nèi)容爬取后重新存儲,見圖5。借助WebMagic提供的爬蟲接口,使用Java線程池技術(shù)配置多個線程同時爬蟲,考慮到本電腦使用四核CPU,確定開啟五個線程,理論上獲得了五倍速度的爬蟲效率。通過爬蟲獲取疾病名稱、疾病描述、病因、癥狀、治療手段、診斷鑒別等多種信息,對應(yīng)創(chuàng)建其Java類用于存儲,最后通過Mybatis的持久化技術(shù)將醫(yī)療數(shù)據(jù)存儲至MySQL數(shù)據(jù)庫中。

圖5 爬取獲得的醫(yī)療數(shù)據(jù)內(nèi)容

2 技術(shù)創(chuàng)新

2.1 爬蟲策略與算法

網(wǎng)絡(luò)爬蟲策略包括借助棧結(jié)構(gòu)實現(xiàn)的深度優(yōu)先搜索、借助隊列實現(xiàn)的廣度優(yōu)先搜索以及最佳優(yōu)先搜索。

最佳優(yōu)先搜索比深度優(yōu)先策略和廣度優(yōu)先搜索策略更加復(fù)雜,但在面對大量網(wǎng)頁爬取的任務(wù)時,能更好地過濾掉30%以上的無關(guān)網(wǎng)頁。它的邏輯是在爬取之前先對候選URL進行一系列的相似度分析,并最終選擇爬取與主題相關(guān)度更高的網(wǎng)頁,節(jié)省計算機資源。

2.2 WebMagic爬蟲

WebMagic是一個基于Java的開源爬蟲框架,其整體 結(jié) 構(gòu) 包 括 Downloader、PageProcessor、Scheduler和Pipeline四個組件,分別對應(yīng)爬蟲生命周期中的下載、清洗、時間管理和持久化。需要將這些組件結(jié)合并完成多線程任務(wù)以提高爬蟲效率,同時使用容器spider將組件組織起來協(xié)作完成任務(wù)。圖6展示了Web Magic各模塊協(xié)作工作流程。

圖6 WebMagic運行流程圖

2.3 關(guān)系型數(shù)據(jù)庫

數(shù)據(jù)庫技術(shù)主要研究目標(biāo)是數(shù)據(jù),實現(xiàn)數(shù)據(jù)高效存儲與快速獲取。目前的主流數(shù)據(jù)庫分為關(guān)系型數(shù)據(jù)庫與非關(guān)系型數(shù)據(jù)庫兩種。關(guān)系型數(shù)據(jù)庫指采用行列表格形式組織數(shù)據(jù),其主要模塊是二維的表格。如圖7所示分為表頭和內(nèi)容,多個數(shù)據(jù)表組成了數(shù)據(jù)庫。為了避免數(shù)據(jù)重復(fù)存儲,按照最小關(guān)系表的形式存儲,采用SQL對數(shù)據(jù)庫進行增刪改查等操作。

圖7 關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)表

2.4 非關(guān)系型數(shù)據(jù)庫

非關(guān)系型數(shù)據(jù)庫也被叫作NoSQL(不適于SQL語句的意思),其速度優(yōu)勢得益于Hash數(shù)據(jù)結(jié)構(gòu),其預(yù)先準(zhǔn)備適當(dāng)長度的存儲空間,并做線性標(biāo)記。當(dāng)有數(shù)據(jù)存入空間時,采用特定哈希算法計算數(shù)據(jù)位置后存入,在后續(xù)查詢過程中,只需要將查詢詞再次進行哈希計算,就能在01的復(fù)雜度內(nèi)完成查詢操作,同比使用了B+樹的MySQL數(shù)據(jù)庫,查詢的時間復(fù)雜度遠(yuǎn)遠(yuǎn)超過01。

2.5 AnsjSeg分詞技術(shù)

分詞技術(shù)將連續(xù)詞語組成的句子重新分割成各個詞語,便于計算機分治處理。中文分詞算法大致分為基于詞典的分詞算法與基于人工智能統(tǒng)計的分詞算法。Java語言提供了盤古分詞、NLPIR、IKAnalyzer、PaodingAnalyzer等分詞工具。由于AnsjSeg提供便捷的分詞接口,分詞處理后,框架將會返回句子中所有詞語與其所對應(yīng)的詞性,因此本文將采用AnsjSeg分詞工具。

2.6 Java框架技術(shù)

Mybatis是源于Apache的一個開源項目,完成了對底層JDBC的封裝,簡化了后端連接數(shù)據(jù)庫的步驟,對外提供簡便的接口。其解除了SQL語句與程序代碼的耦合,將業(yè)務(wù)層與數(shù)據(jù)訪問分離使系統(tǒng)結(jié)構(gòu)更加清晰。

3 結(jié)果展示

3.1 登錄注冊功能實現(xiàn)

用戶自主輸入隨意用戶名密碼即可完成注冊,注冊成功后系統(tǒng)自動跳轉(zhuǎn)到登錄頁。用戶在輸入自身癥狀后,系統(tǒng)會反饋可能性病癥以及其可能性權(quán)值。用戶登錄成功后,頁面將自動跳轉(zhuǎn)到/work路徑展示問答頁面,用戶向第一個輸入框內(nèi)輸入疾病癥狀(不需要特殊格式),點擊提交按鈕后,前端自動將內(nèi)容提交至后臺分析,隨后Java后臺經(jīng)過分詞處理后向數(shù)據(jù)庫查詢結(jié)果,結(jié)果集將封裝在TreeMap中暫存,由于TreeMap可以將key值排序,所以得到疾病可能性權(quán)值將從小到大展示。

3.2 數(shù)據(jù)獲取模塊的實現(xiàn)

數(shù)據(jù)庫中的醫(yī)療數(shù)據(jù)均由數(shù)據(jù)獲取模塊提供,首先對被爬取網(wǎng)頁進行分析,確保其Robot協(xié)議允許用戶爬蟲。隨后分析其頁面結(jié)構(gòu)尋找需要爬取的頁面特性,通過WebMagic對頁面進行解析,獲取其中關(guān)鍵標(biāo)簽所包含的有用信息,在遇到多種冗余信息存儲于同一標(biāo)簽下時,則采用CSS選擇器篩選出符合條件的數(shù)據(jù)。并將其保存至Java的Static靜態(tài)類中(靜態(tài)類保證了在類中字段填滿之前,爬蟲的重復(fù)執(zhí)行并不會刷新對象中內(nèi)容),等到類的其他字段通過爬蟲填滿后統(tǒng)一寫入數(shù)據(jù)庫,完成一組數(shù)據(jù)的爬取。

3.3 系統(tǒng)測試

項目測試環(huán)境為Windows 10 PC一臺,Java8編譯環(huán)境,F(xiàn)irefox瀏覽器。使用Java首先啟動graduationdesign項目,查看SpringBoot啟動日志,確定8081端口打開無誤后再啟動前端VUE代碼。項目啟動效果如圖8~9所示。

圖8 后端項目啟動頁面

圖9 前端項目啟動頁面

問答模塊測試使用用戶組織的語言對系統(tǒng)進行提問,系統(tǒng)將自動反饋可能性病癥,并以JASON的數(shù)據(jù)格式發(fā)送至前端,包括疾病的名稱及可能性權(quán)值,癥狀描述越多越準(zhǔn)確。可以在瀏覽器中查詢到前后端數(shù)據(jù)交互的情況如圖10所示。在數(shù)據(jù)爬蟲測試中,后端提前綁定MySQL服務(wù)器,啟動后自動查找尋醫(yī)問藥網(wǎng)中關(guān)于呼吸科的疾病信息,同一疾病分別爬取疾病的名稱、癥狀、治療方法、病因、簡介五個信息后,進行數(shù)據(jù)庫查詢校驗,如果與庫中數(shù)據(jù)不重復(fù),統(tǒng)一存入數(shù)據(jù)庫。

圖10 問答功能數(shù)據(jù)交互詳情

4 結(jié)語

醫(yī)學(xué)領(lǐng)域的信息化和智慧化建設(shè)是當(dāng)前迫切需要解決的難題。在信息技術(shù)發(fā)展的同時,人們也逐步由初始的單純對速度與信息量的追求,進而發(fā)展為對信息準(zhǔn)確性和高效性的追求。目前市面上的各類搜索引擎所提供的信息檢索服務(wù)大都趨向于百科全書式的大雜燴,用戶搜索關(guān)鍵知識時,往往會檢索出許多冗余的“垃圾”數(shù)據(jù),浪費人們的時間。還有一些搜索引擎在返回正常搜索數(shù)據(jù)的同時還會夾雜一些廣告,使得用戶的搜索效率大幅降低。傳統(tǒng)搜索引擎在醫(yī)療領(lǐng)域的使用,有助于獲取互聯(lián)網(wǎng)上全面的信息資源,但如何篩選信息成為難題。

本文開發(fā)設(shè)計的基于JavaEE的醫(yī)療問答系統(tǒng),通過網(wǎng)絡(luò)爬蟲爬取醫(yī)療相關(guān)數(shù)據(jù),并將其存儲至MySQL數(shù)據(jù)庫中。用戶注冊系統(tǒng)后,后臺數(shù)據(jù)庫保存其個人信息,登錄系統(tǒng)后顯示提問頁面。用戶發(fā)問后利用分詞技術(shù)分析問題,快速將反饋結(jié)果發(fā)送至前端,實現(xiàn)用戶注冊、登錄、注銷、查詢等基本功能。

由于醫(yī)療領(lǐng)域的專業(yè)性和需求迫切性,各種不同形式的醫(yī)療問答系統(tǒng)被推向市場,如騰訊醫(yī)典、平安好醫(yī)生以及丁香醫(yī)生等。區(qū)別于傳統(tǒng)搜索引擎,本文開發(fā)的醫(yī)療問答系統(tǒng)將目標(biāo)聚焦于垂直醫(yī)療領(lǐng)域,通過對用戶語句的語義分析進行模糊匹配,確保搜索的結(jié)果信息控制在一個較小的維度,為患者提供準(zhǔn)確、高效的醫(yī)療咨詢服務(wù)。利用基于JavaEE的醫(yī)療問答系統(tǒng)可以實現(xiàn)用戶對于自身癥狀的初步判斷,系統(tǒng)通過分析用戶提供的癥狀描述,取得用戶描述內(nèi)容的關(guān)鍵詞,將關(guān)鍵詞與醫(yī)療數(shù)據(jù)庫中內(nèi)容匹配,通過規(guī)則推理和本體描述實現(xiàn)問答功能。本文開發(fā)實現(xiàn)的基于Java的醫(yī)療問答系統(tǒng),其注冊登錄流程簡潔,界面層級清晰,通過分詞技術(shù)和關(guān)系型數(shù)據(jù)庫的聯(lián)合使用,結(jié)合爬蟲策略,實現(xiàn)了醫(yī)療垂直領(lǐng)域的問答,能便捷、及時解決用戶健康需求。本系統(tǒng)采用了高擴展性系統(tǒng)架構(gòu),未來可以進一步擴充性能,以提供更智慧快捷的醫(yī)療服務(wù)。

與此同時,本系統(tǒng)也有許多需要優(yōu)化改進的地方。前端頁面的UI以功能實用為主,沒有考慮到美學(xué)設(shè)計理念。此外,目前系統(tǒng)只是爬取了呼吸內(nèi)科相關(guān)疾病,后臺數(shù)據(jù)庫中醫(yī)療數(shù)據(jù)的爬取不夠全面。在問答過程中問答信息偏學(xué)術(shù)化,略顯機械,后續(xù)需改進該系統(tǒng)的人性化。

猜你喜歡
頁面數(shù)據(jù)庫用戶
大狗熊在睡覺
刷新生活的頁面
數(shù)據(jù)庫
財經(jīng)(2017年2期)2017-03-10 14:35:35
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數(shù)據(jù)庫
財經(jīng)(2016年15期)2016-06-03 07:38:02
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數(shù)據(jù)庫
財經(jīng)(2016年3期)2016-03-07 07:44:46
數(shù)據(jù)庫
財經(jīng)(2016年6期)2016-02-24 07:41:51
如何獲取一億海外用戶
主站蜘蛛池模板: 992Tv视频国产精品| av在线人妻熟妇| 亚洲天堂777| 狠狠久久综合伊人不卡| 一本一道波多野结衣av黑人在线| 成人午夜视频网站| 天天色天天综合| 国产在线视频自拍| 91久久偷偷做嫩草影院免费看| 国产无码性爱一区二区三区| 亚洲一区二区三区国产精华液| 东京热一区二区三区无码视频| 亚洲欧洲自拍拍偷午夜色无码| 久久精品这里只有精99品| 亚洲高清无码精品| 狠狠色综合网| 久久久久亚洲精品成人网| 午夜欧美理论2019理论| 欧美成人a∨视频免费观看| 国产在线八区| 欧美成人精品高清在线下载| 久久久成年黄色视频| 女人18毛片一级毛片在线| 精品无码日韩国产不卡av| 91口爆吞精国产对白第三集| 成人午夜福利视频| 亚洲天堂免费| 爱做久久久久久| 欧美天天干| 午夜福利在线观看成人| 99精品一区二区免费视频| 国产成人精品第一区二区| 亚洲日韩欧美在线观看| 亚洲三级影院| 高清无码一本到东京热| 亚洲AV无码乱码在线观看裸奔| 日本亚洲最大的色成网站www| 日韩av手机在线| 秋霞一区二区三区| 多人乱p欧美在线观看| 国产交换配偶在线视频| 91无码网站| 日韩国产另类| 一本一道波多野结衣av黑人在线| 伊人激情久久综合中文字幕| 韩日免费小视频| 久久综合九九亚洲一区| 国产精品久久自在自2021| 国产黄色片在线看| 国产亚洲一区二区三区在线| 国产成人免费观看在线视频| 日韩无码一二三区| 五月天天天色| 亚洲一级毛片| 亚洲成人在线网| 久久这里只精品国产99热8| 亚洲成a人片77777在线播放| 91丝袜乱伦| 黄网站欧美内射| 日韩成人免费网站| 亚洲日韩久久综合中文字幕| 成年看免费观看视频拍拍| 人妻一区二区三区无码精品一区| 在线日韩日本国产亚洲| 国产麻豆va精品视频| 亚洲精品制服丝袜二区| 真人高潮娇喘嗯啊在线观看 | 日韩中文无码av超清| 国产草草影院18成年视频| 国产欧美又粗又猛又爽老| 国产91在线|中文| 尤物精品视频一区二区三区| 丝袜高跟美脚国产1区| 在线看国产精品| 99视频精品在线观看| 91成人在线观看| 在线无码私拍| 亚洲成a人在线播放www| 国产不卡在线看| 亚洲永久色| 国产精品19p| 毛片久久网站小视频|