yaohaishen 2012-10-10
在研究百度中文分词的时候,最好的方法是借助中文分词工具,在这里搜寻了一些工具,希望对大家有所帮助。
接下来,在此基础上发现好的分词工具再进行完善!
中文分词工具:
1)MSRSegfromMicrosoftResearch
http://research.microsoft.com/~jfgao/
2)Hylanda
http://www.hylanda.com/cgi-bin/download/download.asp?id=8
3)HIT
http://ir.hit.edu.cn/phpwebsite/index.php?module=announce&ANN_user_op=view&ANN_id=106
4)NEUCSPfromNortheastUniversity,China
http://www.nlplab.com/download/CIP/neucsp.zip
5)ICTCLASfromChineseAcademyofScience,China
http://www.nlp.org.cn/project/project.php?proj_id=6
6)分词工具链接
http://www.chinesecomputing.com/nlp/segment.html
中文信息处理基础
[url]http://ccl.pku.edu.cn/doubtfire/Course/ChineseInformationProcessing/2002_2003_1.htm[/url]
1)计算所汉语词法分析系统ICTCLAS
中国科学院计算技术研究所在多年研究基础上,耗时一年研制出了基于多层隐马模型的汉
语词法分析系统ICTCLAS(InstituteofComputingTechnology,ChineseLexical
AnalysisSystem),该系统的功能有:中文分词;词性标注;未登录词识别。分词正确率
高达97.58%(最近的973专家组评测结果),基于角色标注的未登录词识别能取得高于90%
召回率,其中中国人名的识别召回率接近98%,分词和词性标注处理速度为31.5KB/s。
ICTCLAS和计算所其他14项免费发布的成果被中外媒体广泛地报道,国内很多免费的中文
分词模块都或多或少的参考过ICTCLAS的代码。
下载页面:http://www.nlp.org.cn/project/project.php?proj_id=6
由于ICTCLAS是由C语言写成的,现在主流的开发工具用起来不太方便,于是有一些热
心的程序员把ICTCLAS改为Java和C#等其他语言。
fenci,Java的ICTCLAS,下载页面:
http://www.xml.org.cn/printpage.asp?BoardID=2&id=11502
不过传说代码还是很难读懂的,一群highIQ的人写出来的,所以除非专门做分词的值得去
研究,如果分词只是一个步骤的话还是不要碰,而且现在的3.0已经变成商业的了,搞研究的
人可以试用一个月,商用的还是算了.Free的3.0beta和1.0几乎没区别,再者狂bug不止,遇
到有些网页就分不过去,测试了几个语料库都是比较郁闷,速度在30kb/s,还是比较慢的.
这个除非买商业版的,虽然做的很好,还是提醒以后不要在这个上面浪费时间了.
(2)海量智能分词研究版
海量智能计算技术研究中心为了使中文信息处理领域的研究者们能够共同分享海量智能中
心的研究成果,共同提高中文信息处理水平,特此发布《海量智能分词研究版》,供专家、
学者和爱好者进行研究。
下载页面:http://www.hylanda.com/cgi-bin/download/download.asp?id=8
海量的分词做的不错,不过研究版的速度也是不堪的,都可以理解.这个速度就更慢了,而且
只支持window开发.
(3)CSW中文智能分词组件
运行环境:WindowsNT、2000、XP或更高,可以在ASP,VB等微软的开发语言中调用。
简介:CSW中文智能分词DLL组件,可将一段文本自动的按常规汉语词组进行拆分,并以指
定方式进行分隔,且可对其拆分后的词组进行语义、词频标注。其广范应用于各行各业的
信息资料检索、分析。
下载页面:http://www.vgoogle.net/
这个如何出现如下错误”您当前使用的CSW中文分词组件5.0(标准C++版)已超过有效期,请
访问我们网站www.vgoogle.net获取最新版本或取得使用许可授权!”.把系统时间调一下,
调到2008年4月1号之前.效果还可以,java下的20kb/s.
(4)C#写的中文分词组件–雨痕
据作者介绍,一个DLL文件,可以做中英文分词组件。完全C#托管代码编写,独立开发。
下载页面:http://www.rainsts.net/article.asp?id=48
这个现在也已经不再发行了,何况是windows下.net开发的.
(5)ktdictseg也是c#开发的
http://www.hbdev.cn/tech/SrcShow.asp?Src_ID=26
ktdictseg简介:ktdictseg是由kaitoo搜索开发的一款基于字典的简单中英文分词算法
*主要功能:中英文分词,未登录词识别,多元歧义自动识别,全角字符识别能力
*主要性能指标:
*分词准确度:90%以上(有待专家的权威评测)
*处理速度:600kbytes/s
(6)chseg
这个速度大约是0.5m/s.还是相当不错的,不过没有词性标注部分
(7)je-anlysis的分词(java实现的)
1.分词效率:每秒30万字(测试环境迅驰1.6,第一次分词需要1-2秒加载词典)
2.运行环境:Lucene2.0
3.免费安装使用传播,无限制商业应用,但暂不开源,也不提供任何保证
4.优点
全面支持Lucene2.0
增强了词典维护的API
增加了商品编码的匹配
增加了Mail地址的匹配
实现了词尾消歧算法第二层的过滤
整理优化了词库
支持词典的动态扩展
支持中文数字的匹配(如:二零零六)
数量词采用“n”作为数字通配符
优化词典结构以便修改调整
支持英文、数字、中文(简体)混合分词
常用的数量和人名的匹配
超过22万词的词库整理
实现正向最大匹配算法
支持分词粒度控制
(8)吴建强的分词–java实现
1.分词的算法
分词算法采用的是最大匹配算法,按从左至右正向最大匹配和从右到左反向最大匹配,当
两种分词结果不一致时,按最少切分原则,取切分词数最少的一种,如果两种分词结果切
分的词数一样,取反向最大匹配作为分词的结果,这种分词的结果准确率在99%以上,可
以满足一般的应用和需求。
2.程序设计
建立一个字典,字典由多个子字典组成,每个子字典的单词字数相同且已经排序,以独立
文件的形式存储于磁盘,字典支持新单词的导入。对于要一段文字,首先过滤一次,把源
文件按标点、英文字母、数字、其它符号分解成一个List,list中若包含中文的为要分词
的最小单位,如:你好,你是哪的ABC人,过滤的结果为你好/,/你是哪的/ABC/人,要
切分的部分有你好你是哪的人三部分,然后按分词算法对这三个部分切分。
3.使用方法
首先导入词库,词库是纯文本文件,每个单词一行,然后可以开始分词,具体运行参见
com.xq.Execute.java。词库用的是“中文词库素材”,大家可以在网上搜到.
4.测试
没有字典时,导入“中文词库素材3.2\词库\标准词库\去除拼音字母的标准词库213663词
条.TXT”这个文件用时17890毫秒,导入单词数212512,z在这个字典上再导入“中文词库素
材3.2\词库\专业扩充词库\区县地名(大词库不包含).txt”用时500毫秒,导入单词:
1747,速度还是比较快的。对一篇两千字的文章分词用时110毫秒,准确率在99%以上,当
词库越完善,准确率会更高。总体来看,导入词库、分词速度和准确度对于一般的应用是
可接受的。测试电脑配置:P43.2,1G内存