struct-map 是什么(人格锚:无,纯专业结构化域)
struct-map 是 struct-* 知识结构化系列的第五个成员,定位「知识图谱」。它读取一份涵盖多个概念 / 实体的材料(教材章节 / 百科词条群 / 读书笔记串 / 讲义),抽成「节点 + 关系边 + 簇」三要素知识图谱,并量化图谱密度。
它不是语义级「图谱引擎」(那是大模型或专业图谱工具的事),而是更日常的「图谱收口」——一份材料里讲了一堆概念,你读完却说不清谁包含谁、谁区别于谁、谁导致谁。本引擎在你读完时,替你把这张网的点、线、团都抽出来,并标出最该补全关系的入口(孤立节点)。
能做什么 / 不能做什么
能做的:
- 把材料切成「一、节点 / 二、关系边 / 三、簇」三要素图谱。
- 节点识别(显式定义标记 是指/所谓/「」/冒号标题 ∪ 名词性短语推断)。
- 关系边抽取并自动归类(上位 / 下位 / 对比 / 因果 / 相关),做谓语 / 连词感知解析。
- 簇划分(无向并查集,连通分量),标出自然聚成的主题群。
- 算图谱密度与结构化增益;产物末尾附
STRUCT_RESULT尾块供程序消费。
不能做的(诚实边界):
- 不做语义级「真正织懂一张网」——深度消歧、跨材料融合、可视化布局由调用方大模型或图谱工具完成,本引擎只做结构化抽取与重组。
- 不生成新表述、不改写、不跨材料联想;产出的每一句都来自原文,可一键回原文核对。
- 不保证命中所有写法;节点与关系抽取是启发式,覆盖常见中文写法,偶有不中。
边界说明
- 输入应为一份涵盖多个概念 / 实体的材料,建议 200 字以上、至少三段、含若干关系句;极短或纯列举片段增益偏低属正常,非缺陷。
- 与 struct-summary(长文摘要)、struct-meeting(会议派活)、struct-note(零散笔记)、struct-concept(单概念卡片)分工明确:map 处理「多概念织网」,不处理长文压缩或单概念讲解。
怎么用
python scripts/struct_map.py build --input 多概念材料.md --output 图谱.md
python scripts/struct_map.py rules # 查看量化阈值
python scripts/struct_map.py ledger # 归集历史产物的 graph_density
python scripts/struct_map.py version # 打印版本
图谱生成后会输出三要素与 graph_density,并在产物末尾附上机器可读的 STRUCT_RESULT {...} 判定块,供流水线程序化消费。
量化模型(原创点)
图谱密度 graph_density(0-1,结构化增益 = ×100):节点得分(权 0.30)+ 边得分(权 0.30)+ 关系类型得分(权 0.25)+ 连通度得分(权 0.15)。其中节点与边权重并列最高——网的「点」和「线」是基础;关系类型权重高于连通度——类型越多样(同时有上位 / 下位 / 对比 / 因果 / 相关),网的语义越丰富,比单纯的「连起来了」更有信息量。struct-map 的本职,就是帮你发现并补上最稀疏的那几条边。阈值见 resources/thresholds.json。退出码 0/1/2/3/4(struct 非阻断型,4 保留)。
理论底座
- 专家与新手的差异:Bransford 等人的研究显示,专家的知识不是更多事实,而是更稠密、更有结构的概念网络——每个概念都连着上下位、对比、因果。织网就是织这张网的动作。
- 三要素立住一张网:有哪些点(节点)、点之间什么线(边)、自然缠成哪些团(簇)。三样齐全才算真正结构化。
- 抽取式 vs 生成式:抽取式(extractive)按启发式挑句重组,稳定、可重跑、不幻觉;生成式(abstractive)交给大模型。本引擎走抽取式。
与其他成员的关系
struct-map 常接在读书 / 听课 / 读百科之后,是知识链里「把多概念输入变成图谱资产」的一环;上游可接 struct-note(从笔记里抽概念)、struct-concept(单概念建卡片),下游可接 struct-explain(把节点讲透)/ review(进复习排程)/ 大模型可视化。与 guard / check 不重叠(那是防护 / 验证,这是整理)。