IKAnalyzer分词器与lucene使用IKAnalyzer分析

IKAnalyzer分词器与lucene使用IKAnalyzer分析

ID:37919152

大小:244.00 KB

页数:12页

时间:2019-06-02

IKAnalyzer分词器与lucene使用IKAnalyzer分析_第1页
IKAnalyzer分词器与lucene使用IKAnalyzer分析_第2页
IKAnalyzer分词器与lucene使用IKAnalyzer分析_第3页
IKAnalyzer分词器与lucene使用IKAnalyzer分析_第4页
IKAnalyzer分词器与lucene使用IKAnalyzer分析_第5页
资源描述:

《IKAnalyzer分词器与lucene使用IKAnalyzer分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、IKAnalyzer版本Jar包下载IKAnalyzer3.2.8_bin下载地址:http://code.google.com/p/ik-analyzer/downloads/detail?name=IKAnalyzer3.2.8%20bin.zip&can=2&q=下载后包含说明及API文档(在目录doc3.2.8中)。源码下载http://code.google.com/p/ik-analyzer/downloads/detail?name=IKAnalyzer3.2.8%20source.zip&can=2&q=IKSegmentation浅析(纯IK分词)IKS

2、egmentation是IK中独立的分词器,与lucene没有关系。不继承,不扩展,不使用lucene相关的类。IK主分词器构造函数/***IK主分词器构造函数*@paraminput*@paramisMaxWordLength当为true时,分词器进行最大词长切分*/publicIKSegmentation(Readerinput,booleanisMaxWordLength){this.input=input;segmentBuff=newchar[BUFF_SIZE];context=newContext(segmentBuff,isMaxWordLength);s

3、egmenters=Configuration.loadSegmenter();}Readerinput是一个输入流,用于读取文件内容。IKSegmentation的构造器,作了3个事1、newContext(segmentBuff,isMaxWordLength)创建上下文对象Contextcontext=newContext(segmentBuff,isMaxWordLength);Contex主要是存储分词结果集与记录分词处理的游标位置。2、Configuration.loadSegmenter()加载词典、创建分词器Configuration.loadSegmen

4、ter()方法实现在加载词典,创建分词器详情如下。/***初始化子分词器实现*(目前暂时不考虑配置扩展)*@returnList*/publicstaticListloadSegmenter(){//初始化词典单例,如果查看getInstance()发现里面有详细的初始化词典的相关方法Dictionary.getInstance();Listsegmenters=newArrayList(4);//处理数量词的子分词器segmenters.add(newQuantifierSe

5、gmenter());//处理中文词的子分词器segmenters.add(newCJKSegmenter());//处理字母的子分词器segmenters.add(newLetterSegmenter());returnsegmenters;}得到Lexeme这是IK分词器的语义单元对象,相当于Lucene中的Token词元对象。由于3.0版本被设计为独立于Lucene的Java分词器实现,因此它需要Lexeme来代表分词的结果。调用的next()方法,会返回Lexeme对象,如果没有下一个分词结果,会返回null。源码如下/***获取下一个语义单元*@return没有

6、更多的词元,则返回null*@throwsIOException*/publicsynchronizedLexemenext()throwsIOException{if(context.getResultSize()==0){/**从reader中读取数据,填充buffer*如果reader是分次读入buffer的,那么buffer要进行移位处理*移位处理上次读入的但未处理的数据*/intavailable=fillBuffer(input);if(available<=0){context.resetContext();returnnull;}else{//分词处理in

7、tanalyzedLength=0;for(intbuffIndex=0;buffIndex

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

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

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