From b8eb1ffd90247c84276131a138c10c0e7e291864 Mon Sep 17 00:00:00 2001 From: pmgp6jfbh <1072906427@qq.com> Date: Thu, 13 Nov 2025 15:43:07 +0800 Subject: [PATCH] ADD file via upload --- analysis.py | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 analysis.py diff --git a/analysis.py b/analysis.py new file mode 100644 index 0000000..28ccb9f --- /dev/null +++ b/analysis.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +import os # 新增:导入os模块用于文件检查 + +class DanmakuAnalyzer: + def __init__(self, danmu_path="./data/all_danmu.txt"): + self.danmu_list = [] + # 新增:检查文件是否存在 + if not os.path.exists(danmu_path): + print(f"错误:弹幕文件 {danmu_path} 不存在") + return + # 新增:异常处理 + try: + with open(danmu_path, "r", encoding="utf-8") as f: + self.danmu_list = [line.strip() for line in f if line.strip()] + except Exception as e: + print(f"读取弹幕文件失败:{e}") + + def analyze(self): + """分析用户观点""" + if not self.danmu_list: # 新增:检查数据是否有效 + print("无有效弹幕数据,无法进行分析") + return + + categories = { + "应用领域": ["学习", "办公", "编程", "写作"], + "成本": ["免费", "付费", "贵"], + "担忧": ["失业", "隐私", "错误"] + } + counts = {k:0 for k in categories} + for danmu in self.danmu_list: + for cat, keywords in categories.items(): + if any(kw in danmu for kw in keywords): + counts[cat] += 1 + print("\n用户观点分析:") + total = len(self.danmu_list) + for cat, cnt in counts.items(): + print(f"- {cat}:{cnt}次提及(占比{cnt/total:.1%})") + +if __name__ == "__main__": + analyzer = DanmakuAnalyzer() + analyzer.analyze() \ No newline at end of file