知识卡片自动关联引擎
概述
基于关键词共现匹配,自动发现知识卡片之间的隐含关联,为每张卡片写入「关联资料」小节。核心价值:把孤立的知识点编织成可导航的知识网络。
输入:knowledge_cards/ 目录下所有 km_*.md 卡片
输出:每张卡片的「关联资料」小节(自动写入或预览)
工作流程
扫描卡片 → 提取关键词 → 构建倒排索引 → 匹配关联 → 写入卡片
执行方式
# 预览模式(查看关联结果,不修改文件)
python3 scripts/link_cards.py \
--cards-dir knowledge_cards/
# 写入模式(实际更新卡片文件)
python3 scripts/link_cards.py \
--cards-dir knowledge_cards/ \
--update
# 仅更新指定卡片
python3 scripts/link_cards.py \
--cards-dir knowledge_cards/ \
--card km_016_xxx \
--update
关联算法
- 关键词提取:从每张卡片的「## 关键词」小节提取
`关键词`列表 - 倒排索引:构建 关键词 → 卡片ID列表 的映射
- 共现匹配:对每张卡片,计算与其他卡片共享关键词数量
- Top-N 选取:取共享关键词最多的前 5 张卡片作为关联推荐
- 写入文件:在卡片中生成/更新「## 关联资料」小节
关联资料格式
## 关联资料
- **目标卡片标题** `共享关键词1` `共享关键词2` (N个共享关键词)
使用时机
| 场景 | 说明 |
|---|---|
| 消化新卡片后 | 每次通过 kb-auto-digester 生成 ≥ 2 张新卡片后运行 |
| 关键词体系更新 | 批量修改卡片关键词后刷新关联 |
| 定期维护 | 每周运行一次,保持知识网络最新 |
与 kb-reviewer 配合
kb-linker 建立关联后,立即运行 kb-reviewer 可以:
- 看到新卡片是否融入知识网络(Q1 被引排名)
- 发现关联建立后仍有孤岛的卡片(Q3 孤岛检测)
- 确认关键词体系是否需要调整(Q2 趋势分析)
推荐执行顺序:
消化卡片 → 建立关联(kb-linker) → 复盘检查(kb-reviewer)
输出摘要
完成后报告:
- 扫描卡片总数 + 唯一关键词数
- 有至少一个关联的卡片数 / 总数
- 最高频共享关键词 Top 5
- 更新了文件的卡片数
异常处理
| 异常 | 处理 |
|---|---|
| 卡片目录为空 | 提示先执行 kb-auto-digester |
| 某卡片无关键词 | 跳过,在输出中标注"缺少关键词",建议手动补充 |
| 某卡片无任何关联 | 正常——可能是领域独特或关键词过少,在输出中标注 |
| 关键词全为中文/英文一种语言 | 正常——索引不分语言,统一用小写匹配 |