lunece的第三方中文分词器预研

一、当前主流的一些中文分词介绍(转)

1 StopAnalyzer

StopAnalyzer能过滤词汇中的特定字符串和词汇,并且完成大写转小写的功能。

2 StandardAnalyzer

StandardAnalyzer根据空格和符号来完成分词,还可以完成数字、字母、E-mail地址、IP地址以及中文字符的分析处理,还可以支持过滤词表,用来代替StopAnalyzer能够实现的过滤功能。

3 SimpleAnalyzer

SimpleAnalyzer具备基本西文字符词汇分析的分词器,处理词汇单元时,以非字母字符作为分割符号。分词器不能做词汇的过滤,之进行词汇的分析和分割。输出地词汇单元完成小写字符转换,去掉标点符号等分割符。

在全文检索系统开发中,通常用来支持西文符号的处理,不支持中文。由于不完成单词过滤功能,所以不需要过滤词库支持。词汇分割策略上简单,使用非英文字符作为分割符,不需要分词词库的支持。

4 WhitespaceAnalyzer

WhitespaceAnalyzer使用空格作为间隔符的词汇分割分词器。处理词汇单元的时候,以空格字符作为分割符号。分词器不做词汇过滤,也不进行小写字符转换。

实际中可以用来支持特定环境下的西文符号的处理。由于不完成单词过滤和小写字符转换功能,也不需要过滤词库支持。词汇分割策略上简单使用非英文字符作为分割符,不需要分词词库支持。

4、 KeywordAnalyzer

KeywordAnalyzer把整个输入作为一个单独词汇单元,方便特殊类型的文本进行索引和检索。针对邮政编码,地址等文本信息使用关键词分词器进行索引项建立非常方便。

6 CJKAnalyzer

CJKAnalyzer内部调用CJKTokenizer分词器,对中文进行分词,同时使用StopFilter过滤器完成过滤功能,可以实现中文的多元切分和停用词过滤。在Lucene3.0版本中已经弃用。

7 ChineseAnalyzer

ChineseAnalyzer功能与StandardAnalyzer分析器在处理中文是基本一致,都是切分成单个的双字节中文字符。在Lucene3.0版本中已经弃用。

8 PerFieldAnalyzerWrapper

PerFieldAnalyzerWrapper功能主要用在针对不同的Field采用不同的Analyzer的场合。比如对于文件名,需要使用KeywordAnalyzer,而对于文件内容只使用StandardAnalyzer就可以了。通过addAnalyzer()可以添加分类器。

9 IKAnalyzer

实现了以词典为基础的正反向全切分,以及正反向最大匹配切分两种方法。IKAnalyzer是第三方实现的分词器,继承自Lucene的Analyzer类,针对中文文本进行处理。

10JE-Analysis

JE-Analysis是Lucene的中文分词组件,需要下载。

11 ICTCLAS4J

ictclas4j中文分词系统是sinboy在中科院张华平和刘群老师的研制的FreeICTCLAS的基础上完成的一个java开源分词项目,简化了原分词程序的复杂度,旨在为广大的中文分词爱好者一个更好的学习机会。

12 Imdict-Chinese-Analyzer

imdict-chinese-analyzer 是 imdict智能词典 的智能中文分词模块,算法基于隐马尔科夫模型(HiddenMarkovModel, HMM),是中国科学院计算技术研究所的ictclas中文分词程序的重新实现(基于Java),可以直接为lucene搜索引擎提供简体中文分词支持。

13 PaodingAnalysis

Paoding Analysis中文分词具有极 高效率 和 高扩展性。引入隐喻,采用完全的面向对象设计,构思先进。其效率比较高,在PIII1G内存个人机器上,1秒可准确分词100万汉字。采用基于不限制个数的词典文件对文章进行有效切分,使能够将对词汇分类定义。能够对未知的词汇进行合理解析。

14 MMSeg4J

mmseg4j 用 Chih-Hao Tsai 的 MMSeg 算法(http://technology.chtsai.org/mmseg/)实现的中文分词器,并实现lucene 的 analyzer 和 solr 的TokenizerFactory 以方便在Lucene和Solr中使用。 MMSeg 算法有两种分词方法:Simple和Complex,都是基于正向最大匹配。Complex 加了四个规则过虑。官方说:词语的正确识别率达到了 98.41%。mmseg4j 已经实现了这两种分词算法

 

二、选择

考虑更新频率后期版本支持力度以及lucene4.0改动较大不向下兼容,考虑采用ik-analyzer

主页:http://code.google.com/p/ik-analyzer/

官方下载地址:http://code.google.com/p/ik-analyzer/downloads/list

作者博客: http://linliangyi2007.iteye.com/blog/


 三、版本介绍

IKAnalyzer3.2.8版本为最后一个支持jdk5的版本,发布于11年3月,后续2012版本都要求jdk6+,故采用3.2.8GA版,下面是该版本介绍。

IK Analyzer 3.2.8版本修订 

·        1.优化了英文字符处理,支持如:C++ 等带符号单词输出

·        2.简化了数词处理,使输出结果更符合用户观感

·        3.改进了最大词长切分,使输出结果更符合用户观感

·        4.性能优化,目前IK分词器的速度为约85万字/秒(1600K字节/S)

·        5.新增IK简易查询表达式,简化用户使用


以下对新增的查询表达式做详细说明: 

   IK3.2.8版本为简化用户对查询逻辑的处理,提供了基于表达式的搜索逻辑处理。它与Lucene自带表达式的不同之处,在于它采用了IKQueryParser对中文分词歧义处理的算法。相对LuceneQueryParser而言,用它生成的Query对象也许更能命中搜索结果。 

表达式样例: 

Xml代码  

1. id='1231' && (title:'文档标题'|| content:'内容') – author='helloworld'  

·        1.表达式使用 属性名<->属性值 键值对的形式,属性值使用”’”单引号标识。

·        2.在键值对中使用 “=”等号,表示对该属性的精确搜索(不分词),适用于对ID、编号、分类等精确值属性搜索;使用“: ”冒号表示对属性的模糊搜索(分词搜索),适用于文本内容的全文搜索。

·        3.在使用“: ”时,连续的搜索关键字将解析为 AND 逻辑,如果关键字中带有空格,这解析为OR逻辑。如:title:'文档标题' 表示搜索title中同时包含“文档”AND“标题“的数据,title:'文档_标题' 表示搜索title中包含“文档”OR“标题“。(这个例子中,我们默认你使用的IK分词器能将”文档标题“切分为”文档“和”标题“两个词)

·        4.表达式支持“&&”与 “||” 或“-”非的逻辑操作,以及“( )”括号优先级定义。注意“-”非逻辑不能单独使用,即 “– author='helloworld'” 是非法表达式。

·        5.目前就是这么简单,暂不支持更复杂的搜索逻辑:).


PS:如果您使用的是Solr1.3或者v2.9之前的Lucene,请下载IKAnalyzer3.1.6GA使用!IK Analyzer3.2.X仅支持Lucene3.0以上版本。 

分词效果示例 
IK Analyzer 3.2.8版本支持 细粒度切分 和 最大词长切分,以下是两种切分方式的演示样例。 
文本原文1: 
IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始,IKAnalyzer已经推出了3个大版本。 


最大词长分词结果: 

引用

ikanalyzer | 是 | 一个 | 开源 | 的 | 基于 | java | 语言 | 开发 | 的 | 轻量级 | 的 | 中文 | 分词 | 工具包 | 从 | 2006 | 年  | 12 | 月 | 推出 | 1.0 | 版 | 开始 | ikanalyzer | 已经 | 推出 | 出了  | 3  |  个  |  大  |  版本

最细粒度分词结果: 

引用

ikanalyzer | 是 | 一个 | 一 | 个 | 开源 | 的 | 基于 |  java  | 语言 | 开发 | 的 | 轻量级 | 量级 | 的 | 中文 | 分词 | 工具包 | 工具 | 从 | 2006 | 年  | 12 | 月 | 推出 | 1.0 | 版 | 开始 | ikanalyzer | 已经 | 推出 | 出了  | 3  |  个  |  大  |  版本

文本原文2: 
作者博客:linliangyi2007.iteye.com  电子邮件:linliangyi2005@gmail.com 


最大词长分词结果: 

引用

作者 | 博客 | linliangyi2007.iteye.com | 电子邮件 | linliangyi2005@gmail.com


最细粒度分词结果: 

引用

作者 | 博客 | linliangyi2007.iteye.com | linliangyi | 2007 | javaeye| com | 电子邮件 |linliangyi2005@gmail.com | linliangyi | 2005 | gmail | com


文本原文3 
古田县城关六一四路四百零五号 

最大词长分词结果: 

引用

古田县 |  县城  |  城关 | 六一四  | 路 | 四百零五 | 号


最细粒度分词结果: 

引用

古田县 | 古田 |  县城 |  城关 |  六一四 | 六一 | 四 | 路 | 四百零五 | 四 | 百 | 零 | 五 | 号


文本原文4 
曙光天阔I620r-G /A950r-F 夏普SH9020C 

最大词长分词结果: 

引用

曙光 | 天 | 阔 | i620r-g |a950r-f | 夏普 | sh9020c


最细粒度分词结果: 

引用

曙光 | 天 | 阔 | i620r-g | i |620 | r | g | a950r-f | a | 950 | r | f | 夏普 | sh9020c | sh |9020 | c


具体使用可参考下载包的使用手册!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值