AI舆情分析配置:从零搭建监控任务与告警规则
AI舆情分析配置的核心是让系统自动采集指定来源的内容,按关键词和情感倾向分类,并在命中规则时发出告警。
本文按零基础可执行的方式,讲清从服务器准备到规则验证的完整流程。
适用于自建或托管舆情平台的场景,不涉及具体商业产品选型。
动手前需要确认的环境条件
开始配置前,先确认以下条件,避免中途卡在依赖问题上:
- 一台可用的 Linux 服务器(Ubuntu 20.04 或 CentOS 7 以上均可),建议 2 核 4G 起步,磁盘预留 20GB 以上用于存储采集内容。
- 已安装 Python 3.8+ 或 Docker,任选其一作为运行环境。
- 已申请数据源访问权限,例如新闻 API、社交媒体开放接口或 RSS 地址。
- 一个用于接收告警的渠道,例如企业微信机器人 Webhook 或邮件 SMTP 账号。
先用命令确认基础环境:
python3 --version
docker --version
curl -I https://目标数据源地址
预期结果是版本号正常输出,curl 返回 200 或 302。
如果返回 403 或超时,先检查网络出口和 API 白名单,不要急着改代码。
接入数据源与配置监控任务
舆情分析的第一步是让系统能稳定拿到数据。
以配置文件方式接入为例,在项目目录下创建 config/sources.yaml:
sources:
- name: news_api
type: http
url: "https://api.example.com/news"
interval: 300
headers:
Authorization: "Bearer 你的令牌"
- name: rss_feed
type: rss
url: "https://example.com/feed.xml"
interval: 600
关键点:interval 单位为秒,表示采集间隔;headers 中的令牌不要提交到公开仓库。
保存后启动采集服务:
docker run -d --name sentiment-collector \
-v $(pwd)/config:/app/config \
-v $(pwd)/data:/app/data \
your-image:latest
启动后查看日志确认数据写入:
docker logs -f sentiment-collector
tail -n 5 data/raw/latest.jsonl
日志中出现 fetch success 且 latest.jsonl 有新增记录,说明数据源接入正常。
关键词、情感规则与告警配置
数据进入系统后,需要定义什么内容值得关注。
在 config/rules.yaml 中配置关键词和告警条件:
keywords:
- name: 品牌负面
patterns: ["退款", "投诉", "故障"]
sentiment: negative
threshold: 3
alert:
channel: wecom
webhook: "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=你的key"
cooldown: 600
threshold: 3 表示同一关键词在采集窗口内命中 3 次才触发告警,cooldown 防止重复轰炸。
修改后重启服务使配置生效:
docker restart sentiment-collector
如果使用宝塔面板,可在“文件”中直接编辑上述 YAML,再通过“终端”执行重启命令。
修改前建议备份原文件:
cp config/rules.yaml config/rules.yaml.bak
容易踩坑的几个地方
- 令牌泄露:配置文件不要放在网站根目录,避免被直接访问。
- 采集频率过高:间隔低于 60 秒容易触发数据源限流,建议从 300 秒起调。
- 告警风暴:没有设置
cooldown时,一次事件可能连续推送几十条消息。 - 中文分词误判:关键词过短(如单字)容易误命中,建议至少两个汉字。
- 时区不一致:服务器时区与数据源时间不一致会导致统计窗口错位,可用
timedatectl检查。
验证配置是否真正生效
配置完成后,用一条测试数据验证全链路:
echo '{"text":"产品退款投诉","source":"test"}' >> data/raw/test.jsonl
docker exec sentiment-collector python -m analyzer --file data/raw/test.jsonl
预期在告警渠道收到一条测试消息,并在 data/results/ 下看到分类结果。
如果没有收到消息,按顺序检查:容器日志是否有报错、Webhook 地址是否可访问、关键词是否拼写一致。
日常巡检建议每天查看一次采集成功率,命令如下:
grep -c "fetch success" data/logs/collector.log
grep -c "fetch failed" data/logs/collector.log
失败数持续上升时,优先排查数据源接口变更或网络策略调整。
常见疑问
采集服务启动后立刻退出怎么办?
先看 docker logs 输出,常见原因是配置文件 YAML 缩进错误或令牌为空。用 python -c "import yaml; yaml.safe_load(open('config/rules.yaml'))" 可快速验证语法。
告警只触发一次就不再推送?
检查 cooldown 是否设置过大,以及关键词阈值是否被历史数据占满。可临时调低阈值测试,确认后再恢复。
能否只监控特定来源?
可以,在 sources.yaml 中删除或注释不需要的条目,重启服务即可,不影响已有规则。
AI舆情分析配置的关键在于数据源稳定、规则可验证、告警有节制。
按本文顺序执行后,建议先跑一周观察误报率,再逐步调整关键词和阈值。