NLPIR、Jieba中文分词工具比较

1.中文分词概念

中文分词(Chinese Word Segmentation) 指的是将一个汉字序列切分成一个一个单独的词。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。

2.现有的的中文分词工具

中科院计算所NLPIR http://ictclas.nlpir.org/nlpir/

ansj分词器 https://github.com/NLPchina/ansj_seg

哈工大的LTP https://github.com/HIT-SCIR/ltp

清华大学THULAC https://github.com/thunlp/THULAC

斯坦福分词器 https://nlp.stanford.edu/software/segmenter.shtml

Hanlp分词器 https://github.com/hankcs/HanLP

结巴分词 https://github.com/yanyiwu/cppjieba

KCWS分词器(字嵌入+Bi-LSTM+CRF) https://github.com/koth/kcws

ZPar https://github.com/frcchang/zpar/releases

IKAnalyzer https://github.com/wks/ik-analyzer

3.认识、使用中文分词包

3.1使用中科院计算所NLPIR语义分析系统

打开NLPIR大数据搜索与挖掘共享平台


NLPIR、Jieba中文分词工具比较_第1张图片
NLPIR界面.png

点击“开始分析”就可以得到分析结果


NLPIR、Jieba中文分词工具比较_第2张图片
分词标注.png

此外,还有实体抽取、词频统计、文本分类、情感分析等对分词结果的不同查看方式。


NLPIR、Jieba中文分词工具比较_第3张图片
各种操作.png
NLPIR、Jieba中文分词工具比较_第4张图片
生成词云.png

3.1.1使用总结

使用中科院计算所NLPIR语义分析系统比较简单,图形化的在线操作方式简单易上手,并且分词结果是符合我们在日常生活中的使用习惯的,分词结果能够被我们接受。在本次分析中,发现了词典中没有收录的新词:“毕业论文”、“信息管理”和“全体老师”。

3.2使用jieba中文分词包

3.2.1 安装jieba

安装相应的包:通过指令语句安装jieba分词包,代码:

pip install jieba

安装jieba.png

3.2.2 使用jieba中文分词

  • 分词cut
jieba.cut : 方法接受三个输入参数: 需要分词的字符串;cut_all 参数用来控制是否采用全模式;HMM 参数用来控制是否使用 HMM 模型
jieba.cut_for_search : 方法接受两个参数:需要分词的字符串;是否使用 HMM 模型。该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细
待分词的字符串可以是 unicode 或 UTF-8 字符串、GBK 字符串。注意:不建议直接输入 GBK 字符串,可能无法预料地错误解码成 UTF-8
jieba.cut 以及 jieba.cut_for_search 返回的结构都是一个可迭代的 generator,可以使用 for 循环来获得分词后得到的每一个词语(unicode),或者用jieba.lcut 以及jieba.lcut_for_search 直接返回 list
jieba.Tokenizer(dictionary=DEFAULT_DICT) : 新建自定义分词器,可用于同时使用不同词典。jieba.dt 为默认分词器,所有全局分词相关函数都是该分词器的映射。

例子

  • 新建一个demo.py文件


    NLPIR、Jieba中文分词工具比较_第5张图片
    demo.png
  • 执行

python demo.py

NLPIR、Jieba中文分词工具比较_第6张图片
分词结果.png

关键词提取

基于TF-IDF(term frequency-inverse document frequency)算法的关键词抽取(逆文档词频)

import jieba.analyse
jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())

  • sentence: 为待提取的文本
  • topK: 为返回几个TF/IDF权重最大的关键词,默认值为20
  • withWeight: 为是否一并返回关键词权重值,默认值为False
  • allowPOS: 仅包括指定词性的词,默认值为空,即不筛选


    NLPIR、Jieba中文分词工具比较_第7张图片
    关键词抽取.png
  • 运行结果


    NLPIR、Jieba中文分词工具比较_第8张图片
    关键词抽取结果.png

使用jieba对txt文件进行中文分词


我选用的txt文件是之前爬取到的公管学院官网上面的新闻。
此外,经过事先的查询,由于存在“停用词”,在进行分词的时候可能会扰乱结果,所以在网上下载了停用词表。
代码:

import jieba.analyse

path = '/home/IR02LJC/jieba/ggnews .txt'
file_in = open(path, 'r')
content = file_in.read()

try:
    jieba.analyse.set_stop_words('/home/IR02LJC/jieba/停用词表.txt')
    tags = jieba.analyse.extract_tags(content, topK=100, withWeight=True)
    for v, n in tags:
        #权重是小数,为了凑整,乘了一万
        print(v + '\t' + str(int(n * 10000)))

finally:
    file_in.close()

运行结果显示如下:

[IR02LJC@VM_0_10_centos jieba]$ python demo.py
Building prefix dict from the default dictionary ...
Loading model from cache /tmp/jieba.cache
Loading model cost 0.956 seconds.
Prefix dict has been built succesfully.
我院  1127
学院  961
同学  920
教授  797
2017    795
公共  721
老师  685
四川大学    671
管理  581
2016    506
专业  385
院长  335
讲座  306
姜晓萍 305
研究  262
交流  259
学生  256
社会工作    255
师生  254
副教授 246
研究生 245
发布  239
2015    235
活动  233
大学  230
管理系 224
治理  223
本次  221
学习  219
学术  219
时间  213
MPA 205
工作  199
社会  189
教育  185
哲学  185
发展  183
档案  179
行政  178
社会保障    175
参加  171
中国  169
介绍  167
建设  164
教师  163
举办  162
课程  162
实践  161
论坛  157
哲学系 156
书记  156
合作  155
社会学 154
学科  153
主题  151
十九  151
2018    144
精神  143
信息资源管理  135
会议  130
实习  122
报告  120
下午  119
代表  117
项目  116
2014    115
本科生 114
创新  114
学科建设    114
成功  114
讨论  112
博士  111
发言  111
30  108
国际  107
云贵  107
图书馆 106
研讨会 106
学会  105
教学  104
城市  104
热烈  101
招生  101
成都  100
07  100
主持  99
评估  97
理论  97
分享  96
教职工 96
高校  96
参观  96
见面会 95
本科  94
团队  92
校区  92
同志  91
全国  91
成都市 90
服务  90


  • 词云
    得到分词结果之后,还可以利用在线词云生成工具TAGUL制作词云。
    NLPIR、Jieba中文分词工具比较_第9张图片
    词云.png

参考链接:https://www.jianshu.com/p/17b48b651d79
https://blog.csdn.net/sinat_34022298/article/details/75943272
https://blog.csdn.net/shijiebei2009/article/details/39696571
https://blog.csdn.net/tracydragonlxy/article/details/79014770

你可能感兴趣的:(NLPIR、Jieba中文分词工具比较)