【Python可视化】 将 bilibili 弹幕进行可视化(词云图)

上一篇博文说道获取到bilibili视频弹幕后存储到txt文件中,本篇博文就是将txt文件中的博文做一个可视化的展示,可视化的方式采用了词云图的方式

1. 首先还是先导入要使用到的库

import pandas as pd # 用于数据分析
import jieba # 用于分词统计出现的关键词
from wordcloud import WordCloud # 筛选词云图展示的词
# from pyecharts.charts import WordCloud
import matplotlib.pyplot as plt # 实现绘图可视化
from imageio import imread # 图片库,读取照片RGB内容,转换照片格式
# python通过调用warnings模块中定义的warn()函数来发出警告。我们可以通过警告过滤器进行控制是否发出警告消息
import warnings
warnings.filterwarnings("ignore") # 忽略警告信息

2. 然后读取文本文件,并使用lcut()方法进行分词

with open("../result/dan_mu.txt",encoding="utf-8") as f:
    txt = f.read()
txt = txt.split()
data_cut = [jieba.lcut(x) for x in txt]

3. 读取停用词(不展示的词),该文件为提前设置好的,一个词显示为一行

with open("../util/stoplist.txt",encoding="utf-8") as f:
    stop = f.read()
stop = stop.split()
stop = [" ","道","说道","说"] + stop

4. 得到去掉停用词之后的最终词

s_data_cut = pd.Series(data_cut) # 将数据转为一维数组,与Python基本的数据结构List也很相近,其区别是:List中的元素可以是不同的数据类型,而Array(Numpy)和Series中则只允许存储相同的数据类型
all_words_after = s_data_cut.apply(lambda x:[i for i in x if i not in stop])

5. 词频统计

all_words = []
for i in all_words_after:
    all_words.extend(i)
word_count = pd.Series(all_words).value_counts()

6. 词云图的绘制

def view():
    # (1)读取背景图片
    back_picture = imread("../image/lion.jpg")

    # (2)设置词云参数
    wc = WordCloud(
        font_path="C:/Windows/Fonts/simfang.ttf",
                   background_color="white",
                   max_words=2000,
                   mask=back_picture,
                   max_font_size=200,
                   random_state=42
                  )
    wc2 = wc.fit_words(word_count) # 展示的词语

    # (3)绘制词云图
    plt.figure(figsize=(16,8))
    plt.imshow(wc2)
    plt.axis("off")
    plt.show()
    wc.to_file("../result/ciyun.png") # 生成的图片存储路径

最终调用view() 就可以生成对应的词云图了

以上第6步中的代码注释(1)处读取的图片是为了获取生成的词云图的形状,也就是从读取的图片形状(白色以外的图片形状)得出的,结果如下:

【Python可视化】 将 bilibili 弹幕进行可视化(词云图)_第1张图片                  【Python可视化】 将 bilibili 弹幕进行可视化(词云图)_第2张图片

如果不想敲代码,可以选择直接下载压缩包,解压后用 pycharm 运行,下载地址:https://download.csdn.net/download/qq_37251994/12799371?spm=1001.2014.3001.5503

你可能感兴趣的:(Python爬虫,Python数据处理,python,可视化,数据可视化)