想象你是一家拼图公司的质检员。公司刚生产了一批特大拼图——每盒宣称包含 500 块拼图,拼好后是一幅“企业员工关系图”。你收到的任务很明确:在出厂前判断这批拼图能不能卖。你不能只看包装漂亮,而要真的倒出拼图,一块一块地验收:盒子上写着 500 块,实际够不够?每块图案印得对不对?两块拼图能不能严丝合缝地咬合?用的图纸是不是三年前的旧版?有没有两块一模一样的重复块?这就是“知识图谱质量评估”要干的事。知识图谱本质上就是一张“信息拼图”——实体是拼图块,关系是拼图块之间的卡槽,而 AI 应用(如智能问答、推荐系统)就是照着这张拼图来回答问题的顾客。拼图缺一块,AI 就会说“我不知道”;拼图图案印错,AI 就会一本正经地胡说八道。
对 AI 从业者来说,掌握知识图谱质量评估,就是掌握一套“质检流水线”:在模型出错前发现数据问题,用指标量化风险,让下游 AI 应用站在一张可靠的地图上。这是从“能用”走向“好用”的必修课。
目录
可视化演示
展示知识图谱质量评估的五大维度雷达图、实体关系图的异常检测、以及自动化评估流程的指标评分。
本节配有交互动效(进入视口后自动加载,约 3KB)。
五维质量雷达图 完整性:实体与关系的覆盖程度 准确性:属性值与真实世界一致 Quality=Σ(wi×di)/n 多维评估全面反映图谱质量水平
1. 完整性评估:拼图上有没有缺块
质检员小赵验收拼图的第一步,是“对数”。包装盒上印着“本拼图含 500 块”,他就要把拼图块全部倒出来,铺在桌上数一遍。如果只数出了 470 块,说明缺了 30 块——顾客按照图纸拼到一半,就会发现关键的“山峰”或“塔尖”不见了,整幅画就拼不出来。知识图谱也一样:所谓完整性,就是“应该有的实体和关系,图谱里是不是真的都有”。
要判断“应该有什么”,首先得有一份期望清单。在业务上,这份清单通常来自数据库的表结构、领域专家的梳理,或上游系统的元数据。例如一个企业知识图谱,期望实体集应包含全体员工、部门、职位;期望关系应包含“任职于”“汇报给”等。拿到清单后,再把图谱中实际出现的实体捞出来做比对,就能量化“缺了多少”。
完整性的核心指标是覆盖率。假设 $E_{\text{known}}$ 表示图谱里实际存在的实体集合,$E_{\text{expected}}$ 表示按设计应当存在的实体集合,则:
除了实体覆盖率,还要关注“稀疏程度”。一个实体应该有姓名、职位、邮箱等五个属性,实际只填了两个,也算一种隐性缺失——就像拼图块上大片空白没印刷图案。现实中,小赵把缺块清单交给生产部门后,对方用了一周把 30 块补齐,覆盖率从 94% 升到 99.2%。这就是完整性评估的价值:先量化缺口,再定向补救。
- 期望实体集$E_{\text{expected}}$ 是业务设计阶段就定好的“应有实体集合”,相当于拼图盒子上的块数标注。
- 已知实体集$E_{\text{known}}$ 是图谱里真实存在的实体集合,相当于倒出来铺在桌上数的拼图块。
- 取交集$E_{\text{known}}\cap E_{\text{expected}}$ 表示两边都有的实体——“盒子上标了、桌上也真有的那部分”。
- 算比值用交集的元素个数除以期望实体个数,得到“实有 ÷ 应有”的达成比例。
- 转百分比乘以 $100\%$ 变成直观的百分数,便于与质量基线(比如 95%)比较。
2. 准确性评估:拼图块上的图案印对了吗
数完了块数,小赵开始抽查图案。拿起一块印着“埃菲尔铁塔”的拼图,他对着原图仔细辨认:塔身颜色对不对?塔尖方向朝哪边?如果一块拼图把蓝天印成了绿色,拼上去虽然“咔哒”能卡住,但整幅画的色调就毁了。知识图谱的准确性,就是指“图谱里记录的事实是否真实、是否与客观世界相符”。
一张知识图谱由无数个“三元组”组成,形如(张三,出生于,北京)。三元组是最小的事实单元,好比拼图块上印的一小块图案。评估准确性时,我们不可能把每块拼图都拿去对照原图(全量验证成本太高),通常采用人工抽样复核:从图谱中随机抽取一批三元组,由领域专家标注“对”或“错”,再用样本数据估算整体准确率。
准确率是最直观的指标。设 $T_{\text{total}}$ 为抽样三元组总数,$T_{\text{correct}}$ 为其中经人工确认正确的数量,那么:
准确性评估还需要关注“实体链接误差”。同一个“张三”,在企业数据库里是“张三(研发部)”,在公开网页里叫“张伟”,图谱若把两个人连成了同一个人,就是实体链接出错——拼图块本身没错,但两块不同图案的块被强行标成了同一块。抽样复核时,这类错误也要单独计数。小赵后来把准确率不合格的批次退回重做,正是因为他用数据证明了:这批拼图每 100 块里就有 5 块印错了图案。
- 三元组总数$T_{\text{total}}$ 是参与评估的事实总数,常见做法是随机抽取千到万条三元组作为样本。
- 正确三元组数$T_{\text{correct}}$ 是人工复核后确认为真的三元组数量,相当于被专家盖章“图案无误”的拼图块。
- 正确率$T_{\text{correct}}$ 除以 $T_{\text{total}}$ 得到正确比例,反映“抽查中没印错的比例”。
- 错误三元组数$T_{\text{error}}=T_{\text{total}}-T_{\text{correct}}$,用总数减去正确数得到错误数。
- 统一换算两种写法都乘以 $100\%$,便于设置阈值和跨项目比较。
3. 一致性评估:拼图块之间咬合得上吗
拼图最怕遇到什么?两块拼图强行拼在一起,图案却错位了——比如一块画着半个太阳,另一块画着半扇窗户,卡槽倒是对上了,拼出来却“牛头不对马嘴”。知识图谱的一致性,就是检查“图谱内部是否存在相互矛盾的描述”。图谱里所有事实应该形成一套自洽的逻辑,而不是自相矛盾。
一致性问题的典型场景包括:逻辑冲突(张三的出生地同时是北京和上海)、类型冲突(某实体既被标记为“人”又被标记为“公司”)、循环依赖(A 汇报给 B,B 汇报给 C,C 又汇报给 A)。这些矛盾如果不上线,AI 问答系统会给出“薛定谔的答案”——同一问题在不同时刻回出相反的结果。
检测矛盾的常用做法是规则引擎:把业务逻辑写成规则,让机器逐条扫描图谱。冲突率指标定义如下:
其中 $N_{\text{conflict}}$ 是违反规则的三元组数,$N_{\text{total}}$ 是被扫描的三元组总数。一条典型的逻辑规则可以写成:
除了逻辑规则,还要做类型约束验证:比如“出生地的值必须是地点类型,不能是人物类型”。这类约束就是拼图块边缘的形状约束——拼图块是凹槽就必须配凸起,类型错了就像把圆形块硬塞进方孔,在图上或许看不出来,在推理时一定出问题。回到小赵的工厂,他把“两处出生地”的拼图块挑出来,发现是录入系统的员工把“籍贯”和“常住地”填进了同一个字段。规则引擎的价值正在于此:机器不睡觉,深夜也在帮你盯着拼图有没有咬合错位。
- 冲突三元组数$N_{\text{conflict}}$ 是触发规则报警的三元组数量,比如“张三出生于北京”和“张三出生于上海”这两条互斥事实。
- 总数归一化$N_{\text{total}}$ 是被检查的三元组总数,用冲突数除以总数得到冲突占比。
- 全称量词$\forall x$ 表示“对于图谱中的任意实例 x”,规则对所有人一视同仁。
- 合取条件$\wedge$ 表示“同时成立”,即两条事实记录同时存在。
- 蕴含结论$\Rightarrow a=b$ 表示“若条件满足,则必须推出 a 和 b 是同一个地方”,否则即为冲突。
4. 时效性评估:用的是旧版图纸吗
质检员小赵遇到过一件尴尬事:仓库里一批“城市风景拼图”用的是 2020 年的航拍图纸,图上还没建完的地标,现实中 2024 年早已拔地而起。顾客拼完图拿去和实景对照,发现整整 “ 缺了一座楼 ”。这就是时效性问题:图谱里的数据曾经正确,但世界在变,旧事实没有及时更新。
知识图谱的时效性评估,核心是看每个实体或三元组“多久没更新了”。每个事实最好都记录更新时间戳 $t_{\text{updated}}$。有了时间戳,就可以计算一个实体的“年龄”:
年龄越大,数据越可能过期。但不同业务对“旧”的容忍度不同——新闻图谱三天不更新就废了,历史人物图谱三百年不变也正常。因此工程上常设一个最大容忍时限 $\Delta t_{\text{max}}$,用新鲜率指标衡量一批数据的整体时效:
评估之后要落地“过期数据清理”:把超过容忍时限、且上游已确认失效的数据标记为 deprecated(已废弃),不再参与推理;对仍属活跃但长期未更新的数据,则生成“待刷新任务”推送给采集团队,也就是时效滞后指数——它描述的是“达到多少数据已经滞后于业务节奏”。小赵在工厂推行的办法是给每盒拼图印上生产日期,并规定库存超过两年的批次自动降级处理。知识图谱也一样:给数据盖上时间戳,旧数据才不会悄悄“混”进新答案里。
- 当前时刻$t_{\text{now}}$ 是评估执行的时间,通常取服务器当前日期。
- 更新时刻$t_{\text{updated}}(e)$ 是实体 $e$ 最近一次被修改的时间,相当于拼图块上印的“版次”。
- 年龄差$\text{Age}(e)=t_{\text{now}}-t_{\text{updated}}(e)$ 算出该实体已经“多久没动过”。
- 指示函数$\mathbb{I}[\text{条件}]$ 是数学上的“计数器开关”——条件成立时取 1,不成立取 0。
- 求和平均$\sum_{e\in E}$ 把所有实体的 0/1 结果累加起来,再除以实体总数 $|E|$,得到新鲜率。
5. 冗余检测:盒子里有两块一模一样的拼图吗
小赵在数拼图时还遇到过一种“幸福的烦恼”:盒子里有两块一模一样的拼图块。单看没问题,可拼到图上,同一片天空被贴了两层,图案反而变糊了。知识图谱里的冗余,就是同一个实体或同一条关系被重复表达了多次——比如“张三”和“张伟”其实是同一个人,却在图谱里各占一个节点,各自挂着一套属性。
冗余不仅浪费存储,更致命的是"1+1 < 1":两个重复实体各自的属性不完全相同,AI 系统不知道该信谁的,特征计算时还会把同一人的数据算两遍。因此需要重复实体识别。常用手段是计算两个候选实体的属性相似度,最经典的是 Jaccard 相似度:
其中 $A(u)$ 表示实体 $u$ 的属性集合。如果两个人电话号码相同、姓名相同、部门相同,相似度就会接近 1,判定为重复实体后进入别名合并流程。
冗余的整体程度用冗余率衡量:
实际项目中,冗余检测还可以借助外部工具:按姓名或手机号做候选集生成,再用相似度模型排序,最后人工确认合并。小赵把“两块一样的拼图”挑出来后,并没有直接扔掉——他会先拍照存档,再确认哪块颜色更正、边角更完整,把两块中较优的属性合并到一块上,另一块作废。这就是“别名合并”的工程智慧:去重不是删除,而是合并且保留更多信息。
- 属性集合$A(u)$ 和 $A(v)$ 分别是两个候选实体的属性值集合,比如手机号、邮箱、部门。
- 交集$A(u)\cap A(v)$ 是两边都出现的属性,是两个实体“长得像”的证据。
- 并集$A(u)\cup A(v)$ 是两个属性集合的“总地盘”,把重复部分只算一次。
- 相似度比值交集大小除以并集大小,值域在 0 到 1 之间,越接近 1 越可能是同一实体。
- 冗余率重复实体数 $|D_{\text{dup}}|$ 除以实体总数 $|E|$,把“重复块”占比量化出来。
6. 质量评估工具:质检员的全套仪器
小赵的工位上摆着一套专业工具:游标卡尺量拼图块尺寸是否统一,紫外灯照图案是否有翻印痕迹,电子秤称整盒重量判断有没有缺块。知识图谱质量评估如果只靠人工,就像用肉眼数 500 块拼图,既慢又容易漏。工程化的做法是把上述指标做成“质检仪器”——自动化评估工具。
常见的工具包括四个层次。第一是规则校验引擎:把一致性检查中的逻辑规则(出生地唯一、人员类型正确等)写成 SHACL 或自定义规则脚本,交给引擎自动执行。第二是自动采样评估:按随机或分层策略从图谱中抽取三元组,自动生成待复核任务,分发给专家或众包标注者,回收后自动计算准确率。第三是质量指标看板:把完整性、准确性、一致性、时效性、冗余度五大指标做成可视化大盘,让管理者一眼看到图谱的“体检报告”。第四是 CI 流水线集成:把评估脚本挂进持续集成流程,图谱每次更新后自动触发一轮“全身体检”,质量不合格就禁止发布。
各项维度需要一个总评分来“一票汇总”。设完整性、准确性、一致性、时效性得分分别为 $C,\ A,\ S,\ T$,冗余率为 $R$,它们各自带有业务权重 $w_1$ 到 $w_5$:
小赵的工厂装上自动扫描台后,一天的质检量从 10 盒提升到 500 盒。工具的意义不是取代质检员,而是把重复劳动自动化,让质检员专心处理那些“机器拿不准”的边缘case——就像规则引擎负责扫出明显冲突,而语义模棱两可的重复实体,仍需要人工看一眼才能拍板。
- 维度符号$C$ 完整性、$A$ 准确性、$S$ 一致性、$T$ 时效性,四个指标值域都在 0~100。
- 权重系数$w_1$ 到 $w_4$ 表示各维度在业务心中的“分量”,比如金融风控更看重准确性。
- 冗余惩罚项$-w_5 R$ 表示冗余率越高,总分扣得越多,体现“越啰嗦越扣分”。
- 加权求和各项加权相加,得到一个 0~100 级的总分 $Q$,作为图谱整体的健康分数。
7. 质量保障体系:让质检成为流水线的一部分
单个指标的评估只是“一次体检”,真正让图谱长期保持健康的,是把质检固化成一套体系。就像拼图工厂不会只在年底质检一次,而是每盒拼图出厂前都过流水线,甚至给每条流水线配一个质检工位。知识图谱的质量保障体系,就是把这套流程制度化、自动化、持续化。
体系建设分四步。第一,质量基线设定:和业务方一起确定每个指标的及格线。例如“覆盖率 ≥ 95%、准确率 ≥ 99%、冲突率 ≤ 0.5%、新鲜率 ≥ 85%、冗余率 ≤ 2%”。第二,发布前检查:每次图谱版本更新,先跑完整评估,不过基线就不允许发布。这个“门禁”可以形式化为一个判定函数:
其中 $Q$ 是上节算出的综合质量分,$\theta$ 是质量门禁阈值(例如 80 分)。第三,持续监控预警:上线不代表万事大吉,定时任务持续扫描图谱,指标一旦跌破基线自动触发告警,晚上 11 点也能把值班工程师叫醒。第四,角色分工:数据采集团队对完整性负责,数据清洗团队对准确性和一致性负责,平台工程师对工具链负责,业务方对基线制定负责——每个人都盯住拼图流水线的一段。
有了这套体系,小赵再也不用每天凭经验判断“这批能不能过”。他只需把阈值写进系统,机器自动拦下不合格批次,他则定期复盘误判案例、调整阈值和权重。知识图谱的质量管理也从“事后消防”变成了“事前预防”:AI 应用还没有因为错误答案挨投诉,质量问题已经被拦截在出厂之前。
- 质量总分$Q$ 是上一节算出的综合质量分,取值范围约 0~100。
- 门禁阈值$\theta$ 是预先设定的及格分,类似拼图厂的“出厂合格线”。
- 分段函数$Q\ge \theta$ 时输出 1(放行),否则输出 0(拦截)。
AI 应用场景
智能客服知识图谱的质量巡检
阶段:数据质量管理与模型上线前评估
解决的问题:智能客服依赖知识图谱回答用户问题。传统做法是知识工程师手工抽查,更新慢、覆盖不全,常常是用户投诉“客服乱回答”之后才被动修数据。引入质量评估工具后,系统每次更新图谱都自动跑一遍五大指标,覆盖率跌破阈值时自动给知识工程师发工单。
具体案例:某电商客服团队发现“退换货政策”类问题的答非所问率上升,查后发现是新入库的 2000 条政策三元组里,有 300 条没有关联“适用商品类目”这一属性(完整性缺失)。质量看板第一时间暴露了缺失率从 2% 跳到 17%,团队在用户大规模投诉前就完成了补全。
金融风控图谱的时效性体检
阶段:数据更新监控与风险预警
解决的问题:反欺诈模型需要实时读取“企业关联关系图谱”。传统做法是月度批量更新,但企业股权变更频繁,用过期的边做风险推理会漏掉真正的关联风险。
具体案例:某银行的反欺诈图谱里,“甲公司”到“乙公司”的“实控人”关系停留在 2024 年,2025 年实际控制人早已变更。接入时效性评估后,系统设置“关键关系 90 天必须刷新”,逾期自动生成采集任务,并把这些边的置信度临时降权,避免模型过度依赖过期事实。
医学知识图谱的多源合并去重
阶段:知识融合与实体对齐
解决的问题:医学知识图谱常由多个文献库拼接而成,同一药物在不同库里叫“布洛芬”和“异丁苯丙酸”,若不去重,推理系统会把同一种药当成两种、剂量规则互相冲突。
具体案例:某医疗 AI 团队用 Jaccard 相似度配合人工复核,对 120 万实体做重复检测,识别出 4.3 万组别名实体,合并后图谱冗余率从 9% 降到 1.8%,后续用药推荐模型的准确率提升了 6 个百分点。
Python 演示
# -*- coding: utf-8 -*-"""小型知识图谱质量评估演示:覆盖完整性/准确性/一致性/时效性/冗余度"""from datetime import date class KnowledgeGraphQuality: """接收图谱数据并输出各类质量指标""" def __init__(self, triples, expected_entities, gold_label=None, updated_at=None, max_age_days=180): self.triples = triples self.expected_entities = set(expected_entities) self.gold_label = gold_label or [True] * len(triples) self.updated_at = updated_at or {} self.max_age_days = max_age_days def known_entities(self): """收集三元组中出现的所有实体""" entities = set() for s, _, o in self.triples: entities.add(s) entities.add(o) return entities def completeness(self): """完整性:已有实体中有多少在期望清单内""" hit = len(self.known_entities() & self.expected_entities) return round(hit * 100.0 / len(self.expected_entities), 2) def accuracy(self): """准确性:人工复核标签中正确标签的比例""" if len(self.gold_label) != len(self.triples): raise ValueError("gold_label 长度必须与 triples 一致") correct = sum(1 for flag in self.gold_label if flag) return round(correct * 100.0 / len(self.triples), 2) def conflict_rate(self): """一致性:同一实体同一谓词出现不同宾语视为冲突""" facts = {} conflict = 0 for s, p, o in self.triples: key = (s, p) if key in facts and facts[key] != o: conflict += 1 facts[key] = o return round(conflict * 100.0 / len(self.triples), 2) def recency(self): """时效性:更新时间在容忍时限内的三元组占比""" today = date(2026, 2, 1) fresh = 0 for s, _, _ in self.triples: if s in self.updated_at: age = (today - self.updated_at[s]).days if age <= self.max_age_days: fresh += 1 return round(fresh * 100.0 / len(self.triples), 2) def redundancy(self): """冗余度:同一手机号对应两个不同实体视为重复""" phone_map = {} dup = 0 for s, p, o in self.triples: if p == "phone": if o in phone_map and phone_map[o] != s: dup += 1 phone_map[o] = s return round(dup * 100.0 / len(self.triples), 2) def overall_quality(self): """综合质量分:加权求和,冗余率作为扣分项""" c = self.completeness() a = self.accuracy() s = 100 - self.conflict_rate() t = self.recency() r = self.redundancy() return round(0.25 * c + 0.30 * a + 0.20 * s + 0.15 * t - 0.10 * r, 2) if __name__ == "__main__": triples = [ ("zhang3", "born_in", "beijing"), ("zhang3", "born_in", "shanghai"), ("zhang3", "works_at", "huya_ai"), ("li4", "works_at", "huya_ai"), ("wang5", "works_at", "huya_ai"), ("zhao6", "works_at", "huya_ai"), ("张伟A", "phone", "13800000001"), ("张伟B", "phone", "13800000001"), ("sun8", "works_at", "huya_ai"), ] expected = {"zhang3", "li4", "wang5", "zhao6", "qian7", "sun8"} gold = [True, False, True, True, True, True, True, True, True] updated = { "zhang3": date(2026, 1, 1), "li4": date(2025, 5, 1), "wang5": date(2026, 1, 20), "zhao6": date(2025, 12, 1), "张伟A": date(2026, 1, 10), "张伟B": date(2025, 8, 1), "sun8": date(2026, 1, 25), } qa = KnowledgeGraphQuality(triples, expected, gold, updated) print("完整性: {0}%".format(qa.completeness())) print("准确性: {0}%".format(qa.accuracy())) print("冲突率: {0}%".format(qa.conflict_rate())) print("新鲜率: {0}%".format(qa.recency())) print("冗余率: {0}%".format(qa.redundancy())) print("综合质量: {0}".format(qa.overall_quality())) print("结论: " + ("通过" if qa.overall_quality() >= 80 else "不通过"))
expected = {"zhang3", "li4", ..., "sun8"}期望实体清单,相当于拼图盒上的“共 500 块”标注。gold = [True, False, ...]人工抽检复核结果,对应每块拼图“图案是否印对”的专家意见。self.known_entities() & self.expected_entities用集合交集计算“双方都有的实体”,直接对应覆盖率公式的分子。sum(1 for flag in self.gold_label if flag)统计正确标签的数量,除以总数就得准确率。key in facts and facts[key] != o检测“同一实体、同一属性、不同取值”的逻辑冲突,是规则引擎的微型实现。(today - self.updated_at[s]).days用日期差计算实体年龄,判断是否超出容忍时限。0.25 * c + 0.30 * a + 0.20 * s + 0.15 * t - 0.10 * r加权综合分公式,冗余率作为扣分惩罚项。
常见误区
误区我拿几个问题去测试,图谱都能给出答案,说明它质量不错呀,为什么还要花力气跑那么多指标?
正解能查出东西只说明“路是通的”,不代表“路是准的”。想象拼图能拼上,但图案印错了——AI 照着错图回答,语气越自信,误导越严重。完整性差的图谱表现为答不上来(显性失败),准确性差的图谱表现为答错(隐性失败),后者危害更大。五大指标缺一不可。
为何常见:人习惯用“能不能用”来判断物品好坏,但知识图谱的失败往往是“用起来才暴露”,事前看起来一切正常。
误区准确率都到 99% 了,图谱肯定没问题,其他指标没必要再测。
正解准确率只回答“记录的事实对不对”,回答不了“该有的事实有没有”。一份图谱可能每条已有事实都正确,但关键实体缺失 30%、矛盾冲突一堆、旧数据占了一半——就像一盒拼图每块图案都精美,但只有 300 块,怎么拼都缺一角。多个维度描述的是拼图的不同属性:块数、图案、咬合、版本、重复度。
为何常见:准确率是最先被提出的指标,媒体和工具宣传得多,人们容易把它当成唯一标准,而完整性、一致性等需要额外建模,被下意识忽略。
误区我上了 SHACL 规则引擎,机器扫过的图谱肯定干净了,不用再搞人工抽检。
正解规则引擎只能发现“你写进规则里的问题”。你没声明“出生地唯一”,引擎就不会报“张三有两个出生地”;你没想到“员工离职后关系要失效”,它也不会主动查时效。规则是质检员手里的检查清单,而人工抽检是“自由发挥的抽查”——专查清单外的意外。两者配合才是完整的工具链。
为何常见:工具厂商宣传时强调自动化、全量扫描,容易让人误以为机器取代了人的判断,实际上规则的编写质量直接决定工具的检出上限。
误区图谱里的数据越多越丰富,过时数据放着又不影响主流程,不用特意清理。
正解旧数据不只是“占地方”,它会污染推理结果。一条“张三在职”的旧关系,会让 HR 问答系统给出“张三目前隶属于技术部”的过期答案;一条已失效的实控人边,会让风控系统漏掉真正的风险。数据越全但越旧,AI 就越可能用更确定的语气说出更错误的话。
为何常见:“多”是直观的成就(实体数量增长容易汇报),“新鲜”是抽象的指标,团队在 KPI 压力下默认选择“先堆量、后治理”,结果为后续推理埋雷。
面试题
Q1. 知识图谱的完整性评估最关心的是什么?
- A.应有实体是否出现缺漏← 正确答案
- B.数据是否按时完成备份
- C.冲突三元组的数量大小
- D.图谱上次更新的时间点
答案:A。完整性回答“该有的有没有”,对应拼图缺不缺块,核心是比对期望实体集与实际实体集。B 是运维问题,C 属于一致性,D 属于时效性,都不完整性的关注点。
Q2. 图谱准确率的计算方式是?
- A.正确三元组数除以总数← 正确答案
- B.三元组总数减去重复数
- C.冲突数除以三元组总数
- D.最新实体数除以实体数
答案:A。准确率的定义是“抽查复核后正确的事实占总事实的比例”,即正确数 ÷ 总数。B 描述的是冗余去除后的数量,C 是冲突率,D 是新鲜率,三者都偷换了概念。
Q3. “张三出生于北京”与“张三出生于上海”同时存在,属于哪个维度的问题?
- A.冗余积累导致空间膨胀
- B.两条事实相互矛盾结论← 正确答案
- C.图谱覆盖率发生下降
- D.实体属性值发生缺失
答案:B。同一实体在相同属性上产生不同取值,是典型的一致性冲突,需要用规则引擎扫描出来。A 是冗余问题,C 是完整性问题,D 也是完整性问题。
Q4. Jaccard 相似度在冗余检测中的作用是什么?
- A.交集大小除以并集大小← 正确答案
- B.两个集合的元素数相加
- C.交集元素重复计数一次
- D.并集大小除以交集大小
答案:A。Sim(u,v)=|A(u)∩A(v)| / |A(u)∪A(v)|,用共同属性占全部属性的比例衡量两个实体多像,越接近 1 越可能是重复实体。B、C、D 都不是 Jaccard 的定义。
Q5. 新鲜率公式中“指示函数”的作用是?
- A.条件成立返回一否则零← 正确答案
- B.将日期格式转换成时间戳
- C.求所有实体元素的平均值
- D.对属性集合进行去重合并
答案:A。I[Age(e)≤Δt_max] 是一个开关:实体年龄没超限记 1,超过则记 0。把所有 0/1 累加再平均,就得新鲜率。B 是时间处理,C 是求和平均,D 是去重,都不对。
Q6. 某图谱综合质量分 Q=72,质量门禁阈值 θ=80,该图谱应该:
- A.直接通过发布门禁检查
- B.判定不通过并拦截发布← 正确答案
- C.条件不足无法完成判定
- D.无需再进行人工抽检复核
答案:B。门禁规则是 Q≥θ 通过、Q<θ 拦截。72 小于 80,显然不通过,应打回数据治理。A 把大小关系看反,C 忽略了已给出明确阈值,D 混淆了门禁与人工抽检的关系。
Q7. SHACL 规则验证引擎的主要用途是?
- A.用人工抽检全部图谱数据
- B.声明规则后自动校验图谱← 正确答案
- C.只负责统计三元组条数
- D.自动生成新的实体节点
答案:B。SHACL 是 W3C 的图谱验证语言,先声明约束规则(如“出生地必须唯一”),再由引擎自动扫描图谱找违规。A 是人工方式,C 是计数,D 是知识图谱构建,都与校验功能无关。
Q8. 以下哪些属于知识图谱质量评估的维度?
- A.完整性检测指标← 正确答案
- B.准确性检测指标← 正确答案
- C.一致性检测指标← 正确答案
- D.索引性能优化指标
答案:ABC。完整性、准确性、一致性(外加时效性、冗余度)构成五大质量维度。索引性能优化属于工程性能问题,衡量的是查询速度而非数据质量,不属于质量评估范畴。
Q9. 关于知识图谱质量评估,下列说法正确的有?
- A.完整性评估依赖期望实体清单← 正确答案
- B.准确率可通过人工抽样估计← 正确答案
- C.时效性评估需要结合业务场景← 正确答案
- D.冲突率与准确率是同一个东西
答案:ABC。A 正确,没有期望清单就无法算覆盖率;B 正确,全量复核成本高,抽样 + 专家标注是主流做法;C 正确,新闻图谱三天算过期,历史图谱三年也不旧,时限由业务定;D 错误,冲突率衡量内部矛盾,准确率衡量与客观事实的偏差,二者维度不同。
Q10. 下列哪些情况可能导致“质量门禁误判”?
- A.抽样样本存在偏差问题← 正确答案
- B.权重设置脱离业务需求← 正确答案
- C.规则集合覆盖不够完整← 正确答案
- D.图谱数据条数越来越多
答案:ABC。样本偏差会让准确率估计失真,权重不合理会让总分偏离真实风险,规则不完整会让冲突漏检——这三者都会让 Q 分虚高或虚低,造成误判。D“数据条数变多”本身不改变评价方法,不是误判原因。