劉宇枝,陳 博,趙 鑫,李翠榮
(1.空軍軍醫(yī)大學(xué) 第三附屬醫(yī)院,陜西 西安 710000; 2.中移鐵通有限公司,北京 100038; 3.西安市紅會醫(yī)院,陜西 西安 710061; 4.山東第一醫(yī)科大學(xué) 第一附屬醫(yī)院,山東 濟(jì)南 250014)
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,線上智能化服務(wù)涉及越來越多的行業(yè)。為讓用戶在線上精準(zhǔn)地獲取所需相關(guān)知識和相關(guān)信息,需不斷優(yōu)化信息的檢索性能。因此,圍繞相關(guān)知識和相關(guān)信息的檢索,提高信息化處理效率,很多學(xué)者提出不同的方法,如引入Hadoop云框架對信息進(jìn)行存儲和檢索,以提高信息處理效率;引入文本挖掘算法與Spark架構(gòu),以提高信息檢索效率。而實(shí)際應(yīng)用發(fā)現(xiàn),在智能化和信息化不斷普及的今天,人們更多的喜歡通過網(wǎng)絡(luò)獲取健康科普知識。但遍歷發(fā)現(xiàn)目前針對信息的檢索多為對原始數(shù)據(jù)的集成和展示,且可靠性和準(zhǔn)確性難以保證。因此,基于以上問題,以及結(jié)合當(dāng)前信息化建設(shè)背景,本文提出一種基于文本挖掘的信息檢索系統(tǒng),在方便用戶查找相關(guān)信息的同時(shí)也提高檢索的準(zhǔn)確性和可靠性。
本文基于Spring Cloud 框架來構(gòu)建微服務(wù)平臺,主要包括數(shù)據(jù)檢索、數(shù)據(jù)運(yùn)維、問答服務(wù)、監(jiān)控告警、用戶中心和權(quán)限管理這6大服務(wù)器。同時(shí)把基于文本挖掘的信息檢索系統(tǒng)分為前后2個(gè)部分,前端以CSS、JavaScript、jQuery 來對數(shù)據(jù)進(jìn)行展現(xiàn),后端以微服務(wù)來對后端業(yè)務(wù)進(jìn)行處理?;谖谋就诰虻男畔z索系統(tǒng)分層結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)整體架構(gòu)
由圖1可知,系統(tǒng)主要分為5層,分別為資源層、服務(wù)層、接口層、Web 層、訪問層。其中,資源層包括儲存數(shù)據(jù)的主要工具和備份工具;服務(wù)層則采用 JSON 格式對系統(tǒng)中各功能板塊之間的邏輯進(jìn)行通信;接口層則通過 API Gateway將所有的入口的流量轉(zhuǎn)發(fā)給后端的服務(wù)器并進(jìn)行限流、權(quán)限、緩存等拓展。
物理架構(gòu)是指系統(tǒng)的部署架構(gòu),基于Docker 實(shí)現(xiàn)系統(tǒng)內(nèi)部的快速部署,有效解決系統(tǒng)的運(yùn)轉(zhuǎn)和維護(hù)。Docker在系統(tǒng)運(yùn)作中,是以Namespace 和 Cgroups 技術(shù)來把系統(tǒng)中的單個(gè)應(yīng)用裝在沙盒中進(jìn)行運(yùn)行,應(yīng)用之間相互隔離;具體架構(gòu)設(shè)計(jì)如圖2所示。
圖2 系統(tǒng)物理架構(gòu)部署
信息檢索系統(tǒng)主要圍繞著著數(shù)據(jù)處理模塊、問答系統(tǒng)模塊和信息檢索模塊3大模塊進(jìn)行設(shè)計(jì)。其數(shù)據(jù)處理主要是對數(shù)據(jù)的準(zhǔn)備;問答系統(tǒng)則是對問答數(shù)據(jù)的獲取和理解;信息檢索則是為用戶提供智能化的信息化的檢索服務(wù)。具體功能模塊如圖3所示。
圖3 系統(tǒng)功能模塊
數(shù)據(jù)處理模塊主要是從眾多的信息網(wǎng)站中獲取和儲存數(shù)據(jù)信息,并以此作為該系統(tǒng)的數(shù)據(jù)信息來源,為用戶的信息檢索提供有效的數(shù)據(jù)信息基礎(chǔ)。該模塊主要包括數(shù)據(jù)爬取、整合和補(bǔ)充3個(gè)部分,數(shù)據(jù)處理的具體流程如圖4所示。
圖4 數(shù)據(jù)處理的流程
問答系統(tǒng)模塊是指在用戶提問后,該模塊自動在系統(tǒng)中匹配該問題的相關(guān)數(shù)據(jù)并回答提問,具體流程如圖5所示。
圖5 問答系統(tǒng)流程
(1)用戶主動輸入問題,系統(tǒng)自動獲取用戶提問并對問題進(jìn)行預(yù)處理,然后迅速訪問 ES 緩存,搜尋 ES 緩存中是否有問題的記錄,有就直接顯示,沒有就開始訪問問答系統(tǒng)模板;(2)問答系統(tǒng)對用戶提出的問題進(jìn)行意圖和實(shí)體識別,獲取相關(guān)意圖的關(guān)鍵詞,生成ES檢索語句檢索獲得相同或相關(guān)的數(shù)據(jù)信息來作為候選的問題集并返回;(3)問答系統(tǒng)自動將用戶輸入的問題和候選的問題集進(jìn)行匹配,并進(jìn)行排序;(4)把相似的ID列表和得分列表進(jìn)行數(shù)據(jù)緩存,然后再返回到已經(jīng)排序的數(shù)據(jù)結(jié)果集中。
信息檢索模塊主要是把獲取的相關(guān)數(shù)據(jù)存儲在Elastic Search中,為用戶信息檢索系統(tǒng)提供數(shù)據(jù)服務(wù),主要包括3大板塊,分別為索引板塊、搜索模塊和用戶模塊。其中,索引板塊是對用戶的提問進(jìn)行索引的建立、數(shù)據(jù)的入庫以及數(shù)據(jù)的維修維護(hù),包括其中工作人員及物品等信息數(shù)據(jù)和系統(tǒng)中科普文章、問答問題信息等文本數(shù)據(jù);搜索模塊是將獲取的數(shù)據(jù)組織起來,并完善數(shù)據(jù)檢索服務(wù),以便為用戶的提問進(jìn)行檢索需求。主要是通過用戶的輸入提問進(jìn)行解析,并把解析后的搜索進(jìn)行分布式的搜索,在各個(gè) ES 節(jié)點(diǎn)進(jìn)行分布式檢索索引文件并對結(jié)果進(jìn)行排序,然后顯示給用戶;用戶通用模塊主要是用戶使用,在用戶信息的檢索過程中對信息的收藏、評論、點(diǎn)贊操作并準(zhǔn)確記錄相關(guān)操作。搜索模塊的流程示意如圖6所示。
圖6 搜索模塊流程
為提高搜索模塊的檢索效率,運(yùn)用自動摘要算法TextRank來進(jìn)行搜索。具體步驟為:
通過對文本進(jìn)行分詞分句等預(yù)處理后,可以得到以下3項(xiàng)內(nèi)容:(1)文本的集合={,,,},其中表示排序后的句子序列。(2)文本特征詞的集合={:,:,,:},其中,表示單個(gè)特征詞,而表示為在文本集合中所出現(xiàn)的詞頻。(3)句子的特征詞集合為={1:1,2:2,,:}。
在對句子和文本特征詞的選擇時(shí),采用的是TF-IDF權(quán)值法來對該系統(tǒng)中句子和本文的特征詞進(jìn)行評估。在運(yùn)用TF-IDF權(quán)值法時(shí),根據(jù)本文的長度規(guī)范權(quán)值,以詞頻對數(shù)來代替詞頻。特征詞的權(quán)值計(jì)算公式為:
(1)
式中:表示特征詞的總個(gè)數(shù);表示在詞典中出現(xiàn)的次數(shù);()表示特征詞的權(quán)重。
對特征詞的權(quán)值計(jì)算后,可以得到權(quán)值較高的特征詞,然后對權(quán)值進(jìn)行排序,構(gòu)成文本中所對應(yīng)的關(guān)鍵詞列表。
以文本的集合中節(jié)點(diǎn)和中特征詞的邊權(quán)重為邊,共同構(gòu)建出無向加權(quán)的 TextRank 圖模型,進(jìn)而計(jì)算節(jié)點(diǎn)的權(quán)重為:
(2)
式中:表示節(jié)點(diǎn)和節(jié)點(diǎn)的連接權(quán)重;表示阻尼系數(shù),一般取值為085;In()表示指向節(jié)點(diǎn)的所有節(jié)點(diǎn)的集合;Out()表示節(jié)點(diǎn)連接出的所有節(jié)點(diǎn)的集合;()表示節(jié)點(diǎn)的最終權(quán)重排序。
要計(jì)算其中的連接權(quán)重,則根據(jù)余弦函數(shù)公式:
(3)
本研究運(yùn)用Centos 7.3系統(tǒng)作為該系統(tǒng)測試環(huán)境的系統(tǒng)服務(wù)器,以128 G,CPU64核作為內(nèi)存,以谷歌、IE、搜狗作為測試瀏覽器。其中的數(shù)據(jù)處理軟件的版本分別為:Elastic Search 6.1.2版本,JDK 1.8版本,MySQL 5.7.17版本。測試瀏覽器為谷歌、IE。
本研究以黑盒測試原理為基礎(chǔ),對該系統(tǒng)的功能性進(jìn)行測試,以檢查該信息檢索系統(tǒng)能否滿足功能性需要,主要包括數(shù)據(jù)處理、索引模塊、搜索模塊的功能性測試。功能性測試用例結(jié)果如表1所示。
表1 功能性測試用例結(jié)果
除了對信息檢索系統(tǒng)進(jìn)行功能性測試外,還進(jìn)行非功能性測試; 運(yùn)用Meter、Selenium和Kibana工具來輔助完成非功能性測試。非功能測試用例結(jié)果如表2所示。
表2 非功能測試用例結(jié)果
本文通過對數(shù)據(jù)處理模塊、問答系統(tǒng)模塊和信息檢索模塊優(yōu)化創(chuàng)新后設(shè)計(jì)了完整的信息檢索系統(tǒng),該系統(tǒng)能夠收集獲取相關(guān)專業(yè)網(wǎng)站的信息數(shù)據(jù),并經(jīng)過系統(tǒng)的自動提取、過濾、整合后形成系統(tǒng)的基礎(chǔ)數(shù)據(jù)和文本的價(jià)值,使系統(tǒng)獲取的數(shù)據(jù)信息直觀有效,便于用戶的查詢和獲取,為信息化和智能化提供有效支撐和保障。該研究說明,重新設(shè)計(jì)的信息檢索系統(tǒng)具有較強(qiáng)的實(shí)用價(jià)值,其是可行的。