You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.1 KiB
37 lines
1.1 KiB
2 months ago
|
import pandas as pd
|
||
|
from collections import Counter
|
||
|
from wordcloud import WordCloud
|
||
|
import matplotlib.pyplot as plt
|
||
|
|
||
|
# 读取弹幕文件
|
||
|
def read_danmakus_from_file(file_path):
|
||
|
with open(file_path, 'r', encoding='utf-8') as file:
|
||
|
return [line.strip() for line in file if line.strip()] # 移除空行并去除每行的前后空白字符
|
||
|
|
||
|
# 生成词云
|
||
|
def generate_wordcloud(danmakus):
|
||
|
# 合并所有弹幕文本
|
||
|
text = ' '.join(danmakus)
|
||
|
# 创建词云对象
|
||
|
wordcloud = WordCloud(
|
||
|
font_path='simhei.ttf', # 设置字体路径,确保支持中文
|
||
|
width=800,
|
||
|
height=400,
|
||
|
background_color='white' # 设置背景颜色
|
||
|
).generate(text)
|
||
|
|
||
|
# 显示词云图
|
||
|
plt.figure(figsize=(10, 5))
|
||
|
plt.imshow(wordcloud, interpolation='bilinear')
|
||
|
plt.axis('off')
|
||
|
plt.show()
|
||
|
|
||
|
# 保存词云图到文件
|
||
|
wordcloud.to_file('wordcloud.png')
|
||
|
|
||
|
# 读取弹幕数据
|
||
|
danmaku_file_path = '弹幕.txt'
|
||
|
danmakus = read_danmakus_from_file(danmaku_file_path)
|
||
|
|
||
|
# 生成词云
|
||
|
generate_wordcloud(danmakus)
|