• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    python jieba库的基本使用

    一、jieba库概述

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

    二、jieba库安装

    pip install jieba

    三、jieba分词的原理

    jieba分词依靠中文词库

    四、jieba分词的3种模式

    五、jieba库常用函数

    函数 描述
    jieba.lcut(s) 精确模式,返回一个列表类型的分词结果
    jieba.lcut(s,cut_all=True) 全模式,返回一个列表类型的分词结果,存在冗余
    jieba.lcut_for_search(s) 搜索引擎模式,返回一个列表类型的分词结果,存在冗余
    jieba.lcut(s) 精确模式,返回一个列表类型的分词结果
    jieba.add_word(s) 向分词词典增加新词w

    例子:

    >>> jieba.lcut("中国是一个伟大的国家")
    ['中国', '是', '一个', '伟大', '的', '国家']
    
    >>> jieba.lcut("中国是一个伟大的国家", cut_all=True)
    ['中国', '国是', '一个', '伟大', '的', '国家']
    
    >>> jieba.lcut_for_search("中华人民共和国是伟大的")
    ['中华', '华人', '人民', '共和', '共和国', '中华人民共和国', '是', '伟大', '的']

    六、文本词频示例

    问题分析

    https://python123.io/resources/pye/hamlet.txt

    https://python123.io/resources/pye/threekingdoms.txt

    代码如下:

    def getText():
     # 打开 hamlet.txt 这个文件
     txt = open("hamlet.txt", "r").read()
     # 避免大小写对词频统计的干扰,将所有单词转换为小写
     txt = txt.lower()
     # 将文中出现的所有特殊字符替换为空格
     for ch in '|"#$%^*()_+-=\\`~{}[];:>?/':
     txt = txt.replace(ch, " ")
     # 返回一个所以后单词都是小写的,单词间以空格间隔的文本
     return txt
    
    hamletTxt = getText()
    # split() 默认使用空格作为分隔符
    words = hamletTxt.split()
    counts = {}
    for word in words:
     counts[word] = counts.get(word,0) + 1
    items = list(counts.items())
    items.sort(key=lambda x:x[1], reverse=True)
    for i in range(10):
     word, count = items[i]
     print("{0:10}{1:>5}".format(word,count))

    上面代码中的

    items.sort(key=lambda x:x[1], reverse=True)

    是根据单词出现的次数进行排序,其中使用了 lambda 函数。更多解释请看:
    https://www.runoob.com/python/att-list-sort.html

    下面使用 jieba 库来统计《三国演义》中任务出场的次数:

    import jieba
    txt = open("threekingdoms.txt","r",encoding="utf-8").read()
    words = jieba.lcut(txt)
    counts = {}
    for word in words:
     if len(word) == 1:
     continue
     else:
     counts[word] = counts.get(word, 0) + 1
    
    items = list(counts.items())
    items.sort(key=lambda x:x[1], reverse=True)
    for i in range(15):
     word, count = items[i]
     print("{0:10}{1:>5}".format(word,count))

    运行结果:

    曹操  953
    孔明  836
    将军  772
    却说  656
    玄德  585
    关公  510
    丞相  491
    二人  469
    不可  440
    荆州  425
    玄德曰  390
    孔明曰  390
    不能  384
    如此  378
    张飞  358

    我们可以看到得出的结果与我们想象的有些差异,比如

    所以我们需要对上面代码进行优化,在词频统计的基础上,面向问题改造我们的程序。

    下面是《三国演义》人物数量统计代码的升级版,升级版中对于某些确定不是人名的词,即使做了词频统计,也要将它删除掉。使用寄一个集合excludes来接收一些确定不是人名但是又排序比较靠前的单词列进去。

    import jieba
    txt = open("threekingdoms.txt","r",encoding="utf-8").read()
    excludes = {"将军","却说","荆州","二人","不可","不能","如此"}
    words = jieba.lcut(txt)
    counts = {}
    for word in words:
     if len(word) == 1:
     continue
     elif word == "诸葛亮" or word == "孔明曰":
     rword == "孔明"
     elif word == "关公" or word == "云长":
     rword == "关羽"
     elif word == "玄德" or word == "玄德曰":
     rword == "刘备"
     elif word == "孟德" or word == "丞相":
     rword == "曹操"
     else:
     rword = word
     counts[rword] = counts.get(rword, 0) + 1
    
    items = list(counts.items())
    items.sort(key=lambda x:x[1], reverse=True)
    for i in range(15):
     word, count = items[i]
     print("{0:10}{1:>5}".format(word,count))

    运行结果:

    曹操  963
    孔明  847
    张飞  366
    商议  359
    如何  352
    主公  340
    军士  320
    吕布  303
    左右  298
    军马  297
    赵云  283
    刘备  282
    引兵  279
    次日  278
    大喜  274

    可以看出还是有像“商议”、“如何”等不是人物的词出现在统计结果,我们将这些词加入到 excludes 中,多次运行程序后最后得到《三国演义》任务出场顺序前20:

    七、文本词频统计问题举一反三

    应用问题扩展

    以上内容资料均来源于中国大学MOOC网-北京理工大学Python语言程序设计课程
    课程地址:https://www.icourse163.org/course/BIT-268001

    以上就是python jieba库的基本使用的详细内容,更多关于python jieba库的资料请关注脚本之家其它相关文章!

    您可能感兴趣的文章:
    • Python jieba库分词模式实例用法
    • Python jieba库用法及实例解析
    • Python基于jieba库进行简单分词及词云功能实现方法
    • Python中jieba库的使用方法
    上一篇:python中的bool数组取反案例
    下一篇:Python多进程与多线程的使用场景详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    python jieba库的基本使用 python,jieba,库,的,基本,使用,