第三次课:知识图谱构建——从领域到小型图谱
第三次课:知识图谱构建——从领域到小型图谱
学习目标
通过本讲学习,学生应能够:
- 理解实体、关系、属性和 schema 在知识图谱中的作用。
- 了解从文本中获取知识、识别同名实体、融合多来源知识的直观流程。
- 认识知识质量和来源记录对知识图谱可信性的意义。
- 为一个范围可控的小领域设计知识图谱的基本结构。
- 提交实体、关系与数据来源清单,作为课程项目的起点。
本讲强调一个原则:课程项目不追求“大而全”,而追求“小而清楚、真实可做、能够被验证”。
一、从一段文本到一个知识图谱项目
第二次课中,我们已经能够从一段短文本中识别实体、关系并写出三元组。现在需要进一步思考:如果文本变成几十篇课程通知、数百首诗词,或多个网站上的科普资料,如何系统地构建一个知识图谱?
以“课程知识图谱”为例,下面两件事并不相同:
从一段课程介绍中抽取几条三元组
≠
围绕课程领域构建一个可持续补充、查询和核验的小型知识图谱
后者需要先回答以下问题:
- 图谱要服务什么任务?
- 图谱的边界在哪里?
- 需要记录哪些实体、关系和属性?
- 数据从哪里来,是否可信?
- 不同资料中的同一对象如何识别?
- 发现错误、重复或冲突信息时如何处理?
这些问题共同构成知识图谱构建的基本流程。
二、选择一个范围可控的领域
知识图谱项目最常见的问题是范围过大。例如,“构建中国文学知识图谱”“构建医学知识图谱”“构建校园知识图谱”听起来很有价值,但课程内难以完成。
更适合大三学生的做法是缩小范围,先从一个明确的小领域开始。
1. 小领域应具备的条件
一个适合课程项目的小领域通常具有以下特点:
- 对象明确:知道图谱主要描述什么;
- 边界清楚:能够说明哪些内容包含、哪些不包含;
- 资料可得:能找到公开、可靠的文本或表格;
- 规模适中:能在课程内整理约 30–100 个实体和一定数量的关系;
- 任务明确:可以提出若干可回答的问题;
- 风险可控:不涉及敏感个人信息、隐私数据或未经授权的材料。
2. 可选小领域示例
| 大方向 | 不建议直接做 | 可行的小领域项目 |
|---|---|---|
| 教育 | 全国高校课程知识图谱 | 本专业一个年级的课程与先修关系图谱 |
| 文学 | 中国古典诗词知识图谱 | 20 首唐诗中的诗人、地点、意象与主题图谱 |
| 校园 | 全校校园服务知识图谱 | 一个学院的社团、活动和场地信息图谱 |
| 医疗科普 | 常见疾病知识图谱 | 某一种疾病的公开科普资料图谱,不提供诊疗建议 |
| 科研 | 人工智能论文知识图谱 | 一个具体主题下的 20 篇论文、作者和方法关系图谱 |
3. 写清项目边界
以“唐诗中的诗人、地点、意象与主题图谱”为例,可以这样写边界:
本项目选取 20 首唐诗作为语料,记录诗歌、诗人、地点、意象和主题之间的关系。项目不尝试覆盖全部唐诗,不处理复杂的格律分析,也不对诗歌含义作唯一解释。
清晰的边界能避免项目不断膨胀,也能让后续的质量评价具有明确对象。
三、知识图谱的基本结构:实体、关系、属性与 Schema
1. 实体
实体是领域中需要被识别和记录的对象。实体通常是具体的人、地点、事物、作品、课程或事件。
例如,在“校园社团活动图谱”中,实体可能包括:
社团、学生、活动、场地、学院、指导教师、时间
在“课程知识图谱”中,实体可能包括:
课程、教师、知识点、教材、作业、考试、专业
2. 实体类型
实体类型用于说明实体属于哪一类。
例如:
| 实体 | 类型 |
|---|---|
| 认知智能中的知识构建研究 | 课程 |
| 周老师 | 教师 |
| 知识图谱 | 知识主题 |
| 课程论文 | 考核任务 |
类型可以帮助系统避免混淆。例如,“周老师”和“知识图谱”都可能出现在同一句话中,但一个是教师,另一个是课程主题,它们应使用不同关系连接。
3. 关系
关系用于表示实体之间的联系。
例如:
课程 —— 负责人 —— 教师
课程 —— 包含 —— 知识主题
学生 —— 参加 —— 活动
诗歌 —— 作者 —— 诗人
诗歌 —— 描写 —— 地点
关系名称应简洁、明确,并尽量保持一致。不要同时使用“作者”“创作人”“写作者”表示同一个关系,除非确有不同含义。
4. 属性
属性用于描述实体自身的特征,通常是文字、数字、日期或其他值。
例如:
| 实体 | 属性 | 属性值 |
|---|---|---|
| 认知智能中的知识构建研究 | 总学时 | 16 |
| 课程论文 | 提交阶段 | 学期末 |
| 某社团活动 | 举办日期 | 2026-10-15 |
| 静夜思 | 体裁 | 五言绝句 |
一个简单的判断方法是:若信息主要描述“对象自身是什么样”,可作为属性;若信息连接“另一个重要对象”,更适合作为关系。
例如,“课程的学分是 1”适合写成属性;“课程的负责人是周老师”中的“周老师”本身是重要对象,适合写成关系。
5. Schema
Schema 可以理解为知识图谱的“设计图”或“数据规范”。它规定:
- 图谱中允许出现哪些实体类型;
- 实体类型之间允许使用哪些关系;
- 每类实体可以拥有哪些属性;
- 某些关系的方向和含义是什么。
以课程领域为例:
实体类型:课程、教师、学生、知识主题、考核任务
关系类型:
课程 —— 负责人 —— 教师
课程 —— 面向 —— 学生
课程 —— 包含 —— 知识主题
课程 —— 要求完成 —— 考核任务
属性:
课程:名称、学分、总学时
教师:姓名、所属单位
考核任务:提交阶段、占比
没有 schema 的图谱容易出现名称混乱、关系随意和数据难以使用的问题。对课程项目而言,先完成一个简单 schema,再收集更多数据,通常比先大量摘录三元组更有效。
四、知识图谱构建的直观流程
一个小型知识图谱可以按照如下流程构建:
确定领域与任务
↓
设计 schema
↓
收集文本、表格或网页资料
↓
抽取实体、关系和属性
↓
实体链接与去重
↓
多来源知识融合
↓
质量检查、来源记录与持续补充
下面逐步解释。
1. 确定领域与任务
先说明图谱为谁服务、想回答什么问题。
例如:
构建“人工智能专业课程图谱”,帮助学生查询课程主题、先修关系和考核任务。
这句话已经包含了领域、使用对象和基本任务。
2. 设计 Schema
根据任务确定实体、关系和属性。对于课程项目,schema 不宜过于复杂,优先保留与任务直接相关的部分。
例如,要回答“学习知识图谱前要学习什么”,就需要课程、知识主题和先修关系;不一定要记录每间教室或每位学生的详细信息。
3. 收集资料
资料可以来自:
- 官方网站、课程大纲、学校通知;
- 公开出版物、权威百科或机构网页;
- 经授权的访谈和问卷;
- 课程提供的样例材料。
应优先使用权威、公开、可核对的资料。每一类资料都应记录来源链接、发布日期或访问日期。
4. 文本知识抽取
知识抽取是指从文本中找出实体、关系、属性或事件。
例如,原文为:
《认知智能中的知识构建研究》面向人工智能专业本科三年级学生开设,由周老师负责。
可以抽取:
实体:认知智能中的知识构建研究、人工智能专业本科三年级学生、周老师
关系:面向、负责人
三元组:
(认知智能中的知识构建研究,面向,人工智能专业本科三年级学生)
(认知智能中的知识构建研究,负责人,周老师)
在本课程前期,可先人工抽取;后续可以比较规则、工具或大语言模型辅助抽取的效果。
5. 实体链接与去重
同一个实体在不同资料中可能有不同名称。例如:
北京大学
北大
Peking University
这些名称可能指同一个学校。实体链接的目标是判断不同提及是否指向同一实体,并用统一名称或唯一编号记录。
对于小型课程项目,可以先采用简单规则:
- 确定一个规范名称;
- 将简称、别名记录在“别名”字段中;
- 遇到无法判断的情况,标记为“待确认”,不要强行合并。
6. 知识融合
知识融合是将多个来源中的信息合并到同一图谱中。
例如,课程大纲记录“课程负责人为周老师”,课程网站也记录同样信息,可以合并为一条事实,并保留两个来源。
若两份资料发生冲突,例如一份资料说负责人为周老师,另一份资料说负责人为李老师,不应直接删除其中一个。应:
- 核对资料发布时间和权威性;
- 检查是否对应不同学期或不同班级;
- 记录版本、时间和来源;
- 无法确认时标记为冲突信息。
7. 质量检查与来源记录
完成图谱后,不应只关注三元组数量,还要检查知识质量。
五、知识质量与来源记录
1. 知识质量的基本维度
对初学者而言,可以从以下四个方面检查:
| 维度 | 含义 | 示例问题 |
|---|---|---|
| 准确性 | 知识是否正确 | 课程负责人是否与官方信息一致? |
| 完整性 | 需要的信息是否缺失 | 每门课程是否都记录了基本主题? |
| 一致性 | 同一事实是否自相矛盾 | 同一课程是否出现两个未经说明的学分? |
| 可追溯性 | 能否找到知识来源 | 这条三元组来自哪篇文章或哪个网页? |
2. 为什么要记录来源
没有来源的知识,即使暂时看起来正确,也难以核对、更新和解释。
建议为每条重要三元组至少记录:
| 字段 | 示例 |
|---|---|
| 三元组 | (认知智能中的知识构建研究,负责人,周老师) |
| 来源名称 | 课程 README |
| 来源链接或文件 | README.md |
| 位置 | “课程简介”或具体段落 |
| 发布/访问日期 | 2026-08-10 |
| 记录者 | 小组成员姓名 |
| 备注 | 待与当学期教学安排核对 |
对课程项目而言,不必一开始为每条数据建立复杂数据库;可以先使用电子表格记录这些字段。
3. 不确定信息如何处理
遇到不确定信息时,应避免“猜测后写入图谱”。可以采用以下标记:
确认:已由权威来源核对
待确认:资料不充分,尚未核对
冲突:不同来源给出不一致结论
过时:信息属于旧版本,仅用于历史记录
这种做法不仅提升图谱质量,也为后续研究“知识更新”“冲突消解”和“大模型事实核验”提供材料。
六、示例:设计一个“唐诗主题小型知识图谱”
1. 项目范围
选择 20 首唐诗,记录诗歌、诗人、地点、意象和主题之间的关系,用于回答“某位诗人写过哪些主题的诗”“哪些诗歌描写了某个地点”等问题。
2. Schema 草案
| 实体类型 | 示例 |
|---|---|
| 诗歌 | 《静夜思》 |
| 诗人 | 李白 |
| 地点 | 长安 |
| 意象 | 月亮 |
| 主题 | 思乡 |
| 关系类型 | 头实体类型 | 尾实体类型 | 示例 |
|---|---|---|---|
| 作者 | 诗歌 | 诗人 | 《静夜思》—作者→李白 |
| 描写 | 诗歌 | 地点 | 某诗—描写→长安 |
| 包含意象 | 诗歌 | 意象 | 《静夜思》—包含意象→月亮 |
| 表达主题 | 诗歌 | 主题 | 《静夜思》—表达主题→思乡 |
3. 数据来源
- 诗歌原文:公开、权威的古诗文数据库;
- 作者信息:权威百科或教材资料;
- 主题与意象:教材、注释资料或小组明确的标注规则。
注意:诗歌主题常具有解释空间。项目应记录“主题判断依据”或标注来源,而不是把某种解释当作唯一事实。
七、课堂练习:确定你的课程项目
从以下方向中选择一个,也可以提出同等规模的其他小领域:
- 某门课程的课程内容与学习任务图谱;
- 20 首古典诗词中的人物、地点、意象与主题图谱;
- 一个学院的社团、活动和场地信息图谱;
- 某一种疾病的公开科普资料图谱;
- 某个 AI 主题下 20 篇论文的作者、方法和任务图谱。
小组讨论并完成:
- 项目名称;
- 项目希望回答的 2–3 个问题;
- 项目范围与不包含的内容;
- 至少 5 类实体;
- 至少 5 类关系;
- 可能使用的 2–3 个数据来源;
- 一个可能出现的质量问题。
八、课后任务:小型知识图谱项目清单
以小组为单位,提交一份“小型知识图谱项目清单”。建议使用表格完成,内容包括:
1. 项目说明
- 项目名称;
- 项目领域与范围;
- 目标用户或使用场景;
- 希望回答的 2–3 个问题。
2. 实体清单
至少列出 5 类实体。
| 实体类型 | 示例实体 | 说明 |
|---|---|---|
| 课程 | 认知智能中的知识构建研究 | 教学资源 |
| 教师 | 周老师 | 课程负责人 |
| 知识主题 | 知识图谱 | 课程内容 |
3. 关系清单
至少列出 5 类关系。
| 关系名称 | 头实体类型 | 尾实体类型 | 示例 | | --- | --- | --- | | 负责人 | 课程 | 教师 | 课程—负责人→周老师 | | 包含 | 课程 | 知识主题 | 课程—包含→知识图谱 |
4. 数据来源清单
至少列出 2 个来源,并说明可靠性与使用方式。
| 来源名称 | 类型 | 用于获取什么知识 | 可靠性说明 |
|---|---|---|---|
| 课程 README | 课程文档 | 课程主题、教学方式 | 课程官方材料 |
| 课程网站 | 网页 | 通知与更新信息 | 需记录访问日期 |
5. 初步质量规则
写出至少 3 条规则。例如:
- 每条重要三元组必须记录来源;
- 同一实体使用统一名称,并记录常见别名;
- 不确定或冲突的信息必须标记,不能直接视为确认事实;
- 使用新版且来源更权威的资料优先更新旧资料。
本任务的目标是完成一个可以执行的图谱设计,而不是立即收集大量数据。下一步将基于这份清单开展文本知识抽取和图谱填充。
九、本讲小结
本讲的核心观点是:
- 知识图谱构建应从范围明确、数据可得的小领域开始;
- 实体、关系、属性和 schema 共同决定知识图谱的结构;
- 构建流程包括领域确定、schema 设计、数据收集、知识抽取、实体链接、知识融合和质量检查;
- 实体链接用于识别不同名称是否指向同一对象,知识融合用于整合多来源信息;
- 准确性、完整性、一致性和可追溯性是知识质量的基础;
- 记录来源、时间和不确定性,是构建可信知识图谱的重要习惯。
下一讲将讨论如何阅读知识构建相关论文,并从已有工作中发现可继续研究的问题。
