Python jieba结巴分词原理及用法解析


Posted in Python onNovember 05, 2020

1、简要说明

结巴分词支持三种分词模式,支持繁体字,支持自定义词典

2、三种分词模式

全模式:把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义

精简模式:把句子最精确的分开,不会添加多余单词,看起来就像是把句子分割一下

搜索引擎模式:在精简模式下,对长词再度切分

# -*- encoding=utf-8 -*-

import jieba

if __name__ == '__main__':
  str1 = '我去北京天安门广场跳舞'
  a = jieba.lcut(str1, cut_all=True) # 全模式
  print('全模式:{}'.format(a))
  b = jieba.lcut(str1, cut_all=False) # 精简模式
  print('精简模式:{}'.format(b))
  c = jieba.lcut_for_search(str1) # 搜索引擎模式
  print('搜索引擎模式:{}'.format(c))

运行

Python jieba结巴分词原理及用法解析

3、某个词语不能被分开

# -*- encoding=utf-8 -*-

import jieba

if __name__ == '__main__':
  str1 = '桃花侠大战菊花怪'
  b = jieba.lcut(str1, cut_all=False) # 精简模式
  print('精简模式:{}'.format(b))
  # 如果不把桃花侠分开
  jieba.add_word('桃花侠')
  d = jieba.lcut(str1) # 默认是精简模式
  print(d)

运行

Python jieba结巴分词原理及用法解析

4、 某个单词必须被分开

# -*- encoding=utf-8 -*-

import jieba

if __name__ == '__main__':
  # HMM参数,默认为True
  '''HMM 模型,即隐马尔可夫模型(Hidden Markov Model, HMM),是一种基于概率的统计分析模型,
  用来描述一个系统隐性状态的转移和隐性状态的表现概率。
  在 jieba 中,对于未登录到词库的词,使用了基于汉字成词能力的 HMM 模型和 Viterbi 算法,
  其大致原理是:
  采用四个隐含状态,分别表示为单字成词,词组的开头,词组的中间,词组的结尾。
  通过标注好的分词训练集,可以得到 HMM 的各个参数,然后使用 Viterbi 算法来解释测试集,得到分词结果。
  '''
  str1 = '桃花侠大战菊花怪'
  b = jieba.lcut(str1, cut_all=False, HMM=False) # 精简模式,且不使用HMM模型
  print('精简模式:{}'.format(b))
  # 分开大战为大和战
  jieba.suggest_freq(('大', '战'), True)
  e = jieba.lcut(str1, HMM=False) # 不使用HMM模型
  print('分开:{}'.format(e))

运行

Python jieba结巴分词原理及用法解析

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用Python的Flask框架表单插件Flask-WTF实现Web登录验证
Jul 12 Python
Python中asyncio与aiohttp入门教程
Oct 16 Python
python实现Excel文件转换为TXT文件
Apr 28 Python
对Django 转发和重定向的实例详解
Aug 06 Python
Python使用微信itchat接口实现查看自己微信的信息功能详解
Aug 22 Python
django重新生成数据库中的某张表方法
Aug 28 Python
python基于gevent实现并发下载器代码实例
Nov 01 Python
解决os.path.isdir() 判断文件夹却返回false的问题
Nov 29 Python
Python面向对象原理与基础语法详解
Jan 02 Python
已安装tensorflow-gpu,但keras无法使用GPU加速的解决
Feb 07 Python
python 图像插值 最近邻、双线性、双三次实例
Jul 05 Python
python自动化测试通过日志3分钟定位bug
Nov 20 Python
Python根据字符串调用函数过程解析
Nov 05 #Python
python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法
Nov 05 #Python
Python利用matplotlib绘制折线图的新手教程
Nov 05 #Python
详解Django中异步任务之django-celery
Nov 05 #Python
Python Django路径配置实现过程解析
Nov 05 #Python
Python基于tkinter canvas实现图片裁剪功能
Nov 05 #Python
Python利用matplotlib绘制散点图的新手教程
Nov 05 #Python
You might like
PHP投票系统防刷票判断流程分析
2012/02/04 PHP
文本加密解密
2006/06/23 Javascript
jquery简单体验
2007/01/10 Javascript
window.onload和$(function(){})的区别介绍
2013/10/30 Javascript
js unicode 编码解析关于数据转换为中文的两种方法
2014/04/21 Javascript
jquery仿百度百科底部浮动导航特效
2015/08/08 Javascript
jQuery获取checkbox选中的值
2016/01/28 Javascript
DeviceOne 让你一见钟情的App快速开发平台
2016/02/17 Javascript
jQuery实现页面点击后退弹出提示框的方法
2016/08/24 Javascript
微信小程序 wx.request(OBJECT)发起请求详解
2016/10/13 Javascript
webpack入门+react环境配置
2017/02/08 Javascript
vue-cli启动本地服务局域网不能访问的原因分析
2018/01/22 Javascript
Angular4 Select选择改变事件的方法
2018/10/09 Javascript
基于Vue实现平滑过渡的拖拽排序功能
2019/06/12 Javascript
vue 中的 render 函数作用详解
2020/02/28 Javascript
Vue实现input宽度随文字长度自适应操作
2020/07/29 Javascript
[01:04:09]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第二场 2月2日
2021/03/11 DOTA
用Python实现QQ游戏大家来找茬辅助工具
2014/09/14 Python
Python字符和字符值(ASCII或Unicode码值)转换方法
2015/05/21 Python
在windows系统中实现python3安装lxml
2016/03/23 Python
基于Python对象引用、可变性和垃圾回收详解
2017/08/21 Python
学习Python3 Dlib19.7进行人脸面部识别
2018/01/24 Python
python模块之paramiko实例代码
2018/01/31 Python
解决Python 使用h5py加载文件,看不到keys()的问题
2019/02/08 Python
Python实现二叉树前序、中序、后序及层次遍历示例代码
2019/05/18 Python
python基于递归解决背包问题详解
2019/07/03 Python
python3在同一行内输入n个数并用列表保存的例子
2019/07/20 Python
Mysql数据库反向生成Django里面的models指令方式
2020/05/18 Python
Python使用matplotlib绘制圆形代码实例
2020/05/27 Python
英国骑行、跑步、游泳、铁人三项运动装备专卖店:Wiggle
2016/08/23 全球购物
12.4法制宣传日活动总结
2014/08/26 职场文书
辞旧迎新演讲稿
2014/09/15 职场文书
县委班子四风对照检查材料思想汇报
2014/09/29 职场文书
中学生检讨书1000字
2014/10/28 职场文书
node.js如何自定义实现一个EventEmitter
2021/07/16 Javascript
阿里云ECS云服务器快照的概念以及如何使用
2022/04/21 Servers