Files

170 lines
7.5 KiB
Python

# -*- coding: utf-8 -*-
"""
全网舆情爬虫 — 关键词词典与情感分类 v4.3
提供:
- POSITIVE_KEYWORDS 正面关键词(含权重,可识别正面新闻)
- NEGATIVE_KEYWORDS 负面/舆情关键词(含权重,可识别舆情)
- NEUTRAL_KEYWORDS 中性关键词
- INDUSTRY_BUZZWORDS 行业黑话(用于内容简介)
- RISK_PATTERNS 风险正文正则(典型表述)
- SEVERITY_LEVELS 严重等级阈值
策略:
1. 标题命中权重 > 内容命中权重
2. 同等级多关键词叠加置信度
3. 包含中性关键词时降权重
"""
POSITIVE_KEYWORDS = {
# 业绩类 (高权重 10)
"业绩增长": 10, "业绩稳健": 9, "业绩超预期": 12, "净利润增长": 11,
"营收增长": 10, "营业收入增长": 10, "归母净利润增长": 11,
"创新高": 12, "历史新高": 13, "突破": 9, "首次突破": 12,
# 评级推荐
"买入": 10, "增持": 10, "强烈推荐": 12, "跑赢行业": 9, "跑赢大盘": 9,
"上调评级": 11, "上调目标价": 11, "首次覆盖": 9, "目标价上调": 11,
# 公司动作
"回购": 9, "增持股票": 9, "员工持股": 8, "股权激励": 8,
"战略合作": 8, "重大合同": 11, "中标": 9, "签约": 7,
# 政策利好
"纳入": 9, "调入": 9, "利好": 8, "受益": 7, "降准": 8, "降息": 8,
# 荣誉
"获奖": 9, "金奖": 9, "最佳": 9, "领先": 8, "夺冠": 10,
"入选": 7, "百强": 8, "示范": 8, "标杆": 8,
# 创新/技术
"首发": 9, "首款": 9, "独家": 9, "创新": 7, "突破性": 10,
"自主可控": 9, "国产替代": 8, "硬科技": 7,
# 分红
"现金分红": 10, "分红方案": 9, "高分红": 9, "股息": 8, "派息": 8,
# 战略
"增持计划": 9, "回购计划": 9, "扩张": 7, "增资": 7, "战略投资": 8,
"IPO": 7, "上市": 6, "挂牌": 6,
# 评级上调
"评级提升": 10, "评级上调": 10, "AAA评级": 9, "AAA级": 9,
# 投资者关系
"调研": 6, "路演": 6, "机构调研": 7,
# ESG
"ESG评级": 8, "ESG领先": 9, "绿色金融": 7,
# 产品
"新产品发布": 7, "新发产品": 7,
}
# ==================== 负面 / 舆情关键词 ====================
NEGATIVE_KEYWORDS = {
# 监管处罚 (高权重)
"立案调查": 14, "立案": 10, "处罚": 12, "罚款": 11, "行政处罚": 12,
"被处罚": 12, "处罚决定": 12, "监管处罚": 13, "重罚": 13,
"警示函": 10, "监管函": 11, "问询函": 9, "关注函": 8, "监管谈话": 11,
"责令改正": 10, "暂停业务": 12, "吊销": 14, "禁业": 13,
"通报批评": 9, "公开谴责": 11, "纪律处分": 9,
# 司法
"诉讼": 10, "起诉": 10, "被起诉": 11, "应诉": 7, "判决败诉": 12,
"终审判决": 8, "仲裁": 7, "强制执行": 10, "失信被执行人": 11,
"老赖": 10, "限制高消费": 9,
# 退市风险
"退市": 12, "退市风险": 13, "暂停上市": 11, "终止上市": 12,
"ST": 7, "*ST": 9, "退市预警": 11,
# 业绩风险
"亏损": 11, "巨额亏损": 13, "预亏": 12, "首亏": 12, "续亏": 11,
"业绩下滑": 10, "业绩预减": 11, "净利下滑": 10, "营收下滑": 9,
"业绩变脸": 12, "商誉减值": 11, "资产减值": 10,
# 财务风险
"债务违约": 13, "违约": 11, "逾期": 9, "债务危机": 12,
"资金链断裂": 12, "流动性危机": 11, "破产": 12, "重整": 11,
"清算": 10, "债务展期": 9, "展期失败": 11,
# 跑路/失联
"跑路": 13, "失联": 11, "实控人失联": 13, "实控人被捕": 14,
"董事长失联": 13, "高管失联": 12,
# 违规违法
"违规": 9, "违法行为": 11, "涉嫌违法": 12, "违规担保": 11,
"挪用": 12, "挪用资金": 13, "职务侵占": 12,
"内幕交易": 12, "操纵市场": 13, "信息披露违规": 11,
"虚假记载": 11, "误导性陈述": 10, "欺诈": 12, "财务造假": 14,
"造假": 13,
# 挤兑
"挤兑": 13, "取款难": 12, "存款失踪": 12, "存款纠纷": 10,
# 投诉举报
"投诉": 7, "维权": 8, "集体投诉": 10, "315曝光": 11,
"举报": 8, "黑猫投诉": 7, "暴力催收": 12, "高利贷": 11,
"砍头息": 11, "套路贷": 11, "714高炮": 11, "反洗钱处罚": 10,
# 重大事故
"安全事故": 11, "重大事故": 12, "死亡": 8, "伤亡": 9,
# 环保
"环保处罚": 10, "环保违规": 10, "污染": 9, "重大污染": 11,
# 评级下调
"评级下调": 10, "评级展望负面": 9, "列入观察": 8, "列入负面观察": 10,
# 罢免
"罢免": 8, "罢免董事": 9, "罢免高管": 9,
# 公司治理
"内斗": 9, "股东内斗": 10, "控制权之争": 10, "股权之争": 10, "争夺控制权": 11,
"管理层动荡": 9, "高管离职": 7, "核心高管离职": 9,
# 重大风险
"重大风险": 11, "风险事件": 9, "暴雷": 12, "踩雷": 10, "踩雷事件": 11,
"黑天鹅": 10, "灰犀牛": 9,
# 停业整顿
"停业整顿": 12, "整顿": 9, "整改": 6,
# 海外监管
"美证监会": 8, "SEC": 6, "调查": 7, "集体诉讼": 10,
# 重大舆情
"维权事件": 11, "群体事件": 12, "上访": 9, "维权群": 8,
# 延期
"延期兑付": 11, "无法兑付": 13, "本息兑付": 8,
# 重整/破产
"破产重组": 11, "破产重整": 12, "破产清算": 11,
# 系统性
"系统性风险": 10, "系统性重要": 6,
}
# ==================== 中性关键词 ====================
# 用 dict 形式(值为权重),便于复用 _score 逻辑
NEUTRAL_KEYWORDS = {
"公告": 2, "通知": 2, "披露": 2, "召开": 2, "会议": 2, "决议": 2, "临时": 1,
"人事变动": 3, "聘任": 3, "离任": 3, "辞任": 3, "选举": 3, "任命": 3,
"定期报告": 3, "年报": 3, "半年报": 3, "季报": 3, "月报": 2,
"调研": 2, "路演": 2, "电话会议": 2, "策略会": 2,
"股东大会": 3, "董事会": 3, "监事会": 3, "决议公告": 3,
"调整": 1, "修订": 1, "更新": 1, "完善": 1, "备案": 2, "公布": 1, "发布": 1, "推出": 1, "上线": 1, "启动": 1,
}
# 风险等级阈值(综合得分)— 负面档位(v5.0.0 起为单一真源,_severity 统一读取)
SEVERITY_LEVELS = [
(0, 4, "中性"),
(4, 9, "低度关注"),
(9, 18, "中度舆情"),
(18, 100, "高危舆情"),
]
# 利好等级阈值(综合得分)— 正面档位(v5.0.0 新增,供 _severity 统一读取)
SEVERITY_LEVELS_POSITIVE = [
(0, 6, "中性"),
(6, 15, "低度利好"),
(15, 30, "中度利好"),
(30, 100, "重大利好"),
]
# ==================== 行业黑话(辅助生成内容简介) ====================
INDUSTRY_BUZZWORDS = {
"基金": ["净值", "申赎", "份额", "募集", "封闭期", "定开", "LOF", "FOF"],
"银行": ["信贷", "揽储", "不良率", "拨备覆盖率", "中间业务", "理财净值化"],
"证券": ["承销", "保荐", "并购重组", "两融", "股权质押"],
"保险": ["保费", "理赔", "代理人", "增员", "脱落率"],
"信托": ["信托报酬率", "信托规模", "信托财产", "受益人大会"],
"私募": ["策略容量", "净值回撤", "预警线", "清盘线"],
}
# 典型风险表述正则
RISK_PATTERNS = [
r"(涉及|金额|规模).{0,6}(千万|亿|万亿).{0,8}(亏损|违法|违规|处罚|诉讼)",
r"(被|已).{0,4}(立案|调查|起诉|传唤)",
r"触及.{0,6}(退市|红线|法律)",
]
if __name__ == "__main__":
print(f"正面关键词: {len(POSITIVE_KEYWORDS)} 个")
print(f"负面关键词: {len(NEGATIVE_KEYWORDS)} 个")
print(f"中性关键词: {len(NEUTRAL_KEYWORDS)} 个")