zoukankan      html  css  js  c++  java
  • 【python】一篇文章里的词频统计

    一、环境

      1.python3.6

      2.windows系统

      3.安装第三方模块

    pip install wordcloud    #词云展示库
    pip install jieba            #结巴分词
    pip install matplotlib     #图像展示库  

    二、需求

    统计article.txt里的文章的词频

    三、代码

    import collections  #词库统计库,自带模块
    import re       #正则表达式  自带模块
    import wordcloud    #词云展示库,pip install wordcloud
    import jieba        #结巴分词,pip install jieba
    import matplotlib.pyplot as plt     #图像展示库  pip install matplotlib
    
    
    #读取文件
    fn = open('article.txt',encoding='utf-8')    #打开文件
    string_data = fn.read()     #读取整个文件
    fn.close()                  #关闭文件
    
    #文本预处理
    pattern = re.compile(u'	|
    |.|-|:|;|)|(|?|"')  #定义正则表达式匹配模式
    string_data = re.sub(pattern,'',string_data)        #将符合模式的字符去除
    print(string_data)
    #文本分词
    seg_list_exact = jieba.cut(string_data,cut_all=False)   #精确模式分词
    object_list = []
    remove_words = [u'',u'',u'',u'',u'',u'',u'如果',u'通常',u'我们',u'需要',u'随着',u' ',u'',u'',u'',u'',u'',u'',u'']      #自定义去除词库
    # print(seg_list_exact)
    
    for word in seg_list_exact: #循环读出每个分词
        if word not in remove_words:    #如果不在去除词库中
            object_list.append(word)    #分词追加到列表
    # print(object_list)
    
    # # 词频统计
    word_counts = collections.Counter(object_list)  #对分词做词频统计
    word_counts_top10 = word_counts.most_common(10) #获取前10最高频的词
    print(word_counts_top10)    #输出检查
    #
    # # 词频展示
    wc = wordcloud.WordCloud(background_color="black",  # 设置背景颜色
                   max_words=200,  # 设置最大显示的字数
                   font_path="FZSTK.TTF",  # 设置中文字体,词云默认字体是“DroidSansMono.ttf字体库”,不支持中文
                   max_font_size=50,  # 设置字体最大值
                   random_state=30,  # 设置有多少种随机生成状态,即有多少种配色方案
                   )
    #
    wc.generate_from_frequencies(word_counts)   #从字典生成词云
    plt.imshow(wc)      #显示词云
    plt.axis('off')     #关闭坐标轴
    plt.show()          #显示图像

    四、结果展示

  • 相关阅读:
    C++ STL Set使用
    C++ STL算法
    C++ STL List使用
    C++中的构造析构函数
    七、Linux进程调度-应用内核设置调度策略和优先级
    Qcom高通相关汇总
    Cgroup内核文档翻译(8)——/dev/cpuctl/*
    用户进程和内核线程的CPU亲和性设置
    Scheduler内核文档翻译(1)——Documentationschedulersched-tune.txt
    uCgui和emWin的区别
  • 原文地址:https://www.cnblogs.com/lisenlin/p/11661083.html
Copyright © 2011-2022 走看看