亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Lucene的非結(jié)構(gòu)化電子病歷文檔解析的實(shí)現(xiàn)

        2013-11-19 03:39:48彭紅波陳衍張銘葛煦蔡宏偉韓晟
        中國(guó)醫(yī)療設(shè)備 2013年1期
        關(guān)鍵詞:全文檢索結(jié)構(gòu)化病歷

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

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

        0 前言

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

        1 Lucene全文檢索引擎

        1.1 Lucene簡(jiǎn)介

        Lucene是一款以Java實(shí)現(xiàn)的成熟、自由、開源的軟件項(xiàng)目,也是Apache軟件基金(Apache Software Foundation)中的一個(gè)項(xiàng)目,并且基于Apache軟件許可協(xié)議授權(quán)。它是一類強(qiáng)大的Java搜索庫(kù),是一類高性能的、可擴(kuò)展的信息檢索(IR)工具,目的是為軟件開發(fā)人員提供簡(jiǎn)單、易用的索引和搜索API,使之很方便地為應(yīng)用程序添加搜索功能[5]。

        Lucene專注于文本索引和搜索,它并不關(guān)心數(shù)據(jù)來(lái)源、格式,甚至不關(guān)心數(shù)據(jù)的語(yǔ)種,只要能把它轉(zhuǎn)換為文本格式即可。也就是說(shuō),它可以索引和搜索存儲(chǔ)在文件中的如下數(shù)據(jù):遠(yuǎn)程Web服務(wù)器上的網(wǎng)頁(yè)、本地文件系統(tǒng)中的文檔、簡(jiǎn)單的文本文件、Word文檔、XML文檔、HTML文檔或者PDF文檔,或者其他能夠從中提取文本信息的數(shù)據(jù)格式。同樣,也可以利用Lucene來(lái)索引存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù),以提供一些其他數(shù)據(jù)庫(kù)所不具備的全文搜索功能[5]。

        1.2 Lucene工作原理

        Lucene的API接口設(shè)計(jì)得比較通用,輸入、輸出結(jié)構(gòu)都很像數(shù)據(jù)庫(kù)的表→ 記錄 → 字段。很多傳統(tǒng)的應(yīng)用文件、數(shù)據(jù)庫(kù)都可以很方便地映射到 Lucene 的存儲(chǔ)結(jié)構(gòu)和接口中??傮w上可以認(rèn)為L(zhǎng)ucene 是一個(gè)支持全文索引的數(shù)據(jù)庫(kù)系統(tǒng),其索引/檢索原理,見圖1。在Lucene 中,待索引的文件對(duì)應(yīng)一個(gè)文檔 (Document)數(shù)據(jù)結(jié)構(gòu),每個(gè)Document包含多個(gè)字段 ( Field)。Lucene 根據(jù) Document 對(duì)象中的字段屬性和數(shù)據(jù)輸出的要求,為字段選擇不同的索引/存儲(chǔ)字段規(guī)則[6]。

        2 非結(jié)構(gòu)化電子病歷文檔的解析實(shí)現(xiàn)

        2.1 非結(jié)構(gòu)化文本概述

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

        2.2 非結(jié)構(gòu)化文本檢索

        面對(duì)豐富的非結(jié)構(gòu)化文本,用戶要求能通過(guò)關(guān)鍵詞檢索的方式快速獲得相關(guān)資料,再根據(jù)文檔的格式處理。搜索引擎或者全文檢索系統(tǒng)需要針對(duì)文本內(nèi)容進(jìn)行處理,必須提前解析文本格式、然后分析文本、最后將分析好的文本保存至索引中,只有這樣才能在其基礎(chǔ)上實(shí)現(xiàn)搜索功能[7]。其處理過(guò)程,見圖2。

        2.3 非結(jié)構(gòu)化文檔解析

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

        POI(Office文檔的Java處理包)項(xiàng)目就是通過(guò)OLE2模式訪問(wèn)Office文檔的,可讀取和修改Office的復(fù)雜文檔格式。POI提供的編程接口比較簡(jiǎn)單,開發(fā)者可以使用POIFS以流的形式創(chuàng)建或打開文檔,然后將其連接到適當(dāng)?shù)臄?shù)據(jù)訪問(wèn)API,交互訪問(wèn)文檔內(nèi)容,而HWPF是針對(duì)Microsoft Word格式文件的讀取接口,包括用來(lái)提取簡(jiǎn)單文本內(nèi)容的WordExtractor、提取復(fù)雜文本內(nèi)容的HWPFDocument以及針對(duì)文檔的修改方法接口。

        2.3.1 使用HWPFDocument提取電子病歷文檔內(nèi)容

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

        public static void GetWordDetail(String filename) throws Exception

        {

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

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

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

        String text = range.text() ;

        for(int i=0;i

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

        text = p.text() ;

        text.trim();

        System.out.println(text);}

        }

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

        使用POI對(duì)電子病歷文檔分析后的結(jié)果,進(jìn)一步分析處理可以非常方便地完成Lucene索引的創(chuàng)建和檢索。每個(gè)文檔的內(nèi)容可以整體作為一個(gè)索引域添加到Lucene中,也可以把標(biāo)題、屬性等信息分別建立索引域,完成整個(gè)索引,其實(shí)現(xiàn)代碼如下:

        名稱:DocIndexBuilder

        功能:構(gòu)造電子病歷磁盤索引,添加內(nèi)容到指定目錄,為后續(xù)檢索查詢做好準(zhǔn)備。

        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文件生成文檔對(duì)像

        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("-----創(chuàng)建索引:電子病歷文件內(nèi)容-----") ;

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

        TextIndex.optimize() ;

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

        }catch (IOException e){

        e.printStackTrace() ;

        }

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

        引完成-----") ;

        3 討論

        從建立電子病歷文檔索引過(guò)程可以看出,如果電子病歷文檔還存在著其他的數(shù)據(jù)格式,只要我們能夠?qū)ζ溥M(jìn)行解析,從中提取文本信息,就可通過(guò)Lucene搜索引擎實(shí)現(xiàn)全文檢索功能。如:PDF格式,可以利用PDFBox開發(fā)包完成PDF文檔到純文本的轉(zhuǎn)換;XML[8]格式,其經(jīng)常使用的開源分析器就有5種之多,包括DOM、SAX、JDOM、Xerces和DOM4J等。

        4 結(jié)束語(yǔ)

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

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

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

        [3]陳金雄.電子病歷建設(shè)與發(fā)展[J].中國(guó)數(shù)字醫(yī)學(xué),2011,6(5):53-55.

        [4]于建國(guó),毛玉明.基于因特網(wǎng)的電子病歷系統(tǒng)的設(shè)計(jì)與安全技術(shù)[J].中國(guó)醫(yī)療設(shè)備, 2009,24(2):48-50.

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

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

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

        [8]夏立新,王忠義.基于XML的全文檢索原型系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代圖書情報(bào)技術(shù),2007,(8):67-70.

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

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

        猜你喜歡
        全文檢索結(jié)構(gòu)化病歷
        強(qiáng)迫癥病歷簿
        促進(jìn)知識(shí)結(jié)構(gòu)化的主題式復(fù)習(xí)初探
        “大數(shù)的認(rèn)識(shí)”的診斷病歷
        結(jié)構(gòu)化面試方法在研究生復(fù)試中的應(yīng)用
        為何要公開全部病歷?
        Oracle數(shù)據(jù)庫(kù)全文檢索性能研究
        村醫(yī)未寫病歷,誰(shuí)之過(guò)?
        基于圖模型的通用半結(jié)構(gòu)化數(shù)據(jù)檢索
        基于KySou的全文檢索系統(tǒng)的分析與優(yōu)化
        基于軟信息的結(jié)構(gòu)化轉(zhuǎn)換
        人妻少妇不满足中文字幕| 久久人人爽人人爽人人av东京热| 国产精品情侣呻吟对白视频| 日韩网红少妇无码视频香港| 蜜臀av无码人妻精品| 99精品国产一区二区三区a片| 高中生粉嫩无套第一次| 老熟女多次高潮露脸视频| 久久se精品一区精品二区国产| 久久久亚洲女精品aa| 中文字幕亚洲高清精品一区在线| 天堂网日韩av在线播放一区| 日韩午夜理论免费tv影院| 久久久久久久极品内射| 四虎国产精品免费久久| 亚洲国产精品无码久久电影| 国产男女乱婬真视频免费| 国产91成人自拍视频| 亚洲国产系列一区二区| 狠狠综合亚洲综合亚洲色| 日韩精品一区二区午夜成人版 | 国产亚洲美女精品久久| 久久精品日本美女视频| 网址视频在线成人亚洲| 国产猛烈高潮尖叫视频免费| 极品美女高潮喷白浆视频| 狼人狠狠干首页综合网| 人妻经典中文字幕av| 图片小说视频一区二区| 久久久天堂国产精品女人| 狠干狠爱无码区| 亚洲无码视频一区:| 日韩中文字幕乱码在线| 曰韩少妇内射免费播放| www国产精品内射熟女| 亚洲中文字幕久久精品蜜桃 | 国产亚洲精品一区在线| 亚洲va无码va在线va天堂| 成人免费网站视频www| 国产在线不卡免费播放| 手机av在线观看视频|