简述python四种分词工具,盘点哪个更好用?
作者:刘志军 发布时间:2021-08-22 23:28:01
目录
1. jieba 分词
2. pkuseg 分词
3. FoolNLTK 分词
4. THULAC
大家好,我是安果!
分词在自然语言处理中有着常见的场景,比如从一篇文章自动提取关键词就需要用到分词工具,中文搜索领域同样离不开分词
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
目前我在用的还是结巴分词,配合用户自定义词典,解决常见的网络词语
你在用什么分词工具,欢迎留下你的意见
来源:https://mp.weixin.qq.com/s/cfubf3NTCeyNkJk5uH5cXA
猜你喜欢
- 如何正确显示模式对话框中的中文?msg.htm <html> <head> &nbs
- Hello every, 我是Sunrise_Chen,有人知道我吗?好久没来这里了,以前偶尔会来这里潜水今天心情很好,写了几个特效果。特效
- global.asa<SCRIPT LANGUAGE="VBScript" RUNAT=&qu
- Sys.path 指定用于模块搜索路径的字符串列表也可以通过sys模块的append方法在Python环境中增加搜索路径。Sys.path.
- 本文实例讲述了Python数学形态学。分享给大家供大家参考,具体如下:一 原始随机图像1、代码import numpy as npimpor
- 工具:Pycharm,Django1.11.9.1.下载django_admin_bootstrappedpip install djang
- 如何使用数组来显示下拉菜单?可以这样,如下:Sub DoDropDown(Arr(), strSelName, 
- 使用ASP生成图片彩色校验码49行代码,三个文件 Asp文件:Co
- 本文实例讲述了python使用wxpython开发简单记事本的方法。分享给大家供大家参考。具体分析如下:wxPython是Python编程语
- Python使用称为Python Path的搜索路径来查找使用import语句导入代码的模块。大多数代码只会汇入已经默认路径上的模块,通过安
- 本片博文主要介绍在Python3 环境下把用户名密码编码成字符串。代码如下:import base64def get_basic_auth_
- 一、安装cuda1、在英伟达官网下载最新版的cuda驱动https://developer.nvidia.com/zh-cn/cuda-do
- Notes怀疑模型梯度 * ,想打印模型 loss 对各权重的导数看看。如果如果fit来训练的话,可以用keras.callbacks.Ten
- 如何做一个专门显示文本文件的页面? 代码如下:txt.asp<html><head&g
- 本文实例总结了php处理json格式数据的方法。分享给大家供大家参考,具体如下:1.json简介:何为json?简 单地说,JSON 可以将
- 最近碰到一个mysql5数据库的问题。就是一个标准的servlet/tomcat网络应用,后台使用mysql数据库。问题是待机一晚上后,第二
- 1. Http标准库1.1 http客户端func main() {response, err := http.Get("http
- 本文实例讲述了Python wxpython模块响应鼠标拖动事件操作。分享给大家供大家参考,具体如下:wxpython鼠标拖动事件小案例:#
- Python——re模块 简介定义:re模块称为正则表达式;作用:创建一个"规则表达式",用于验证和查找符合规
- 1:mysql是我们使用最多的数据库,如果在日常中正确的对mysql数据进行备份,下面我们就来做这事,通过脚本来实现############