• 中文词频统计与词云生成


    本次作业要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2822

    中文词频统计

    1. 下载一长篇中文小说。

    2-7:

    # 从文件读取待分析文本
    with open(r'D:\学习\明朝那些事儿.txt', 'r', encoding='utf-8') as f:
        text = f.read()
    
    # 使用jieba进行中文分词
    import jieba
    # 先更新词库,加入所分析对象的专业词汇,然后进行分词
    jieba.load_userdict(r'D:\学习\text\明朝那些事儿(词库).txt')
    textCut = jieba.lcut(text)
    
    # 排除语法型词汇,代词、冠词、连词等停用词
    with open(r'D:\学习\stops_chinese.txt', 'r', encoding='utf-8') as f:
        stops = f.read().split('
    ')
    tokens = [token for token in textCut if token not in stops]
    
    # 将文本转化为集合
    words_set = set(tokens)
    # 存入字典
    words_dict = {}
    for w in words_set:
        words_dict[w] = tokens.count(w)
    # 字典转换成列表对词语进行词频排序
    words_sort = list(words_dict.items())
    words_sort.sort(key=lambda x: x[1], reverse=True)
    # print(words_sort)
    for w in words_sort:
        print(w)

    运行结果示例:

    8. 输出词频最大TOP20,把结果存放到文件里 

    import pandas as pd
    pd.DataFrame(data=words_sort).to_csv(r'D:\学习\明朝那些事儿.csv',encoding='utf-8')

    运行示例得到:

     

    通过csv文件得出TOP20图表:

    9. 生成词云。 

    # 插入空格把词语分开
    wl_split=' '.join(tokens)
    # 调用generate()方法生成词云
    from wordcloud import WordCloud
    mywc = WordCloud().generate(wl_split)
    # 显示词云
    import matplotlib.pyplot as plt
    plt.imshow(mywc)
    plt.axis("off")
    plt.show()

    运行示例,得出词云:

  • 相关阅读:
    新概念4-16
    答疑汇总-02
    理解Marx-8 9 10晚年的思考 马恩关系再认识 一段思想史的公案
    nefu 116
    nefu 115
    【JZOJ3379】查询【主席树】
    【JZOJ1782】Travel【分层图最短路】
    【洛谷P4550】收集邮票【期望概率】
    【洛谷P1001】A+B Problem
    【JZOJ3339】wyl8899和法法塔的游戏【暴力】
  • 原文地址:https://www.cnblogs.com/me-zzy/p/10581152.html
Copyright © 2020-2023  润新知