中文分词工具

  • 分词背景介绍
  • 安装及介绍(jieba、hanlp、pkuseg、thulac、snownlp、nlpir)
    • windowst系统分词工具安装
    • Linux系统分词工具安装
  • 使用方法介绍
  • 数据集介绍
  • 评价指标
  • 实验结果及比较
  • 结论
  • github项目地址
  • 参考文献

分词背景介绍

不管在平时的实验还是比赛中,NLP的绝大多数任务(情感分析、阅读理解、对话系统、文本分类、信息抽取、机器翻译等等)都需要在词的基础上进行。因此,中文分词作为这些任务的底层任务之一,一定程度上决定了这些任务的上限。通常我们在英文中使用空格分隔,但是在中文中就有很大的不同,其难点在中文的歧义现象以及一些新词汇的出现(如一些网络词汇)。本文将介绍当前主流的分词工具及其用法,并在icwb2数据集上做一个小实验,验证分词工具的性能,最后得出各分词工具的优缺点。

安装及介绍(jieba、hanlp、pkuseg、thulac、snownlp、nlpir)

当下主流的分词工具一般分为jieba、hanlp、pkuseg、thulac、snownlp、nlpir几种,其运行环境通常划分为windows与linux,下面分别介绍。

windowst系统分词工具安装

  1. jieba
pip3 install jieba

在安装速度极其慢的情况下,如果你未安装代理,最好使用pip的清华源,如果你想要更换安装源,请移步更换安装源如果你不想切换,可以添加参数(下同)

-i https://pypi.tuna.tsinghua.edu.cn/simple
  1. hanlp
pip3 install hanlp

如安装出错,请移步windows hanlp安装问题
3. pkuseg

pip3 install pkuseg
  1. thulac
pip3 install thulac
  1. snownlp
pip3 install snownlp
  1. nlpir
pip3 install pynlpir

安装错误,请移步错误分析及其解决方案

Linux系统分词工具安装

  1. jieba
sudo pip3 install jieba

在安装速度极其慢的情况下,如果你未安装代理,最好使用pip的清华源,如果你想要更换安装源,请移步更换安装源如果你不想切换,可以添加参数(下同)

-i https://pypi.tuna.tsinghua.edu.cn/simple
  1. hanlp
sudo pip3 install hanlp
  1. pkuseg
sudo pip3 install pkuseg
  1. thulac
sudo pip3 install thulac
  1. snownlp
sudo pip3 install snownlp
  1. nlpir
sudo pip3 install pynlpir

安装错误,请移步[错误分析及其解决方案](https://blog.csdn.net/ykf173/article/details/105601612)。

使用方法介绍

  1. jieba
# encoding=utf-8
import jiebajieba.enable_paddle()# 启动paddle模式。 0.40版之后开始支持,早期版本不支持
strs=["我来到北京清华大学","乒乓球拍卖完了","中国科学技术大学"]
for string in strs:seg_list = jieba.cut(string,use_paddle=True) # 使用paddle模式print("Paddle Mode: " + '/'.join(list(seg_list)))seg_list = jieba.cut("我来到北京清华大学", cut_all=True)
print("Full Mode: " + "/ ".join(seg_list))  # 全模式seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
print("Default Mode: " + "/ ".join(seg_list))  # 精确模式seg_list = jieba.cut("他来到了网易杭研大厦")  # 默认是精确模式
print(", ".join(seg_list))seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造")  # 搜索引擎模式
print(", ".join(seg_list))
  1. hanlp
import hanlp
han_tokenizer = hanlp.load('PKU_NAME_MERGED_SIX_MONTHS_CONVSEG')
sentences = ['萨哈夫说,伊拉克将同联合国销毁伊拉克大规模杀伤性武器特别委员会继续保持合作。','上海华安工业(集团)公司董事长谭旭光和秘书张晚霞来到美国纽约现代艺术博物馆参观。','HanLP支援臺灣正體、香港繁體,具有新詞辨識能力的中文斷詞系統']
print(tokenizer(sentences))
  1. pkuseg
# pkuseg分词
# pkuseg.pkuseg(model_name="default", user_dict="default", postag=False)
# model_name
# 模型路径。
# "default",默认参数,表示使用我们预训练好的混合领域模型(仅对pip下载的用户)。
# "news", 使用新闻领域模型。
# "web", 使用网络领域模型。
# "medicine", 使用医药领域模型。
# "tourism", 使用旅游领域模型。
# model_path, 从用户指定路径加载模型。
# user_dict
# 设置用户词典。
# "default", 默认参数,使用我们提供的词典。
# None, 不使用词典。
# dict_path, 在使用默认词典的同时会额外使用用户自定义词典,可以填自己的用户词典的路径,词典格式为一行一个词。
# postag
# 是否进行词性分析。
# False, 默认参数,只进行分词,不进行词性标注。
# True, 会在分词的同时进行词性标注。
import pkuseg
sentence = '萨哈夫说,伊拉克将同联合国销毁伊拉克大规模杀伤性武器特别委员会继续保持合作。'
seg = pkuseg.pkuseg(postag=False)  # 以默认配置加载模型,不进行词性分析
sentence = seg.cut(sentence)  # 进行分词
print(' '.join(sentence))
  1. thulac
import thulac
sentence = '萨哈夫说,伊拉克将同联合国销毁伊拉克大规模杀伤性武器特别委员会继续保持合作。'
#seg_only设置词性标注与否,deli设置分词以后以什么分隔
thu = thulac.thulac(seg_only=True, deli=' ')
text = thu.cut(sentence, text=True)
print('thulac分词:', sentence)
  1. snownlp
import snownlp
sentence = '萨哈夫说,伊拉克将同联合国销毁伊拉克大规模杀伤性武器特别委员会继续保持合作。'
sentence = SnowNLP(sentence).words
print(' '.join(sentence))
  1. nlpir
# -*- coding: utf-8 -*-
import pynlpir
sentence = '萨哈夫说,伊拉克将同联合国销毁伊拉克大规模杀伤性武器特别委员会继续保持合作。'
pynlpir.open()
#pos_tagging:是否进行词性标注
tag_seg = pynlpir.segment(sentence, pos_tagging=False)
print('pynlpir分词:',tag_seg)
tag_word = pynlpir.segment(sentence, pos_tagging=True)
print('pynlpir词性标注:',tag_word)
pynlpir.close()

数据集介绍

  使用The Second International Chinese Word Segmentation Bakeoff in SIGHAN 2005 Workshop (Emerson, 2005)提供的数据集icwb2-data. 提取码:yyke

icwb2 包含4个数据集,繁体中文数据集2个:AS, CityU; 简体中文数据集2个:PK, MSR.

评价指标

F1-Score
真实: 共同 创造 美好 的 新 世纪 —— 二○○一年 新年 贺词
预测: 共同 创造 美 好 的 新 世纪 —— 二○○一年 新年 贺词

Precision = 9 / 11 = 0.818
Recall = 9 / 10 = 0.9
F1 = 0.857

实验结果及比较

笔者从F1-score及时间效率两个方面进行了比较

表1:中文分词工具分词F1性能比较

表2:中文分词工具分词时间比较

时间表格中各单位秒(s),分(m),时(h)

结论

  从分词性能上来说,hanlp与pkuseg两大工具取得了极其优异的效果,但是耗费时间太多,因此作为NLP底层的分词工具,并不是可靠的工具。但是值得一提的是,这两个工具可以作为针对专业领域中文分词的分词工具。
  从时间与分词性能的综合角度来看,thulac与jieba分词工具性能虽然不是最好,但是其耗费的时间却是最少的。对于大多数以中文分词作为底层工作的NLP任务,这两个工具应该作为首选。

github项目地址

参考文献

[1]https://www.cnblogs.com/maxxu11/p/12615112.html
[2]https://chinesenlp.xyz/#/zh/docs/word_segmentation

中文分词工具使用方法及比较相关推荐

  1. 各种中文分词工具的使用方法

    诸神缄默不语-个人CSDN博文目录 本文将介绍jieba.HanLP.LAC.THULAC.NLPIR.spacy.stanfordcorenlp.pkuseg等多种中文分词工具的简单使用方法. 对于 ...

  2. 中文分词工具jieba分词器的使用

    1.常见的中文分词工具 中科院计算所的NLPIR 哈工大LTP 清华大学THULAC 斯坦福分词器 Hanlp分词器 jieba分词 IKAnalyzer 2.jieba分词算法主要有以下三种: 1. ...

  3. jieba库 python2.7 安装_Python中文分词工具大合集:安装、使用和测试

    这篇文章事实上整合了前面两篇文章的相关介绍,同时添加一些其他的Python中文分词相关资源,甚至非Python的中文分词工具,仅供参考. 首先介绍之前测试过的8款中文分词工具,这几款工具可以直接在AI ...

  4. 常用的开源中文分词工具

    转载自:  http://www.scholat.com/vpost.html?pid=4477 常用的开源中文分词工具 由于中文文本词与词之间没有像英文那样有空格分隔,因此很多时候中文文本操作都涉及 ...

  5. 使用中文分词工具切分ArcGIS在线文档

    下面使用中文分词工具切分ArcGIS在线帮助文档:以减轻阅读难度:看下有无效果:此为我发明的阅读方法: ArcGIS是个非常庞大的系统,希望可以减轻阅读强度: 下面是6篇文档的切分结果截图:原文链接和 ...

  6. 分词工具与方法:jieba、spaCy等

    分词是自然语言处理中的一项重要任务,将一段文本划分成一系列有意义的词语或单词,是很多文本处理任务的基础,如文本分类.情感分析.机器翻译等.在中文分词中,jieba是一个常用的分词工具,而在英文分词中, ...

  7. 中文分词工具-IKAnalyzer下载及使用

    最近有个需求,需要对爬到的网页内容进行分词,以前没做过这个,随便找了找中文分词工具,貌似IKAnalyzer评价不错,因此就下来试试,在这里记录一下使用方法,备查. 关于IKAnalyzer的介绍,网 ...

  8. jieba textrank关键词提取 python_五款中文分词工具在线PK: Jieba, SnowNLP, PkuSeg,THULAC, HanLP...

    最近玩公众号会话停不下来:玩转腾讯词向量:Game of Words(词语的加减游戏),准备把NLP相关的模块搬到线上,准确的说,搬到AINLP公众号后台对话,所以,趁着劳动节假期,给AINLP公众号 ...

  9. 『开发技术』Python中文分词工具SnowNLP教程

    介绍一个好用多功能的Python中文分词工具SnowNLP,全称Simplified Chinese Text Processing.在实现分词的同时,提供转换成拼音(Trie树实现的最大匹配)及繁体 ...

最新文章

  1. 合并排序(C语言实现)
  2. 玩转Python!一文详述Python 的高性能使用技巧
  3. substr()函数——mysql:截取字符串子串
  4. Linux下查看Apache的版本号
  5. 大数据学习——:wq不能退出vi编辑器
  6. 谷歌利用OKR系统考核 脑力行业或可借鉴
  7. 英语写作-Introduction
  8. w3school入门自学免费网站推荐
  9. 为什么有的人洗脚时要在水里滴几滴醋?
  10. 关于.dll' could not be found 的问题以及解决方案
  11. spss多元线性回归散点图_SPSS线性回归|别人不想告诉你的其他操作我都总结好了(中)...
  12. 无心剑英译许巍《温暖》
  13. 三菱FX5U以太网数据采集方案
  14. Neo4J入门笔记[2]---Neo4J GDS 图数据科学库
  15. VR 中的常用指令设置及介绍
  16. 一个渗透自学者的自述
  17. 如何打造一支专业的QA团队,至少要关注这5点
  18. 耳机断线了怎么修 耳机头部断线了如何修4线修复的方法
  19. 2020-10-05
  20. gdb调试[奇牛学院]

热门文章

  1. ELF header 详解
  2. 实验二 多路复用器与加法器的实现
  3. 计算机达人成长之路(4)连载
  4. 【我想找一份实习】算法篇
  5. 2.7 出口跟单业务
  6. linux 内核mmap,Linux内核mmap机制
  7. MP4格式视频怎么转mov格式?好用的视频格式转换方法分享
  8. 芯片应用于鸿蒙新闻,海思新款麒麟芯片量产,应用于汽车场景,联合鸿蒙OS助力北汽极狐...
  9. 笔记本电脑放久了开机进不去怎么办?这个方法教你一键搞定!你也可以成为电脑高手!
  10. 帅某---技巧---如何免费下载百度文库、豆丁文库等其他文库的vip或者付费文章(不看后悔)?????