分词工具包比较&jieba分词

1 分词工具包介绍

现有中文分词工具包有多种,包括ICTCLAD,MMSEG4J,IKAnalyser,JIEBA,THULAC,HanLP等等。

1.1 JIEBA

JIEBA是PYTHON平台上比较活跃的中文分词包 ,它支持三种分词模式:

(1)精确模式,试图将句子最精确地切开,适合文本分析;
(2)全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
(3)搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。

算法:

(1)基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图 (DAG) 
(2)采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合
(3)对于未登录词,采用了基于汉字成词能力的 HMM 模型,使用了 Viterbi 算法

1.2 MMSEG4J

MMSEG4J是基于java的开源中文分词组件,提供Luscene和solr接口。其中文算法有三种分词方法,simple,complex和maxword。MMSEG4J 用 Chih-Hao Tsai 的 MMSeg 算法 实现的中文分词器,并实现 lucene的analyzer和solr的TokenizerFactory 以方便在Lucene和Solr中使用。
MMSeg的字符串匹配算法主要有两种:

(1)Simple,简单的正向最大匹配,即按能匹配上的最长词做切分
(2)Complex,在正向最大匹配的基础上,考虑相邻词的词长,设计了四个去歧义规则(Ambiguity Resolution Rules)指导分词。

1.3 ICTCLAS

是最早的中文开源分词项目之一,全部采用C/C++编写,支持Linux、Windows系列操作系统,支持各类主流编程语言。
NLPIR汉语分词系统的主要功能包括中文分词;英文分词;词性标注;命名实体识别;新词识别;关键词提取;支持用户专业词典与微博分析。NLPIR系统支持多种编码、多种操作系统、多种开发语言与平台。

1.4 功能比较

分词包 JIEBA分词 Solr集成的MMSEG4J NLPIR大数据搜索与挖掘平台
中文分词
繁体分词
词频统计
词性标注
关键词提取
自定义词典
未登录词提取
实体识别
情感分析
语法分析
语法依存分析

2 JIEBA

2.1 配置环境

python3.6 ,PyCharm编译器
在PyCharm中安装JIEBA分词库

2.2 各功能介绍

安装好JIEBA分词库后,使用少量数据对JIEBA库提供的各种功能进行学习以及效果的评估。
首先,新建文件,在文件中引入JIEBA库

import jieba
# 使用一段文本对三种分词模式进行分析
text = "熊狸身长为60-95厘米,重9-14公斤。尾巴的长度几乎等同于躯干的长度。" \
       "熊狸是灵猫科中体形第二大的种类,雌性体形比雄性大出20%。同时,熊狸也是灵猫科中唯一" \
       "长素色皮毛的动物,其他灵猫科成员一般都带斑纹。另外,熊狸也是灵猫类中唯一尾巴有抓握" \
       "功能的动物。它的尾巴长有蓬松粗糙的毛,具有抓握功能,能起到第五只手的功能。实际上," \
       "只有两种食肉目动物的尾巴有此功能,熊狸是其中之一。而且在东半球,熊狸还是唯一尾巴有" \
       "抓握功能的哺乳动物。熊狸长小圆耳,小眼睛。虽然属于食肉目,但是犬齿不发达,切齿也不如其" \
       "他食肉类那么特化。"

2.2.1 使用三种模式进行分词

(1)使用精确模式切分
切分的词语以“\”分隔。

# 精确模式
seg_list = jieba.cut(text, cut_all=False)
print(u"[精确模式]: ", "/ ".join(seg_list))

分词结果为:
在这里插入图片描述
(2)使用全切分模式
将cut_all设置为True。

# 全切分模式
seg_list = jieba.cut(text, cut_all=True)
print(u"[全模式]: ", "/ ".join(seg_list))

分词结果为:
在这里插入图片描述
(3)使用搜索引擎切分模式

# 搜索引擎模式
seg_list = jieba.cut_for_search(text)
print(u"[搜索引擎模式]: ", "/ ".join(seg_list))

切分结果:
在这里插入图片描述

2.2.2 使用两种算法提取关键词

JIEBA分词系统实现了两种关键词提取算法,基于TF-IDF算法的关键词抽取和基于TextRank算法的关键词抽取。
(1)TF-IDF算法
TF-IDF即term frequency – inverse document frequency,是一种数只统计,用于反映一个词对于语料中某篇文章的重要性,其主要思想是:如果某个词在一篇文章中出现的频率高,也即TF高;并且在预料库中其他文档中很少出现,也即DF低,IDF高,则认为这个词具有很好的类别区分能力。
具体的代码如下:

#获取关键词
tags1 = jieba.analyse.extract_tags(text, topK=5)
print(u"基于TF-IDF的关键词:")
print(" ".join
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值