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

Nutch在中醫藥信息融合中的應用研究

2023-04-13 11:38:54區卓越覃姜維孫曉翠
現代計算機 2023年3期
關鍵詞:搜索引擎頁面中醫藥

區卓越,覃姜維,趙 峰,孫曉翠,4*

(1.廣東藥科大學醫藥信息工程學院,廣州 510006;2. 廣東工業大學數學與統計學院,廣州 510520;3. 中鐵工程設計咨詢集團有限公司,北京 100071;4. 廣東普通高校工程技術研究中心-醫藥信息真實世界工程技術研究中心,廣州 510006)

0 引言

2000 年以來,隨著互聯網技術的快速發展以及數據之間高度交叉的發展趨勢,再加上民眾對健康意識、醫藥意識的逐步增強,民眾對于中醫藥信息的需求日益增加,鑒于此,中醫藥信息融合的相關應用研究推陳出新。其中,設計以中醫藥信息為導向的搜索引擎是滿足信息搜尋需求的好方法。分析國內外現有的信息檢索系統,存在以下問題,一是缺乏針對性,如今市面上搜索引擎的檢索對象過于寬泛,并不是面向某一特定領域的垂直搜索引擎[1],沒有對中醫藥信息做出針對性的歸納、關聯處理與融合[2],用戶需花費大量時間在無關數據中獲取所需的中醫藥信息。隨著數據采集量的增多與數據更新頻率的增高,加之缺乏必要的數據過濾與篩選[3],搜索引擎的檢索信息有效率與使用率會逐步下降,難以實現對中醫藥信息的針對性搜索服務;二是欠缺共享性,由于中醫藥信息來源分散,數據呈現形式多樣化,數據結構形式不盡相同,傳統的基于SQL 語句的信息檢索系統難以實現對中醫藥信息的精確搜索。即便是使用非關系型的數據庫對數據進行存儲,也難以根據數據的重要性做出預測性的結果排序返回至用戶[4],造成存儲空間、算力資源和數據價值的浪費。隨著國家“互聯網+”戰略的實施與“大健康”理念的提出,在大數據時代下[5],信息化能有效推動經濟社會發展,有效推進以國內大循環為主體的新發展格局的構建。就中醫藥現代化、中醫藥信息化來講,亟需構建以信息技術為中心的醫藥數據處理分析[6]、數據挖掘[7-9]、知識發現[10]等服務建設面向中醫藥信息的搜索引擎,提供大眾的醫藥信息獲取途徑,喚醒民眾的醫藥健康意識,并為衛生部門提供中醫藥信息普及宣傳的輿論口,為監管部門把握醫藥信息化發展現狀、制定政策、定制惠民服務等提供輔助決策支持[11],也可搭配其他內容管理系統平臺如Drupal[12]、WordPress[13]或Joomla[14]進行中醫藥信息的深度利用與挖掘。

本文從現實出發,充分考慮當今數字時代尤其是疫情時代下的實際情況,秉承中醫藥現代化與中醫藥信息融合應用的發展理念,設計并實現一款“中醫藥信息搜索引擎”。該搜索引擎以開源軟件Nutch 為基礎,結合其“網絡爬蟲”與“全文搜索”兩大功能,解決了漢字識別與搜索的改進、以用戶友好性為導向的網頁UI 優化等問題,實現了類似百度、必應、Yandex 等搜索引擎的功能,減少了無關信息如廣告商、營銷號的干擾,使獲取中醫藥信息的過程更加便捷、精確,更有針對性地、高效地向民眾提供實用的中醫藥信息。

1 中醫藥信息搜索引擎的設計與實現

1.1 Nutch簡介

經過比較后[15],決定使用Nutch進行項目搭建。Nutch 是Apach Lucene 下屬的一個高度可擴展、成熟的Web 爬蟲程序,用于處理各種數據采集任務,包括“網絡爬蟲”和“全文搜索”兩大部分,是一個優秀的、基于Java 的開源爬蟲軟件,在城市交通[16]、社交情報[17]、電商貿易[18]、就業招聘[19]等領域有廣泛應用前例。本項目將會基于Nutch設計與實現中醫藥信息搜索引擎。Nutch的工作流程如圖1所示。

圖1 Nutch工作流程

其步驟可總結如下:

(1)注入(inject)初試URL:將管理員提供的URL 進行統一化及過濾非法URL、重復URL后,將剩余的可用URL 及其最新狀態存入Crawldb數據庫。

(2)生成(generate)新的segment:按照Crawldb中的URL生成抓取列表并存入segments目錄中。

(3)網絡抓取(fetch):按照上一步在segments目錄中生成的抓取列表進行抓取,同時對抓取內容解析。

(4)內容解析(parse):將抓取的內容解析為兩大部分:URL與數據內容。

(5)更新(update)Crawldb:更新存儲URL的Crawldb,為下一輪的抓取做好新的URL準備。

(6)建索引(index):由于Nutch 是Apache Lucene的子項目,Nutch使用Lucene完成數據索引,通過索引庫完成用戶搜索的功能。

(7)用戶搜索:用戶鍵入關鍵字進行檢索,Nutch 檢索到內容后,將結果按照一定的算法打分后排序并返回至用戶。

上述過程中的步驟(1)~(6)即“網絡爬蟲”部分,步驟(7)即為“全文搜索”部分。

概括來講,Nutch 是以管理員給定的網站作為入口進行爬取,將所爬取的內容進行解析,并建立相應的爬取結果索引,再通過一定的算法對搜索結果進行評分、排序以響應用戶的搜索需求,以實現爬取、建索引、搜索的高度統一。

1.2 Nutch的評分機制

在1.1 的工作流程步驟(7)中,Nutch 使用評分機制對搜索結果進行評分,按照分數排序后返回至用戶。

Nutch 構建于Apach Lucene 之上,在Lucene中,文檔的分數受用戶查詢語句影響,在用戶進行搜索時實時返回排序結果。而Lucene 的評分機制在Lucene的Similarity類中,用公式表示,即:

公式(1)基于TF-IDF 算法進行評分(具體解釋見表1),通過查詢詞項在文檔中出現的頻率TF 與詞項在整個文檔集合中的逆文檔頻率IDF進行計算[20]。TF-IDF算法公式如下:

表1 Lucene得分計算公式解釋

1.3 基于Nutch的中醫藥信息搜索引擎

基于Nutch進行開發后的中醫藥信息搜索引擎如圖2所示,此時輸入英文或數字才能正常搜索;若輸入中文搜索,則會出現亂碼,搜索失敗,如圖3所示。

圖2 輸入“Ginseng(人參)”搜索

圖3 搜索中文出現亂碼

仍然面臨的難題,一是Nutch本身不支持對中文的識別與搜索,鍵入漢字進行檢索時,頁面會發生亂碼現象;二是Nutch的頁面對檢索結果的呈現過于簡陋,效率低下,缺乏用戶友好性。下面介紹漢字識別與搜索的改進、以用戶友好性為導向的網頁UI優化等問題的實現方法。

2 中醫藥信息搜索引擎的優化及應用結果分析

2.1 漢字識別與搜索

長久以來,漢字的識別與搜索一直是國內研究的重點課題之一。為了解決漢字的識別與劃分,涌現了許多優秀的漢字分詞組件,如北京理工大學張華平博士團隊研發的NLPIRICTCLAS 分詞系統[21]、清華大學自然語言處理與社會人文計算實驗室研發的THULAC 分詞包[22]、盤古分詞等,也有學者使用詞典進行中文分詞。由于Nutch源于外國,故其對漢字的搜索與識別能力低,甚至會出現無法搜索、亂碼等情況,故需要對其進行優化與改進,使其支持漢字的識別與搜索。Tan 等[23]曾探索過Nutch處理中文索引的優化方案。綜合比較各種方案[24-26],本項目將使用漢字分詞組件IKAnalyzer對Nutch 進行優化和改進。

同Nutch 一樣,IKAnalyzer 也基于Java 語言開發,是一個輕量級的漢字分詞組件工具包。IKAnalyzer 使用“正向迭代最細粒度切分算法”進行漢字分詞,主要包含“細粒度”和“智能分詞”兩種切分模式,不僅可實現中文分詞處理,還兼容日文、朝鮮文字符等[27]。

為使Nutch 實現基于IKAnalyzer 的中文分詞,具體來講,即是修改Nutch 相關代碼接口、xml 文件,將分詞軟件嵌入Nutch 后,使用javacc 再次進行編譯,即可使其支持中文的識別與搜索功能。

首先,改寫安裝目錄/src/java/org/apache/nutch/searcher 下的Query.java,為其導入一個org.apache.nutch.analysis 包下的異常類ParseException,同時改寫line 456附近的parse函數,使它拋出一個異常ParseException,用以處理解析特點語言(中文)時發生的異常事件。

接著,修改上方目錄中/analysis 路徑下的NutchAnalysis.jj,將其從按字劃分修改為按詞劃分。具體來講,就是將該文件中line 130 附近的“| >”復寫為“| )+>”,就可實現組“字”成“詞”,其中“+”是“多次”的意思。將上述修改過的NutchAnalysis.jj 文件復制至另一個文件夾下,使用javacc 命令編譯,將生成的7 個新的java文件復制到原先的目錄下覆蓋同名文件。

在新生成的java 文件中,找到NutchAnalysis.java,所有用于解析文本的分詞插件都需要重寫實現NutchAnalyzer 類中的tokenStream 抽象方法,首先為其導入包org.wltea.analyzer.lucene.IKTokenizer,同時重新編寫line 51 附近的兩個parseQuery 函數,具體地,即分別讓它們拋出異常ParseException,處理解析字符串時發生的異常事件。接下來繼續修改繼承自NutchAnalyzer的NutchDocumentAnalyzer類。

修改同一目錄下的NutchDocumentAnalyzer.java,為其添加分詞組件IKAnalyzer,使用IKAnalyzer 的分詞方法替換實現Nutch 原來的分詞方法。具體方法是,在該文件中導入包org.wltea.analyzer.lucene.IKAnalyzer 和org.apache.lucene.analysis.tokenattributes.*,同時重新編寫line 110 附近處的函數,為其加入IKAnalyzer 實例。具體地,即將原代碼的analyzer 對象賦值為IKAnalyzer實例并返回。

上述各類的繼承關系如圖4所示。

圖4 類間繼承關系的UML

其中的Analyzer 抽象類用作Nutch 的底層分析器,其來自于2.2 小節提到的Lucene。陰影部分則是經過優化的部分。

接下來按Nutch 安裝目錄下的配置文件build.xml 添加分詞包的信息。在Nutch 目錄下執行ant 編譯命令,它自動找到build.xml 并開始執行。

執行成功后,繼續用“ant war”編譯,可以在build目錄下得到以“nutch-1.2”為名的“.job”“.war”以及“.jar”文件,將上述三個文件覆蓋Nutch目錄下的同名文件。

此時需要更改tomcat 服務器的設置,將上述的“nutch-1.2.war”復制至tomcat 安裝目錄中的webapp 目錄,待其自動解壓。并在解壓后目錄中的/WEB-INF/classes 中修改nutch-site.xml,添加屬性“plugin.includes”,賦值為“protocolhttp”“urlfilter-regex”“analysis-(zh)”等,否則無法顯示搜索結果而顯示空白。

然后修改tomcat/conf 下的server.xml,找到下列屬性并修改:

然后重啟tomcat。此時可以使用中文查詢,如以“頭痛”為關鍵字搜索,結果見圖5,可見此時Nutch已支持漢字的識別與搜索。

圖5 優化后支持漢字的中醫藥信息搜索引擎

加入中文分詞插件優化后的Nutch工作流程如圖6所示,對比圖1,陰影部分則為優化部分。

圖6 優化后的Nutch工作流程

2.2 以用戶友好性為導向的網頁UI優化

Nutch 本身的搜索結果呈現頁面較簡單,極度缺少用戶友好性。故需對頁面UI 進行優化改進,使其搜索結果更加突出,對用戶更友好。

首先,找出index.jsp 頁面,這個是Nutch 默認的首頁,需要根據中醫藥特色重寫該頁面,刪除其語言選擇、幫助、Nutch 介紹等無關緊要的功能,加入面向中醫藥信息的內容。

其次,核心是對search.jsp 頁面的重寫。如刪除“”/>”一行,阻止其搜索時跳轉至默認的頁面自動生成模板函數,否則頁面效果會一如既往地簡陋。

同時,將“”>”改為“”,增加可讀性;同時可刪除下兩行的queryLang 和anchors,項目不需要該額外搜索結果。

其中標簽有“i18n”字眼的靜態代碼用以自動生成搜索結果數值統計,被寫死以至于無法顯示成中文,故將其刪除,并將搜索結果數值統計改成:

為使搜索結果的關鍵字在頁面中高亮顯示、更加突出,修改./include/style.html的CSS配置文件,譬如將.highlight 的樣式屬性修改為紅色、加粗等,符合用戶閱讀習慣,更具用戶友好性。

優化完成后,重啟tomcat 服務器,打開搜索頁面,可見美觀許多(見圖7)。輸入文字搜索,搜索結果加粗、標紅,更加突出(圖8)。

圖7 頁面UI優化后效果

圖8 以用戶友好性為導向的搜索結果頁面

基于Nutch的中醫藥信息搜索引擎優化改進前后,發生的改變具體見表2。

表2 優化前后對比

3 結語

本文首先對Nutch的組成、工作流程等特點進行了描述與介紹,提出了疫情時代下民眾獲取中醫藥信息的新穎解決方法,即基于Nutch構建中醫藥信息搜索引擎。鑒于Nutch不支持漢字的識別與搜索,使用漢字分詞組件IKAnalyzer對Nutch 進行優化改造,提高了中文醫藥信息識別與搜索的準確性;并優化網頁UI 使搜索結果更加突出。基于Nutch的中醫藥信息搜索引擎契合當今“互聯網+”的時代發展潮流,符合醫藥信息化的發展趨勢,是中醫藥現代化的一個應用嘗試,能有效地處理、存儲、分享醫藥數據,相信在中醫藥信息資源處理的未來發展中會受到越來越多的重視。

猜你喜歡
搜索引擎頁面中醫藥
大狗熊在睡覺
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
中醫藥在惡性腫瘤防治中的應用
中醫藥在治療惡性腫瘤骨轉移中的應用
從《中醫藥法》看直銷
中醫藥立法:不是“管”而是“促”
中國衛生(2016年11期)2016-11-12 13:29:24
網絡搜索引擎亟待規范
中國衛生(2015年12期)2015-11-10 05:13:38
基于Nutch的醫療搜索引擎的研究與開發
廣告主與搜索引擎的雙向博弈分析
同一Word文檔 縱橫頁面并存
主站蜘蛛池模板: 狠狠躁天天躁夜夜躁婷婷| 2024av在线无码中文最新| 在线中文字幕网| 国产性猛交XXXX免费看| 国内精品九九久久久精品| 国产喷水视频| 国内精品九九久久久精品| 激情爆乳一区二区| 久久无码免费束人妻| 久久亚洲中文字幕精品一区| 午夜精品区| 亚洲 欧美 偷自乱 图片 | 亚洲天堂免费在线视频| 亚洲国产中文综合专区在| 久久综合九色综合97网| 久久99国产乱子伦精品免| 伊人91视频| 亚洲色图欧美| 一区二区三区成人| 91丝袜乱伦| 中文国产成人精品久久一| 亚洲天堂在线免费| 国产不卡一级毛片视频| 91色综合综合热五月激情| 国产国拍精品视频免费看| 久草热视频在线| 午夜影院a级片| 亚洲午夜综合网| 国产浮力第一页永久地址| 青青草国产免费国产| 久久香蕉国产线看观看亚洲片| 亚洲永久精品ww47国产| 中文字幕日韩丝袜一区| 国产在线专区| 91精品小视频| 免费在线播放毛片| 国产一级在线观看www色| 中国丰满人妻无码束缚啪啪| 久久夜色精品国产嚕嚕亚洲av| 国禁国产you女视频网站| 久久窝窝国产精品午夜看片| 日韩在线欧美在线| 精品国产免费观看一区| 久久综合亚洲色一区二区三区| www亚洲天堂| 91亚洲免费| 国产精彩视频在线观看| 欧美视频免费一区二区三区| 亚洲欧美国产视频| 国产精品毛片一区| 国产一区二区三区夜色| 伊人久热这里只有精品视频99| 欧美日韩国产综合视频在线观看 | 精品自拍视频在线观看| 久草国产在线观看| 日韩欧美视频第一区在线观看| 国产波多野结衣中文在线播放| 久久青草精品一区二区三区| 精品无码一区二区三区电影| 成人午夜亚洲影视在线观看| 91色在线观看| 色婷婷电影网| 国产福利免费视频| 不卡无码h在线观看| 中文字幕久久波多野结衣| 久久无码免费束人妻| 国产黄网永久免费| 日韩成人在线一区二区| 日本午夜影院| 精品无码人妻一区二区| 国产精品久久自在自2021| 午夜成人在线视频| 欧美中日韩在线| 中文字幕66页| 色婷婷视频在线| 亚洲成人www| 五月婷婷导航| 男女男精品视频| 国产永久免费视频m3u8| 久久黄色免费电影| 欧美在线视频a| 亚洲第一福利视频导航|