zoukankan      html  css  js  c++  java
  • 词云图的绘制

    一、过程

     目的:将25000条评论当中的热词提取出来,并制作词云图

     1)数据下载

      链接:https://pan.baidu.com/s/1qJPazyFBSzYqjv8k7eb-VA  提取码:rufi 

      在某路径下(如桌面)新建wordCloud文件夹,将上面下载的数据转移到该文件夹内,在该文件夹内按下shift+鼠标右键,然后选择:在此处打开命令窗口,即开启dos窗口,然后输入jupyter notebook,开始编程

      如果读者并未安装jupyter notebook,安装过程请参考:jupyter notebook的安装与使用

     2)文件读取

    import pandas as pd
    df = pd.read_csv('labeledTrainData.csv', sep='	')
    df.head()

      我们看到下面的运行结果中存在一些斜杠,这些并不是我们想看到的词,因此我们修改上面的代码,加上escapechar参数:

    import pandas as pd
    df = pd.read_csv('labeledTrainData.csv', sep='	', escapechar='\')
    df.head()

      

     3)获取评论列表

      df['review']Series对象,Series对象有tolist方法,返回值的数据类型为列表listdf['review'].tolist()的返回值是每一条评论组成的列表list

      导入BeautifulSoup库,去除评论当中的标签

    review_list = df['review'].tolist()
    from bs4 import BeautifulSoup as bs
    comment_list = [ bs(k, 'lxml').text for k in review_list ]

      第三行代码如果出如下错误:

      需要安装lxml包:

    pip install lxml
    

      从上可以看出经过BeautifulSoup处理,内容部分的<br />已经被去除

     4)去除标点并让所有字母小写

    all_comment = ' '.join(comment_list)
    import re
    pattern = r'[^ws]'
    replace = ''
    all_comment = re.sub(pattern, replace, all_comment)
    all_comment = all_comment.lower()

      关于正则匹配:https://blog.csdn.net/wl_ss/article/details/78241782

     5)词频统计

      首先引入collection中的Counter方法,Counter方法需要填入1个参数,参数的数据类型为列表。Counter方法的返回值数据类型是一个collections.Counter对象,集成了字典dict的一些特性

    from collections import Counter
    word_list = all_comment.split(' ')
    wordCount_dict = Counter(word_list)
    wordCount_dict

      

     6)停顿词删除

      下载停词文件,链接:https://pan.baidu.com/s/1zNp4m83uipKF8zVieZF0sw 提取码:3o0a

    with open('stopwords.txt') as file:
        stopword_list = [k.strip() for k in file]
    for stopword in stopword_list:
        if stopword in wordCount_dict:
            wordCount_dict.pop(stopword)
    wordCount_dict.pop('')
    

     7)取出出现次数排名前200的单词

    sorted(wordCount_dict.items(), key=lambda k:k[1], reverse=True)[0:200]
    

    choices_number = 200
    count_list = sorted(wordCount_dict.items(), key=lambda k:k[1],reverse=True)
    count_list = count_list[:choices_number]
    keyword_list = [ k[0] for k in count_list ]
    value_list = [ k[1] for k in count_list ]
    

     8)利用pyecharts库绘图

      安装包:pip install pyecharts

      wordcloud.add需要填入4个参数,第1个参数是标签,可以为空,第2个参数是出现的单词,第3个参数是单词对应的词频,第4个参数是词云上字体大小

    from pyecharts import WordCloud
    wordcloud = WordCloud(width=800, height=500)
    wordcloud.add('', keyword_list, value_list, word_size_range=[20, 100])
    wordcloud
    

     9)绘图结果

     10)致谢

      本文参考简书:https://www.jianshu.com/p/96b983784dae

      感谢作者的详细过程,让自己学会了词云图制作,再次感谢!

  • 相关阅读:
    软件开发者路线图 从学徒到高手 读后感
    Greplin:搜索你的所有在线社交内容
    黄小琥 / 简单/不简单 / 没那么简单
    讯雷 云系列 不错
    来自Amazon、Cloudera、Microsoft与IBM的HadoopasaService
    FAQs and feedback
    I've Never Been To Me by Charlene with lyrics
    烧香网 历害
    4A公司
    一个新的比较网站,做的不错
  • 原文地址:https://www.cnblogs.com/always-fight/p/10186084.html
Copyright © 2011-2022 走看看