1. 项目背景与价值解析
上市公司媒体关注度数据是金融量化研究领域的重要基础数据源。2007-2024年这个时间跨度覆盖了中国资本市场多个关键发展阶段:股权分置改革完成(2007)、创业板开板(2009)、沪港通开通(2014)、注册制试点(2019)等。媒体作为信息中介,其报道频率和情感倾向直接影响投资者决策和市场定价效率。
这个数据集的核心价值在于:
- 为事件研究法(Event Study)提供可靠的事件日界定依据
- 构建媒体情绪指数的原始材料
- 检验市场有效性的代理变量
- 企业声誉管理的监测指标
2. 数据采集技术方案
2.1 数据源选择
主流方案通常采用以下三类数据源组合:
- 财经新闻门户:东方财富网、和讯网等结构化程度高的专业媒体
- 综合新闻平台:人民网、新华网等权威媒体的财经板块
- 上市公司公告:巨潮资讯网的投资者关系记录
注意:需特别注意排除转载重复报道,建议通过URL去重+正文相似度检测(如SimHash算法)实现
2.2 爬虫架构设计
采用分布式爬虫架构应对海量数据采集:
python复制# 示例爬虫核心逻辑
class FinancialNewsSpider:
def __init__(self):
self.bloomfilter = ScalableBloomFilter()
self.redis_queue = RedisQueue()
def parse_article(self, response):
if self._is_duplicate(response):
return
item = {
'stock_code': extract_code(response),
'pub_date': parse_date(response),
'media': response.meta['site'],
'title': clean_title(response),
'content': extract_maintext(response),
'sentiment': analyze_sentiment(response) # 使用预训练金融情感模型
}
yield self._validate_item(item)
2.3 关键字段说明
完整数据集应包含以下维度:
| 字段名 | 类型 | 说明 |
|---|---|---|
| stock_code | str | 6位股票代码 |
| date | date | 报道日期(精确到日) |
| media_type | str | 媒体类型(网络/报纸/电视) |
| title | str | 新闻标题(原始文本) |
| word_count | int | 正文字数 |
| mention_count | int | 提及该公司次数 |
| sentiment_score | float | [-1,1]区间的情感分值 |
3. 数据处理关键技术
3.1 文本清洗流程
- HTML标签去除:使用lxml.html.clean
- 特殊字符过滤:正则表达式
[^\u4e00-\u9fa5a-zA-Z0-9%,。;:、()《》] - 停用词处理:加载金融领域定制停用词表
- 公司简称识别:基于上市公司简称库的模糊匹配
3.2 情感分析模型
采用基于BERT的领域自适应方案:
- 使用FinBERT预训练模型作为基础
- 用标注好的财经新闻语料进行微调
- 输出维度:
- 主维度:积极/中性/消极
- 子维度:业绩/治理/行业等标签
实测指标:在测试集上达到0.82的F1值,显著优于通用情感分析工具
4. 数据应用场景案例
4.1 媒体关注度指数构建
计算公式:
code复制MAI_i,t = ln(1 + N_i,t) + 0.5*ln(1 + ∑w_j*S_j)
其中:
- N_i,t:公司i在t时期的报道数量
- w_j:媒体j的权重(按Alexa排名分级)
- S_j:媒体j的平均情感分值
4.2 事件研究法应用
stata复制// 事件窗口期CAR计算示例
use media_data.dta
sort stock_code date
by stock_code: gen event_day = (media_count > 3) & !(L.media_count > 3)
xtset stock_code date
reghdfe abnormal_return L(0/5).event_day, absorb(stock_code#year month#industry)
5. 常见问题解决方案
5.1 数据缺失处理
| 问题类型 | 解决方案 |
|---|---|
| 小范围日期缺失 | 用移动平均法插补 |
| 特定媒体断更 | 寻找替代数据源 |
| 情感分析异常值 | 人工复核+模型迭代 |
5.2 计算性能优化
- 数据库选型:TimescaleDB处理时间序列数据
- 索引策略:复合索引(stock_code, date) + 分区表
- 缓存机制:Redis缓存热点公司数据
6. 实操建议
- 日频数据建议用SQLite存储,年频数据转为Parquet格式
- 情感分析建议每天增量更新模型
- 媒体权重每季度调整一次(基于流量统计)
- 关键字段建立数据质量监控看板
这个数据集在实际研究中,我通常会先做以下验证:
- 检查茅台等标杆企业的媒体关注趋势是否符合常识
- 对比重大政策出台前后的行业关注度变化
- 验证财务报告季的数据峰值是否合理