简述python四种分词工具,盘点哪个更好用?


Posted in Python onApril 13, 2021

大家好,我是安果!

分词在自然语言处理中有着常见的场景,比如从一篇文章自动提取关键词就需要用到分词工具,中文搜索领域同样离不开分词

Python 中有很多开源的分词工具,下面给大家介绍几款常见的分词依赖库

1. jieba 分词

“结巴” 分词,GitHub 最受欢迎的分词工具,立志做最好的 Python 中文分词组件,支持多种分词模式,支持自定义词典

github star:26k

代码示例

import jieba

strs=["我来到北京清华大学","乒乓球拍卖完了","中国科学技术大学"]

for str in strs:
    seg_list = jieba.cut(str,use_paddle=True) # 使用paddle模式
    print("Paddle Mode: " + '/'.join(list(seg_list)))

seg_list = jieba.cut("我来到北京清华大学", cut_all=True)
print("全模式: " + "/ ".join(seg_list))  # 全模式

seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
print("精确模式: " + "/ ".join(seg_list))  # 精确模式

seg_list = jieba.cut("他来到了网易杭研大厦")  # 默认是精确模式
print("新词识别:", ",".join(seg_list))

seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造")  # 搜索引擎模式
print("搜索引擎模式:", ".join(seg_list))

输出:

【全模式】: 我/ 来到/ 北京/ 清华/ 清华大学/ 华大/ 大学

【精确模式】: 我/ 来到/ 北京/ 清华大学

【新词识别】:他, 来到, 了, 网易, 杭研, 大厦    (此处,“杭研”并没有在词典中,但是也被Viterbi算法识别出来了)

【搜索引擎模式】: 小明, 硕士, 毕业, 于, 中国, 科学, 学院, 科学院, 中国科学院, 计算, 计算所, 后, 在, 日本, 京都, 大学, 日本京都大学, 深造

项目地址:

https://github.com/fxsjy/jieba

2. pkuseg 分词

pkuseg 是北大语言计算与机器学习研究组开源的一款分词工具

它的特点是支持多领域分词,目前支持新闻领域,网络领域,医药领域,旅游领域,以及混合领域的分词预训练模型,用户可以自由地选择不同的模型

相比通用分词工具,它的分词准确率更高 

github star:5.4k

代码示例

import pkuseg

seg = pkuseg.pkuseg()           # 以默认配置加载模型
text = seg.cut('python是一门很棒的语言')  # 进行分词
print(text)

输出

['python', '是', '一', '门', '很', '棒', '的', '语言']

项目地址:

https://github.com/lancopku/pkuseg-python

3. FoolNLTK 分词

基于 BiLSTM 模型训练而成,据说可能是最准的开源中文分词,同样支持用户自定义词典

GitHub  star: 1.6k

代码示例

import fool

text = "一个傻子在北京"
print(fool.cut(text))
# ['一个', '傻子', '在', '北京']

项目地址:

https://github.com/rockyzhengwu/FoolNLTK

4. THULAC

THULAC 由清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包

具有词性标注功能,能分析出某个词是名词还是动词或者形容词

github star:1.5k

代码示例

 import thulac  

 thu1 = thulac.thulac()  #默认模式
 text = thu1.cut("我爱北京天安门", text=True)  #进行一句话分词
 print(text) # 我_r 爱_v 北京_ns 天安门_ns
 代码示例2
 thu1 = thulac.thulac(seg_only=True)  #只进行分词,不进行词性标注
 thu1.cut_f("input.txt", "output.txt")  #对input.txt文件内容进行分词,输出到output.txt

项目地址:

https://github.com/thunlp/THULAC-Python

目前我在用的还是结巴分词,配合用户自定义词典,解决常见的网络词语

你在用什么分词工具,欢迎留下你的意见

以上就是简述python四种分词工具,盘点哪个更好用?的详细内容,更多关于python 分词工具的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python中lambda的用法及其与def的区别解析
Jul 28 Python
Python实现的ini文件操作类分享
Nov 20 Python
python字典DICT类型合并详解
Aug 17 Python
详解使用 pyenv 管理多个版本 python 环境
Oct 19 Python
python连接mongodb密码认证实例
Oct 16 Python
python flask框架实现传数据到js的方法分析
Jun 11 Python
用Python实现最速下降法求极值的方法
Jul 10 Python
Python中如何将一个类方法变为多个方法
Dec 30 Python
Python中如何引入第三方模块
May 27 Python
Python 3.9的到来到底是意味着什么
Oct 14 Python
Python+Appium实现自动抢微信红包
May 21 Python
Python Matplotlib库实现画局部图
Nov 17 Python
python自动化调用百度api解决验证码
利用Python网络爬虫爬取各大音乐评论的代码
用Python制作灯光秀短视频的思路详解
python实现socket简单通信的示例代码
使用Selenium实现微博爬虫(预登录、展开全文、翻页)
python用字节处理文件实例讲解
Apr 13 #Python
Python中相见恨晚的技巧
Apr 13 #Python
You might like
php使用ICQ网关发送手机短信
2013/10/30 PHP
使用图灵api创建微信聊天机器人
2015/07/23 PHP
php实现简单爬虫的开发
2016/03/28 PHP
JavaScript中的prototype使用说明
2010/04/13 Javascript
ASP.NET jQuery 实例18 通过使用jQuery validation插件校验DropDownList
2012/02/03 Javascript
jquery获取自定义属性(attr和prop)实例介绍
2013/04/21 Javascript
javascript完美拖拽的实现方法
2013/09/29 Javascript
JS实现将人民币金额转换为大写的示例代码
2014/02/13 Javascript
分享一款基于jQuery的视频播放插件
2014/10/09 Javascript
Node.js如何自动审核团队的代码
2016/07/20 Javascript
前端实现文件的断点续传(前端文件提交+后端PHP文件接收)
2016/11/04 Javascript
JavaScript利用正则表达式替换字符串中的内容
2016/12/12 Javascript
Vue.js2.0中的变化小结
2017/10/24 Javascript
微信网页授权并获取用户信息的方法
2018/07/30 Javascript
layui实现table加载的示例代码
2018/08/14 Javascript
浅谈关于JS下大批量异步任务按顺序执行解决方案一点思考
2019/01/08 Javascript
vue输入框使用模糊搜索功能的实现代码
2020/05/26 Javascript
Vue 简单实现前端权限控制的示例
2020/12/25 Vue.js
[01:06:42]VP vs NewBee Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
[02:50]【扭转乾坤,只此一招】DOTA2永雾林渊版本开启新篇章
2020/12/22 DOTA
Python3实现Web网页图片下载
2016/01/28 Python
在Python中,不用while和for循环遍历列表的实例
2019/02/20 Python
使用Python制作简单的小程序IP查看器功能
2019/04/16 Python
python语言线程标准库threading.local解读总结
2019/11/10 Python
ipython jupyter notebook中显示图像和数学公式实例
2020/04/15 Python
python获取天气接口给指定微信好友发天气预报
2020/12/28 Python
玩具反斗城天猫官方旗舰店:享誉全球的玩具店
2017/10/10 全球购物
JAVA和C++区别都有哪些
2015/03/30 面试题
Weblogic和WebSphere不同特点
2012/05/09 面试题
白酒市场开发计划书
2014/01/09 职场文书
护士自我评价范文
2014/01/25 职场文书
会计学专业自荐信
2014/06/25 职场文书
教师作风整顿个人剖析材料
2014/10/10 职场文书
2015小学语文教师个人工作总结
2015/05/20 职场文书
幼儿园小朋友毕业感言
2015/07/30 职场文书
Python OpenCV之常用滤波器使用详解
2022/04/07 Python