美文网首页
几部电影的词云

几部电影的词云

作者: cnkai | 来源:发表于2017-11-23 12:35 被阅读0次

    前段时间,我们爬取了几部热门的电影,分别是《三生三世》,《战狼》,《二十二》,我们今天 就以这几部为例,进行一个简单的词云的制作。

    我们主要以《二十二》为例,来制作一个评论的词云。

    首先需要安装几个必要的工具库:

    • Pandas 用来实现文件读取和存储,以及必要的数据转换。
    • jieba 一个强大的分词工具,用来实现分词,也是我们实现词云的一个最重要的工具。
    • wordcloud 词云工具,用来实现最终的词云的制作,也是必要的工具。

    下面我们就开始。

    首先需要导入相应的库,并读取我们下载的csv文件。

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    
    df_ershier = pd.read_csv('ershier.csv', encoding='utf-8')
    df_ershier.comment.fillna(' ')
    df_ershier.comment = df_ershier.comment.astype(str)
    

    下面就是实现词云的主要步骤。

    import jieba
    from wordcloud import WordCloud
    import PIL
    
    result = []  # 用来存放切分的词
    
    def parse(raw_text):
        for word in jieba.cut(raw_text):  # raw_text是字符串,也就是我们获取到的全部评论信息
            if len(word) > 1:
                result.append(word)
                
    
    def wordcloudplot(data, file_name):   # data 是以空格分隔的字符串        
        path = 'msyh.ttf'
        alice_mask = np.array(PIL.Image.open('yuan.jpg'))
        stopwords = ['nan', '就是', '还是', '但是', '没有','觉得', '三生三世', '三生', '三世',
                    '还有', '演员', '怎么', '这么', '电影', '这部']
    
        wordcloud = WordCloud(font_path=path, background_color="white",
                              margin=5,
                              width=1000, height=800,
                              mask=alice_mask, max_words=1000, max_font_size=100,
                              stopwords = stopwords, random_state=0)
                        
        wordcloud = wordcloud.generate(data)
        wordcloud.to_file(file_name)
        plt.imshow(wordcloud)
        plt.axis("off")
        plt.show()
    

    下面是执行部分

    raw_text = ' '.join(list(df_ershier.comment))
    parse(raw_text)
    text = ' '.join(result)
    wordcloudplot(text, 'ershier_.jpg')
    

    最后生成如下的词云

    image

    同样的道理,生成如下的《战狼》,《三生三世》

    image image

    相关文章

      网友评论

          本文标题:几部电影的词云

          本文链接:https://www.haomeiwen.com/subject/lckzvxtx.html