产品搜索:
 
软件产品服务
HT image
综合干部考评系统
绩效考核管理系统
人力资源管理系统
问卷及数学评估系统
公务员工资管理系统
岗位推荐系统
问卷调查系统
软件开发销售
网上考核系统
选举系统

  • 西安华通天地信息科技有限公司
    地 址:西安市高新区高新路凯创国际B座1306
    电 话:029-89195952
    传 真:029-89195952-808
    电 邮:xahttd@163.com
    网 店:dealer.zol.com.cn/d_176010
    118526.dealer.it168.com
    118526.shop.pcpop.com
    微 博:e.weibo.com/xahttd
    微 信:huatongtiandi
  • 当前位置:首页 > > 技术支持> 解决方案
    基于双层PDF文档的全文检索技术在数字档案馆中的应用
            随着社会信息化程度的提高,人们对档案信息资源的依赖程序也越来越高,对高效率的档案资源管理、检索利用的需求也越来越迫切,发展数字档案馆是社会发展的必然,数字档案馆是一个提供档案远程服务和信息共享的平台。近年来,数字档案馆的研究和建设也如火如荼的开展起来,数字档案馆的平台呈现多样化,档案数字化加工也存在着不同标准,建设数字档案馆的最终目标都是为了档案永久存储和高效利用,本文以中南大学数字档案馆建设实例,着重讨论数字档案馆建设中的全文检索技术。

    1 概述

    1.1 全文检索

            全文检索是计算机程序通过扫描文件中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置。当用户查询时根据索引进行查找,类似于通过字典的检索字表查字的过程。

      档案的收藏是为了利用,档案检索应该把查全率摆在首位,兼顾查准率。数字档案馆要提供便捷的查询和高查全率,必须建设全文检索系统,全文检索系统由索引模块、分词模块、检索模块和存储模块等构成。

    1.2 双层PDF技术

             双层PDF文件是一种包含Text层和Image层的多层结构PDF格式文件,两层内容位置上一一对应。Image层是原始图像,保留了原始档案的效果;Text层是Image层的识别结果,支持选择、检索和复制等功能。通过程序控制可实现两个图层的任意显示和切换,可实现检索词的精确定位。

             双层PDF加工是指将其它文件(可以是WORD、也可以是图像文件)转换,或者将标准纸质文档通过扫描后,经过去污、修正和OCR识别,通过软件生成双层PDF文档,然后挂接到档案管理系统的相应目录下。

    1.3全文检索的意义

            全文检索是一种很重要的检索途径,弥补了目录检索的不足,也解决了目录著录不全、不规范等问题,大幅度提高了查全率。由于全文检索不是直接访问数据库,而是通过对数据库中的数据或者对双层PDF文件的Text层进行索引,因此用户搜索对数据库的压力为零,可以达到毫秒级的检索速度和每秒数百次的并发访问,大大提升检索速度。

    2 全文检索在数字档案馆的实现

    2.1 创建全文数据库

            我们采用档案数字化加工系统和PDF车间进行纸质档案的数字化加工,实行流水线作业,将档案扫描加工为电子档案;使用双层PDF车间,将文件识别为文字,然后再将Text层和Image层组合成为一个完整的双层PDF文件。我们仍然采用目前技术成熟、广为流行的基于目录数据库挂接方式来实现PDF文件的挂接,对档案内容数据及其元数据等相关信息建立永久联系,形成数据包。

    2.2 创建索引

            将制作好的PDF文件和数据包通过调用全文检索系统(Delisun Text)内核函数建立对应的索引文件,抓取和解析数据,创建索引的过程实际上也就是将数字化档案原文及其原数据(包括结构化和非结构化数据)信息提取并创建索引文件的过程。

    2.2.1索引创建:

            为了对文档进行索引,Delisun Text 提供了五个基础的类, Document、 Field、IndexWriter、Analyzer、Directory。

    1、首先指定生成Index目录。

    2、建立索引器indexWriter,生成index对象,把一个个的 Document 对象加到索引中来。

    3、建立信息字段对象Field,描述文档的某个属性,如文件标题和内容可以用两个 Field 对象分别描述。

    4、建立文档对象Document,用来描述文档,内容可以从TXT、HTML等文档及数据库等多种途径获得,一个 Document 对象由多个 Field 对象组成的。也可以把一个 Document 对象看作数据库中的一个记录,而每个 Field 对象就是记录的一个字段。

            在一个文档被索引之前,首先需要对文档内容进行分词处理,这部分工作就是由 Analyzer类来完成。Analyzer 类是一个抽象类,它有多个实现,针对不同的语言和应用需要选择适合的 Analyzer。Analyzer 把分词后的内容交给 IndexWriter 来建立索引。在分词时,如果用来进行索引的文档不是纯文本,先得转换成纯文本才能再进行操作;对同一索引,用来分词建立索引的分词器与用来查询的分词器必须是同一个,才能保证得到正确的查询结果。

    5、将Field添加到Document里面,再将Document添加到IndexWriter里面。

    6、优化indexWriter对象,Directory类代表了 Lucene 的索引的存储的位置,它是一个抽象类,有两个实现,一个是 FSDirectory,它表示一个存储在文件系统中的索引的位置;其次是 RAMDirectory,它表示一个存储在内存当中的索引的位置。

           通俗的讲,索引过程也可以理解为四个阶段:1) 有一系列被索引文件;2) 被索引文件经过语法分析和语言处理形成一系列词(Term);3) 经过索引创建形成词典和反向索引表;4) 通过索引存储将索引写入磁盘。最后完成index的生成。

    2.2.2索引管理:

        1 查看索引,读取指定路径索引中是否存在;索引中包含的文档,词条情况,是否需经过优化等;最后一次修改的时间,路径信息,含有的文档数目等;读取索引词条相关基本信息。

        2 删除索引,删除指定序号的文档之后,自动删除对应的索引文件;恢复被删除的文档及索引。

        3 更新索引,更新索引中的某个文档; 另外就是,索引同步处理,用户可根据需要自己定制创建索引时间,可定时更新也可以实时更新。

    2.3 全文检索

    2.3.1检索过程

    全文检索实际上是一个复杂的过程,主要分为以下步骤:

            第一步:用户输入查询语句。

            第二步:对查询语句进行词法分析和语法分析,得到一系列的词,然后进行语言处理。词法分析主要用来识别单词和关键字;语法分析主要是根据查询语句的语法规则来形成一棵语法树;语言处理同索引过程中的语言处理几乎相同。通过分析和处理,得到一个查询树。

            第三步:搜索索引,得到符合语法树的文档。1)在反向索引表中,分别找出包含查询内容的文档链表;2)对包含查询内容的链表进行合并操作,得到包含查询内容的文档链表;3)将此链表与查询内容的文档链表进行差操作,去除无关的文档信息,从而得到包含查询内容的精确的文档链表;4)此文档链表就是我们要找的文档。
     
            第四步:根据得到的文档和查询语句的相关性,对结果进行排序。1)一个文档有很多词(Term)组成;2)找出词(Term)对文档的重要性的过程称为计算词的权重(Term weight)的过程;3)判断词(Term)之间的关系从而得到文档相关性的过程应用向量空间模型算法(Vector Space Model);4)最终计算出权重(Term weight)。

             第五步:将查询结果返回给用户界面。

    2.3.2用户界面设计

            直观实用的用户界面,用于接收系统返回的检索结果:1)高亮显示结果条目中的检索条件,可根据需要通过Lucene高亮处理基本设置;2)提取过滤搜索结果,对搜索结果进行排序,初始的结果排序列按相关性计算出的权重值从大到小排列;3)对提取过滤搜索结果可进行二次过滤搜索;4)根据档案管理系统权限,对检索出的结果可进行下载与浏览。

    2.3.3原文获取和定位

            通过检索过程,在用户界面得到了查询结果,接下来,在检索利用中,便是要获取PDF原文,并查出检索词在原文中的具体位置。这里,我们运用Acrobat Reader(创建和阅读PDF文档使用最广泛的软件),结合档案管理系统,自动实现检索词在原文中的定位。

    1、在多个PDF文档中查找文本

            Reader 软件本身对双层PDF文档的查找、文本复制、双层切换等功能都提供了支持,“搜索”窗口允许在多个 PDF 查找项目。打开 Reader在“查找”工具栏,键入需要查找的文本然后从弹出菜单选择“打开完整的 Acrobat 搜索”。

            在“搜索”窗口,选择“所有 PDF 文档,位于”。从本选项下方弹出菜单选择“查找位置”。运用Acrobat Reader,可以实现在检索词在指定文档中的定位。

    2、在检索结果中自动实现PDF文档的定位

            档案管理系统的用户界面获取了来自检索系统的信息之后,如果实现从超级链接到自动打开PDF文档,以及检索词在文档中的精确定位呢?以下便是实现这一功能的代码的一部分。           

    3 总结

            经过实际测试,基于双层PDF文档技术的全文检索,有效的提高了查询利用工作效率,它通过对档案数据库的数据和双层PDF文档的TEXT层建立索引,查询时不访问数据库,有效减轻数据库和系统的压力。目前可以支持1000万级的数据,毫秒级的查询时间,每秒500人的并发访问,从而实现大容量、高速度的目标;可以适应linux和window平台,支持多种数据库接口;它具备通用搜索引擎的构架和功能,可以对用户的输入进行分词,可以进行多关键字搜索、关键词组合搜索,用户友好;同时能够根据客户的需求进行用户的数据挖掘,提高档案全文检索系统的价值。

            通过全文数据库及全文检索的实现,得到高查全率和查准率,大幅提高档案的利用价值;同时,对档案编研也起到积极的作用;也为档案信息聚合(RSS,也叫聚合内容,Really Simple Syndication)的研究、定向的档案信息服务研究或者更深层次的档案服务奠定了基础。
    华通天地 陕ICP备11010667号     西安华通天地信息科技有限公司版权所有