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

基于Lucene的非結構化電子病歷文檔解析的實現

2013-11-19 03:39:48彭紅波陳衍張銘葛煦蔡宏偉韓晟
中國醫療設備 2013年1期
關鍵詞:文本

彭紅波,陳衍,張銘,葛煦,蔡宏偉,韓晟

1.第四軍醫大學口腔醫院 a.信息科;b.醫教部;2.第四軍醫大學西京醫院腫瘤科, 陜西 西安 710032

0 前言

隨著信息技術的普及與發展,紙質病歷早已不能適應現代醫學的需求,電子病歷開始在醫院管理和醫療工作中出現[1]。初期,由于缺乏臨床信息系統支持,我國電子病歷[2]首先是從病程記錄編輯器開始發展的,期間經歷了Word、半結構化或結構化等編輯器的演變過程。近年來,檢查、檢驗、心電、手術麻醉等各類臨床信息系統的大力應用,完整的臨床數據集成、展現及智能化應用已成為電子病歷發展的方向[3]。不過,早期日積月累形成的大量非結構化電子病歷文檔(Word格式)卻給醫生檢索帶來了不便。雖然他們可以通過數據庫指定一些查詢條件來進行,但受限的檢索詞匯根本無法滿足醫療科研[4]的需要,因為這些條件都是事先定義好的信息。設想一下,如果有一種工具,它可以根據醫生輸入的任意條件對電子病歷內容進行全文檢索,這樣就可滿足醫生查詢的需求。Lucene為我們提供了一種實現途徑。

1 Lucene全文檢索引擎

1.1 Lucene簡介

Lucene是一款以Java實現的成熟、自由、開源的軟件項目,也是Apache軟件基金(Apache Software Foundation)中的一個項目,并且基于Apache軟件許可協議授權。它是一類強大的Java搜索庫,是一類高性能的、可擴展的信息檢索(IR)工具,目的是為軟件開發人員提供簡單、易用的索引和搜索API,使之很方便地為應用程序添加搜索功能[5]。

Lucene專注于文本索引和搜索,它并不關心數據來源、格式,甚至不關心數據的語種,只要能把它轉換為文本格式即可。也就是說,它可以索引和搜索存儲在文件中的如下數據:遠程Web服務器上的網頁、本地文件系統中的文檔、簡單的文本文件、Word文檔、XML文檔、HTML文檔或者PDF文檔,或者其他能夠從中提取文本信息的數據格式。同樣,也可以利用Lucene來索引存儲在數據庫中的數據,以提供一些其他數據庫所不具備的全文搜索功能[5]。

1.2 Lucene工作原理

Lucene的API接口設計得比較通用,輸入、輸出結構都很像數據庫的表→ 記錄 → 字段。很多傳統的應用文件、數據庫都可以很方便地映射到 Lucene 的存儲結構和接口中。總體上可以認為Lucene 是一個支持全文索引的數據庫系統,其索引/檢索原理,見圖1。在Lucene 中,待索引的文件對應一個文檔 (Document)數據結構,每個Document包含多個字段 ( Field)。Lucene 根據 Document 對象中的字段屬性和數據輸出的要求,為字段選擇不同的索引/存儲字段規則[6]。

2 非結構化電子病歷文檔的解析實現

2.1 非結構化文本概述

非結構化文本通常具有一定的格式,其格式化文件一般結構較復雜,通常由多家廠商的不同系統生成,這些格式化文件使得普通程序讀取時無從下手,如電子病歷文檔保存的Word格式。不過,開源代碼卻為開發者處理格式化的非結構化文本處理提供了可能,當正確解析了文檔格式之后,開發者就可以像解析其他普通純文本文件一樣來索引和檢索文檔。

2.2 非結構化文本檢索

面對豐富的非結構化文本,用戶要求能通過關鍵詞檢索的方式快速獲得相關資料,再根據文檔的格式處理。搜索引擎或者全文檢索系統需要針對文本內容進行處理,必須提前解析文本格式、然后分析文本、最后將分析好的文本保存至索引中,只有這樣才能在其基礎上實現搜索功能[7]。其處理過程,見圖2。

2.3 非結構化文檔解析

Microsoft的Office格式非常復雜,包含了各種文檔屬性信息、文檔內的格式信息,甚至包含了復合文檔。文檔屬性信息主要包括文檔的標題、主題、摘要、類別、關鍵詞等;文檔內部的格式信息包括了文檔的字體、字號、表格、圖表,其他對象嵌入與鏈接(OLE2)的正文元素等。

POI(Office文檔的Java處理包)項目就是通過OLE2模式訪問Office文檔的,可讀取和修改Office的復雜文檔格式。POI提供的編程接口比較簡單,開發者可以使用POIFS以流的形式創建或打開文檔,然后將其連接到適當的數據訪問API,交互訪問文檔內容,而HWPF是針對Microsoft Word格式文件的讀取接口,包括用來提取簡單文本內容的WordExtractor、提取復雜文本內容的HWPFDocument以及針對文檔的修改方法接口。

2.3.1 使用HWPFDocument提取電子病歷文檔內容

HWPFDocument訪問Word文檔非常靈活,可以非常方便地訪問文檔內容的各個部分,包括段落、內部的表格等。本系統是通過FileInputStream對象,獲得對電子病歷文檔的流式訪問接口。進一步調用getRange()方法得到文檔內的Range對象名柄。Range對象提供了直接獲取所有文檔內容的text()方法,也提供了進一步訪問每一段落的getParagraph()后分別獲得文檔內容的方法。其實現代碼如下:

public static void GetWordDetail(String filename) throws Exception

{

FileInputStream in = new FileInputStream(new File(filename)) ;

HWPFDocument doc = new HWPFDocument(in) ;//獲得HWPFDocument對象

Range = range = doc.getRange() ;//取得Range對象

String text = range.text() ;

for(int i=0;i

Paragraph p = range.getParagraph(i) ;//取得每個段落

text = p.text() ;

text.trim();

System.out.println(text);}

}

2.3.2 建立電子病歷文檔的索引

使用POI對電子病歷文檔分析后的結果,進一步分析處理可以非常方便地完成Lucene索引的創建和檢索。每個文檔的內容可以整體作為一個索引域添加到Lucene中,也可以把標題、屬性等信息分別建立索引域,完成整個索引,其實現代碼如下:

名稱:DocIndexBuilder

功能:構造電子病歷磁盤索引,添加內容到指定目錄,為后續檢索查詢做好準備。

public static void DocIndexBuilder(){

try{Analyzer TextAnalyzer = new ChineseAnalyzer() ;

IndexWriter TextIndex = new IndexWriter(Dest_Index_Path,TextAnalyzer,true) ;//生成索引器

TextIndex.setUseCompoundFile(true) ;

Document document = new Document() ;//由word文件生成文檔對像

FileInputStream in = new FileInputStream(new File(docfileToBeRead)) ;

HWPFDocument doc = new HWPFDocument(in);

Range range = doc.getRange() ;

String text = range.text() ;

Field field_doc = new Field("doc",text,Field.Store.YES,Field.Index.TOKENIZED) ;

document.add(field_doc) ;

System.out.println("-----創建索引:電子病歷文件內容-----") ;

TextIndex.addDocument(document) ;//添加文檔到索引

TextIndex.optimize() ;

TextIndex.close() ;//索引完畢

}catch (IOException e){

e.printStackTrace() ;

}

System.out.println("-----創建索引:電子病歷文件索

引完成-----") ;

3 討論

從建立電子病歷文檔索引過程可以看出,如果電子病歷文檔還存在著其他的數據格式,只要我們能夠對其進行解析,從中提取文本信息,就可通過Lucene搜索引擎實現全文檢索功能。如:PDF格式,可以利用PDFBox開發包完成PDF文檔到純文本的轉換;XML[8]格式,其經常使用的開源分析器就有5種之多,包括DOM、SAX、JDOM、Xerces和DOM4J等。

4 結束語

本文對基于Lucene的非結構化電子病歷文檔的解析方法進行了探討,并編程實現了對Word格式電子病歷文檔文本數據的提取與索引[9]。程序的不足之處在于,還未對索引后的電子病歷文檔如何進行檢索加以描述,下一步將設計實現非結構化電子病歷文檔的全文檢索功能,以方便臨床醫生查詢[10]。

[1]王曉,羅二平,張健.基于語義的電子病歷智能全文檢索[J].醫療衛生裝備,2008,29(4):45-46.

[2]尤麗玨.區域性電子病歷信息共享的探索和研究[J].中國醫療設備,2009,24(2):84-85.

[3]陳金雄.電子病歷建設與發展[J].中國數字醫學,2011,6(5):53-55.

[4]于建國,毛玉明.基于因特網的電子病歷系統的設計與安全技術[J].中國醫療設備, 2009,24(2):48-50.

[5]Michael McCandless,Erik Hatcher,Otis Gospodnetic.Lucene實戰[M].2版.北京:人民郵電出版社,2011:6-7.

[6]孫西全,馬瑞芳,李燕靈.基于Lucene的信息檢索的研究與應用[J].情報理論與實踐,2006,29(1):125-128.

[7]王學松.Lucene+nutch搜索引擎開發[M].牛長流,譯.北京:人民郵電出版社,2008:185-186.

[8]夏立新,王忠義.基于XML的全文檢索原型系統的設計與實現[J].現代圖書情報技術,2007,(8):67-70.

[9]申兵一,鞏青歌.基于Lucene的PDF文檔文本解析的實現[J].信息與電腦,2009,(11):66.

[10]范開洲,楊鵬飛.基于ASP技術的通用電子病歷的研究[J].中國醫療設備,2008,23(3):30-32.

猜你喜歡
文本
文本聯讀學概括 細致觀察促寫作
重點:論述類文本閱讀
重點:實用類文本閱讀
初中群文閱讀的文本選擇及組織
甘肅教育(2020年8期)2020-06-11 06:10:02
作為“文本鏈”的元電影
藝術評論(2020年3期)2020-02-06 06:29:22
在808DA上文本顯示的改善
“文化傳承與理解”離不開對具體文本的解讀與把握
基于doc2vec和TF-IDF的相似文本識別
電子制作(2018年18期)2018-11-14 01:48:06
文本之中·文本之外·文本之上——童話故事《坐井觀天》的教學隱喻
從背景出發還是從文本出發
語文知識(2015年11期)2015-02-28 22:01:59
主站蜘蛛池模板: 国产午夜无码片在线观看网站| 国产一二三区视频| 国产真实乱子伦视频播放| 狠狠色香婷婷久久亚洲精品| 精品伊人久久久久7777人| 国产Av无码精品色午夜| 成人福利在线看| 国产白浆在线| 九九热精品视频在线| 国产精品女在线观看| 免费视频在线2021入口| 国产av一码二码三码无码| 欧美精品v欧洲精品| 日韩欧美中文字幕一本| 欧美午夜在线观看| 97青青青国产在线播放| 亚洲第一中文字幕| 国产成人亚洲欧美激情| av一区二区三区高清久久| 中文字幕无码av专区久久| 亚洲第一极品精品无码| 国产欧美专区在线观看| 国产91视频观看| 久久亚洲国产最新网站| 日韩免费毛片视频| 欧美一级高清免费a| 国产一区在线观看无码| 亚洲三级片在线看| 99久久婷婷国产综合精| 欧美成人日韩| 国产一区二区免费播放| 中文国产成人久久精品小说| 四虎国产精品永久一区| 成人午夜视频网站| 欧美一区福利| 国产无套粉嫩白浆| 久久美女精品| 韩国自拍偷自拍亚洲精品| 制服丝袜亚洲| 精品99在线观看| 国产成人综合网| 国产成人精品免费av| 国产一区二区三区在线精品专区| 狠狠亚洲婷婷综合色香| 香蕉eeww99国产在线观看| 久久久久国产精品熟女影院| 四虎成人精品| 国产精品香蕉在线| 色婷婷在线播放| 四虎综合网| 91青青在线视频| 重口调教一区二区视频| 成年人国产视频| 日韩欧美国产三级| 无遮挡国产高潮视频免费观看 | 欧美A级V片在线观看| 色综合热无码热国产| 久无码久无码av无码| 国产成人91精品| 国产区免费精品视频| 亚洲男人天堂久久| 国产尤物在线播放| www亚洲天堂| 正在播放久久| 国产又大又粗又猛又爽的视频| 国产网站黄| 成人免费黄色小视频| 色呦呦手机在线精品| 97狠狠操| 国产情精品嫩草影院88av| 免费又黄又爽又猛大片午夜| 国产精品嫩草影院视频| 8090午夜无码专区| 四虎国产永久在线观看| 国产欧美日韩综合在线第一| 99国产精品国产| 美女毛片在线| 在线国产资源| 午夜福利网址| 日韩AV手机在线观看蜜芽| 欧美性精品不卡在线观看| 欧美在线一级片|