bilibili(2)-弹幕语言处理分析

bilibili数据分析-弹幕语言分析

前面爬虫爬取bilibili视频信息进行数文章中做了爬虫的源代码和思路以及基础播放数据的思路,今天继续上次的文章,对弹幕语言进行分析。

1.载入所需要的库包

#xml包里进行解析的方法
import xml.etree.ElementTree as ET
import pandas as pd
import numpy as np
import jieba
#scipy中处理图像的函数
from scipy.misc import imread
from wordcloud import WordCloud,ImageColorGenerator
import matplotlib.pyplot as plt
%matplotlib inline
import warnings
warnings.filterwarnings('ignore')

2.解析弹幕xml文件

定义解析xml的方法,获取节点

#解析xml
def parseXml(file):
    text_all = ''''''
    tree = ET.parse(file)
    #获取节点
    root = tree.getroot()
    for child in root:
        if child.tag == 'd':
            text_all = text_all + child.text
    return text_all

以B站敖厂长的“贪玩蓝月”视频弹幕作为事例

text_all = parseXml('tanwanlanyue.xml')

3.绘制词云

载入准备好的背景图片和字体,为词云做美化

#设置背景图片以及字体
back_color = imread('bilibili.png')
font = 'Tensentype-DouDouJ.ttf'

设置wordcloud的参数,背景颜色为白色,最大词汇量会1000,面板遮罩为载入好的图片,字体。

# 获取WordCloud对象
wc = WordCloud(background_color='white',
              max_words=1000,
              mask=back_color,
              font_path = font,
              random_state = 15 )

使用jieba分词,生成迭代器,载入数据为空格字符串。

# jieba分词,形成有空格的字符串
word_list = []
word_generator = jieba.cut(text_all,cut_all=False)
for word in word_generator:
    word_list.append(word)
text = ' '.join(word_list)

wc.generate(text)

绘制词云图片

plt.figure(figsize=(20,10))
plt.axis('off')
plt.imshow(wc)

以背景图片的主色彩来做字体颜色

#获取背景图片的色彩
image_colors = ImageColorGenerator(back_color)
plt.figure(figsize=(20,10))
plt.imshow(wc.recolor(color_func=image_colors))
plt.axis('off')
plt.show()

4.弹幕情感分析

运用准备好的停用词、情感词、否定词等词典,载入对文本进行处理

#载入停用词
f=open('stopword.dic')  
stopwords = f.readlines()  
stopwords=[i.replace("\n","") for i in stopwords]  

from collections import defaultdict  

#载入情感词  
f1 =open("BosonNLP_sentiment_score.txt")  
senList = f1.readlines()  
senDict = defaultdict()  
for s in senList:  
    s=s.replace("\n","")  
    senDict[s.split(' ')[0]] = float(s.split(' ')[1])  

#载入否定词  
f2=open("notDict.txt")  
notList = f2.readlines()  
notList=[x.replace("\n","") for x in notList if x != '']  

#载入程度副词  
f3=open("degreeDict.txt")  
degreeList = f3.readlines()  
degreeDict = defaultdict()  
for d in degreeList:  
    degreeDict[d.split(',')[0]] = float(d.split(',')[1])

#将文本数据进行分词,载入列表
def sent2word(sentence):
    seglist = jieba.cut(sentence)
    segResult = []
    for w in seglist:
        segResult.append(w)
    newSent = []
    #如果词汇是在停用词中,则过滤掉
    for word in segResult:
        if word in stopwords:
            continue
        else:
            newSent.append(word)
    return newSent

t = []
t.append(sent2word(text_all))

#评分方法
def word_score(word_list):
    id = []
    for i in word_list:
        if i in senDict.keys():
            id.append(1)
        elif i in notList:
            id.append(2)
        elif i in degreeDict.keys():
            id.append(3)
    
    word_nake = []
    for i in word_list:
        if i in senDict.keys():
            word_nake.append(i)
        elif i in notList:
            word_nake.append(i)
        elif i in degreeDict.keys():
            word_nake.append(i)
    
    score = 0
    w = 1
    score0 = 0
    for i in range(len(id)):
        if id[i] == 1:
            score0 = w*senDict[word_nake[i]]
            w = 1
        elif id[i] == 2:
            w = -1
        elif id[i] == 3:
            w = w*degreeDict[word_nake[i]]
        score = score+score0
        score0 = 0
    return score

导出为DataFrame便于处理数据。

score_list = []
for i in t[0]:
    score_list.append(class_score(i))
score_df = pd.DataFrame()
score_df['word'] = t[0]
score_df['score'] = score_list
score_df = score_df.drop_duplicates('word',keep='first')

这是负面评分评价,分值越低越消极:



这是正面评分评价(充满了讥讽-笑),分值越高越积极:


5.bilibili人气视频弹幕分析

1.咬人猫-极乐净土 播放量1336.6W

作为舞蹈区的播放量大人,视频播放量一直在B站居高不下,up主咬人猫一直以可爱的形象出现在视频中,也因此收获了一大批粉丝。

词云:



看到了大大的“啊啊啊”,“喜欢”,也代表了弹幕对于这一视频的主要情感和文字。

情感分析:



整体趋于平滑,情感更偏向于喜欢。


特别在这里解释一下,“prprprpr”是舔屏的拟声词,ssr是阴阳师的鬼神等级,为最高等级。负面情感中“啊啊啊”,“咋办”,“吐血”,“困住”其实是表达对于这一视频里的妹子有多吸引人,无法自拔,咋办,吐血,被视频困住的意思。

2.面筋哥x波澜哥-我的烤面筋融化你的心 播放量610.2W

面筋哥可谓是三月份B站最火的人,和波澜哥,李根,高音哥并称“追梦四人组”,经过鬼畜区大佬的调教和制作,将面筋哥和波澜哥合体为“义结筋澜”的歌曲

词云:



其中“Microsoft YaHei”、“SimHei true”、“Yahei true”是高级弹幕的设置文件(大部分内容为歌词),在此没有做更多的处理,AlanWalk是目前世界DJ电音界的牛人,在此视频中由此调侃AlanWalk看中了面筋哥和波澜哥,以达到娱乐效果。

情感分析:



负极情感词汇其实很多都没有太多表达的意思,咳咳更多的其实是表示一种不可言说的意义。


2.敖厂长-变态做出来的游戏 播放量427.0W

敖厂长是游戏区一股清流,运用独有的游戏知识深度和风趣的解说方式,一直位列游戏区前列,做过很多童年时候玩过或者听过的游戏,深度揭秘其中的秘密和故事。

词云:


整个词云充斥着变态、卧槽,沙耶之歌是日本一款反式转角游戏,主角因为其视角不同,看到的世界也分为现实和血腥世界。

情感分析:


6.总结

其实可以看出,B站整体弹幕风格还是以积极风趣、玩笑一乐为主,这也其实代表了当下很多年轻人所希望的心理状态,在现实世界认真的活着,在虚拟的一面又很风趣的传达快乐。

B站的弹幕已经逐渐发展,超越“论坛”这一缓慢形式的正式交谈,形成了高速流式的非正式随机娱乐。因为接受度和内容理解度的降低,B站的受众群体往往是较为年轻的一代,但其实很多梗或者弹幕中的段子所需要的理解力,也逐渐的提升。这会为年轻一代对于新鲜事物的接受度,自我认知,善恶识别等,形成重要的渠径。这也是需要B站对于弹幕文化的把控和引导。


ps.因为后两个的分词数据没有做压缩,出现了大量的“6666666666”的词汇,导致整体函数图像上扬。后期会加上更改,运用正则进行压缩。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容