2. 主题热度数据源盘点与采集

要量化主题热度,第一步不是建模,而是把“热度”落到可采集、可对齐、可复现的数据上。市场关注度本质上是投资者注意力在时间轴上的分布,而注意力会先出现在不同信息载体中:搜索行为反映主动求知,社交媒体反映情绪扩散,新闻资讯反映事件驱动,论坛社区反映深度讨论,行情软件则反映交易端的资金与价格响应。本节围绕这五类典型数据源,讲清各自能提供什么字段、用什么方式合规采集,以及如何设计统一的数据结构。

五类数据源的定位与字段特征

搜索引擎指数(如百度指数、微信指数、Google Trends)提供的是“相对热度”。以百度指数为例,它给出的是关键词在选定时间窗内相对于基期的加权指数,而非绝对搜索次数;Google Trends 更是把峰值归一化为 100。因此采集时必须同时记录关键词、时间粒度(日/周)、地域范围与归一化基准,否则跨主题比较会失真。典型字段包括:关键词、日期、指数值、环比变化、地域分布。

社交媒体平台(微博、抖音、雪球、小红书等)提供的是“传播热度”,核心字段是发帖量、互动量(点赞、转发、评论)、情感倾向与话题标签。这类数据噪声大、更新快,适合刻画短周期情绪脉冲。新闻资讯(门户、财经媒体、公告)提供“事件热度”,字段应包含标题、发布时间、来源、涉及主题标签、正文摘要,用于识别催化剂事件。论坛社区(股吧、贴吧、专业投资社区)提供“讨论深度”,可提取主帖数、回复数、看多/看空比例。行情软件(Wind、同花顺、东方财富等)提供“交易热度”,字段包括成交额、换手率、涨跌幅、资金净流入、板块成分股,是把注意力转化为价格响应的关键一环。

主题热度数据源 → 采集方式 → 统一字段 搜索引擎指数 相对热度 / 归一化 日粒度 · 地域 社交媒体 发帖 / 互动 / 情感 短周期情绪脉冲 新闻资讯 标题 / 来源 / 时间 事件催化剂 论坛社区 主帖 / 回复 / 多空比 讨论深度 行情软件 成交额 / 换手 / 资金 交易端响应 API 调用 官方开放接口 · 鉴权 · 限频 网页抓取 遵守 robots · 限速 · 去重 数据订阅 商业数据源 · 授权 · 增量推送 统一热度数据表(示例字段) topic_id / 主题标识 source_type / 来源类型 ts / 时间戳 raw_value / 原始值 norm_value / 归一值 granularity / 粒度 region / 地域 quality_flag / 质量标记 采集元数据:采集时间、接口版本、请求参数、去重键、缺失标记 —— 保证可追溯与可复现 所有来源最终对齐到同一张宽表,才能进入热度合成与打分环节

三种合规采集方式的落地要点

API 调用是首选方式,稳定且字段规范。以某搜索指数开放接口为例,请求通常需要携带关键词、起止日期、粒度参数,并附带鉴权令牌。伪代码结构如下:

GET /api/index?keyword=主题A&start=2024-01-01&end=2024-03-31&granularity=day
Headers: { Authorization: Bearer <token> }
响应: { "keyword":"主题A", "series":[{"date":"2024-01-01","value":1280}, ...] }

实操中要处理三件事:一是限频,按接口文档的 QPS 上限做退避重试;二是分页与时间窗切分,长周期数据按 90 天一段拉取再拼接;三是幂等落库,用“关键词+日期+来源”作为唯一键,避免重复写入。若接口返回的是归一化指数,务必在字段中标注 norm_base,否则后续无法还原量级。

网页抓取适用于没有开放接口的论坛与部分资讯站。合规底线是:先读 robots.txt,只抓公开页面,控制请求频率(例如单域名每秒不超过 1 次),设置合理的 User-Agent,不绕过登录与验证码。抓取流程一般是“列表页取链接 → 详情页取正文与时间 → 解析入库”。解析时用稳定的选择器,并对缺失字段打质量标记。例如抓取股吧帖子,可提取 title、publish_time、reply_count、read_count,再按主题词典做标签匹配。

数据订阅面向商业数据源(如行情终端、舆情服务商)。这类方式通过授权获取增量推送或定时快照,字段最规范,但要注意授权范围:是否允许二次加工、是否允许对外展示衍生指标。订阅数据通常以增量流形式到达,落库时需记录 snapshot_time 与 revision,因为行情与舆情数据存在事后修正。

数据字段设计与对齐

五类来源的原始字段差异极大,直接拼接会导致“苹果比橘子”。正确做法是设计一张统一宽表,核心字段包括:主题标识、来源类型、时间戳、原始值、归一值、粒度、地域、质量标记,外加采集元数据(采集时间、接口版本、请求参数、去重键)。归一化是跨源比较的前提:搜索指数按窗口内最大值缩放到 0–100;社交媒体按日发帖量取对数后缩放;行情数据用换手率或成交额分位数映射。所有归一化参数必须随数据一起存档,保证他人能复现同一结果。

字段设计的一个实用原则:原始值(raw_value)永远保留,归一值(norm_value)单独一列。这样当归一化方法调整时,无需重新采集,只需重算派生列。

采集质量的自检清单

采集完成后,建议做四项检查:时间连续性(是否存在整段缺失)、量级合理性(指数是否突变为 0 或异常放大)、来源一致性(同一主题在搜索与社交上的趋势方向是否大体吻合)、去重有效性(重复抓取是否产生重复行)。发现缺失时,用质量标记 missing 标注而非直接填零,避免后续热度合成被“假零值”拉低。只有经过这层校验的数据,才适合进入主题热度的打分与合成环节。