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的Twisted框架编写简单的网络客户端
Apr 16 Python
使用Python发送各种形式的邮件的方法汇总
Nov 09 Python
Python实现简单登录验证
Apr 13 Python
查看django执行的sql语句及消耗时间的两种方法
May 29 Python
使用Python的networkx绘制精美网络图教程
Nov 21 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
Feb 15 Python
python实现提取str字符串/json中多级目录下的某个值
Feb 27 Python
简单了解Java Netty Reactor三种线程模型
Apr 26 Python
Python代码中如何读取键盘录入的值
May 27 Python
解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
Jun 12 Python
idea2020手动安装python插件的实现方法
Jul 17 Python
python之随机数函数的实现示例
Dec 30 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 发送带附件邮件示例
2014/01/23 PHP
ThinkPHP的URL重写问题
2014/06/22 PHP
PHP的cURL库简介及使用示例
2015/02/06 PHP
php实现微信公众平台账号自定义菜单类
2015/10/11 PHP
php文档工具PHP Documentor安装与使用方法
2016/01/25 PHP
php文件类型MIME对照表(比较全)
2016/10/07 PHP
PHP与SQL语句写一句话木马总结
2019/10/11 PHP
让getElementsByName适应IE和firefox的方法
2007/09/24 Javascript
javascript根据像素点取位置示例
2014/01/27 Javascript
JS+CSS实现的简单折叠展开多级菜单效果
2015/09/12 Javascript
jQuery实现输入框邮箱内容自动补全与上下翻动显示效果【附demo源码下载】
2016/09/20 Javascript
react native带索引的城市列表组件的实例代码
2017/08/08 Javascript
详解NODEJS的http实现
2018/01/04 NodeJs
还不懂递归?读完这篇文章保证你会懂
2018/07/29 Javascript
前端axios下载excel文件(二进制)的处理方法
2018/07/31 Javascript
解决Layui 表单提交数据为空的问题
2018/08/15 Javascript
js for终止循环 跳出多层循环
2018/10/04 Javascript
JS简单判断是否在微信浏览器打开的方法示例
2019/01/08 Javascript
node.js实现简单的压缩/解压缩功能示例
2019/11/05 Javascript
js实现树形数据转成扁平数据的方法示例
2020/02/27 Javascript
javascript设计模式 ? 桥接模式原理与应用实例分析
2020/04/13 Javascript
Python Property属性的2种用法
2015/06/21 Python
Python爬取数据保存为Json格式的代码示例
2019/04/09 Python
python pyqtgraph 保存图片到本地的实例
2020/03/14 Python
python判断是空的实例分享
2020/07/06 Python
Python+Opencv身份证号码区域提取及识别实现
2020/08/25 Python
Hunter Boots美国官方网站:赫特威灵顿雨靴
2018/06/16 全球购物
HttpServlet类中的主要方法都有哪些?各自的作用是什么?
2014/03/16 面试题
大学生求职自荐信
2013/12/12 职场文书
好矿嫂事迹材料
2014/01/21 职场文书
环境工程专业自荐信
2014/03/03 职场文书
面试通知短信
2015/04/20 职场文书
红白喜事主持词
2015/07/06 职场文书
Python装饰器的练习题
2021/11/23 Python
MySQL创建表操作命令分享
2022/03/25 MySQL
介绍一下28个JS常用数组方法
2022/05/06 Javascript