简述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检测lvs real server状态
Jan 22 Python
编程语言Python的发展史
Sep 26 Python
浅谈django中的认证与登录
Oct 31 Python
Python复数属性和方法运算操作示例
Jul 21 Python
python实现简单神经网络算法
Mar 10 Python
Python设计模式之抽象工厂模式原理与用法详解
Jan 15 Python
Python-Flask:动态创建表的示例详解
Nov 22 Python
如何基于python3和Vue实现AES数据加密
Mar 27 Python
Python如何安装第三方模块
May 28 Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
Jul 02 Python
如何基于Python按行合并两个txt
Nov 03 Python
python中Pexpect的工作流程实例讲解
Mar 02 Python
python自动化调用百度api解决验证码
利用Python网络爬虫爬取各大音乐评论的代码
用Python制作灯光秀短视频的思路详解
python实现socket简单通信的示例代码
使用Selenium实现微博爬虫(预登录、展开全文、翻页)
python用字节处理文件实例讲解
Apr 13 #Python
Python中相见恨晚的技巧
Apr 13 #Python
You might like
php中截取字符串支持utf-8
2007/01/18 PHP
PHP strstr 函数判断字符串是否否存在的实例代码
2013/09/28 PHP
ThinkPHP中的系统常量和预定义常量集合
2014/07/01 PHP
PHP的Yii框架的常用日志操作总结
2015/12/08 PHP
PHP编写登录验证码功能 附调用方法
2016/05/19 PHP
Yii2中多表关联查询hasOne hasMany的方法
2017/02/15 PHP
html读出文本文件内容
2007/01/22 Javascript
学习ExtJS Panel常用方法
2009/10/07 Javascript
js下判断 iframe 是否加载完成的完美方法
2010/10/26 Javascript
基于jquery的bankInput银行卡账号格式化
2012/08/22 Javascript
js Array对象的扩展函数代码
2013/04/24 Javascript
div浮层,滚动条移动,位置保持不变的4种方法汇总
2013/12/11 Javascript
javascript使用onclick事件改变选中行的颜色
2013/12/30 Javascript
jQuery获取对象简单实现方法小结
2014/10/30 Javascript
javascript和jquery实现设置和移除文本框默认值效果代码
2015/01/13 Javascript
浅谈javascript中的DOM方法
2015/07/16 Javascript
JS常见创建类的方法小结【工厂方式,构造器方式,原型方式,联合方式等】
2017/04/01 Javascript
ES6中Array.copyWithin()函数的用法实例详解
2017/09/16 Javascript
将jquery.qqFace.js表情转换成微信的字符码
2017/12/01 jQuery
JS求Number类型数组中最大元素方法
2018/04/08 Javascript
layui实现鼠标移动到单元格上显示数据的方法
2019/09/11 Javascript
[00:52]黑暗之门更新 新英雄孽主驾临DOTA2
2016/08/24 DOTA
Python中不同进制互相转换(二进制、八进制、十进制和十六进制)
2015/04/05 Python
python脚本实现数据导出excel格式的简单方法(推荐)
2016/12/30 Python
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
2019/07/08 Python
Pytorch损失函数nn.NLLLoss2d()用法说明
2020/07/07 Python
很酷的HTML5电子书翻页动画特效
2016/02/25 HTML / CSS
海外淘书首选:AbeBooks
2017/07/31 全球购物
mysql_pconnect()和mysql_connect()有什么区别
2012/05/25 面试题
写好自荐信要注意的问题
2013/11/10 职场文书
教师自荐信
2013/12/10 职场文书
门卫岗位职责说明书
2014/08/18 职场文书
2016大学迎新欢迎词
2015/09/29 职场文书
省级三好学生主要事迹材料
2015/11/03 职场文书
2016年小学端午节活动总结
2016/04/01 职场文书
react中props 的使用及进行限制的方法
2021/04/28 Javascript