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()

    运行示例,得出词云:

  • 相关阅读:
    Feature fake , new view in comment.
    MeeGo Architect
    小米手机 怪诞行为经济学
    [转载]ten years as a programmer
    C++ 头文件
    关于AGILE/TDD 和传统的design
    你是否在开发正确的产品
    正确的创业
    MeeGo架构
    Unit Test
  • 原文地址:https://www.cnblogs.com/me-zzy/p/10581152.html
Copyright © 2011-2022 走看看