主题
跨端交接:pos_definitions 质量治理 → RB reseed migration
日期:2026-06-02 方向:RVH(治理 + 重导出)→ RB(reseed 重导入) 关联:rvh/docs/plans/pos-definitions-quality-governance.md、CHANGELOG.md [Unreleased]、红线 #5e(lemmatizer/词库 byte-equal)
背景
vocabulary.pos_definitions 三端 byte-equal 共用。RB 端 2026-06-02 实测发现两维质量问题(例句 23.5% >200 字符的 Wiktionary 长引文/古拼写/书目/OCR 残留;平均 5.09 义项/词、11.6% archaic,粒度过细抬高 RB 的 LLM 消歧成本与误选率)。pos_definitions 由 RVH pipeline(kaikki → DB)生成,RB 不能改,故由 RVH 在源头治理后整包重导出,RB 据此 reseed。
RVH 已完成
- 在
tools/vocabulary_builder_v3/新增lib/quality_governor.dart+bin/govern_quality.dart,后处理output/translated_vocabulary.jsonl(不重跑 LLM,保留全部翻译/CEFR/audit),重建reading_vocab.db。 - 治理规则:
- 例句:丢 <15 / >200 字符;丢含省略号
…/...的截断/拼接引文;优先单句(多句丢,缩写误报豁免);过滤全大写标题 / 古拼写(long-s ſ、thou/hath/-eth 等)/ 书目引文(ISBN/vol./doi/年份括注)/ OCR 转义残留(含裸数字字符引用#NN;);每 sense 按「含目标词·短」排序取 ≤3;宁缺毋滥。 - 释义:每 POS 封顶 5;丢
value_tier=='archaic'义项 + 双重空保护(POS 全 archaic 留 1 条;词级 zh 锚点保护保证词数不掉);近义启发式去重;裁剪 gloss 开头冗长 register 括注。
- 例句:丢 <15 / >200 字符;丢含省略号
- RVH
_preinstalledVocabVersion13 → 14(既存安装下次启动 UPSERT 覆盖 pos_definitions)。schema 不变(仍 v52)。
治理效果(实测)
| 指标 | 治理前 | 治理后 |
|---|---|---|
| vocab-grade 词数 | 12,291 | 12,291(不变) |
| 义项总数 | 73,120 | 55,369(avg 4.50/词) |
| 例句总数 | 100,211 | 45,313 |
| 例句 >200 字符 | 23,561 | 0 |
| archaic 义项 | 8,498 | 988(仅空保护残留) |
45% 义项治理后无例句(留待后续 LLM 生成补足,见 plan Backlog #1)。
交付给 RB 的产物
- 新 DB:
assets/databases/reading_vocab.db - SHA256:
4625b706385a17de97f72b3a6d9c0e938f83b002336a156ce60bb0eda508e49e - VOCABULARY_SEED_VERSION(RVH 侧
_preinstalledVocabVersion):14
RB 需做(reseed migration,参考 RB 自己的 v10 reseed 编号)
- 从 RVH 同一份 byte-equal 内容(上述 sha256 的 reading_vocab.db)重导入 vocabulary 表(pos_definitions 整列覆盖)。
- RB 侧 bump 自己的
VOCABULARY_SEED_VERSION,触发既存安装重 seed。 - RB 用
INSERT ... ON CONFLICT(word) DO UPDATE(勿用 INSERT OR REPLACE,遵 RB 自身父表红线),SET 覆盖pos_definitions。 - 校验:reseed 后 vocabulary 词数应 = 12,291,无 example >200,archaic 义项 ≈ 0。
- RB 基于例句的算法可重新启用 / 调参(噪声例句已清除)。
注意
- pos_definitions 内容由 RVH 权威生成;RB reseed 后双端该列应 byte-equal。
- 后续 LLM 例句生成(plan Backlog #1)会再次改动 pos_definitions → 届时同样走「RVH 治理 → 重导出 → bump version → RB reseed」流程,双端原子更新。