目录
- ICTCLAS
- IK Analyzer
- Paoding
- MMSEG4J
- Jieba
- 相关链接
ICTCLAS
1.主要功能包括中文分词;词性标注;命名实体识别;新词识别;同时支持用户词典;
2.ICTCLAS3.0分词速度单机996KB/s,分词精度98.45%,API不超过200KB,各种词典数据压缩后不到3M,是当前世界上最好的汉语词法分析器。
系统平台:Windows
开发语言:C/C++、Java、C#
使用方式:dll调用
演示网址:http://ictclas.org/test.html
开源官网:http://ictclas.org
ICTCLAS的简单应用
用ICTCLAS进行分词比较简单,我们可以直接在其官网中进行操作。以分析金庸的射雕英雄传第十章为例
输入要分析的url或者文本内容:
点击开始分析:
分词标注:
实体抽取:
词频统计:
文本分类:
情感分析:
关键词提取:
IK Analyzer
- IKAnalyzer 是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始,IKAnalyzer已经推出 了3个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。新版本的IKAnalyzer3.0则发展为 面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。
- 采用了特有的“正向迭代最细粒度切分算法“,具有60万字/秒的高速处理能力。
- 采用了多子处理器分析模式,支持:英文字母(IP地址、Email、URL)、数字(日期,常用中文数量词,罗马数字,科学计数法),中文词汇(姓名、地名处理)等分词处理。优化的词典存储,更小的内存占用。
4.支持用户词典扩展定义,针对Lucene全文检索优化的查询分析器IKQueryParser(作者吐血推荐);采用歧义分析算法优化查询关键字的搜索排列组合,能极大的提高Lucene检索的命中率。
Paoding
1.Paoding(庖丁解牛分词)基于Java的开源中文分词组件,提供lucene和solr 接口,具有极 高效率和 高扩展性。引入隐喻,采用完全的面向对象设计,构思先进。
2.高效率:在PIII 1G内存个人机器上,1秒可准确分词 100万汉字。
3.采用基于 不限制个数的词典文件对文章进行有效切分,使能够将对词汇分类定义。
4.能够对未知的词汇进行合理解析。
5.仅支持Java语言。
下面举个paoding的小用例:
- 首先,下载paoding压缩包:,直接解压缩。我放在F:\lucene\paoding目录下。
- 接着配置paoding环境。
计算机->属性->高级->环境变量->新建一个环境变量,命名为PAODING_DIC_HOME,值设置为F:\lucene\paoding\dic\(你的安装目录\dic\)
- 接下来打开命令提示框,定位到我们paoding目录下后,windows输入analyzer.bat,linux系统输analyzer.sh
- 之后就可以进行分词操作,直接输入或者粘贴要进行分词的语句,以分号结束
键入:e或:q退出会话 (包括:符号)
键入:?显示帮助(包括:符号) 。
- 对这一句话”Paoding(庖丁解牛分词)基于Java的开源中文分词组件,提供lucene和solr 接口,具有极 高效率和 高扩展性。”进行分词:
- 从图中可以看出进行了分词,分了22个,耗时15ms。
analyzer.bat允许对指定的文件进行分词体验。文件以路径名给出可以使绝对地址、相对当前目录的地址,或以classpath:为前缀的类路径地址。
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 已经实现了这两种分词算法。
Jieba
特点:
支持三种分词模式:
1.精确模式,试图将句子最精确地切开,适合文本分析;
2.全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
3.搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
算法:
1.基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图 (DAG)
2.采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合
3.对于未登录词,采用了基于汉字成词能力的 HMM 模型,使用了 Viterbi 算法
jieba简单实例:
安装完成之后键盘Windows+R —>输入cmd–>jupyter notebook即可打开jupyter notebook页面
3.编写要分词的文档test.txt
4.直接拖入文档到jupyter notebook主页,upload
5.新建python文档new->python
进入页面:
6.输入代码:
import jieba #导入jieba
with open('test.txt','r')as f: #打开所需分词文本text.txt
for line in f:
seg=jieba.cut(line.strip(),cut_all = False) #jieba分词
print('/'.join(seg))
按下Ctrl+Enter,得到如下分词结果:
7.上面我们就完成了一个简单的分词。我们还可以进一步进行词频统计。按下Shift+Enter,继续编写如下代码:
from collections import Counter
total = []
with open('test.txt','r')as f:
for line in f:
seg_list = jieba.lcut(line.strip(),cut_all = False) # jieba.lcut 可以直接输出列表。
for word in seg_list:
total.append(word)
c=Counter(total) #这里一定要顶格写,否则就进入到上面的for循环里面,出错。
for item in c.most_common(5): #数字5表示提取前5个高频词,可根据需要更改。
print (item[0],item[1])
输出结果如下
相关链接
http://ictclas.nlpir.org/
http://baike.so.com/doc/9553551-9898246.html
http://blog.csdn.net/liujihaozhy/article/details/39496745
http://blog.csdn.net/u013070853/article/details/48715183
http://www.oschina.net/question/tag/mmseg4j?show=time
http://baike.so.com/doc/2651801-2800213.html
https://github.com/fxsjy/jieba
http://blog.csdn.net/lengyuhong/article/details/5993316