欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

几款开源的中文分词系统

程序员文章站 2023-09-04 10:46:35
以下介绍4款开源中文分词系统。 1、ictclas – 全球最受欢迎的汉语分词系统       &nb...
以下介绍4款开源中文分词系统。

1、ictclas – 全球最受欢迎的汉语分词系统

        中文词法分析是中文信息处理的基础与关键。中国科学院计算技术研究所在多年研究工作积累的基础上,研制出了汉语词法分析系统ictclas(institute of computing technology, chinese lexical analysis system),主要功能包括中文分词;词性标注;命名实体识别;新词识别;同时支持用户词典;支持繁体中文;支持gbk、utf-8、utf-7、unicode等多种编码格式。我们先后精心打造五年,内核升级6次,目前已经升级到了ictclas3.0。ictclas3.0分词速度单机996kb/s,分词精度98.45%,api不超过200kb,各种词典数据压缩后不到3m,是当前世界上最好的汉语词法分析器。

系统平台:windows

开发语言:c/c++、java、c#

使用方式:dll调用

演示网址:

开源官网:

晴枫附注:ictclas有共享版、商业版、行业版,支持linux平台,但不开源。ictclas已进入商用,且应用范围较广,相信分词效率出色。

2、httpcws – 基于http协议的开源中文分词系统

        httpcws 是一款基于http协议的开源中文分词系统,目前仅支持linux系统。httpcws 使用“ictclas 3.0 2009共享版中文分词算法”的api进行分词处理,得出分词结果。

        ictclas是中国科学院计算技术研究所在多年研究工作积累的基础上,基于多层隐马模型研制出的汉语词法分析系统,主要功能包括中文分词;词性标注;命名实体识别;新词识别;同时支持用户词典。ictclas经过五年精心打造,内核升级6次,目前已经升级到了ictclas3.0,分词精度98.45%,各种词典数据压缩后不到3m。ictclas在国内973专家组组织的评测中活动获得了第一名,在第一届国际中文处理研究机构sighan组织的评测中都获得了多项第一名,是当前世界上最好的汉语词法分析器。

        ictclas 3.0 商业版是收费的,而免费提供的 ictclas 3.0 共享版不开源,词库是根据人民日报一个月的语料得出的,很多词语不存在。所以本人补充的一个19万条词语的自定义词库,对ictclas分词结果进行合并处理,输出最终分词结果。

        由于 ictclas 3.0 2009 共享版只支持gbk编码,因此,如果是utf-8编码的字符串,可以先用iconv函数转换成gbk编码,再用httpcws进行分词处理,最后转换回utf-8编码。

        httpcws 软件自身(包括httpcws.cpp源文件、dict/httpcws_dict.txt自定义词库)采用newbsd开源协议,可以*修改。httpcws 使用的 ictclas 共享版 api 及 dict/data/ 目录内的语料库,版权及著作权归中国科学院计算技术研究所、ictclas.org所有,使用需遵循其相关协议。

系统平台:linux

开发语言:c++

使用方式:http服务

演示网址:

开源官网:

晴枫附注:基于ictclas,增加了19万条词语的扩展词库,并且构建成http服务的方式,使用上更加便捷。

3、scws – 简易中文分词系统

        scws 在概念上并无创新成分,采用的是自行采集的词频词典,并辅以一定程度上的专有名称、人名、地名、数字年代等规则集,经小范围测试大概准确率在 90% ~ 95% 之间,已能基本满足一些中小型搜索引擎、关键字提取等场合运用。 scws 采用纯 c 代码开发,以 unix-like os 为主要平台环境,提供共享函数库,方便植入各种现有软件系统。此外它支持 gbk,utf-8,big5 等汉字编码,切词效率高。

系统平台:windows/unix

开发语言:c

使用方式:php扩展

演示网址:

开源官网:

晴枫附注:作为php扩展,容易与现有的基于php架构的web系统继续集成,是其一大优势。

4、phpanalysis - php无组件分词系统

        phpanalysis分词系统是基于字符串匹配的分词方法 ,这种方法又叫做机械分词方法,它是按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。按照扫描方向的不同,串匹配分词方法可以分为正向匹配 和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。 

系统平台:php环境

开发语言:php

使用方式:http服务

演示网址:

开源官网:

晴枫附注:实现简单,容易使用,能做一些简单应用,但大数据量的计算效率不如前几种。

试用了几个系统,基本分词功能都没什么问题,只是在个别一些词的划分上存在一些差异;对于词性的确定,系统间有所不同。

5 、mmseg4j  

        mmseg4j基于java的开源中文分词组件,提供lucene和solr 接口

  1)、mmseg4j 用 chih-hao tsai 的 mmseg 算法实现的中文分词器,并实现 lucene 的 analyzer 和 solr 的tokenizerfactory 以方便在lucene和solr中使用。

  2)、mmseg 算法有两种分词方法:simple和complex,都是基于正向最大匹配。complex 加了四个规则过虑。官方说:词语的正确识别率达到了 98.41%。mmseg4j 已经实现了这两种分词算法。

6、盘古分词  

        盘古分词是一个基于.net 平台的开源中文分词组件,提供lucene(.net 版本) 和hubbledotnet的接口

  高效:core duo 1.8 ghz 下单线程 分词速度为 390k 字符每秒

  准确:盘古分词采用字典和统计结合的分词算法,分词准确率较高。

  功能:盘古分词提供中文人名识别,简繁混合分词,多元分词,英文词根化,强制一元分词,词频优先分词,停用词过滤,英文专名提取等一系列功能。

7、ikanalyzer  开源的轻量级中文分词工具包

        ikanalyzer 是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始,ikanalyzer已经推出 了3个大版本。最初,它是以开源项目luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。新版本的ikanalyzer3.0则发展为 面向java的公用分词组件,独立于lucene项目,同时提供了对lucene的默认优化实现。

        ikanalyzer3.0特性:

采用了特有的“正向迭代最细粒度切分算法“,具有60万字/秒的高速处理能力。

采用了多子处理器分析模式,支持:英文字母(ip地址、email、url)、数字(日期,常用中文数量词,罗马数字,科学计数法),中文词汇(姓名、地名处理)等分词处理。优化的词典存储,更小的内存占用。

支持用户词典扩展定义,针对lucene全文检索优化的查询分析器ikqueryparser(作者吐血推荐);采用歧义分析算法优化查询关键字的搜索排列组合,能极大的提高lucene检索的命中率。