斗鱼弹幕词云简单分析

作者: 梅花鹿数据rieuse | 来源:发表于2017-06-04 18:22 被阅读643次
    大司马老师上课

    一:前言

    上次把斗鱼弹幕数据抓取搞定后,我就拿来试试用词云分析看看效果,简单学习一下。这是弹幕抓拍去分析的对象是斗鱼主播大司马,因为他直播比较搞笑,虽然我不玩游戏,但是之前看他还是有意思。这次我使用的数据是弹幕爬取后保存到text中的,实现代码放在这里:github.com/rieuse/DouyuTV,有了这个数据后续就可以使用词云分析了。

    二:遇到的坑

    第一次用需要安装几个插件:jieba,scipy,wordcloud,但是这个wordcloud在win下面容易出错。解决方法是使用http://www.lfd.uci.edu/~gohlke/pythonlibs/ 网站下载对应的模块,然后复制到你的电脑目录中,之后使用命令行工具进入该文件夹中,然后执行一下安装操作,我是python3.6 64位电脑:pip install wordcloud‑1.3.1‑cp36‑cp36m‑win_amd64.whl其他版本请下载安装对应模块。

    三:简单原理

    • jieba这个模块是用来分词的,把一段文字分解成一个一个的词汇,就像我的锤子手机的大爆炸一样分词。jieba.cut()分词函数提供了三个模式:全模式,精确模式,搜索引擎模式。全模式:速度块,扫描成词的词语,但时会出现歧义的词语
      精确模式:尽可能最准确非切分词语,比较适合作文本分析
      搜索引擎模式:就是精确模式的基础上,对长词再次切分,提高召回率
      这里默认的话就是精确模式。第一次可以不用考虑模式问题,先上来弄出个图给自己美滋滋一下再说。
    • 之后对分词后的数据使用wordcloud模块,进行对词汇分析了
    • 最后使用matplotlib.pyplot,绘图展现出来。

    四:代码展现

    • 1.Python的代码量很少,所以学习还是比其他语言来的舒服。这里的就简单这些代码就实现了词云的目的。我这里导入的文档是弹幕爬取后的,代码在我gituhub中,就是把之前弹幕数据保存到mongodb改成只把弹幕内容保存到text文档中。


      Paste_Image.png
    import jieba,jieba.analyse
    from wordcloud import WordCloud, ImageColorGenerator
    import matplotlib.pyplot as plt
    import os
    import PIL.Image as Image
    import numpy as np
    
    with open('大司马即将上课前后.txt','r',encoding='utf-8') as f:
        text = f.read()
        f.close()
    cut_text = " ".join(jieba.cut(text))  #使用空格连接 进行中文分词
    d = os.path.dirname(__file__) # 获取当前文件路径
    color_mask = np.array(Image.open(os.path.join(d,'img.jpg')))   # 设置图片
    cloud = WordCloud(
        background_color='#F0F8FF',      # 参数为设置背景颜色,默认颜色则为黑色
        font_path="FZLTKHK--GBK1-0.ttf", # 使用指定字体可以显示中文,或者修改wordcloud.py文件字体设置并且放入相应字体文件
        max_words=1000,  # 词云显示的最大词数
        font_step=10,    # 步调太大,显示的词语就少了
        mask=color_mask,  #设置背景图片
        random_state= 15, # 设置有多少种随机生成状态,即有多少种配色方案
        min_font_size=15,  #字体最小值
        max_font_size=232, #字体最大值
        )
    cloud.generate(cut_text)  #对分词后的文本生成词云
    image_colors = ImageColorGenerator(color_mask)  # 从背景图片生成颜色值
    plt.show(cloud.recolor(color_func=image_colors))  # 绘制时用背景图片做为颜色的图片
    plt.imshow(cloud)            # 以图片的形式显示词云
    plt.axis('off')                     # 关闭坐标轴
    plt.show()                          # 展示图片
    cloud.to_file(os.path.join(d, 'pic.jpg'))  # 图片大小将会按照 mask 保存
    
    • 2.执行之后就可以显示出来了:
    直播开始前弹幕

    之后我又对斗鱼主播芜湖大司马直播后一段时间的弹幕分析了一下,结果如下:

    直播开始后弹幕
    • 3.前面是使用自己的词云分析,之后我把我的两个时间段的弹幕内容放到bluemc,这里来分析是这样的:
    Paste_Image.png Paste_Image.png

    五:总结

    通过两个时间段的词云分析,可以看的出来观众说的最多的,关注点是哪些。这次我做的词云也很简单,后续在研究研究让它更美观一些,精准一些。
    贴出我的github地址,我的爬虫代码和学习的基础部分都放进去了,有喜欢的朋友可以点击 start follw一起学习交流吧!github.com/rieuse/DouyuTV

    相关文章

      网友评论

        本文标题:斗鱼弹幕词云简单分析

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