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中的二进制位运算符
May 13 Python
python中利用await关键字如何等待Future对象完成详解
Sep 07 Python
Python中装饰器学习总结
Feb 10 Python
Python实现快速计算词频功能示例
Jun 25 Python
Python 实现两个列表里元素对应相乘的方法
Nov 14 Python
对python 命令的-u参数详解
Dec 03 Python
Python变量类型知识点总结
Feb 18 Python
python3+PyQt5 实现Rich文本的行编辑方法
Jun 17 Python
python 多进程并行编程 ProcessPoolExecutor的实现
Oct 11 Python
Python 音频生成器的实现示例
Dec 24 Python
Python中用pyinstaller打包时的图标问题及解决方法
Feb 17 Python
Python 实现打印单词的菱形字符图案
Apr 12 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
咖啡界又出新概念,无需咖啡豆的分子咖啡
2021/03/03 咖啡文化
提升PHP执行速度全攻略(上)
2006/10/09 PHP
php对数组内元素进行随机调换的方法
2015/05/12 PHP
Yii2针对游客、用户防范规则和限制的解决方法分析
2016/10/08 PHP
jQuery Validation实例代码 让验证变得如此容易
2010/10/18 Javascript
jQuery扁平化风格下拉框美化插件FancySelect使用指南
2015/02/10 Javascript
jquery实现仿Flash的横向滑动菜单效果代码
2015/09/17 Javascript
js实现统计字符串中特定字符出现个数的方法
2016/08/02 Javascript
一个非常好用的文字滚动的案例,鼠标悬浮可暂停[两种方案任选]
2016/12/01 Javascript
vue移动端实现红包雨效果
2020/06/23 Javascript
NodeJs项目中关闭ESLint的方法
2018/08/09 NodeJs
JavaScript 判断iPhone X Series机型的方法
2019/01/28 Javascript
安装多版本Vue-CLI的实现方法
2020/03/24 Javascript
小程序实现可拖动的悬浮按钮
2020/09/07 Javascript
Vue 3.0中jsx语法的使用
2020/11/13 Javascript
[00:32]DOTA2上海特级锦标赛 COL战队宣传片
2016/03/04 DOTA
[40:27]完美世界DOTA2联赛PWL S3 PXG vs GXR 第一场 12.19
2020/12/24 DOTA
Python 文件操作实现代码
2009/10/07 Python
在Python3中使用asyncio库进行快速数据抓取的教程
2015/04/02 Python
Python实现对excel文件列表值进行统计的方法
2015/07/25 Python
python中利用队列asyncio.Queue进行通讯详解
2017/09/10 Python
Pandas读取并修改excel的示例代码
2019/02/17 Python
python字符串,元组,列表,字典互转代码实例详解
2020/02/14 Python
pytorch实现CNN卷积神经网络
2020/02/19 Python
python 弧度与角度互转实例
2020/04/15 Python
Python生成pdf目录书签的实例方法
2020/10/29 Python
canvas 橡皮筋式线条绘图应用方法
2019/02/13 HTML / CSS
意大利奢侈品购物网站:Deliberti
2019/10/08 全球购物
优秀村官事迹材料
2014/01/10 职场文书
记帐员岗位责任制
2014/02/08 职场文书
小学安全教育材料
2014/02/17 职场文书
统计系教授推荐信
2014/02/28 职场文书
公司市场专员岗位职责
2014/06/29 职场文书
大四学生个人总结
2015/02/15 职场文书
python实现对doc、txt、xls等文档的读写操作
2022/04/02 Python
一文搞懂Redis中String数据类型
2022/04/03 Redis