Python中jieba库的介绍与使用
作者:Algorithm-007 发布时间:2021-05-09 11:45:55
前言:
jieba是优秀的中文分词第三方库,由于中文文本之间每个汉字都是连续书写的,我们需要通过特定的手段来获得其中的每个词组,这种手段叫做分词,我们可以通过jieba库来完成这个过程。
目录:
一、jieba库基本介绍
(1)jieba库概述
① jieba是优秀的中文分词第三方库
②中文文本需要通过分词获得单个的词语③ jieba是优秀的中文分词第三方库,需要额外安装
④jieba库提供三种分词模式,最简单只需掌握一个函数
(2)jieba分词的原理
①分词依靠中文词库
② 利用一个中文词库,确定汉字之间的关联概率
③ 汉字间概率大的组成词组,形成分词结果
④ 除了分词,用户还可以添加自定义的词组
二、jieba库使用说明
(1)jieba分词的三种模式
精确模式、全模式、搜索引擎模式
① jieba.cut(s) 精确模式:把文本精确的切分开,不存在冗余单词:
② jieba.lcut(s,cut_all=True) 全模式:把文本中所有可能的词语都扫描出来,有冗余:
③jieba.lcut_for_search(s) 搜索引擎模式:在精确模式基础上,对长词再次切分:
三:jieba库的安装
因为 jieba 是一个第三方库,所有需要我们在本地进行安装:
ⅠIDLE中jieba库的安装:
Windows 下使用命令安装:在联网状态下,在命令行下输入 pip
install jieba 进行安装,安装完成后会提示安装成功。具体过程如图:
① Win + r 打开运行框并输入cmd打开指令框:
②在指令框输入“pip install jieba”并按下回车等待下载:
③ 当出现“Successfully instll”,则表示安装成功!
Ⅱ Pycharm中jieba库的安装:
打开 settings,搜索 Project Interpreter,在右边的窗口选择 + 号,点击后在搜索框搜索 jieba,点击安装即可。具体过程如图:
① 点击左上角Files中的Settings:
② [endif]找到“Project”中的“python interpreter”,并点击其中的“+”:
③在搜索栏中搜索“jieba”,并点击左下角Install Package:
④ 当出现“Successfully instll
jieba”,则表示jieba库安装成功!
四:实例-文本词频统计
Jieba库最强大的功能之一就是对文章出现的词汇进行计数统计,即计算词频,对于一篇文章或者一部著作,我们可以通过以下步骤对出现的单词进行统计:
源代码:
注:
① encoding=’ANSI’:将打开的文本格式设为ANSI形式
② read(size):方法从文件当前位置起读取size个字节,若无参数size,则表示读取至文件结束为止,它范围为字符串对象。
③items
= list(counts.items):将counts中的元素存入items表格中。
④ key = lambda x:x[1]:等价于 def func(x):
return x[1]
⑤ reverse = True:列表反转排序,不写reverse = True 就是列表升序排列,括号里面加上reverse =True 就是降序排列!
⑥ {0:<10}{1:>5}:<表示左对齐,>表示右对齐,数字表示宽度,<10表示左对齐,并占10个位置,>5表示右对齐,占5个位置。
运行结果:
如上运行结果有两个不足之处,一是词汇中出现了“却说”、“丞相”、“二人”等人名以外的单词,我们需要把这些单词去除;二是“孔明”与“孔明说”、“曹操”与“丞相”等的是同一人,我们需要把它们合并同类项,将代码进行优化后,我们得到:
运行结果:
相对于第一个程序,这个程序更为严谨与完整,已经得到了大致得到所需结果,但它还没有完全解决排除非人名这一问题,所以在该基础之上继续使用排除人名的方法去完善这一程序……
总结:
使用jieba库对一段文本进行词频的统计是一件非常有意思的事,我们只需要使用这第三方库,就可以在不阅读文本的情况下,得到该文本的高频率词汇。但jieba库的作用远远不止于此,它更多的作用等着我们去挖掘。总的来说,jieba库是一个优秀的中文分词第三方库,它在我们的程序中正大放光芒!
来源:https://blog.csdn.net/weixin_61631131/article/details/124274495
猜你喜欢
- oracle命令行删除用户: connect / as sysdba; shutdown abort; startup; drop user
- PyQt5中信号与槽可以说是对事件处理机制的高级封装,如果说事件是用来创建窗口控件的,那么信号与槽就是用来对这个控件进行使用的,比如一个按钮
- 作为一个信号库,使用时候是支持一对一以及一对多的订阅模式,可以实现发送数据等,一般情况下,只要能够使用到Blinker的,一般都是应用在技术
- 元素的CSS样式,除了包括内联的(即通过style属性加上的)样式定义外,还有页面嵌入的css和外部引入的css两种方式。但在JS中通过el
- python2.7yum install -y zlib zlib-devel openssl openssl-devel mysql-de
- 本人非计算机,亦非心理学,或者交互设计,更非设计专业出身,因此什么都是半桶水。即使如此,依然靠着兴趣寻找乐趣。对于设计,爱之,但没有受过系统
- 一个ASP文件通常包含HTML标签,有时和一个HTML文件非常类似。然而,ASP文件(除了包含HTML标签外),还可以包括服务器的脚本程序,
- 问:如何让内联框架里面的网页背景透明?(用iframe嵌套一网页,怎么能够设置其背景为透明以便能显示父框架中网页的背景图?)答:这是需要 I
- 序言本文所提及的VTD-XML并非本文作者原创,作者只是对它进行介绍。问题通常当我们提起XML的使用时,最头痛的部分便是XML的verbos
- 这两天在用python的bottle框架开发后台管理系统,接口约定使用RESTful风格请求,前端使用jquery ajax与接口进行交互,
- 有时需要获取远程网站的某些信息,而服务器又限制了GET方式,只能通过POST数据提交,这个时候我们可以通过asp来实现模拟提交post数据,
- Cookies,有些人喜欢它们,有些人憎恨它们。但是,很少有人真正知道如何使用它们。现在你可以成为少数人中的成员-可以自傲的Cookie 大
- 第三章 XML的术语提纲:导言 一.XML文档的有关术语 二.DTD的有关术语导言初学XML最令人头疼的就是有一大堆新的术语概念要理解。由于
- os.system()和os.popen()概述大家搞python与操作系统交互时,必须掌握的两个方法就是os.system()和os.po
- 本文实例讲述了python生成器用法。分享给大家供大家参考,具体如下:1. 生成器利用迭代器,我们可以在每次迭代获取数据(通过next()方
- 简介显示大量已经按类别(不是很多)排序的数据但没有类别分界线,用户很难找到所需要的类别。例如,数据库中只有9个类别(8个不同的类别和1个nu
- 一提起Google的产品,大多数人可能都会想到用一个词来形容,“简洁”。简单得来又实用,这就是Google的产品设计方针了。Jon Wile
- 最近网上流行着一些采集程序,更多人拿着这些东西在网上叫卖,很多不太懂的人看着那些程序眼羡,其实如果你懂一些ASP,了解自动采集程序的原理后,
- 本文实例为大家分享了H5+css3+js搭建带验证码的登录页面,供大家参考,具体内容如下login.html<!DOCTYPE HTM
- 前言本文将给大家简单介绍关于区块链(BlockChain)的相关知识,并用Python做一简单实现。下面话不多说,来一起看看详细的介绍:什么