jieba是优秀的中文分词第三方库,由于中文文本之间每个汉字都是连续书写的,我们需要通过特定的手段来获得其中的每个词组,这种手段叫做分词,我们可以通过jieba库来完成这个过程。
(1)jieba库概述
① jieba是优秀的中文分词第三方库
②中文文本需要通过分词获得单个的词语③ jieba是优秀的中文分词第三方库,需要额外安装
④jieba库提供三种分词模式,最简单只需掌握一个函数
(2)jieba分词的原理
①分词依靠中文词库
② 利用一个中文词库,确定汉字之间的关联概率
③ 汉字间概率大的组成词组,形成分词结果
④ 除了分词,用户还可以添加自定义的词组
(1)jieba分词的三种模式
精确模式、全模式、搜索引擎模式
① jieba.cut(s) 精确模式:把文本精确的切分开,不存在冗余单词:
② jieba.lcut(s,cut_all=True) 全模式:把文本中所有可能的词语都扫描出来,有冗余:
③jieba.lcut_for_search(s) 搜索引擎模式:在精确模式基础上,对长词再次切分:
因为 jieba 是一个第三方库,所有需要我们在本地进行安装:
ⅠIDLE中jieba库的安装:
Windows 下使用命令安装:在联网状态下,在命令行下输入 pip
install jieba 进行安装,安装完成后会提示安装成功。具体过程如图:
① Win + r 打开运行框并输入cmd打开指令框:
②在指令框输入“pip install jieba”并按下回车等待下载:
③ 当出现“Successfully instll”,则表示安装成功!
打开 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库是一个优秀的中文分词第三方库,它在我们的程序中正大放光芒!
5人点赞
文章浏览阅读1.6k次,点赞5次,收藏12次。前面我们介绍了CGroup的使用与基本概念,接下来将通过分析源码(本文使用的 Linux2.6.25 版本)来介绍CGroup的实现原理。在分析源码前,我们先介绍几个重要的数据结构,因为CGroup就是通过这几个数据结构来控制进程组对各种资源的使用。cgroup结构体前面介绍过,cgroup是用来控制进程组对各种资源的使用,而在内核中,cgroup是通过cgroup结构体来描述的,我们来看看其定义:structcgroup{unsignedlongfla..._struct list_headtasks;
文章浏览阅读164次。SpringMVCMVC1. 什么是MVC?MVC是一种框架模式,是Model View Controller(模型-视图-控制器)的缩写。Model 模型数据模型,提供要展示的数据,用于封装数据View 视图展示数据Controller 控制器控制模型的数据要在哪一个视图展示2. 作用MVC模式使展示与模型分离,流程控制逻辑、业务逻辑调用与展示分离。最终实现系统的职能分工。3. 优缺点优点耦合性低重用性高生命周期成本低部署快可维护性高有利于软件工程化管理_兔头程序员
文章浏览阅读2.3w次,点赞3次,收藏18次。这几天在宿舍上网的时候其他的舍友反映网络特别的卡。不知道是什么原因。然后我就发现自己的电脑有一个程序,自己走流量而且每秒能达100kb以上对于宿舍8个人共用的一个4M的网线来说已经算是占了好大一部分网速了。在金山流量监控上发现这个程序叫Svchost.exe。这是一个什么程序呢。然后我就尝试禁用。但我发现win7的任务管理器的进程中是找不到这个进程的。然后我通过上网了解了这个进程。 s_svchost.exe -k rpcss
文章浏览阅读728次。我们一直是为了产生对象而定义类(class)的。对象是具有功能的实体,而类是对象的类型分类。这是面向对象的一个基本概念。在继承(inheritance)中,我们将类当做可以拓展的主体,这提高了我们对“类”的认识。类本身还有许多值得讨论的地方。我们将继续深入。static数据成员有一些数据用于表述类的状态。比如Human类,我们可以用“人口”来表示Human类的对象的总数。“人口”直接描述类的状态,..._java中如何用方法来改变一个类的值
文章浏览阅读448次。草儿决定要在最短的时间去一个自己想去的地方,因为草儿的家在一个小镇上,没有火车经过,所以她只能去邻近的城市坐火车。多组输入数据,每组的第一行是三个整数T,S和D,表示有T条路,和草儿家相邻的城市的有S个,草儿想去的地方有D个;接着有T行,每行有三个整数a,b,time,表示a,b城市之间的车程是time小时;(1=接着的第T+1行有S个数,表示和草儿家相连的城市;接着的第T+2行有D个_输入数据:每组的第一行是三个整数t,s和d,表示有t条路,和去往临近城市高铁站、火车
文章浏览阅读6.3w次,点赞33次,收藏76次。例如String str = “abcaaaefdabbhg”; 统计该字符串中每个字符出现的次数,输出: a====5 b====3 c====1 d====1 e====1 f====1 g====1 h====1方法一: 采用HashMappublic static void count(String str){ //将字符串转化为字符数组_java string 统计某个字符出现的次数
文章浏览阅读1.9k次。blog.csdn.net/ffblog/article/details/46558051一.序列1.用于存储一系列的数据2.在内存中,序列就是一块用于存放多个值的连续的内存空间如a=[10,20,30,40]存储示意:3.python中序列结构:str,list,tuple,dict,set..._数据存储是什么python
文章浏览阅读354次,点赞4次,收藏4次。IIR+FIR滤波器语音信号去噪(含滤波前后对比图)完整的代码,包运行;运行操作视频见CSDN资源!适合小白!
文章浏览阅读364次。0. 引言Tensorflow于1.7之后推出了tensorflow hub,其是一个适合于迁移学习的部分,主要通过将tensorflow的训练好的模型进行模块划分,并可以再次加以利用。不过介于推出不久,目前只有图像的分类和文本的分类以及少量其他模型这里先通过几个简单的例子,来展示该hub的使用流程。1. 一个超简单例子1.1 创建一个Module#该文件名为half_plus_two..._tensorflow hub、py
文章浏览阅读1.4k次。Linux利用重定向三步搞定请求百度主页源代码第一步:新建文件描述符,简历与百度通信的socket通道exec 8<> /dev/tcp/www.baidu.com/80命令解释:8:新建的文件描述符<>:既要发送请求,又要接收响应数据/dev/tcp:这个目录看不到,但内核确实有一旦执行该命令,就会新建一个socket连接删除文件描述符:..._linux socket 访问百度
文章浏览阅读7.1k次,点赞21次,收藏19次。C primer plus(第六版) 第七章答案/* 第一题 */#include<stdio.h>#define SPACE ' 'int main(void){ int count_space = 0; int count_line_break = 0; int count_others = 0; int ch; printf("Please pu..._第七章单元测试提交作业6. 单选题(2分)下图中哪个点是最小方差点?( )。a点cb
文章浏览阅读2.7k次。问题在进行深度学习时,显存是一种非常宝贵的资源。但是即便在Ubuntu下,各种各样的系统配置都会不自觉的占用一些显存,导致深度学习难以为继。在本博客中,主要搬运一些查询显存占用原因及处理方法。翻译来源链接https://unix.stackexchange.com/questions/591393/how-to-shift-process-from-gpu-to-cpu-usagehttps://askubuntu.com/questions/1220144/can-somebody-explai_ubuntu root图形界面占显存