基于lucene的中文数码产品搜索引擎的设计_第1页
基于lucene的中文数码产品搜索引擎的设计_第2页
基于lucene的中文数码产品搜索引擎的设计_第3页
全文预览已结束

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于lucene的中文数码产品搜索引擎的设计

由于中国的汉语分词技术很少,国外很少讨论汉语。在国内,主要的中文分词技术有词表切分法、自动切分算法。首先看词表切分法,它适合于查询和存储效率要求比较高的搜索场合,不足之处是实现非常复杂,而且词表不容易进行维护,对于汉语、日语、韩语等语种需要分开维护,另外也还需要包括词语出现的频率统计等方面内容;自动切分法也是常用的分词算法,这种算法实现简单,维护起来也很容易,但是存在着索引效率不高等缺点。所以笔者认为这两种算法都不能很好地实现中文分词。本文提出在Lucene自带的中文分词基础上进行改进,改进后能实现词库更新,提高分词的准确性和完整性。Lucene是一个开源的全文搜索引擎架构,它是用Java语言实现的,在这种架构中定义了查询模块,索引模块,文本分词模块和存储管理模块。通过使用Lucene工具,可以定制自己的搜索引擎系统。在Lucene中,分词的实现是通过二元语法方式进行切分,经过这种方法,将处理的文档切分成多个词,但是这种算法切分的中文分词不够智能,如“中华人民共和国”经过切分后变成“中华、华人、人民、民共、共和、和国”。笔者重写了中文分词器,使用已有的词库,通过序列化处理,能够提高分词的效率。1segmen类、tokeniz类笔者定义的是由java编写的分词算法,用户可以定义分词切分的字数,设置最多可以匹配的数字数目。另外它还提供了API,可以向词库中添加新词。自定义的类有Segmenter类,Tokeniz类,SegmenterUtil类。如上3个类的作用分别是:Segmenter类用来载入所用的词库,通过调用,可以把给定的文本用符号进行分隔,将处理后的字符显示出来。Tokeniz类用来进行词法分析,用来对词语进行识别。SegmenterUtil类来获取Segmenter类序列化的结果,返回的是经过序列化后的对象。具体的算法设计思想,在这个模块中由Segmenter类来载入词库文件,词库使用的是中科院公布的词库,能识别比较新的词语(比如腾讯、百度等)。在加载后要同时定义Tokeniz类的子类,实例化Tokeniz类,利用它的子类来进行词语切分,为了提高加载词库的效率,可以通过Java中的Serializable接口对Segmenter对象进行序列化,经过序列化后可以提高载入索引的效率。2提取数据后的网站数码产品搜索引擎系统一个专业领域的的搜索引擎,不同于通用的搜索引擎,是为用户在数码产品领域中查找信息。从抓取网页原理和体系结构来看,数码产品收缩引擎是由针对性地选择一些站点进行抓取,所以可以减少网络开销。这个系统:由以下的5个功能部分构成:分别是信息抓取部分、数据库处理部分、索引部分,搜索部分,分词部分,如图1所示。由信息抓取部分来负责网页上的信息的获取,信息可以是以网页形式,也可以是pdf,或者是word格式,将抓取的数据通过中间的核心部分交给IndexWriter模块,经过调用后实例化了Index对象,将处理结果保存在磁盘中指定的位置。在用户使用搜索引擎时,输入查找的信息后,系统向核心部分提出检索的要求,由核心部分将此要求交给Search来处理,处理后把结果显示给请求方。2.1信息读取实现过程本系统的抓取功能是由Heritrix扩展实现的,实现信息抓取的过程包括,选择抓取的网站,分析网站内容同时准备抓取清单,开始抓取,解析网页内容。2.2主要特征识别分词的实现基于词库的创建,当有了词库后通过词库来处理抓取的信息。本文采用的是中科院的ICTCLAS系统,本系统具有人名识别、地名识别、组织机构名识别、支持行业词典、用户自定义词典、多级词性标注、关键词提取等特征。另外笔者还构建了针对本系统(数码产品销售网站)的产品信息词库,里面包括大量的数码产品的品牌名称,型号名称等信息,以便于更好的为用户提供针对性地搜索服务。系统的词库文件中大约有2500个词。分词系统的实现,如图2所示,在SegmenterUtil类来对对象序列化处理,将序列化的结果以文件形式保存到磁盘中,也可以将序列化后的对象进行反序列化。2.3数据库的定义这部分要将数码产品的详细信息记录在数据库中,具体的过程,定义数据库中的各个字段,以及字段的类型;定义一个产品类,用来将数据库和索引中用到的信息保存;将具体的产品信息写在数据库中。2.4对策三:单次使用冠词进行分析,方便获得无词索引建立的过程:(1)把数据转换为Lucene认识的单词流的形式。(2)进行分析,把单词流中的冠词,介词,代词等无关词去掉,方便数据更好地索引。(3)写索引,将数据保存在反向索引的数据结构中,利用反向索引可以将单词置为关键值,可以通过单词查找相关文档,可以快速实现查找并且降低了磁盘空间。2.5索引筛选结果反馈搜索模块在收到网站页面的搜索请求时,利用相同的分词技术对关键词切分,通过转换成Query之后返回给搜索部分,通过调用读索引器IndexReader,读入索引文件,将匹配的结果交给搜索器,处理后反馈给页面。3系统搜索结果为了测试改进后的基于Lucene网页中文分词的效果,在数码产品搜索引擎系统上进行了测试。使用此搜索引擎系统搜索“三星手机”,如果未改进Lucene分词算法,搜索的返回列表中包括“三”、“三星”、“星”、“手”、“手机”等作为关键字的链接,包含的脏链接超过49%,改进之后返回的列表是以“三星”+“手机”为关键字的网页列表,搜索的返回列表中搜索到171个项目,与三星手机相关的网页有153个,有效链接为89%。4基于lucene工具包的数字视频

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论