由于中文文本词与词之间没有像英文那样有空格分隔,因此很多时候中文文本操作都涉及切词,这里整理了一些中文分词工具。一般来说用CRF实现的分词工具的处理速度是比较慢的(训练CRF模型是非常耗时的),但是精度高,涉及CRF的分词工具有CRF++,Stanford分词工具。
Bakeoff是一个国际中文处理比赛,有多个语料,所以每个语料都有排名。只有部分优秀的Bakeoff工具开源。
介绍了以下18种分词工具(大部分是基于java语言):
perminusminus |
Stanford 汉语分词工具(Bakeoff-2两项第一) |
哈工大语言云(LTP -cloud) |
ICTCLAS——(Bakeoff -1两项第一) |
Ansj(ICTCLAS的java实现) |
庖丁解牛分词 |
盘古分词 |
IKAnalyzer |
imdict-chinese-analyzer |
mmseg4j |
FudanNLP(复旦大学) |
Jcseg |
SCWS |
Friso |
HTTPCWS |
libmmseg |
OpenCLAS |
CRF++ (Bakeoff-3四项第一) |
perminusminus
项目 址:http://code.google.com/p/perminusminus/
个人主页:http://nlp.csai.tsinghua.edu.cn/~zkx/
源码是python。算法原理是感知器模型。
Introduction
Per– is a toolkit of AveragedPerceptron (Freund and Schapire, 1999) for path Labelingunder the KISS principle(Keep It Simple and Stupid).
Features
-
Simple and efficient
-
Multiple usage: path labeling, path finding, sequence labeling and classification
-
Can provide n-best outputs
-
Can provide “mar.ginal score”
-
Can provide alpha (forward) values and beta (backward) values using forward-backward algorithm
-
Open source
Stanford 汉语分词工具
Stanford 汉语分词工具的成绩:2005年Bakeoff2两个语料的测试第一。
官 :http://nlp.stanford.edu/software/segmenter.shtml
最后更新2013-11-12(今天2013-12-28)
一篇使用介绍:
http://hi.baidu.com/liheming333/item/585fba1f898838623e87ce18
斯坦福自然语言小组直接使用CRF 的方法,特征窗口为5。
哈工大语言云(LTP -cloud)
项目 址:http://www.ltp-cloud.com/download/#ltp_cloud_sdk
HIT的ITNLP Lab, HIT Wei JIANG在Bakeoff 2005的open语料MSR上获得测评第一名。不确定LTP –cloud是否是在Wei JIANG的工作基础上进行的开发。
语言云曾获CoNLL2009七国语言句法语义分析评测总成绩第一名,
使用方式为web service。
语言云(语言技术平台云 LTP-Cloud)是由哈工大 会计算与信息检索研究中心研发的云端自然语言处理服务平台。 后端依托于语言技术平台,语言云为用户提供了包括分词、词性标注、依存句法分析、命名实体识别、语义角色标注在内的丰富高效的自然语言处理服务。
作为基于云端的服务,语言云具有如下一些优势:
-
免安装:用户只需要下载语言云客户端源代码,编译执行后即可获得分析结果,无需调用静态库或下载模型文件。
-
省硬件:语言云客户端几乎可以运行于任何硬件配置的计算机上,用户不需要购买高性能的机器,即可快捷的获得分析结果。
-
跨平台:语言云客户端几乎可以运行于任何操作系统之上,无论是Windows、Linux各个发行版或者Mac OS。
-
跨编程语言:时至今日,语言云已经提供了包括C++,Java,C#,Python,Ruby在内的客户端,其他编程语言的客户端也在开发之中。
在运算资源有限,编程语言受限的情况下,语言云无疑是用户进行语言分析更好的选择。
从2006年9月5日开始该平台对外免费共享目标代码,截止目前,已经有国内外400多家研究单位共享了LTP,也有国内外多家商 业公司购买了LTP,用于实际的商业项目中。2010年12月获得中国中文信息学会颁发的行业最高奖项:”钱伟长中文信息处理科学技术奖”一等奖。
2011年6月1日,为了与业界同行共同研究和开发中文信息处理核心技术,我中心正式将LTP的源代码对外共享,LTP由C++语言开发,可运行于Windows和Linux操作系统。
ICTCLAS: 汉语词法分析系统
官 :http://ictclas.nlpir.org/newsdownloadsocId=354
ICTCLAS(Institute of Computing Technology, Chinese Lexical Analysis System)
获取Bakeoff 1两项第一。
这是最早的中文开源分词项目之一,ICTCLAS在国内973专家组组织的评测中活动获得了第一名,在第一届(2003)国际中文处理研究机构SigHan组织的评测中都获得了多项第一名。
性能:
分词速度单机996KB/s, API 不超过 200KB ,各种词典数据压缩后不到 3M.
准确率:
分词精度98.45%,
语言和平台:
ICTCLAS全部采用 C/C++ 编写,支持 Linux 、 FreeBSD 及 Windows 系列操作系统,支持 C/C++ 、 C# 、 Delphi、 Java 等主流的开发语言。
Author:
中国科学院计算技术研究所
主要功能:
中文分词;词性标注;命名实体识别;新词识别;同时支持用户词典;支持繁体中文;支持GBK 、 UTF-8 、 UTF-7 、 UNICODE 等多种编码格式。
算法:
完美PDAT 大规模知识库管理技术( 200510130690.3 ),在高速度与高精度之间取得了重大突破,该技术可以管理百万级别的词典知识库,单机每秒可以查询 100 万词条,而内存消耗不到知识库大小的 1.5 倍。层叠隐马尔可夫模型( Hierarchical Hidden Markov Model ) ,该分词系统的主要是思想是先通过 CHMM( 层叠形马尔可夫模型 ) 进行分词 , 通过分层 , 既增加了分词的准确性 , 又保证了分词的效率 . 共分五层, 如下图所示。基本思路是进行原子切分 , 然后在此基础上进行N- 最短路径粗切分 , 找出前 N 个最符合的切分结果 , 生成二元分词表 , 然后生成分词结果 , 接着进行词性标注并完成主要分词步骤 .
Ansj(ICTCLAS的java实现)
项目 址:https://github.com/ansjsun/ansj_seg
演示 址:http://demo.ansj.org/seg.action
ansj分词.ict的真正java实现.分词效果速度都超过开源版的ict.中文分词,人名识别,词性标注,用户自定义词典
增加了对lucene的支持.如果不想编译文件可以直接到 https://github.com/ansjsun/mvn-repo/tree/gh-pages/org/ansj这里下载jar包!
这是一个ictclas的java实现.基本上重写了所有的数据结构和算法.词典是用的开源版的ictclas所提供的.并且进行了部分的人工优化
内存中中文分词每秒钟大约100万字(速度上已经超越ictclas)
文件读取分词每秒钟大约30万字
准确率能达到96%以上
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!