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


    作业来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2822

    中文词频统计

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

    2. 从文件读取待分析文本。

    3. 安装并使用jieba进行中文分词。

    pip install jieba

    import jieba

    jieba.lcut(text)

    4. 更新词库,加入所分析对象的专业词汇。

    jieba.add_word('天罡北斗阵')  #逐个添加

    jieba.load_userdict(word_dict)  #词库文本文件

    参考词库下载地址:https://pinyin.sogou.com/dict/

    转换代码:scel_to_text

    5. 生成词频统计

    6. 排序

    7. 排除语法型词汇,代词、冠词、连词等停用词。

    stops

    tokens=[token for token in wordsls if token not in stops]

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

    9. 生成词云。

    import jieba
    import pandas as pd
    from wordcloud import WordCloud
    import matplotlib.pyplot as plt
    from scipy.misc import imread
    def getNumber(x):
        y=x[1]
        return y
    file=open(r'F:hongloumeng.txt','r',encoding='UTF-8').read()
    ss=",。;!?”“
    "
    for i in ss:
        file=file.replace(i,'')
    #添加词库
    jieba.load_userdict(r'F:scel	ext红楼梦【官方推荐】.txt')
    #分词
    cun=jieba.lcut(file)
    # cun = set(jieba.lcut(file))
    #读取停用词文件
    fe=open(r'F:stops_chinese.txt','r',encoding='UTF-8').read()
    stops=fe.split('
    ')
    tokens=[token for token in cun if token not in stops]
    dis={}
    for j in tokens:
        if j not in dis:
            dis[j] = 1
        else:
            dis[j] = dis[j]+1
    words_list = list(dis.items())
    words_list.sort(key=getNumber , reverse=True)
    #输出前20
    for k in range(20):
        print(words_list[k])
    #保存为csv文件
    pd.DataFrame(data=words_list).to_csv(r'F:hlm.csv',encoding='UTF-8')
    # 读入图片
    im = imread(r'F:66.jpg')
    wl_split=''.join(cun)
    mywc = WordCloud(background_color='pink',mask= im,margin=2).generate(wl_split)
    plt.imshow(mywc)
    plt.axis("off")
    #显示词云
    plt.show()

    top20:

    词云:

  • 相关阅读:
    python定义函数时的默认返回值
    【UNIX网络编程】配置unp.h和apueerror.h
    【UNIX网络编程】套接字编程简介
    【UNIX网络编程】概述
    【VSCode】Ubuntu下VSC编译运行c++程序
    【UNIX网络编程】传输层:TCP、UDP和SCTP
    nginx跨域配置
    centOS7.*安装nginx和简单使用
    nginx日志切割
    nginx静态资源防盗链
  • 原文地址:https://www.cnblogs.com/zpfs/p/10593947.html
Copyright © 2020-2023  润新知