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