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
如何獲取一億海外用戶
主站蜘蛛池模板: 日本国产精品一区久久久| 手机精品视频在线观看免费| 国产精品自在在线午夜| 国产精品亚欧美一区二区三区| 亚洲成人福利网站| 午夜久久影院| 999国产精品永久免费视频精品久久| 美女扒开下面流白浆在线试听 | 噜噜噜久久| 99这里只有精品在线| 一区二区三区精品视频在线观看| 中文字幕在线观| 拍国产真实乱人偷精品| 久久久久久久久亚洲精品| 欧美成人精品在线| 亚洲侵犯无码网址在线观看| 久久午夜夜伦鲁鲁片无码免费| 久久久黄色片| 日日噜噜夜夜狠狠视频| 国产91在线免费视频| 国产va在线观看免费| 青青草a国产免费观看| 亚洲毛片网站| 日本不卡在线播放| 爆乳熟妇一区二区三区| 最新亚洲人成无码网站欣赏网| 久久综合色88| 久久亚洲国产最新网站| 国产91精品调教在线播放| 国产成人亚洲精品无码电影| 69视频国产| 97国产在线观看| 91一级片| 国产夜色视频| 成AV人片一区二区三区久久| 久久特级毛片| 国产av剧情无码精品色午夜| 国产玖玖玖精品视频| 欧美精品亚洲精品日韩专区| 日本成人一区| 毛片在线看网站| 午夜视频在线观看免费网站 | 色综合激情网| 欧美激情第一欧美在线| 日韩一级二级三级| 一区二区影院| 国产无码在线调教| 亚洲欧美日韩成人高清在线一区| 美美女高清毛片视频免费观看| 2022国产91精品久久久久久| 日韩大片免费观看视频播放| 在线播放真实国产乱子伦| 亚洲国产精品日韩专区AV| 中国丰满人妻无码束缚啪啪| 在线精品亚洲一区二区古装| 97视频免费在线观看| 精品伊人久久久香线蕉| 亚洲黄网视频| 国产亚洲欧美日韩在线一区| a级毛片在线免费观看| 四虎永久在线| 91福利免费| 国产欧美日韩va| 日本少妇又色又爽又高潮| 欧美性久久久久| 亚洲一区二区约美女探花| 狠狠干综合| 99re在线视频观看| 久久久久久午夜精品| 人妖无码第一页| 国产视频大全| 久久这里只有精品23| 亚洲91精品视频| 最新国语自产精品视频在| 91精选国产大片| 99久久国产综合精品2023| 毛片免费视频| 青青青国产视频| 伊人查蕉在线观看国产精品| 日韩激情成人| 性色一区| 亚洲精品国产日韩无码AV永久免费网|