IKAnalyzer中文分词器V3.2.3使用手册_第1页
IKAnalyzer中文分词器V3.2.3使用手册_第2页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

1、 6/6IKAnalyzer中文分词器V3.2.3使用手册 IKAnalyzer中文分词器 V3.2使用手册 目录 1.IK Analyzer3.X介绍 (2) 2.使用指南 (5) 3.词表扩展 (12) 4.针对solr的分词器应用扩展 (14) 5.关于 (16) 1.IK Analyzer3.X介绍 IK Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始,IKAnalyzer已经推出了3个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。新版本的IK Analyzer3.X则发展

2、为面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。 1.1IK Analyzer3.X结构设计 1.2IK Analyzer3.X特性 ?采用了特有的“正向迭代最细粒度切分算法“,具有80万字/秒的高速处理能力。 ?采用了多子处理器分析模式,支持:英文字母(IP地址、Email、URL)、数字(日期,常用中文数量词,罗马数字,科学计数法),中文词汇(姓名、地名处理)等分词处理。?优化的词典存储,更小的内存占用。支持用户词典扩展定义 ?针对Lucene全文检索优化的查询分析器IKQueryParser(吐血推荐);采用歧义分析算法优化查询关键字的搜索排

3、列组合,能极大的提高Lucene检索的命中率。 1.3分词效果示例 文本原文1: IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始,IKAnalyzer已经推出了3个大版本。 分词结果: ikanalyzer|是|一个|一|个|开源|的|基于|java|语言|开发|的|轻量级|量级|的|中文|分词|工具包|工具|从|2006|年|12|月|推出|1.0 |版|开始|ikanalyzer|已经|推出|出了|3|个大|个|版本 文本原文2: 永和服装饰品有限公司 分词结果: 永和|和服|服装|装饰品|装饰|饰品|有限|公司 文本原文

4、3: 博客:http:/./doc/5fee914ffe4733687e21aaf7.html 电子邮件:linliangyi2005http:/./doc/5fee914ffe4733687e21aaf7.html 分词结果: |博客|http:/./doc/5fee914ffe4733687e21aaf7.html |linliangyi|2007|javaeye|com|电子邮件|邮件地址|linliangyi2005http:/./doc/5fee914ffe4733687e21aaf7.html |linliangyi|2005|gmail|com 2.使用指南 2.1下载地址 Go

5、ogleCode开源项目:http:/./doc/5fee914ffe4733687e21aaf7.html /p/ik-analyzer/ GoogleCode SVN下载:http:/./doc/5fee914ffe4733687e21aaf7.html /svn/trunk/ 2.2与相关项目的版本兼容 IK分词器版本L ucene版本S olr版本 3.1.5GA兼容2.9.1及先前版本对solr1.3提供接口实现 (详细请参考对应版本使用手册) 3.1.6GA兼容2.9.1及先前版本对solr1.3、solr1.4提供接口实现 (详细请参考对应版本使用手册) 3.2.0GA兼容Luc

6、ene2.9及3.0版本 不支持Lucene2.4及先前 版本仅对solr1.4提供接口实现 (请参考本手册solr部分说明) 2.3安装部署 IK Analyzer安装包包含: 1.IKAnalyzer中文分词器V3.X使用手册(即本文档) 2.IKAnalyzer 3.X.jar(主jar包) 3.IKAnalyzer.cfg.xml(分词器扩展配置文件) 4.ext_stopword.dic(扩展的stopword词典,3.2以上版本提供) 它的安装部署十分简单,将IKAnalyzer3.X.jar部署于项目的lib目录中;IKAnalyzer.cfg.xml 与ext_stopword

7、.dic文件放置在代码根目录(对于web项目,通常是WEB-INF/classes 目录,同hibernate、log4j等配置文件相同)下即可。 2.4Lucene用户快速入门 代码样例 IKAnalyzerDemo 执行结果:命中:1 2.5关键API 说明 类org.wltea.analyzer.lucene org.wltea.analyzer.lucene. .IKAnalyzer 说明:IK 分词器的主类,是IK 分词器的Lucene Analyzer 类实现。 该类使用方法请参考“代码样例”章节 ?public IKAnalyzer() 说明:构造函数,默认实现最细粒度切分算法

8、?public IKAnalyzer(boolean isMaxWordLength) 说明:新构造函数,从版本V3.1.1起 参数1:boolean isMaxWordLength ,当为true 时,分词器进行最大词长切分;当为false 时,分词器进行最细粒度切分。 类org.wltea.analyzer.lucene org.wltea.analyzer.lucene. .IKQueryParser ?public static void setMaxWordLength(boolean isMaxWordLength) 说明:设置QueryParser 的解释时,分词器的切词方式,从

9、版本V3.2.3起 参数1:boolean isMaxWordLength ,是否采用最大词长分词;true 采用最大词长分词;false 不采用。 返回值:无内容:Document ?public static Query parse(String field,String query)throws IOException 说明:单条件,单Field查询分析 参数1:String field,查询的目标域名称 参数2:String query,查询的关键字 返回值:构造一个单条件,单Field查询器 ?public static Query parseMultiField(Stringfie

10、lds,String query)throws IOException 说明:多Field,单条件查询分析 参数1:Stringfields,多个查询的目标域名称的数组 参数2:String query,查询的关键字 返回值:构造一个多Field,单条件的查询器 ?public static Query parseMultiField(Stringfields,String query, BooleanClause.Occurflags)throws IOException 说明:多Field,单条件,多Occur查询分析 参数1:Stringfields,多个查询的目标域名称的数组 参数2:

11、String query,查询的关键字 参数3:BooleanClause.Occurflags,查询条件的组合方式(Or/And)返回值:构造一个多Field,单条件,多Occur的查询器 ?public static Query parseMultiField(Stringfields,Stringqueries)throws IOException 说明:多Field,多条件查询分析 参数1:Stringfields,多个查询的目标域名称的数组 参数2:Stringqueries,对应多个查询域的关键字数组 返回值:构造一个多Field,多条件的查询器 ?public static Qu

12、ery parseMultiField(Stringfields,Stringqueries, BooleanClause.Occurflags)throws IOException 说明:多Field,多条件,多Occur查询 参数1:Stringfields,多个查询的目标域名称的数组 参数2:Stringqueries,对应多个查询域的关键字数组 参数3:BooleanClause.Occurflags,查询条件的组合方式(Or/And) 返回值:构造一个多Field,多条件,多Occur的查询器 org.wltea.analyzer.lucene.IKSimilarity 类org.w

13、ltea.analyzer.lucene 说明:IKAnalyzer的相似度评估器。该类重载了DefaultSimilarity的coord方法,提高词元命中个数在相似度比较中的权重影响,即,当有多个词元得到匹配时,文档的相似度将提高。 该类使用方法请参考“代码样例”章节 org.wltea.analyzer.IKSegmentation 类org.wltea.analyzer 说明:这是IK分词器的核心类。它是真正意义上的分词器实现。IKAnalyzer的3.0版本有别于之前的版本,它是一个可以独立于Lucene的Java分词器实现。当您需要在Lucene以外的环境中单独使用IK中文分词组件

14、时,IKSegmentation正是您要找 的。 ?public IKSegmentation(Reader input) 说明:IK主分词器构造函数,默认实现最细粒度切分 参数1:Reader input,字符输入读取 ?public IKSegmentation(Reader input,boolean isMaxWordLength) 说明:IK主分词器新构造函数,从版本V3.1.1起 参数1:Reader input,字符输入读取 参数2:boolean isMaxWordLength,当为true时,分词器进行最大词长切分; 当为false时,分词器进行最细粒度切分。 ?public

15、 Lexeme next()throws IOException 说明:读取分词器切分出的下一个语义单元,如果返回null,表示分词器已经结束。 返回值:Lexeme语义单元对象,即相当于Lucene的词元对象Token org.wltea.analyzer.Lexeme 类org.wltea.analyzer 说明:这是IK分词器的语义单元对象,相当于Lucene中的Token词元对象。由于3.0版本被设计为独立于Lucene的Java分词器实现,因此它需要Lexeme来代表分词的结果。 ?public int getBeginPosition() 说明:获取语义单元的起始字符在文本中的位置

16、 返回值:int,语义单元相对于文本的绝对起始位置 ?public int getEndPosition() 说明:获取语义单元的结束字符的下一个位置 返回值:int,语义单元相对于文本的绝对终止位置的下一个字符位置?public int getLength() 说明:获取语义单元包含字符串的长度 返回值:int,语义单元长度=getEndPositiongetBeginPosition ?public String getLexemeText() 说明:获取语义单元包含字符串内容 返回值:String,语义单元的实际内容,即分词的结果 3.词表扩展 目前,IK分词器自带的主词典拥有27万左右

17、的汉语单词量。由于个人的精力有限,并没有对搜集到的词库进行全范围的筛选、清理。此外,对于分词组件应用场景所涉及的领域的不同,也需要各类专业词库的支持。为此,IK分词器提供了对词典的扩展支持。 在IK分词器3.1.3以上版本,同时提供了对用户自定义的停止词(过滤词)的扩展支持。 3.1基于API的词典扩充 IK分词器支持使用API编程模型扩充您的词典和停止词典。如果您的个性化词典是存储于数据库中,这个方式应该对您适用。API如下: ?类org.wltea.analyzer.dic.Dictionary 说明:IK分词器的词典对象。它负责中文词汇的加载,内存管理和匹配检索。 ?public sta

18、tic void loadExtendWords(ListextWords) 说明:加载用户扩展的词汇列表到IK的主词典中,增加分词器的可识别词语。 参数1:ListextStopWords)说明:加载用户扩展的停止词列表,从版本V3.1.3起 参数1:ListextStopWords,扩展的停止词列表 返回值:无 3.2基于配置的词典扩充 IK分词器还支持通过配置IKAnalyzer.cfg.xml文件来扩充您的专有词典以及停止词典(过滤词典)。 1.部署IKAnalyzer.cfg.xml IKAnalyzer.cfg.xml部署在代码根目录下(对于web项目,通常是WEB-INF/cla

19、sses目录)同hibernate、log4j等配置文件相同。 2.词典文件的编辑与部署 分词器的词典文件格式是无BOM的UTF-8编码的中文文本文件,文件扩展名不限。词典中,每个中文词汇独立占一行,使用rn的DOS方式换行。(注,如果您不了解什么是无BOM的UTF-8格式,请保证您的词典使用UTF-8存储,并在文件的头部添加一空行)。您可以参考分词器源码org.wltea.analyzer.dic包下的.dic文件。 词典文件应部署在Java的资源路径下,即ClassLoader能够加载的路径中。(推荐同IKAnalyzer.cfg.xml放在一起) 3.IKAnalyzer.cfg.xml文件的配置 IK Analyzer扩展配置 /mydict.dic; /com/mycompany/dic/mydict2.dic; /ext_stopword.dic 在配置文件中,用户可一次配置多个词典文件。文件名使用“;”号分隔。文件路径为相对java包的起始根路径。 4.针对solr的分词器应用扩展 IK分词器3.2.0以上版本从API层面提供了对solr1.4项目扩展 4.1solr1.4的TokenizerFactor

温馨提示

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

评论

0/150

提交评论