结巴中文分词

Python中文分词组件

四种分词模式

  • 精确模式:试图把句子最精确的切开,适合文本分析。
  • 全模式:把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
  • 搜索引擎模式: 在精确模式的基础上,对长词进行切分,提高召回率,适用于搜索引擎分析。
  • paddle模式:利用PaddlePaddle深度学习框架训练序列标注(双向GRU)网络模型实现分词。同时支持词性标注。paddle模式使用需安装paddlepaddle-tiny,pip install paddlepaddle-tiny==1.6.1。目前paddle模式支持jieba v0.40及以上版本。jieba v0.40以下版本,请升级jieba,pip install jieba --upgrade 。

算法

  • 基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词的情况所构成的有向无环图(DAG)
  • 采用了动态规划法查找最大概率路径,找出基于词频的最大切分组合。
  • 对于未登录词,采用了基于汉字成词能力的HMM模型,使用了Viterbi算法。

主要功能

  • jieba.cut 方法接受四个输入参数: 需要分词的字符串;cut_all 参数用来控制是否采用全模式;HMM 参数用来控制是否使用 HMM 模型;use_paddle 参数用来控制是否使用paddle模式下的分词模式,paddle模式采用延迟加载方式,通过enable_paddle接口安装paddlepaddle-tiny,并且import相关代码;
  • jieba.cut_for_search: 方法接受两个参数,需要分词的字符串,是否使用HMM模型,该方法适用于搜索引擎构建的倒排索引分词,粒度比较细。
  • 待分词的字符串可以是 unicode 或 UTF-8 字符串、GBK 字符串。注意**:不建议直接输入 GBK 字符串,可能无法预料地错误解码成 UTF-8**。
  • jieba.cut 以及 jieba.cut_for_search 返回的结构都是一个可迭代的 generator,可以使用 for 循环来获得分词后得到的每一个词语(unicode),或者用 jieba.lcut 以及 jieba.lcut_for_search 直接返回 list
  • jieba.Tokenizer(dictionary=DEFAULT_DICT) 新建自定义分词器,可用于同时使用不同词典。jieba.dt 为默认分词器,所有全局分词相关函数都是该分词器的映射
  • (全局分词相关函数都是该分词器的映射)

代码示例

paddle模式

contents=['工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作',"我来到北京清华大学","乒乓球拍卖完了","中国科学技术大学"]```python
contents=['工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作',"我来到北京清华大学","乒乓球拍卖完了","中国科学技术大学"]
for content in contents:seg_list=jieba.cut(content,use_paddle=True)#使用paddle模式print('Panddle Mode:'+'、'.join(list(seg_list)))

全模式和精确模式

seg_list=jieba.cut("我来到北京清华大学",cut_all=True)
print('Full Mode:'+'、'.join(seg_list))#全模式
seg_list=jieba.cut("我来到北京清华大学",cut_all=False)
print('Default Mode:'+'、'.join(seg_list))#精确模式

通过Viterbi算法新识别

seg_list = jieba.cut("我来到长津湖拍摄地拍摄长津湖电影")  # 默认是精确模式
print(", ".join(seg_list))

``

搜索引擎模式

在这里插入代码片
```seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造")  # 搜索引擎模式
print(", ".join(seg_list))

自定义词典

  • 开发者可以指定自己的自定义词典,以便包含jieba词库里没有的词,虽然jieba有新词识别能力,但是自行添加新词可以保证更高的准确率。
  • 用法: jieba.load_userdict(file_name) # file_name 为文件类对象或自定义词典的路径。
  • 词典格式和 dict.txt 一样,一个词占一行;每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。file_name 若为路径或二进制方式打开的文件,则文件必须为 UTF-8 编码。
  • 词频省略时候,使用自动计算能保证分出该词的词频。

调整词典

  • 使用 add_word(word, freq=None, tag=None) 和 del_word(word) 可在程序中动态修改词典。
  • 使用 suggest_freq(segment, tune=True) 可调节单个词语的词频,使其能(或不能)被分出来。
  • 注意:自动计算的词频在使用 HMM 新词发现功能时可能无效
    Gitub

学习心得

会自己慢慢的学习jieba分词,不用刻意学习,
慢慢地复现论文的时候,将各种jieba分词结构全部将其搞定。
耐着性子,用到的时候将jieba分词慢慢的学习完整都行啦的理由与打算。在连接中自己找到jieba分词都行啦的理由与打算。


文本分类从入门到精通各种模型的学习——Jieba分词。相关推荐

  1. 文本分类从入门到精通—代码展示

    文本分类从入门到精通 本文整理自笔者年前在知乎上的一个回答: 大数据舆情情感分析,如何提取情感并使用什么样的工具?(贴情感标签) 1.我将数据筛选预处理好,然后分好词. 2.是不是接下来应该与与情感词 ...

  2. 文本分类从入门到精通

    在这篇文章中,笔者将讨论自然语言处理中文本分类的相关问题.笔者将使用一个复旦大学开源的文本分类语料库,对文本分类的一般流程和常用模型进行探讨.首先,笔者会创建一个非常基础的初始模型,然后使用不同的特征 ...

  3. NLP之文本分类实战入门超详细教程

    目录 前言 一.数据加载 1.加载包 2.读取数据 二.文本处理 1.去除无用字符 2.文本分词 3.去除停用词 4.去除低频词 5.划分训练集和测试集 三.把文本转换成向量的形式 1.把文本转换成t ...

  4. 详细:JAVA从入门到精通视频教程,后台学习历程

    详细:JAVA从入门到精通视频教程,后台学习历程 ==基础部分 由于百度分享有时效性 想要免费资源的请加645969403 1.java基础:高琪java开发300集 链接:https://pan.b ...

  5. 2022最新版Redis入门到精通(云课堂视频学习笔记)

    学习视频: 2022最新版Redis入门到精通 - 网易云课堂 学习笔记: 目录 一.初识Redis-认识NoSQL 1.认识NoSQL 2.认识Redis 3.安装Redis 二.Redis常见命令 ...

  6. 文本分类实战(三)—— charCNN模型

    1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 te ...

  7. 【NLP】文本分类还停留在BERT?对偶对比学习框架也太强了

    论文简介:对偶对比学习:如何将对比学习用于有监督文本分类  论文标题:Dual Contrastive Learning: Text Classification via Label-Aware Da ...

  8. 【NLP】文本分类还停留在BERT?对偶比学习框架也太强了

    论文简介:对偶对比学习:如何将对比学习用于有监督文本分类  论文标题:Dual Contrastive Learning: Text Classification via Label-Aware Da ...

  9. python从入门到精通-小白如何系统学习python,从入门到精通?

    其实Python入门并不难,只要你有足够的自信心,明确学习目标,循序渐进就能不断享受到python带给你创新的乐趣. 大家为什么要学习python呢? 1.python简单易学 python的优势就是 ...

最新文章

  1. rwkj 1422搜索(素数环)
  2. mysql5.5+版本与mysql5.5之前版本部署主从的一些差异
  3. com学习笔记(6)类厂
  4. Android 轮询最佳实践 Service + AlarmManager+Thread
  5. Python爬虫-HTMLSession的使用
  6. python中清除海龟图的代码_Python海龟绘图——常用方法指令
  7. Qt对话框的事件循环实例分析
  8. expect脚本同步文件,expect脚本指定host和要同步的文件,构建文件分发系统,批量远程执行命令...
  9. css 背景渐变详解
  10. 轻量级自动化测试框架 UFT 初学者 学习编写
  11. Java 获取主机ip地址(ipv4)
  12. 阿里云服务器企业用户最新配置表!
  13. form-login属性详解
  14. VMware云管平台运维管理
  15. 21天读书打卡!快上车!
  16. C语言:【入门】小明买水果
  17. 学生动漫网页设计模板下载 火影忍者大学生HTML网页制作作品 简单漫画网页设计成品 dreamweaver学生网站模板
  18. 怎么给文件夹加密码 电脑文件夹加密方法
  19. 【VSCode】切换文件与编辑器的快捷键
  20. Linux通过df -h查看磁盘空间满,但实际占用却没有那么大

热门文章

  1. Mac中安装Tomcat
  2. java.sql.SQLException: Unsupported character encoding 'utf8mb4'.
  3. bitblt简易使用教程
  4. 基于JAVA基于网络平台个人博客系统计算机毕业设计源码+系统+lw文档+部署
  5. 韩国:以网络为基础打造的无缝移动连接型智慧城市
  6. 引流软件之唱吧引流脚本演示引流教学
  7. Java代码签名与认证
  8. 基于QQ用户名密码方式爬取邮件数据
  9. emacs .emacs_使用Emacs修改您的Git存储库,并获得Griffon 0.9发行说明的先睹为快
  10. 一文读懂高温厚膜电路