GitHub Action
deploy: worker release from GitHub
8ff1b66
"""
Chinese keywords for game review topic detection.
Used in hybrid approach (Keywords + ML Sentiment).
Categories based on common topics in Steam game reviews.
Seed keywords will be expanded using the expand_keywords pipeline.
Structure: topic -> {single_char, compound, phrase}
- single_char: standalone Chinese characters (1 char, prone to false positives)
- compound: multi-char Chinese words or short English words
- phrase: multi-word phrases (EN or ZH)
"""
TOPIC_KEYWORDS: dict[str, dict[str, list[str]]] = {
# =========================================================================
# CORE GAMEPLAY - 核心玩法
# =========================================================================
"Gameplay": {
"single_char": ["刷", "肝"],
"compound": [
"玩法", "游戏性", "机制", "战斗", "任务", "关卡",
"探索", "技能", "装备", "gameplay",
],
"phrase": ["战斗系统"],
},
"Fun": {
"single_char": ["爽", "烂"],
"compound": [
# Positive
"好玩", "有趣", "上瘾", "神作", "佳作", "精品",
"沉浸", "过瘾", "带感", "回血", "爽游",
"解压", "杀时间",
# Negative
"无聊", "枯燥", "乏味", "垃圾", "辣鸡", "粪作",
"失望", "无趣",
],
"phrase": [
"电子伟哥", "治好了", "精神时光屋", "时光屋",
"电子阳痿", "电子ed",
],
},
"Difficulty": {
"single_char": [],
"compound": [
"难度", "简单", "困难", "硬核",
"劝退", "手残", "新手", "上手",
"souls", "魂类",
],
"phrase": ["太难", "太简单"],
},
# =========================================================================
# TECHNICAL - 技术
# =========================================================================
"Performance": {
"single_char": ["卡"],
"compound": [
"优化", "卡顿", "帧率", "帧数", "流畅", "掉帧",
"丝滑", "显卡", "显存", "延迟",
"fps", "cpu", "gpu",
],
"phrase": [
"稳60", "锁60", "解锁帧率", "吃配置", "带不动",
"PPT效果", "幻灯片", "帧生成", "输入延迟", "帧数不稳",
],
},
"Bugs": {
"single_char": [],
"compound": [
"闪退", "崩溃", "卡死", "报错", "存档",
"黑屏", "进不去", "打不开", "未响应", "无响应",
"弹窗", "坏档", "掉线",
"bug", "bugs",
],
"phrase": [
"存档损坏", "无法保存", "卡加载",
"加载失败", "连不上",
],
},
# =========================================================================
# AUDIO-VISUAL - 视听
# =========================================================================
"Graphics": {
"single_char": [],
"compound": [
"画面", "画质", "特效", "建模", "贴图",
"美术", "风格", "场景", "光影",
"4k", "hdr",
],
"phrase": [],
},
"Sound": {
"single_char": [],
"compound": [
"音乐", "音效", "配音", "配乐", "声音",
"原声",
"bgm", "ost",
],
"phrase": ["中文配音"],
},
# =========================================================================
# CONTENT & VALUE - 内容与价值
# =========================================================================
"Content": {
"single_char": [],
"compound": [
"内容", "时长", "流程", "耐玩", "通关",
"主线", "支线", "收集", "小时", "体量",
"注水", "重复", "换皮", "多周目",
"dlc",
],
"phrase": [
"素材复用", "拖时长", "强行延长", "通关后",
],
},
"Monetization": {
"single_char": [],
"compound": [
# ex-Price
"价格", "定价", "值得", "不值", "贵", "便宜",
"打折", "史低", "入手", "白嫖", "性价比",
# ex-Microtransactions
"氪金", "内购", "充值", "抽卡", "648",
"课金", "首充", "月卡", "战令", "季票",
"开箱", "箱子", "钥匙", "保底", "抽奖",
"p2w",
],
"phrase": [
"通行证", "pay to win",
],
},
# =========================================================================
# MULTIPLAYER & COMMUNITY - 多人与社区
# =========================================================================
"Multiplayer": {
"single_char": [],
"compound": [
"联机", "多人", "匹配", "服务器", "延迟",
"掉线", "开黑", "组队", "单机", "野排", "车队",
"单排", "组排", "路人", "挂机",
"pvp", "pve", "coop",
],
"phrase": [
"坑比", "猪队友", "送人头",
],
},
"Community": {
"single_char": [],
"compound": [
"社区", "玩家", "汉化",
"官方", "民间",
"mod", "mods",
],
"phrase": ["创意工坊"],
},
# =========================================================================
# CONTROLS & UI - 操控与界面
# =========================================================================
"Controls": {
"single_char": [],
"compound": [
"操作", "手感", "手柄", "键鼠", "键盘",
"摇杆", "触发", "键位", "改键",
"死区", "陀螺仪", "扳机", "震动",
],
"phrase": [
"自定义键位", "辅助瞄准", "触觉反馈", "自适应扳机",
],
},
"UI": {
"single_char": [],
"compound": [
"界面", "菜单", "字幕", "字体",
"中文", "汉化",
"ui", "hud",
],
"phrase": [],
},
# =========================================================================
# STORY & NARRATIVE - 剧情
# =========================================================================
"Story": {
"single_char": [],
"compound": [
"剧情", "故事", "人物", "角色", "结局",
"剧本", "叙事", "世界观", "背景", "喂屎",
"烂尾", "降智", "工具人", "脸谱化",
"剧情杀", "都合主义",
"npc",
],
"phrase": ["逻辑硬伤"],
},
# =========================================================================
# DEVELOPER SUPPORT - 开发支持
# =========================================================================
"Support": {
"single_char": [],
"compound": [
"更新", "修复", "维护", "开发商", "官方",
"补丁", "版本",
],
"phrase": [],
},
"Localization": {
"single_char": [],
"compound": [
"本地化", "汉化", "翻译", "机翻", "缺字", "乱码",
"繁体", "简体",
],
"phrase": [
"语言支持", "中文支持", "无中文", "不支援中文",
"文本质量", "字幕翻译", "界面翻译",
],
},
# =========================================================================
# REFINEMENT - 打磨
# =========================================================================
"Polish": {
"single_char": [],
"compound": [
"打磨", "精致", "粗糙", "用心", "敷衍", "细节",
"诚意", "偷懒", "不用心", "精良", "精美",
],
"phrase": ["粗制滥造"],
},
# =========================================================================
# RETENTION - 留存
# =========================================================================
"Retention": {
"single_char": [],
"compound": [
# Positive (High Retention)
"推荐", "安利", "入正", "入坑", "必玩",
"神作", "年度", "满分",
# Negative (Churn)
"退款", "卸载", "弃坑", "劝退", "不推荐",
"避雷", "踩雷", "退坑",
"回坑", "出坑", "已弃",
],
"phrase": [
"坚持玩", "每天玩", "停不下来", "刷了",
"已退", "退款了",
],
},
}
# =============================================================================
# EXCLUSIONS (Context-aware filtering)
# =============================================================================
# Words to exclude when they appear in certain contexts.
# Format: "keyword": ["context_word1", "context_word2"]
EXCLUSIONS = {
# "fps" as genre (FPS shooter) vs performance (60 fps)
"fps": ["射击", "枪战", "第一人称"],
# Empty for now - will be expanded based on false positives
}