前言:

jieba是优秀的中文分词第三方库,由于中文文本之间每个汉字都是连续书写的,我们需要通过特定的手段来获得其中的每个词组,这种手段叫做分词,我们可以通过jieba库来完成这个过程。

目录:

f47027cfc13b3af7a6e324d949d27fae.png

一、jieba库基本介绍

(1)jieba库概述

① jieba是优秀的中文分词第三方库

②中文文本需要通过分词获得单个的词语③ jieba是优秀的中文分词第三方库,需要额外安装           

④jieba库提供三种分词模式,最简单只需掌握一个函数

 (2)jieba分词的原理

①分词依靠中文词库

②  利用一个中文词库,确定汉字之间的关联概率

③ 汉字间概率大的组成词组,形成分词结果

④ 除了分词,用户还可以添加自定义的词组

二、jieba库使用说明

 (1)jieba分词的三种模式

       精确模式、全模式、搜索引擎模式

①  jieba.cut(s) 精确模式:把文本精确的切分开,不存在冗余单词:

 

bff7a62cec36f6b9564f6150bae3784a.png

e4024eb2bba1b8318a3e8489502d8068.png

② jieba.lcut(s,cut_all=True) 全模式:把文本中所有可能的词语都扫描出来,有冗余:

5f230e1f9a92495abc18eaaf21891980.png

52e4a4c5deb1951c602db0566d13a7e2.png

③jieba.lcut_for_search(s) 搜索引擎模式:在精确模式基础上,对长词再次切分:

 

a7d39f00a896b361c6d46099a48d03fb.png

d39d603949bcc30e0f9318b3a9c288dc.png

三:jieba库的安装

因为 jieba 是一个第三方库,所有需要我们在本地进行安装:

ⅠIDLE中jieba库的安装:

Windows 下使用命令安装:在联网状态下,在命令行下输入 pip

install jieba 进行安装,安装完成后会提示安装成功。具体过程如图:

①  Win + r 打开运行框并输入cmd打开指令框:

 

7100397d55d808455cadf60ab48d151d.png

②在指令框输入“pip install jieba”并按下回车等待下载:

 

a2f8433e85ffcda13b6463b839bee610.png

060a28bb85c063d5a61953ea23c077d5.png

③ 当出现“Successfully instll”,则表示安装成功!

Ⅱ Pycharm中jieba库的安装:

打开 settings,搜索 Project Interpreter,在右边的窗口选择 + 号,点击后在搜索框搜索 jieba,点击安装即可。具体过程如图:

①  点击左上角Files中的Settings:

 

90d06378ceea4b0a33e08607e65d9c5b.png

②  [endif]找到“Project”中的“python interpreter”,并点击其中的“+”:

 

29575b1cbf595fea296d7bf9ce519840.png

③在搜索栏中搜索“jieba”,并点击左下角Install Package:

 

9fcf461a89e097bfd701152297d9633b.png

④ 当出现“Successfully instll

jieba”,则表示jieba库安装成功!

四:实例-文本词频统计

Jieba库最强大的功能之一就是对文章出现的词汇进行计数统计,即计算词频,对于一篇文章或者一部著作,我们可以通过以下步骤对出现的单词进行统计:

369c562f03df396f5008a57d311ae1cb.png

源代码:

70a5398098c44fc7c992167e3445c0d9.png

注:

①  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个位置。

运行结果:

d9eb3530c44e1744fb8f45b56e134579.png

如上运行结果有两个不足之处,一是词汇中出现了“却说”、“丞相”、“二人”等人名以外的单词,我们需要把这些单词去除;二是“孔明”与“孔明说”、“曹操”与“丞相”等的是同一人,我们需要把它们合并同类项,将代码进行优化后,我们得到:

运行结果:

6d25f3633eb99bceda0fba9145ef365c.png

e22d2d192005abc41344af6109689480.png

相对于第一个程序,这个程序更为严谨与完整,已经得到了大致得到所需结果,但它还没有完全解决排除非人名这一问题,所以在该基础之上继续使用排除人名的方法去完善这一程序……

总结:

使用jieba库对一段文本进行词频的统计是一件非常有意思的事,我们只需要使用这第三方库,就可以在不阅读文本的情况下,得到该文本的高频率词汇。但jieba库的作用远远不止于此,它更多的作用等着我们去挖掘。总的来说,jieba库是一个优秀的中文分词第三方库,它在我们的程序中正大放光芒!

 

5人点赞

 

日记本

 

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐