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

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)