导读:近年来,随着NLP技术日益成熟,开源实现的分词工具越来越多,如Ansj、HanLP、盘古分词等。本文我们选取了Jieba进行介绍。

作者:杜振东 涂铭

来源:大数据DT(ID:hzdashuju)

01 Jieba的特点

1. 社区活跃

Jieba在GitHub上已经有25.3k的star数目。社区活跃度高,代表着该项目会持续更新,能够长期使用,用户在实际生产实践中遇到的问题也能够在社区进行反馈并得到解决。

2. 功能丰富

Jieba并不是只有分词这一个功能,它是一个开源框架,提供了很多在分词之上的算法,如关键词提取、词性标注等。

3. 提供多种编程语言实现

Jieba官方提供了Python、C++、Go、R、iOS等多平台多语言支持,不仅如此,还提供了很多热门社区项目的扩展插件,如ElasticSearch、solr、lucene等。在实际项目中,使用Jieba进行扩展十分容易。

4. 使用简单

Jieba的API总体来说并不多,且需要进行的配置并不复杂,适合新手上手。下载完成后,可以使用如下命令进行安装。

pip install jieba

Jieba分词结合了基于规则基于统计两类方法。首先基于前缀词典进行词图扫描,前缀词典是指词典中的词按照前缀包含的顺序排列,如词典中出现了“上”,之后以“上”开头的词都会出现在一起,如词典中出现“上海”一词,进而会出现“上海市”等词,从而形成一种层级包含结构。

如果将词看作节点,词和词之间的分词符看作边,那么一种分词方案则对应着从第一个字到最后一个字的一条分词路径。因此,基于前缀词典可以快速构建包含全部可能分词结果的有向无环图,这个图包含多条分词路径,有向是指全部的路径都始于第一个字、止于最后一个字,无环是指节点之间不构成闭环。

其次,基于标注语料、使用动态规划的方法可以找出最大概率路径,并将其作为最终的分词结果。对于未登录词,Jieba使用了基于汉字成词的HMM模型,采用了Viterbi算法进行推导。

02 Jieba的3种分词模式

Jieba提供了以下3种分词模式。

  1. 精确模式:试图将句子精确地切开,适合文本分析。

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

  3. 搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适用于搜索引擎分词。

下面是使用这3种模式的对比。

import jiebasent = '中文分词是文本处理不可或缺的一步!'
seg_list = jieba.cut(sent, cut_all=True)print('全模式:', '/ ' .join(seg_list)) seg_list = jieba.cut(sent, cut_all=False)
print('精确模式:', '/ '.join(seg_list)) seg_list = jieba.cut(sent)
print('默认精确模式:', '/ '.join(seg_list))seg_list = jieba.cut_for_search(sent)
print('搜索引擎模式', '/ '.join(seg_list))

运行结果如下所示。

全模式:中文/ 分词/ 是/ 文本/ 文本处理/ 本处/ 处理/ 不可/ 不可或缺/ 或缺/ 的/ 一步/ /
精确模式:中文/ 分词/ 是/ 文本处理/ 不可或缺/ 的/ 一步/ !
默认精确模式:中文/ 分词/ 是/ 文本处理/ 不可或缺/ 的/ 一步/ !
搜索引擎模式中文/ 分词/ 是/ 文本/ 本处/ 处理/ 文本处理/ 不可/ 或缺/ 不可或缺/ 的/ 一步/ !

可以看到,在全模式和搜索引擎模式下,Jieba会把分词的所有可能都打印出来。一般直接使用精确模式即可,但是在某些模糊匹配场景下,使用全模式或搜索引擎模式更适合。

关于作者:杜振东,国家标准委人工智能技术专家和AIIA(中国人工智能产业发展联盟)技术专家。拥有8年机器学习与文本挖掘相关技术经验,6年中文自然语言处理相关项目实战经验,擅长PyTorch、TensorFlow等主流深度学习框架,擅长运用NLP前沿技术解决真实项目的难题。

涂铭,数据架构师和人工智能技术专家,曾就职于阿里,现就职于腾讯。对大数据、自然语言处理、图像识别、Python、Java等相关技术有深入的研究,积累了丰富的实践经验。

本文摘编自《会话式AI:自然语言处理与人机交互》,经出版方授权发布。

延伸阅读《会话式AI:自然语言处理与人机交互》

点击上图了解及购买

转载请联系微信:DoctorData

推荐语:腾讯、国家标准委AI专家撰写,详解NLP和人机交互,从算法、实战3维度讲解聊天机器人原理、实现与工程实践。

划重点????

干货直达????

  • 终于有人把智能语音处理讲明白了

  • 终于有人把5G+人工智能讲明白了

  • 终于有人把条件概率和贝叶斯公式讲明白了

  • 手把手教你用ECharts画柱状图

更多精彩????

在公众号对话框输入以下关键词

查看更多优质内容!

PPT | 读书 | 书单 | 硬核 | 干货 讲明白 | 神操作

大数据 | 云计算 | 数据库 | Python | 可视化

AI | 人工智能 | 机器学习 | 深度学习 | NLP

5G | 中台 | 用户画像 1024 | 数学 | 算法 数字孪生

据统计,99%的大咖都完成了这个神操作

????

手把手教你用Jieba做中文分词相关推荐

  1. NLP快速入门:手把手教你用HanLP做中文分词

    导读:随着自然语言处理(Natural Language Processing, NLP)技术日趋成熟,实现中文分词的工具也越来越多.中文分词技术作为中文自然语言处理的第一项核心技术,是众多上层任务的 ...

  2. Python第三方库jieba(中文分词)入门与进阶(官方文档)

    jieba "结巴"中文分词:做最好的 Python 中文分词组件 github:https://github.com/fxsjy/jieba 特点 支持三种分词模式: 精确模式, ...

  3. python用中文怎么说-如何用Python做中文分词?

    打算绘制中文词云图?那你得先学会如何做中文文本分词.跟着我们的教程,一步步用Python来动手实践吧. 需求 在<如何用Python做词云>一文中,我们介绍了英文文本的词云制作方法.大家玩 ...

  4. Py之jieba:Python包之jieba包(中文分词最好的组件)简介、安装、使用方法之详细攻略

    Py之jieba:Python包之jieba包(中文分词最好的组件)简介.安装.使用方法之详细攻略 目录 jieba简介 jieba安装 jieba使用方法 1.进行分词 jieba简介 jieba应 ...

  5. 利用python绘制简易词云图(使用jieba进行中文分词)

    词云(wordcloud)图能过滤掉大量的文本信息,使我们能抓住问题的集中点(一般集中点就是经常提到的点,也就是词频数会比较高).其实制作词云没什么技术含量,主要就是将用于绘制词云的所有词都传给软件, ...

  6. python 英语分词_如何用Python做中文分词?

    打算绘制中文词云图?那你得先学会如何做中文文本分词.跟着我们的教程,一步步用Python来动手实践吧. 需求 在<如何用Python做词云>一文中,我们介绍了英文文本的词云制作方法.大家玩 ...

  7. 使用Python做中文分词和绘制词云

    使用Python做中文分词和绘制词云 李小璐出轨云词图 作为一门编程语言,Python的编写简单,支持库强大,应用场景多,越来越多的人开始将它作为自己的编程入门语言. Python一个比较重要的场景是 ...

  8. 【2023-Pytorch-检测教程】手把手教你使用YOLOV5做麦穗计数

    小麦是世界上种植地域最广.面积最大及产量最多的粮食作物,2021年世界小麦使用量达到7.54亿吨.小麦产量的及时预估对作物生产.粮食价格及粮食安全产生重大影响,单位面积穗数是小麦产量预估研究中的难点及 ...

  9. Python做中文分词

    中文分词 所谓分词即是将文本序列按完整的意思切分成一个一个的词儿,方便进行下一步的分析(词频统计,情感分析等). 由于英文词与词自带空格作为分隔符,相比于中文分词要简单的多.我们在做中文分词时,需要把 ...

最新文章

  1. 全国志愿信息服务器,全国志愿者服务信息系统官网登录,2020全国志愿者服务信息系统官网登录注册入口预约 v1.0-手游汇...
  2. farbox editor是个好东西
  3. python文件拷贝并校验_初级版python登录验证,上传下载文件加MD5文件校验
  4. tp5 ajax 路由,tp5中ajax方式提交表单
  5. select查询语句执行顺序
  6. 微型计算机原理第二版学习辅导,微型计算机原理及应用学习辅导.pdf
  7. dedecms切换模板css,DEDECMS的模板的css的详细解释 -电脑资料
  8. 《Kotlin 极简教程 》第5章 集合类
  9. 深入分析redis cluster 集群安装配置详解
  10. 二维数组和稀疏数组转化
  11. Atiitt 知识图谱的艺术 艾提拉著 目录 1. 常见知识图谱的处理技术 1 2. 常用的公开知识图谱如DBpedia, Freebase, Yago,Openkg等 2 3. 构建知识图谱的方
  12. VML实例-拖动效果
  13. 网易有道 ASR 团队斩获 Interspeech 2021 算法竞赛两项冠军
  14. 静态函数与非静态函数的区别
  15. 通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core? 转自:https://www.cnblogs.com/1996V/p/9037603.html#net1...
  16. 索尼电视投屏声音与画面不同步现象解决方案
  17. Redis开发设计规范及案例分析
  18. Java Solr:(一)Solr 简介
  19. 雄关漫道真如铁,而今迈步从头越(嗨翻C语言)8.6
  20. 《Python+Kivy(App开发)从入门到实践》自学笔记:ScatterLayout布局

热门文章

  1. Qt文档阅读笔记-Timer QML Type 官方解析与实例
  2. oracle ash介绍,Oracle ---- 性能调查之ASH(一)
  3. c++ public 函数名相同_C++虚函数、重载、覆盖
  4. 宁夏小学三年级计算机下册教案,宁夏信息技术教案
  5. mysql php宝塔 root_宝塔面板,脚本命令
  6. 三、Java面向对象编程有四个特征
  7. API:互联网是如何在幕后工作的?
  8. 数据结构之树的存储结构
  9. 4-3:TCP协议之UDP协议
  10. Linux系统编程13:进程入门之Linux中的环境变量的概念及其相关命令(export;env等)main函数的参数