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使用reportlab画图示例(含中文汉字)
Dec 03 Python
Python中的自省(反射)详解
Jun 02 Python
Python中在for循环中嵌套使用if和else语句的技巧
Jun 20 Python
python中(str,list,tuple)基础知识汇总
Feb 20 Python
Python if语句知识点用法总结
Jun 10 Python
django多文件上传,form提交,多对多外键保存的实例
Aug 06 Python
python yield关键词案例测试
Oct 15 Python
解决python中的幂函数、指数函数问题
Nov 25 Python
基于python调用psutil模块过程解析
Dec 20 Python
windows10在visual studio2019下配置使用openCV4.3.0
Jul 14 Python
python 如何把docker-compose.yaml导入到数据库相关条目里
Jan 15 Python
matplotlib grid()设置网格线外观的实现
Feb 22 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 cookie 登录验证示例代码
2009/03/16 PHP
MYSQL 小技巧 -- LAST_INSERT_ID
2009/11/24 PHP
PHP不用第三变量交换2个变量的值的解决方法
2013/06/02 PHP
javascript+php实现根据用户时区显示当地时间的方法
2015/03/11 PHP
android上传图片到PHP的过程详解
2015/08/03 PHP
PHP删除字符串中非字母数字字符方法总结
2019/01/20 PHP
在IE模态窗口中自由查看HTML源码的方法
2007/03/08 Javascript
Ajax,UTF-8还是GB2312 eval 还是execScript
2008/11/13 Javascript
js下通过prototype扩展实现indexOf的代码
2010/12/08 Javascript
js下关于onmouseout、事件冒泡的问题经验小结
2010/12/09 Javascript
基于JQuery实现CheckBox全选全不选
2011/06/27 Javascript
JavaScript设计模式之策略模式实例
2014/10/10 Javascript
JavaScript将数字转换成大写中文的方法
2015/03/23 Javascript
javascript使用avalon绑定实现checkbox全选
2015/05/06 Javascript
javascript去除空格方法小结
2015/05/21 Javascript
分享两款带遮罩的jQuery弹出框
2015/12/30 Javascript
JavaScript模拟数组合并concat
2016/03/06 Javascript
jQuery实现的简单获取索引功能示例
2018/06/04 jQuery
vue-cli 使用vue-bus来全局控制的实例讲解
2018/09/15 Javascript
小程序rich-text组件如何改变内部img图片样式的方法
2019/05/22 Javascript
微信小程序实现带放大效果的轮播图
2020/05/26 Javascript
vue+openlayers绘制省市边界线
2020/12/24 Vue.js
vue-cli中实现响应式布局的方法
2021/03/02 Vue.js
[16:04]DOTA2海涛带你玩炸弹 9月5日更新内容详解
2014/09/05 DOTA
对python中的装包与解包实例详解
2019/08/24 Python
pytorch方法测试——激活函数(ReLU)详解
2020/01/15 Python
详解tensorflow2.x版本无法调用gpu的一种解决方法
2020/05/25 Python
Python爬虫爬取糗事百科段子实例分享
2020/07/31 Python
Python连接Mysql进行增删改查的示例代码
2020/08/03 Python
python实现按日期归档文件
2021/01/30 Python
利用CSS3实现单选框动画特效示例代码
2016/09/26 HTML / CSS
小学教师的个人自我鉴定
2013/10/26 职场文书
英语教育专业毕业生求职信
2014/08/28 职场文书
办公室主任个人对照检查材料思想汇报
2014/10/11 职场文书
自荐信模板大全
2015/03/27 职场文书
python随机打印成绩排名表
2021/06/23 Python