陈国良 冯琦峰 周远
本文作者在实施“智慧档案”项目的过程中,发现随着档案数据资源的激增以及档案信息化手平的提高,检索的方式会逐步从单一检索转向多元搜索、联合检索及知识发现的层次,用户要求通过统一的检索入口,即能同时查找不同来源的信息,并能够灵活地对检索结果进行操作和处理。本文结合实际项目的开展情况,论述了基于移动互联环境下民生档案的总体设计方案,并对智能检索的几种设计方案进行了简介与评价,并提出了符合民生档案特点的切实可行的检索方案。
一、 系统总体设计方案
移动互联民生档案系统的前期总体设计简图如下表示:
电脑、手机等智能终端,通过3G/4G/GPRS 或WIFI等通信手段,提交通信请求,经过UOML服务器处理的文档信息,可供授权用户查阅。
服务器可提供用户注册、身份认证、短信提示、风险防范等功能;对于经过身份认证之后的用户,服务器再授予一定的权限,允许用户在一定范围内检索相关民生档案信息;服务器还提供统一的查询平台。
用户输入查询的内容之后,数据由服务器发送到智能检索系统进行统一处理;由智能检索系统从多个物理数据库或专题库中检索出来,交由UOML服务器进行处理。
UOML是定义了非结构化文档操作通用功能的开放标准,可以实现文档、页、层、文字、图形、图像等元索的创建、编辑、检索和信息提取,可以满足各种应用程序对文档存储、展现、检索和安全的需求。
二、存在的问题
在上述的检索系统中,我们考虑到广大人民群众没有受过专门的检索培训,在授权库中采用全文检索技术,输出结果中突出显示目标关键词的基础上部分文字缺少的方法,以此来保障其它用户信息的安全。尽管如此,进入测试环节时,问题还是大量的产生了。
1、 用户从开始向信息检索系统提问到系统输出检索结果的全部时间无法忍受。在一次检索过程中如果用户提交的是模糊查询请求,响应时间有时达到十几分钟。
2、 档案检索系统对于提交的请求结果,有时达到几十页的搜索结果,且检索结果的相关性差,缺乏合理的排序和必要的组织、分析,与检索提问最相关的页面不能首先呈现给用户,用户必须要在众多的检索结果中寻找所需的信息,大大超过用户的接受能力。
3、 用户表达的需求与获取的检索结果往往差异很大。
总结原因,系统虽然受到硬件条件的制约,例如网络和相关设备的技术限制,信息的处理速度尚难尽人意。但主要原因还在于档案检索系统在检索策略构造方面,专业性较强,系统透明度差,用户不能用自己所熟悉的方式查询提问,没有经过专门训练的用户很难从系统中获得自己所需要的信息,给用户一种望而却步的感觉,缺乏良好的交互性。基于关键词匹配的检索技术,不符合语义理解的需要,不能很好地理解用户的检索请求,不能区分关键词的同形异义,也不能联想到相关同义词、近义词,无法智能识别语义的内在关联,更不可能考虑到关键词所处的特殊语言环境,不仅给选用检索点带来困难,而且导致用户需要费时费力地对数以千计的检索结果进行手工筛选。
三、方案的比较
针对档案检索系统的缺陷和不足,分别用提升“硬件”、更新“软件”的方法来选择。目前将前沿的技术介绍如下:
1、并行计算与并行检索
并行计算指的是,将单个问题划分为多个较小的“子”问题,用多个处理器同时分别处理这些“子”问题来得到单个问题的解。多个可以同时工作的处理部件或处理器构成的计算机系统,称为并行计算机。并行计算系统包括并行计算机或多处理机系统。在并行计算系统中,不同处理器同时运行多个程序或者一个程序的不同进程,从而提高系统的运算速度。
并行检索则把用户提交的查询,通过代理程序对原始查询进行处理(如查询的分析转换或格式化处理等等),然后将处理后的查询发给搜索程序,搜索程序找到结果并进行处理(如排序)后返回给代理程序,代理程序经过必要的处理(如结果的归整、合并等)将结果返回给用户。
2、分布式检索
利用分布式计算进行信息检索称为分布式检索。主要特点在于:分布式检索通常处理的是地理位置分散的异构数据,不同地理位置计算机系统间通讯的开销比较大;分布式检索的数据规模相对较大,每个节点的处理能力又不尽相同,因此,分布式检索通常只选择某些数据子集进行检索,而不是像并行检索那样,需要返回每个数据子集的结果;分布式检索的对象的异构性使得统一描述和访问成为必须要考虑的问题。
3、语义搜索
通过理解自然语言的逻辑,通过分析用户输入搜索框内的词语,给出用户可能想要的搜索结果,来解决“问题式”搜索的难题。把信息检索从目前基于关键词层面提高到基于知识层面,具有智能化、人性化特征,对知识有一定的理解与处理能力,允许采用自然语言进行信息的检索,为用户提供更方便、更确切的检索服务。其工作不再拘泥于用户所输入请求语句的字面本身,而是透过现象看本质,准确地捕捉到用户所输入语句后面的真正意图,并以此来进行搜索,从而更准确地向用户返回最符合其需求的搜索结果。
但以上几种方法显然都不符合民生档案的实际情况。不提项目预算,就以充分挖掘并行计算和分布式计算的能力,还需要众多研究者和学者共同商讨;语义搜索引擎目前还没有成熟的产品问世。
四、符合民生档案特点的智能检索设计
经过我们的多次设计与比较,我们认为检索不满意的主要原因是分词设计上不合理造成的。之后我们采用IKAnalyzer分词器并自定义扩展字典设置,起到了较好的效果。
IK Analyzer 是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始, IKAnalyzer已经推出了4个大版本。在2012版本中,IK实现了简单的分词歧义排除算法,标志着IK分词器从单纯的词典分词向模拟语义分词衍化。采用了特有的“正向迭代最细粒度切分算法“,支持细粒度和智能分词两种切分模式;采用了多子处理器分析模式,支持:英文字母、数字、中文词汇等分词处理,兼容韩文、日文字符优化的词典存储,更小的内存占用。支持用户词典扩展定义。
我们的主要思路如下:
1、建立各类民生档案的专业关键词数据库。
2、利用IKAnalyzer分词器,把群众查询的字符串,分割成若干个关键词。
3、去取无意义的词,如:人称代词、语气助语,例如:我、他、的等。
4、提取关键词与各类专业数据库中的内容对比、分析,然后引导到各民生档案库中查询。
5、再通过关键词的全文检索找到相对应的内容。
例如:建立婚姻档关键词与低保关词库。当有人查询: “我叫张三现在是低保户要查1955结婚证明”系统可自动提取关键字,“张三”,“低保”,“1955”,“结婚证明”,从低保库中找到张三的其它信息之后,在婚姻库中找到结婚证明信息,从而快速高效的获取相关信息。
程序调用方法如下:
public class Test {
public static void main(String[] args) throws IOException {
String text="我叫张三现在是低保户要查1955结婚证明"; //创建分词对象
Analyzer anal=new IKAnalyzer(true);
StringReader reader=new StringReader(text); //分詞
TokenStream ts=anal.tokenStream("", reader);
CharTermAttribute term=ts.getAttribute(CharTermAttribute.class); //遍历分词数据
while(ts.incrementToken()){
System.out.print(term.toString()+"|");
}
reader.close();
System.out.println();
}
(作者单位:1.浙江商业技师学院;2.宁波市鄞州区档案局;3.宁波国研软件技术有限公司)
项目:本文为2013浙江省档案科研项目