量化分析入门:情感分析基础、情感词典构建、基于规则的情感打分
各位同学好,今天我们正式进入量化分析的世界。说实话,很多做金融舆情的人,一听到「量化」两个字就觉得头大。其实没那么玄乎。你想想看,我们每天看新闻、读研报,心里不也在给每条消息打分吗?「这条偏利好」、「那条是利空」——这就是最原始的情感分析。
我最早接触这个领域,是在一家私募做舆情监控。那时候团队每天手动标记几百条新闻,累得半死。后来我就在想:能不能让机器替我们干这活?嗯,这就是我们今天要聊的内容——情感分析的基础。
情感分析到底在分析什么?
说白了,情感分析就是让计算机理解一段文本的情绪倾向。在金融场景里,我们通常把它分成三类:
- 正面:业绩预增、政策利好、行业景气度提升
- 负面:暴雷、减持、监管处罚、业绩亏损
- 中性:公告发布、人事变动、常规经营信息
但这里有个坑。我在项目中遇到过,很多同学把「中性」当成垃圾桶,分不清的就往里扔。其实中性信息在量化模型里很有价值——它代表市场没有预期差,往往意味着股价会维持原有趋势。
核心观点:情感分析不是简单的「好」或「坏」,而是对市场情绪的量化映射。一条看似负面的新闻,如果市场早有预期,那它的冲击力反而有限。
情感词典:量化分析的基石
做情感分析,绕不开词典。你可能会问:现在深度学习这么火,为什么还要用词典?
我的回答是:在金融领域,词典方法依然是最稳定、最可解释的方案。我见过太多用BERT跑出来的情感分数,模型自己都说不清为什么给这条新闻打0.8分。但词典不一样——每个词都有明确的权重,出了问题你能追查。
金融情感词典的构建,我建议分三步走:
- 基础词典:从公开资源里拿,比如知网Hownet、台湾大学NTUSD。这些词典覆盖了通用情感词,但金融领域不够用。
- 金融领域扩展:这是关键。我当年花了两个月,从3000份券商研报里提取高频情感词。比如「超预期」、「拐点」、「戴维斯双击」这些词,通用词典里根本没有。
- 行业定制:不同行业的情感词差异很大。医药行业的「临床试验成功」是大利好,但放在煤炭行业就毫无意义。
我的小技巧:构建词典时,别忘了加入程度副词和否定词。「业绩大幅增长」和「业绩增长」,情感强度完全不同。我习惯给程度副词设1.5倍权重,否定词则直接反转情感方向。
基于规则的情感打分:从词典到分数
词典有了,怎么打分?这里我给大家展示一个最基础、也最实用的规则引擎。
核心逻辑其实很简单:
情感分数 = 正面词得分 - 负面词得分
最终分数 = 情感分数 × 程度副词系数 × 否定词反转
但实际落地时,你会发现很多细节。举个例子:
「公司业绩没有出现大幅下滑」——这句话里有否定词「没有」、程度副词「大幅」、负面词「下滑」。按照规则:先识别负面词「下滑」得-1分,程度副词「大幅」放大到1.5倍,否定词「没有」反转方向。最终得分是 +1.5。
你看,一条看似负面的表述,经过规则处理后,其实是正面信号。这就是规则引擎的价值——它能捕捉语言中的细微结构。
避坑指南:我曾经在实盘模型里犯过一个低级错误——没有处理「否定词+负面词」的双重否定。结果「并非不看好」这种句子被判定为负面,导致模型连续三天给出错误信号。后来我加了一条规则:连续出现两个否定词,视为肯定。
一个完整的打分流程
为了让大家更直观地理解,我画了一张流程图。这张图展示了我个人习惯使用的打分流水线:
这张图里,我特意把规则引擎拆成了四个子模块。你可能会问:为什么需要感叹号增强?
我在做A股舆情监控时发现,很多利空新闻会用感叹号来强化语气,比如「业绩暴雷!」。这种标点符号本身就能传递情感强度。所以我加了一条规则:句子中出现感叹号,情感分数乘以1.2倍。
实战中的词典构建技巧
最后,我分享几个词典构建的实战经验。这些是我踩过坑之后总结出来的:
| 词典类型 | 来源 | 词条数量 | 注意事项 |
|---|---|---|---|
| 通用情感词典 | 知网Hownet | 约1.2万 | 金融领域准确率仅60% |
| 金融情感词典 | 券商研报+财经新闻 | 约5000 | 需要定期更新,每年至少一次 |
| 行业定制词典 | 行业研报+公告 | 约2000 | 不同行业差异大,建议单独维护 |
| 程度副词词典 | 人工整理 | 约200 | 权重设置需要回测验证 |
嗯,这里要注意一点。词典不是越多越好。我见过有人把网络流行语也加进去,结果「我太难了」这种句子被判定为强烈负面。但在金融语境里,这只是一句调侃。所以,词典构建一定要紧扣金融场景。
我的建议:刚开始做情感分析,不要追求完美。先用一个基础词典跑起来,然后根据错误案例不断迭代。我第一个版本的词典只有800个词,但已经能覆盖70%的金融新闻。剩下的30%,边用边补。
好了,今天的内容就到这里。情感分析入门其实不难,难的是把细节做扎实。下一节我们会聊更进阶的内容——如何用情感分数构建量化策略。但在此之前,我建议你把今天讲的规则引擎亲手实现一遍。代码不复杂,但跑通之后你会对情感分析有全新的理解。
公众号:蓝海资料掘金营,微信deep3321