zoukankan      html  css  js  c++  java
  • 【大数据】中文词频统计

    作业来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2773

    中文词频统计

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

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

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

    pip install jieba

    import jieba

    ljieba.lcut(text)

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

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

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

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

    转换代码:scel_to_text

    5. 生成词频统计

    6. 排序

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

    stops

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

    import jieba

    ##########文件操作##########
    #读取小说文本
    f = open("解忧杂货店-东野圭吾.txt","r",encoding='UTF-8')
    text = f.read()#读取文件
    f.close()#关闭文件

    #读取停用词
    f_stop = open("stops_chinese1.txt","r",encoding='utf-8')
    stop = f_stop.read()#读取文件
    f_stop.close()#关闭文件
    ##########文件操作##########

    #删除停用词
    for s in stop:
    text = text.replace(s, "");
    text = text.replace(' ', '')
    list = jieba.lcut(text)

    #更新词库
    jieba.add_word('杂货店')
    jieba.add_word('东野圭吾')
    jieba.load_userdict('人物.txt')
    #jieba.lcut_for_search()

    dict = {}
    for l in list:
    dict[l] = list.count(l);#获取单词数目

    d = sorted(dict.items(),reverse = True,key = lambda d:d[1]); #排序

    w_text = " "
    for i in d:
    w_text = w_text + i[0] + " "

    print("前20个单词出现频数为:")
    for i in range(20):
    print(d[i][0]," : ",d[i][1]);


    import pandas as pd
    pd.DataFrame(data = d).to_csv('count.csv',encoding = 'utf-8')
    #保存为.csv格式

    #生成词云
    from wordcloud import WordCloud
    import matplotlib.pyplot as plt
    wl_split=''.join(w_text)
    mywc = WordCloud().generate(wl_split)
    plt.imshow(mywc)
    plt.axis("off")
    plt.show()

    9. 生成词云。

    安装词云:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple wordcloud

    下载安装:下载 https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud

    安装 找到下载文件的路径  pip install wordcloud-1.5.0-cp37-cp37m-win_amd64.whl

    配置:

    在WordCloud安装的目录下找到WordCloud.py文件,对源码进行修改。

    编辑wordcloud.py,找到FONT_PATH,将DroidSansMono.ttf修改成msyh.ttf。这个msyh.ttf表示微软雅黑中文字体。

    在同一个目录下放置msyh.ttf字体文件供程序调用(字体可以在C:WindowsFonts复制)

    使用:

    1、引入模块

    from wordcloud import WordCloud

    import matplotlib.pyplot as plt

    2、导入文本

      准备生成词云的文本word_text =' '.join(wordlist)  #是以空格分隔的字符串

    4、生成词云

    mywc = WordCloud().generate(wl_split)

    5、显示词云

    plt.imshow(mywc)

    plt.axis("off")

    plt.show()

     

  • 相关阅读:
    AIMS 2013中的性能报告工具不能运行的解决办法
    读懂AIMS 2013中的性能分析报告
    在线研讨会网络视频讲座 方案设计利器Autodesk Infrastructure Modeler 2013
    Using New Profiling API to Analyze Performance of AIMS 2013
    Map 3D 2013 新功能和新API WebCast视频下载
    为Autodesk Infrastructure Map Server(AIMS) Mobile Viewer创建自定义控件
    ADN新开了云计算Cloud和移动计算Mobile相关技术的博客
    JavaScript修改css样式style
    文本编辑神器awk
    jquery 开发总结1
  • 原文地址:https://www.cnblogs.com/Richard-V/p/10552515.html
Copyright © 2011-2022 走看看