|
|
import pandas as pd
|
|
|
from collections import Counter
|
|
|
|
|
|
# 读取TXT文件并统计AI相关关键词
|
|
|
def count_ai_keywords(file_path, output_excel):
|
|
|
# 定义与AI技术相关的关键词列表
|
|
|
ai_keywords = [
|
|
|
"AI", "人工智能", "Machine learning", "机器学习", "Deep learning", "深度学习",
|
|
|
"Neural network", "神经网络", "自然语言处理", "Natural language processing",
|
|
|
"计算机视觉", "Computer vision", "Robotics", "机器人", "自动化", "Automation",
|
|
|
"人脸识别", "Face recognition", "大数据", "数据挖掘", "智能系统", "自动驾驶", "无人驾驶"
|
|
|
]
|
|
|
|
|
|
# 用来存储统计结果的Counter
|
|
|
keyword_count = Counter()
|
|
|
keyword_danmakus = {keyword: [] for keyword in ai_keywords} # 存储含有每个关键词的弹幕
|
|
|
|
|
|
# 读取文件
|
|
|
with open(file_path, 'r', encoding='utf-8') as file:
|
|
|
for line in file:
|
|
|
# 遍历每个关键词,统计弹幕中包含关键词的数量,并记录弹幕
|
|
|
for keyword in ai_keywords:
|
|
|
if keyword.lower() in line.lower(): # 统计关键词忽略大小写
|
|
|
keyword_count[keyword] += 1
|
|
|
keyword_danmakus[keyword].append(line.strip()) # 将弹幕加入对应关键词列表
|
|
|
|
|
|
# 获取排名前8的关键词
|
|
|
top_keywords = [keyword for keyword, _ in keyword_count.most_common(8)]
|
|
|
|
|
|
print("AI 技术相关的前8条弹幕关键词统计:")
|
|
|
for keyword, count in keyword_count.most_common(8):
|
|
|
print(f"{keyword}: {count} 条弹幕")
|
|
|
|
|
|
# 创建一个DataFrame,将前8名关键词的弹幕按列存储
|
|
|
df_dict = {}
|
|
|
for keyword in top_keywords:
|
|
|
df_dict[keyword] = keyword_danmakus[keyword]
|
|
|
|
|
|
# 将弹幕写入Excel,每个关键词作为一列
|
|
|
df = pd.DataFrame(dict([(k, pd.Series(v)) for k, v in df_dict.items()]))
|
|
|
df.to_excel(output_excel, index=False)
|
|
|
|
|
|
print(f"弹幕已保存至 {output_excel}")
|
|
|
|
|
|
# 文件路径
|
|
|
file_path = "danmakus_2024_olympics.txt"
|
|
|
output_excel = "top_ai_danmakus.xlsx"
|
|
|
|
|
|
# 调用函数并统计并保存至Excel
|
|
|
count_ai_keywords(file_path, output_excel)
|