nutch中文分词

nutch中文分词

ID:32366794

大小:47.00 KB

页数:5页

时间:2019-02-03

nutch中文分词_第1页
nutch中文分词_第2页
nutch中文分词_第3页
nutch中文分词_第4页
nutch中文分词_第5页
资源描述:

《nutch中文分词》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、基于Java的搜索引擎Nutch中文搜索技术研究宿红毅罗宏臧海峰(北京理工大学计算机科学与工程系,北京100081)摘要:Nutch是一个优秀的基于Java的开放源码搜索引擎,为了使它能够支持中文搜索,本文在分析了Nutch结构的基础上,采用词表分词技术和前向匹配分词算法对中文信息进行分词,以JavaCC脚本实现上下文相关文法中文分析模块,成功实现了Nutch中文搜索功能。关键词:搜索引擎;分词;正规式中图分类号:TP391文献标识码:A1前言搜索引擎[1]是当今网络应用的核心问题,已经受到各企业和研究部门的广泛关注。Lucene和Nutch是针对国外英文系统环境的搜索引擎,本文在研究

2、了中文分词技术和JavaCC技术的基础上,成功地实现了Lucene和Nucth的中文分析模块,使Lucene和Nucth能够实现中文信息检索。2Nutch分析Lucene是开放源码的基于Java的全文检索引擎,其贡献者DougCutting是一位资深全文索引/检索专家。作为一个全文检索系统,在进行检索之前需要建立索引,索引的过程是先读取文章中的词语,然后一一存放在称为倒排索引文件的索引数据库(IndexDatabase)中。索引数据库记录了词语出现的位置,频率等相关信息,以备后面读取。Nutch是Cutting创建的另一个Java开源项目,目的是提供全功能的搜索引擎,其底层借助了Luc

3、ene的部分功能,并且索引结构与Lucene兼容。Lucene和Nutch并没有规定数据源的格式,而只提供了一个通用的结构(Document对象)来接受索引的输入,因此输入的数据源可以是数据库、WORD文档、PDF文档和HTML文档,只要能够设计相应的解析转换器将数据源构造成Docuement对象即可进行索引。对于大批量的数据索引,还可以通过调整IndexerWrite的文件合并频率属性(MergeFactor)来提高批量索引的效率。用户输入查询字符串(QueryString),然后经过分析器的分析,就会产生一个Query对象。真正搜索时,使用IndexSearcher类的search

4、方法,它返回Hits对象。通过遍历Hits对象的所有文档(document),就可以找到所有被搜索到的文章(页面)。查询字符串的语法定义为:Query::=(Clause)*Clause::=["+","-"][":"](

5、"("Query")")中间的逻辑包括:andor+-&&

6、

7、等符号,而且还有"短语查询"和针对西文的前缀/模糊查询等。总的来说,这是其他很多搜索引擎都不具备的功能。通过修改QueryParser的语法生成脚本,还可以修改或扩展查询分析器的功能,使它更加适用于中文环境。所有的问题都通过一个额外抽象层来方便以后的扩展和重用,通过重新实现来达到自

8、己的目的,而对其他模块而不需要。可以简单的应用入口Searcher,Indexer,并调用底层一系列组件协同的完成搜索任务。所有的对象的任务都非常专一,比如搜索过程QueryParser分析将查询语句转换成一系列的精确查询的组合(Query),通过底层的索引读取结构IndexReader进行索引的读取,并用相应的打分器给搜索结果进行打分/排序等。所有的功能模块原子化程度非常高,因此可以通过重新实现而不需要修改其他模块。除了灵活的应用接口设计,Lucene和Nutch还提供了一些适合大多数应用的语言分析器实现(SimpleAnalyser,StandardAnalyser),这也是新用户

9、能够很快上手的重要原因之一。3Nutch中文搜索3.1中文分词在搜索引擎和各种语言处理的需要中,分词可以说是最基本的操作。汉语句子是由词语组成的,人们在使用汉语时,可以直接理解并使用它。对于计算机,是不可能达到人类的智能的,也不能理解人类语言。但是,由于人类仍然希望计算机能理解人类的语言,并且迫切的希望使用在各种商业和技术领域中,因此提出了计算机形式文法[2]。但是现有形式文法是建立在事先分词的基础上的。对于某些语言,单词之间有特定的符号隔开(一般是空格),所以没有任何分词的困难。而汉语与其他语言都有很大的不同,汉字之间没有空格。如果想继续沿用西方的形式文法理论处理汉语,那么必然涉及到

10、中文分词问题[3]。在系统实现中使用词表分词。词表中文分词的原理,是根据现有词库进行字符串模式匹配,把长的字符串分割为若干个词库中已经存在的词语即可。因此,制作词库成为必须的,词库中词语的选择也要慎重。系统选择的是一个大小为53301个中文词语,按照拼音顺序排列的文本格式的词库,词语之间使用回车符隔开。这个词库在使用时,要全部调入内存。为此,使用哈希表来实现。这是因为词库是使用最频繁的公有资源,把词库的调入和查词工作封装到WordDataBas

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。