zoukankan      html  css  js  c++  java
  • 中文词频统计与词云生成

    本次作业要求来自于: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()

    运行示例,得出词云:

  • 相关阅读:
    单链表的反转
    .tar.xz压缩文件的解压
    leetcode Excel Sheet Column Number python
    leetcode Excel Sheet Column Title python
    leetcode Largest Number python
    leetcode Majority Element python
    leetcode Word Break python
    sed命令导致rc.local软链接失效
    Steam内存测试工具
    Ceph pg_num计算
  • 原文地址:https://www.cnblogs.com/me-zzy/p/10581152.html
Copyright © 2011-2022 走看看