• 运用jieba库进行词频统计


    Python第三方库jieba(中文分词)

    一、概述

    jieba是优秀的中文分词第三方库
    - 中文文本需要通过分词获得单个的词语
    - jieba是优秀的中文分词第三方库,需要额外安装
    - jieba库提供三种分词模式,最简单只需掌握一个函数

    二、安装说明

    全自动安装:(cmd命令行)  pip install jieba        

    安装成功显示

    三、特点 —— jieba分词

    1. 原理:jieba分词依靠中文词库

    - 利用一个中文词库,确定中文字符之间的关联概率
    - 中文字符间概率大的组成词组,形成分词结果
    - 除了分词,用户还可以添加自定义的词组

    2. 三种分词模式:

    • 精确模式:试图将句子最精确地切开,不存在冗余单词,适合文本分析;
    • 全模式:把句子中所有的可以成词的词语都扫描出来, 速度非常快,有冗余,不能解决歧义;
    • 搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。

    四、jieba库常用函数

    1
    1. jieba.lcut(s)     #精确模式,返回一个列表类型的分词结果

    代码示例

    1
    jieba.lcut("中国是一个伟大的国家")

    结果输出: ['中国', '是', '一个', '伟大', '的', '国家']

    2. jieba.lcut(s, cut_all=True)     #全模式,返回一个列表类型的分词结果,存在冗余

    代码示例

    jieba.lcut("中国是一个伟大的国家",cut_all=True) 

    结果输出: ['中国', '国是', '一个', '伟大', '的', '国家']

    3. jieba.lcut_for_sear ch(s)     #搜索引擎模式,返回一个列表类型的分词结果,存在冗余

    代码示例

    jieba.lcut_for_search(“中华人民共和国是伟大的")

    结果输出:   ['中华', '华人', '人民', '共和', '共和国', '中华人民共 和国', '是', '伟大', '的']

    4.  jieba.add_word(w)       #向分词词典增加新词w 

    代码示例

    jieba.add_word("蟒蛇语言")

    运用jieba库进行词频统计 

    实例   ——  对西游记第一回进行词频统计

    代码

     
    import jieba
    path_txt = 'C:\\Users\86136\Desktop\西游记.txt'   #文档在电脑上所在位置
    txt = open(path_txt,"r").read()
    excludes = {",",":","“","。","”","、",";"," ","!","?"," ","\n"}
    words = jieba.lcut(txt)
    counts = {}
    for word in words:
        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)
    for i in range(15):
        word, count = items[i]
        print("{0:<10}{1:>5}".format(word,count))
     

    运行结果

    利用jieba库统计三国演义中任务的出场次数

     
    import  jieba
    
    txt = open("D:\\三国演义.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    # 遍历所有词语,每出现一次其对应的值加 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:<5}{1:>5}".format(word, count))
     

     
    好文要顶 关注我 收藏该文  
    0
    0
     
     
     
    « 上一篇: python 汉诺塔程序+用tutle写出库动图
    » 下一篇: PIL库学习总结与运用PIL库对图片美白锐化的处理
    posted @ 2020-04-07 13:55  软锰矿  阅读(6723)  评论(0)  编辑  收藏  举报
     
  • 相关阅读:
    某公司的软件测试笔试题,要是不看书,有的题目还真是不好答
    性能测试面试题总结(答案全)
    最简单实用的docker专题
    什么是LAMP和WAMP,一篇文章和你讲清楚
    版本管理工具Visual SourceSafe的超详细使用教程
    抓包工具Fidder详解(主要来抓取Android中app的请求)
    除了angular/vue/react的新轮子lit
    你可以在浏览器中直接运行 TypeScript 吗?
    Introducing the .NET Hot Reload experience for editing code at runtime
    vscode编辑器快捷方式
  • 原文地址:https://www.cnblogs.com/liuys635/p/16293174.html
Copyright © 2020-2023  润新知