python入门day12(jieba库下载及其使用)

1.jieba库的在安装:jieba是python计算生态中非常优秀的中文分词第三方库,因此我们需要进行额外的安装来得到并使用jieba库,windows环境下,我们使用win + R键,然后在对话框中输入cmd打开命令行,如下图所示,在命令行中我们输入pip install jieba来进行jieba库的安装。成功安装之后我们可以看到下面的提示,显示您已经成功安装jieba库。
在这里插入图片描述
在这里插入图片描述
2.jieba库的原理:jieba的分词是依靠中文词库来进行计算,计算的内容是汉字之间关联成一个词语的概率,他将概率较大的就认为是一个词语;除了它自带的分词之外,用户也可以向jieba添加自定义的词语。
3.jieba库的三种模式:精确模式,搜索引擎模式、全模式
&&&精确模式就是将文本精确地切分成若干个中文单词,且这些单词可以经过组合,精确地还原为文本,其中不存在冗余单词。正是因为精确模式的特性,他也因此成为最常用的jieba模式。
&&&全模式:他会将一段中文文本中所有可能的词语都扫描出来,因此我们可以想见,如果一段文本可以被切分成不同的模式,那么我们切分出来的结果就会有很多的冗余。
&&&搜索引擎模式:他可以将我们精确模式所切分出来的长一些的词语再一次进行精确的切分,进而适合搜索引擎对短词语的搜索。
3.常用函数:jiaba.lcut(s)函数是精确模式,jieba.lcut(s, cut_all = true)形成了全模式
在这里插入图片描述
在这里插入图片描述
通过上图我们不难发现,全模式下的jieba的分词结果确实是出现了冗余。
我们利用精准模式的函数来对一个中文小说(武林外传)进行词频分析,小说的来源我们可以直接在网上进行搜索,将你想要的小说的.txt版或者压缩包进行下载即可,然后进行词频分析,具体的代码实现如下:

import jieba
txt = open("F:all.txt", "r", encoding = 'utf - 8').read()
excludes = {'湘玉', '什么', '老白', '没有', '掌柜的''}
words = jieba.lcut(txt)
counts = {}     #创建一个字典,对文本中的汉字进行分词,通过字典接受
for word in words:
    if len(word) == 1:
        continue
    else:
        counts[word] = counts.get(word, 0) + 1
for word in excludes:
    del counts[word]
items = list(counts.items())        #将字典转换为列表
items.sort(key = lambda x:x[1], reverse = True)    #将列表中的分词进行排序(这里的True中的T必须大写,否则会报错)
for i in range(5):     #打印输出前五位单词
    word, count = items[i]
    print("{0:<10}出场了{1:>5}次".format(word, count))

需要注意的两点是:第一个是代码中的True的首字母必须是大写,否则会报错;第二个是由于我们所下载的剧本的不同可能会导致我们的分析结果有些差异,但是我们主要是掌握这个方法,只要我们掌握了方法,那么结果还会很重要吗?
对于文本来讲,我们有中文文本,同时也就会有英文文本,这二者的分析方法大同小异,但是英文文本要求我们对标点符号进行一定的处理,下面直接给出代码贴图,图片出处为中国大学MOOC嵩天老师的python课程
加粗样式
该文本对英文名著哈姆雷特进行了分析,读者可以和武林外传的词频分析进行对比阅读,发现二者的异同

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值