当前位置:编程学习 > C/C++ >>

c++ 中文分词介绍

主要参考网站是oschina里面收录的内容:
 
中科院中文分词 ICTCLAS
这个据说效率挺高,但不是纯开源版本,里面有个文章12年7月1日失效,就是由于授权协议失效,所以要用到这个类库的时候要小心了,当然你可以购买版权。
还有一个重要的问题是官网打不开。http://www.ictclas.org
 
协议未知
 
 
中文分词软件包 LibMMSeg
LibMMSeg 是Coreseek.com为 Sphinx 全文搜索引擎设计的中文分词软件包,其在GPL协议下发行的中文分词法,采用Chih-Hao Tsai的MMSEG算法。
LibMMSeg 采用C++开发,同时支持Linux平台和Windows平台,切分速度大约在500K/s(酷睿 2.4G);截至目前版本LibMMSeg没有为速度做过特殊优化,进一步的提升切分速度仍有空间。
 
官方网站http://www.coreseek.cn/opensource/mmseg/
 
 
简易中文分词系统 SCWS
这是一套基于词频词典的机械中文分词引擎,采用的是自行采集的词频词典,并辅以一定程度上的专有名称、人名、地名、数字年代等规则集, SCWS 采用纯 C 代码开发,以 Unix-Like OS 为主要平台环境,提供共享函数库,方便植入各种现有软件系统。此外它支持 GBK,UTF-8,BIG5 等汉字编码
效率:准确: 95%, 召回: 91%, 速度: 1.2MB/sec 
协议: BSD 许可协议开源发布
最新版本 2013-1-15: SCWS-1.2.1 Released.
 
 
中文句法分析器 ctbparser
一个用C++实现的 中文句法分析 工具包,采用的是中文宾州树库标准(Chinese Tree Bank),该句法分析工具采用了标准的图模型算法,即最大生成树算法(projective Maximum Spanning Tree)。
效率:ctbparser分词得到95.3% F1值,词性标注精度94.27%,句法分析精度81%。处理速度(包括分词、词性标注、句法分析)的速度是每秒30句,内存占用为270M。(操作系 统:64位CentOS 5,CPU: Intel(R) Xeon(R) E5405, 2.00GHz)
授权协议: LGPL
最新版本:2012-2-3 0.12版本
 
中文分词开源版 CRF
CRF中文分词开源版仅仅包含CRF++软件包中分词解码器部分,简化了CRF++复杂代码结构,清除了分词解码器不需要的代码,大大提高了分词解码器的可读性和可懂度。
技术支持:http://langiner.blog.51cto.com/  2010-08-20之后没有更新
授权协议:非开源
最新版本未知
 
中文分词库 NlpBamboo
bamboo是一个中文语言处理系统。目前包括中文分词和词性标注部分。算法字构词的分词方法CRF++。
效率未知
网站:http://code.google.com/p/nlpbamboo/
授权协议: BSD
最新版本 :2010-10 1.1.1版本,官方说明短期后面不会更新
 
C语言开源高性能中文分词器 friso
friso中文分词器friso是使用c语言开发的一个开源中文分词器,使用流行的mmseg算法实现。
1。目前最高版本:friso 0.1,只支持UTF-8编码。【源码无需修改就能在各种平台下编译使用,加载完20万的词条,内存占用稳定为14M。】。
2。mmseg四种过滤算法,分词准确率达到了98.41%。
3。支持自定义词库。在dict文件夹下,可以随便添加/删除/更改词库和词库词条,并且对词库进行了分类。
4。词库使用了friso的Java版本jcseg的简化词库。
5。支持中英混合词的识别。例如:c语言,IC卡。
7。很好的英文支持,电子邮件,网址,小数,分数,百分数。
8。支持阿拉伯数字基本单字单位的识别,例如2012年,5吨,120斤。
9。自动英文圆角/半角,大写/小写转换。
二。分词速度
 
 
测试环境:2.8GHZ/2G/Ubuntu
简单模式:3.7M/秒
复杂模式:1.8M/秒
授权协议: LGPL
最新版本:2012-12-28日 
 
 
综合来看
简易中文分词系统 SCWS和C语言开源高性能中文分词器 friso是在最近更新的,应该最近会有支持。
 
 
仅仅是个人理解。
下面是网上的一个人的评论:
但市场上提供免费甚至开源的分词引擎不多,中科院研发的ictclas30分词精确度和分词速度都非常不错,而且还有词性标注和自定义添加词的功能,可惜不开源。另外比较受欢迎的还有libmmseg和SCWS,因此都是开源的,不过经测试libmmseg的分词精度似乎不高,而SCWS由于使用了大量的递归,在生成词库的时候经常导致栈溢出(我是用vc2005编译的),需要自己将递归修改为循环,从演示的情况来看,SCWS的分词精度来算可以。
 
补充:软件开发 , C++ ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,