Files
xwlb/docs/REPORT_raw_vs_improve.md
T
simon 60f8c263f2 《新闻联播》每日抓取入库:全链路 + 可移植化 + 定时任务
从 CCTV 主页抓取《新闻联播》,下载 → 转 MP3/WAV → 静音切分 → ASR 识别
→ LLM 校对 → 切分为单条新闻 → 入库 MySQL。

主要内容:
- 全链路:getVideo5 抓取下载、audioRead 转写、deepseek 校对与切分、newsProcess 入库
- 可移植化:配置分层,.env 只放密钥、config.yml 放模型/接入点/路由/参数
- 可换供应商:endpoints(kind/base_url/api_key_env/extra_body)+ routes 按环节选路
- 数据保真:数值事实守卫,校对改动数字/年份/届次则整片回退 ASR 原文;
  识别不完整不发布该日精编,避免半天内容被当成完整一天
- 定时任务:systemd 每天 21:00,失败 21:30 / 22:00 重试;
  只缺切分时只重跑切分(省掉全部 ASR),用 state/.asr_complete_* 标记判定阶段
- 隧道自愈:13306 不通时自动执行 autossh.sh(所有入口共用,systemd 托管时只等待)
- 中间产物每日清理;97 项离线自检(配置/清理/事实守卫/解析/隧道)
2026-09-25 11:17:46 +08:00

143 lines
7.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# news_raw vs news_improve 评估报告
样本:`xwlb_daily` 7981 个分片,覆盖 727 天(2024-09-26 ~ 2099-01-01);`xwlb_daily_ext` 11494 条
## 1. 校对到底改了什么
| 分类 | 分片数 | 占比 | 平均改动字符数 | 含义 |
|---|---|---|---|---|
| identical | 1094 | 13.7% | 0.0 | 完全没改 |
| punct_only | 1 | 0.0% | 0.0 | 只改标点/空白/断句 |
| numeral_only | 1 | 0.0% | 2.0 | 只改数字写法或标点 |
| word_change | 6885 | 86.3% | 38.5 | **真的改了字词** |
「真的改了字词」的 6885 个分片里,**排除标点与数字后**的平均改动量只有 **29.7 字**(占分片平均长度 718 字的 4.1%)
改动最频繁的字符(raw 有而 improve 没有 → improve 新增):
| 被替换掉的字符 | 次数 | 新增的字符 | 次数 |
|---|---|---|---|
| `。` | 20087 | `⏎` | 38761 |
| `␠` | 19329 | `”` | 16765 |
| `号` | 10326 | `“` | 16763 |
| `的` | 8440 | `,` | 12433 |
| `,` | 3649 | `日` | 11487 |
| `了` | 3457 | `、` | 9422 |
| `这` | 2780 | `;` | 7558 |
| `个` | 2666 | `␠` | 5625 |
| `是` | 2640 | `的` | 4465 |
| `到` | 2478 | `《` | 4254 |
- 校对**实际生效**的分片:6887/7981(86.3%);完全没动的:1094/7981(13.7%)
- 全天 11 个分片**全都没被改**的天数:98/727
### 可读性指标(越大越接近正式书面语)
| 指标 | 原文 news_raw | 校对后 news_improve | 变化 |
|---|---|---|---|
| 标点密度(每百字标点数) | 8.52 | 9.81 | +1.28 |
| 书名号《总数 | 0 | 4254 | +4254 |
| 总字数 | 5675790 | 5810634 | +134844 |
### 「真的改了字词」的抽样(判断是修错字还是改写)
- **2024-09-26 第0片**(改动约 31 字)
- raw: 各位观众晚上好晚上好,今天是9月26号星期四,农历8月24,欢迎收看新闻联播节目。首先为您介绍今天节目的主要内容。中共中央政治局召开会议,分析研究当前经济形势和经济工作,中共中央总书记习近平主持会议。习近平给中国传媒大学全体师生回信,强调突
- imp: 各位观众晚上好,今天是9月26日,星期四,农历八月二十四,欢迎收看新闻联播节目。首先为您介绍今天节目的主要内容:中共中央政治局召开会议,分析研究当前经济形势和经济工作,中共中央总书记习近平主持会议;习近平给中国传媒大学全体师生回信,强调突出
- **2024-09-26 第1片**(改动约 10 字)
- raw: 会议强调,要加大财政货币政策逆周期调节力度,保证必要的财政支出,切实做好基层三保工作。要发行使用好超长期特别国债和地方政府专项债,更好发挥政府投资带动作用。要降低存款准备金率,实施有力度的降息。要促进房地产市场止跌回稳,对商品房建设要严控增
- imp: 会议强调,要加大财政货币政策逆周期调节力度,保证必要的财政支出,切实做好基层“三保”工作。要发行使用好超长期特别国债和地方政府专项债券,更好发挥政府投资的带动作用。要降低存款准备金率,实施有力度的降息。要促进房地产市场止跌回稳,对商品房建设
### 按月的「完全没改」比例(用于识别校对失效的历史区间)
| 月份 | 分片数 | 完全没改 | 占比 |
|---|---|---|---|
| 2024-09 | 61 | 0 | 0% |
| 2024-10 | 322 | 0 | 0% |
| 2024-11 | 321 | 0 | 0% |
| 2024-12 | 334 | 0 | 0% |
| 2025-01 | 327 | 0 | 0% |
| 2025-02 | 289 | 0 | 0% |
| 2025-03 | 363 | 0 | 0% |
| 2025-04 | 332 | 0 | 0% |
| 2025-05 | 324 | 0 | 0% |
| 2025-06 | 305 | 0 | 0% |
| 2025-07 | 334 | 0 | 0% |
| 2025-08 | 325 | 0 | 0% |
| 2025-09 | 326 | 0 | 0% |
| 2025-10 | 359 | 0 | 0% |
| 2025-11 | 334 | 0 | 0% |
| 2025-12 | 330 | 0 | 0% |
| 2026-01 | 340 | 0 | 0% |
| 2026-02 | 309 | 0 | 0% |
| 2026-03 | 384 | 0 | 0% |
| 2026-04 | 334 | 0 | 0% |
| 2026-05 | 347 | 0 | 0% |
| 2026-06 | 343 | 165 | 48% |
| 2026-07 | 344 | 344 | 100% |
| 2026-08 | 331 | 331 | 100% |
| 2026-09 | 261 | 254 | 97% |
| 2099-01 | 2 | 0 | 0% |
## 2. token 开销:现状 vs 两个替代方案
统计口径:523 天同时有原文与精编的天数,取日均字符数(≈token 数,中文 1 字≈1 token)
| 方案 | 输入 | 输出 | 合计/天 | 相对现状 |
|---|---|---|---|---|
| A 现状(校对 + 切分 两次调用) | 15777 | 15646 | **31423** | — |
| B 合并进切分(一次调用同时校对+切分) | 7787 | 7657 | **15444** | 省 51% |
| C 关掉校对(直接用 ASR 原文切分) | 15444 | 7657 | **15444** | 省 51% |
其中校对这一次调用本身消耗 输入 7787 + 输出 7990 = **15777 token/天**,占现状总开销的 50%。
按 523 天累计:校对一项约消耗 8.25 M token。
---
## 3. 实测 token 开销(真实 API 返回的 usage,不是估算)
用**你当前配置的模型**各跑一次真实调用,读 `usage` 字段(2026-09-23 / 2026-06-08 数据):
| 环节 | 模型 | 输入 | 输出 | 其中推理 | 说明 |
|---|---|---|---|---|---|
| 校对(思考开) | `qwen3.8-flash` | 487 | 5,932 | 5,616 | 545 字文本 |
| 校对(思考**关**) | `qwen3.8-flash` | 451 | **312** | — | 同文本,输出只差一个"的"字 |
| 校对(旧配置对照) | `qwen3.7-max` | 449 | 2,338 | 2,025 | 原来也在做推理 |
| 切分(思考开) | `deepseek-flash` | 4,206 | 19,077 | 14,426 | 全天 6,940 字 |
| 切分(思考关) | `deepseek-flash` | 4,182 | 4,656 | — | **但正文覆盖率掉到 95.34%** |
推算到每天(11 个分片 + 1 次切分):
| 方案 | 每天 token | 相对现状 |
|---|---|---|
| **现状**(校对思考开 + 切分) | ≈ 100,000 | — |
| **建议**(校对思考关 + 切分思考开) | ≈ **33,000** | **省 67%** |
| 合并(校对+切分一次调用,思考开) | ≈ 24,000 | 省 76% |
| 关掉校对(只切分) | ≈ 23,000 | 省 77% |
## 4. 三个方案的实测对比(同一天 2026-09-23)
| 指标 | 现状两次调用 | 合并成一次 | 只切分 |
|---|---|---|---|
| 条数 | 27 | 27 | — |
| 正文覆盖率 | **100%** | 99.02% | 95.34%(思考关时) |
| 书名号《 | 0(该日数据是失效期产物) | 3 | 0 |
| 引号 | 0 | 15 | 0 |
| **数值事实漂移** | 无(有按分片守卫) | **有**:`44.9→44.93`、丢失 `3`、多出 `1000`/`5` | — |
| 按分片回退保护 | ✅ 有 | ❌ 无(只能整天丢弃) | ❌ 无 |
## 5. 结论
1. **校对有必要,但只值"关掉思考"这一刀。** 它的真实产出是标点与格式:
引号 33,524 次、书名号《》4,250 次、日期归一("9月26号"→"9月26日")10,322 次、
段落换行 38,750 次——ASR 原文**从来不会**产生书名号和引号。
2. **不要把 correct 合并进 split。** 收益只剩 ~27%(因为校对关思考后已经很便宜),
代价是失去按分片的数值守卫,且实测确实把 `44.9` 改成了 `44.93`、丢了数字。
数值事实一旦被改,事后无法察觉——这正是 `docs/BUGS.md` B2 那类事故。
3. **切分环节不要关思考**:省 4 倍 token,但正文覆盖率 99.67% → 95.34%、条数 27 → 20。
4. **注意历史欠账**:2026-07 与 2026-08 是 **100% "完全没改"**(校对失效期),
2026-06 有 48%。也就是说 2026-06 中旬至 2026-09 的 `news_improve` 其实等于 ASR 原文,
并没有被校对过。现在校对已修复且成本降低约 13 倍,是否有必要回补这段,见 README「后续可选」。