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)