基于Java的搜索引擎Nutch中文搜索技术研究_计算机论文.docVIP

基于Java的搜索引擎Nutch中文搜索技术研究_计算机论文.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Java的搜索引擎Nutch中文搜索技术研究_计算机论文.doc

基于Java的搜索引擎Nutch中文搜索技术研究_计算机论文 基于Java的搜索引擎Nutch中文搜索技术研究_计算机论文 摘要:Nutch是一个优秀的基于Java的开放源码搜索引擎,为了使它能够支持中文搜索,本文在分析了Nutch结构的基础上,采用词表分词技术和前向匹配分词算法对中文信息进行分词,以JavaCC脚本实现上下文相关文法中文分析模块,成功实现了Nutch中文搜索功能。 关键词:搜索引擎 分词 正规 Abstract: In order to enable Chinese search in Nutch, which is an excellent Java-based open source search engine, this paper analyses the structure of Nutch and separates words in Chinese information based on Chinese dictionary and forward matching algorithm. Chinese analysis module is generated by JavaCC script that results in supporting Chinese search in Nutch. Key words: Search Engine Word Segmentation Regular Expression 1 前言 搜索引擎[1]是当今网络应用的核心问题,已经受到各企业和研究部门的广泛关注。Lucene和Nutch是针对国外英文系统环境的搜索引擎,本文在研究了中文分词技术和JavaCC技术的基础上,成功地实现了Lucene和Nucth的中文分析模块,使Lucene和Nucth能够实现中文信息检索。 2 Nutch分析 Lucene是开放源码的基于Java的全文检索引擎,其贡献者Doug Cutting是一位资深全文索引/检索专家。作为一个全文检索系统,在进行检索之前需要建立索引,索引的过程是先读取文章中的词语,然后一一存放在称为倒排索引文件的索引数据库(Index Database)中。索引数据库记录了词语出现的位置,频率等相关信息,以备后面读取。Nutch是Cutting创建的另一个Java开源项目,目的是提供全功能的搜索引擎,其底层借助了Lucene的部分功能,并且索引结构与Lucene兼容。 Lucene和Nutch并没有规定数据源的格式,而只提供了一个通用的结构(Document对象)来接受索引的输入,因此输入的数据源可以是数据库、WORD文档、PDF文档和HTML文档,只要能够设计相应的解析转换器将数据源构造成Docuement对象即可进行索引。对于大批量的数据索引,还可以通过调整IndexerWrite的文件合并频率属性(MergeFactor)来提高批量索引的效率。用户输入查询字符串(Query String),然后经过分析器的分析,就会产生一个Query对象。真正搜索时,使用IndexSearcher类的search方法,它返回Hits对象。通过遍历Hits对象的所有文档(document),就可以找到所有被搜索到的文章(页面)。查询字符串的语法定义为: Query ::= ( Clause )* Clause ::= [+, -] [TERMgt :] ( TERMgt | ( Query )) 中间的逻辑包括:and or + - ampamp||等符号,而且还有短语查询和针对西文的前缀/模糊查询等。总的来说,这是其他很多搜索引擎都不具备的功能。通过修改QueryParser的语法生成脚本,还可以修改或扩展查询分析器的功能,使它更加适用于中文环境。所有的问题都通过一个额外抽象层来方便以后的扩展和重用,通过重新实现来达到自己的目的,而对其他模块而不需要。可以简单的应用入口Searcher, Indexer,并调用底层一系列组件协同的完成搜索任务。所有的对象的任务都非常专一,比如搜索过程QueryParser分析将查询语句转换成一系列的精确查询的组合(Query),通过底层的索引读取结构IndexReader进行索引的读取,并用相应的打分器给搜索结果进行打分/排序等。所有的功能模块原子化程度非常高,因此可以通过重新实现而不需要修改其他模块。除了灵活的应用接口设计,Lucene和Nutch还提供了一些适合大多数应用的语言分析器实现(SimpleAnalyser,StandardAnalyser),这也是新用户能够很快上手的重要原因之一。 3 Nutch中文搜索 3.1 中文分词 在搜索引擎和各种语言处理的需要中,分词可以说是最基本的操作。汉语句子是由词语组成的,

文档评论(0)

wyj199218 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档