1.引言
要说21年什么概念最火,那元宇宙三个字绝对榜上有名,这个词一经出现,就引发了科技界和投资界的广泛关注。
今天我们就来通过分析up主【小宁子同学】科普视频《元宇宙到底是什么》的弹幕信息,看能不能发现一些有趣的信息。
2.网页分析
我们知道某站的弹幕数据有现成的接口,只需要找到对应视频的cid值即可。
从上图可以看到,弹幕一共2350条,视频的cid的值为441219274.
接下来我们访问接口,获取数据。
网址:http://comment.bilibili.com/441219274.xml
找到了弹幕所在的网址,我们就可以开始获取对应的数据啦。
3.数据获取
我们接下来使用以下爬虫代码,直接对上述我们得到的网址进行数据获取,代码如下:
from bs4 import BeautifulSoup
import pandas as pd
import requests
def get_url_data(url,save_file):
html = requests.get(url).content
# print(html)
html_data = str(html, 'utf-8')
soup = BeautifulSoup(html_data, 'lxml')
retsults = soup.find_all('d')
comments = [comment.text for comment in retsults]
comments_dict = {'comment': comments}
df = pd.DataFrame(comments_dict)
df.to_csv(save_file, encoding='utf-8')
if __name__ == "__main__":
url = 'http://comment.bilibili.com/441219274.xml'
save_file = './data/data.csv'
get_url_data(url,save_file)
最后我们打开保存的data.csv文件来查看我们最终获取的弹幕数据。
第1条,这是近期看的几个元宇宙视频讲的最好的一个。
哈哈哈,毕竟我收藏的宝藏up主,讲解真的还是很赞的哟。
推荐大家有时间的话去观看原视频哟。
4.数据可视化
接着利用jieba分词,对上述爬取到的数据生成词云。
代码如下:
from wordcloud import WordCloud,ImageColorGenerator
import matplotlib.pyplot as plt
import pandas as pd
import jieba
def parse_data(csv_file,bake_img_file,font_file,stop_words_file,result_file):
df = pd.read_csv(csv_file,header=None)
text = ''
for line in df[1]:
text += ' '.join(jieba.cut(line,cut_all=False))
backgroud_image = plt.imread(bake_img_file)
stop_words = open(stop_words_file, encoding="utf8").read().split("\n")
wc = WordCloud(
background_color='white',
mask = backgroud_image,
font_path=font_file,
max_words=2000,
max_font_size=80,
stopwords=stop_words,
random_state=30
)
wc.generate_from_text(text)
process_word = WordCloud.process_text(wc,text)
# print(process_word.items())
sort = sorted(process_word.items(),key=lambda e:e[1],reverse=True)
print(sort[:50])
img_colors = ImageColorGenerator(backgroud_image)
wc.recolor(color_func=img_colors)
plt.imshow(wc)
plt.axis('off')
wc.to_file(result_file)
print("done")
if __name__ == "__main__":
csv_file = './data/data.csv'
bake_img_file = './img/heart.jpeg'
font_file = './font/SimHei.ttf'
stop_words_file = './data/stopwords-zh.txt'
result_file = './result/result_heart.jpg'
parse_data(csv_file,bake_img_file,font_file,stop_words_file,result_file)
上述代码使用的背景图为心形图,原图如下:
使用上述代码生成的词云图如下:
所以观察上述词云图,大家对元宇宙的理解:虚拟世界、概念、游戏、货币、金融、炒等为高频词。
哈哈哈,关于弹幕还有一些对主播的评价的,比如漂亮、老婆等也出现在分词后的结果里啦,果然宝藏Up主不仅知识渊博,人还好看。。。
当然我们也可以使用其他背景图,来看下我们生成的其他效果图。
大树状词云图:
小猪佩奇版词云图:
5.总结
下面这段内容,来自知乎。
元宇宙是整合多种新技术而产生的新型虚实想融的互联网应用和社会形态。
元宇宙基于扩展现实技术提供沉浸式体验,基于数字孪生技术生成现实世界的镜像,基于区块链技术搭建经济体系,将虚拟世界与现实世界在经济系统,社交系统,身份系统上密切融合,并且允许每个用户进行内容生产和世界编辑。
嗯捏,总之元宇宙是一个不断发展不断演变的概念,不同参与者以自己的方式不断丰富它的含义。
万水千山总是情,点个赞来行不行。
6 参考
关注公众号《AI算法之道》,获取更多AI算法资讯。
关注公众号,后台回复元宇宙,即可获取完整代码。