《狂飙》作为今年的开年大戏,一经播出就受到了大家的广泛关注,成为了全民热议的现象级剧集。作为一部扫黑剧,剧中的黑白两派的人物关系可谓错综复杂,不少小伙伴初看时经常搞不清楚出场人物的关系,看得一头雾水。那本期我们就用知识图谱的方式来探清狂飙中的人物关系。
知识图谱是以结构化的形式将节点通过关系相互连接起来,构成一张知识网络图。它可以把真实世界的各个场景抽象成图形,将信息表达成一种关系网络图。
举个例子,下图就是一个简单的图,节点(node)用红色标出,通过黑色的边(edge)连接。节点可以表示实体和属性,边可以表示为实体-实体和实体-属性之间的关系,这种形式对处理复杂的关联关系有着天然的优势,也更接近人类认知世界的形式,为数据处理提供了一种更好的组织和管理能力。
通常来说知识图谱的生命周期分为:构建、存储管理以及应用。下面我们用知识图谱一体化解决平台系统(简称KGS)逐一为大家演示介绍。
如何利用现有的数据构建知识图谱一直是知识图谱领域的一个难题。KGS知识图谱自动化构建平台(即原gBuilder工具)是通过结合NLP技术、机器学习、人工智能、知识图谱、图数据库等众多技术,打造的一个知识图谱自动化构建平台。我们可以利用知识图谱自动化构建平台将结构化数据通过D2RQ技术进行映射,无损转化成知识图谱。也可以通过编写数据抽取程序、抽取模型等方式对半结构化和非结构化的数据进行抽取。
此外,我们还提供了表单录入的方式,用户可通过填写表单便捷快速地构建知识图谱。首先,平台会根据schema自动生成每种实体类型的表单;然后,用户直接在页面上即可新增实体,通过填写表单的方式,录入实体属性及关系,最后生成RDF数据。
本次我们收集了互联网上有关狂飙剧中人物的信息,根据主要的人物信息,以人物、组织、事件为主要的实体类型,梳理了人物、组织、事件之间的关系,在KGS的知识图谱自动化构建平台中用拖拽连接等可视化的方式构建了狂飙人物关系schema。然后结合KGS的知识图谱自动化构建平台的非结构化数据抽取和表单录入两种方式,最终得到了狂飙人物关系的RDF文件(文件下载地址:http://file.gstore.cn/f/7cf1561d593745a8bebb/?dl=1
)。
文件数据如下:
<王力> <属于> <组织/#政府相关>.
<安欣> <属于> <组织/#政府相关>.
<施伟> <徒弟> <安欣>.
<施伟> <属于> <组织/#政府相关>.
<姜超> <徒弟> <安欣>.
<姜超> <属于> <组织/#政府相关>.
<陆寒> <徒弟> <安欣>.
<陆寒> <属于> <组织/#政府相关>.
<小五> <下级> <安欣>.
<小五> <属于> <组织/#政府相关>.
<杨健> <属于> <组织/#政府相关>.
.......
RDF文件是构建知识图谱的基础,有了RDF文件之后,大家就可以构建知识图谱了。在实际项目中,也可以根据不同类型的数据选择不同的抽取方式,或多种方式结合的形式来构建知识图谱。
在KGS中我们可以将生成的RDF数据无缝导入KGS存储与管理子模块(即原gStore)中进行存储与管理。
KGS存储与管理子模块是北京大学邹磊教授团队经过十年潜心研发的国产自主可控原生基于图数据模型的图数据库系统,支持数据库的增删改查、导入、导出、备份、还原、事务ACID等功能;支持横向动态扩展解决存储容量限制;在查询速度方面通过底层的源头创新可在百亿规模的数据集且包含六跳查询情况下做到秒级响应。KGS存储与管理子模块的开源地址为:https://github.com/pkumod/gStore
欢迎大家下载试用。
接下来我们就可以对狂飙的人物关系用图的方式进行探索啦。
我们在KGS图谱可视化模块中输入SPARQL查询语句对整体的人物关系进行查询。查询语句:
SELECT *
WHERE {
?a ?b ?c .
}
查询结果:
KGS图谱可视化模块可对实体类型等进行统计和展示。比如,我们点击实体类型为“组织”的实体,查询结果将隐藏其他类型的节点,我们可一目了然的看出剧中涉及的几大组织以及它们之间的关系。
点击单个实体,即可查看与之关联的其他实体。比如我们想查看政府单位有哪些关联节点,点击政府相关即可得到结果:
同样可以查看人物类型的关联节点。显示结果如下:
KGS图谱可视化模块还支持最短路径、环路查询、K跳可达等高级查询功能,直接在页面进行输入节点名称即查询相关关系。
比如,我们想查剧中李宏伟贩卖的毒品的货源到底出自何处。我们可以以李宏伟为起点,查询他K跳以内的以拿货为关系的节点,K的取值可以根据情况调整,直至找到提供毒品的最终节点。查询结果如下,一条毒品链就这样在错综复杂的人物关系当中被找出。
在实际应用中,我们还可以通过对调查对象的同校、同宿、同程等多种关系的多跳查询来辅助公安进行案件侦查。在金融领域,也可以通过多跳查询来进行多层股权查询、资本系分析,目前KGS在金融行业的应用中已实现43跳查询。
知识图谱还具有推理能力。比如在高晓晨的绑架案件中,绑架者李青当场被击毙,如何快速分析其作案动机呢?知识图谱可以从大量的人员、案件等数据中深度挖掘关联关系,支撑公安机关挖掘线索、快速侦破案件。
在上面例子中,我们可以利用KGS中的高级查询——K跳路径查询,就是找到两个节点k-hop以内的路径,用于挖掘两点的之间的关系。输入“高晓晨”和“李青”,查询他们之间的5跳连接路径,结果如下:
根据查询结果,推测李青可能是因为其父亲的死报复绑架。我们进一步查询K跳所有路径,查询“高晓晨”和“李青”之间其他的多跳路径,结果如下:
查询结果中显示,本次绑架事件当中的关联人物都属于莽村和强盛集团这两个组织,且这两个组织之间还存在多件犯罪事件,可以分析出莽村和强盛集团之间可能存在矛盾关系,那么可以进一步调查两个组织之间是否有利益纠葛。
知识图谱从大数据中深度挖掘关联关系,可实时分析多至千亿级海量关系数据,转化为关系图谱数据,支撑公安机关展开情报研判分析、犯罪团伙跟踪以及重大事情预警等。
除了查询功能,KGS还支持Personalized PageRank、紧密中心度、三角形计数等图分析功能。
Personalized PageRank
Personalized PageRank是KGS的自定义函数,可用于计算实体间的相关度。例如要查询与高启强相关度最高的五人,输入以下SPARQL查询语句:
SELECT (PPR(<人物/#高启强>, -1, {}, 5) as ?y) WHERE {}
查询结果如下(为方便阅读,省略了字符串最外层的双引号和内部双引号转义):
{"paths":[
{"src":"<人物/#高启强>",
"results":[
{"dst":"<人物/#高启强>","PPR":0.41004},
{"dst":"<人物/#陈书婷>","PPR":0.0383974},
{"dst":"<人物/#谭思言>","PPR":0.034593},
{"dst":"<人物/#高晓晨>","PPR":0.0341354},
{"dst":"<人物#黄老>","PPR":0.0335114},]
}
]
}
紧密中心度
紧密中心度分析用于分析某节点到达其他节点的难易程度,节点的紧密中心度越大,其在所在图中的位置越靠近中心。我们查询人物关系图中每一个节点的紧密中心度,将结果从高到低进行排序,结果如下(仅显示排序前五的节点):
{ "paths": [
{ "src": "<人物/#高启强>",
"result": 0.569343},
{"src": "<人物/#安欣>",
"result": 0.553191},
{"src": "<人物/#赵立冬>",
"result": 0.527027},
{ "src": "<人物/#陈金默>",
"result": 0.516556},
{ "src": "<人物/#高晓晨>",
"result": 0.506494}
]
}
我们可以看出高启强、安欣、赵立冬等人是整个人物关系网络的中心人物,那么扫黑指导组就可以从这几个关键人物入手,开展扫黑行动。
知识图谱的图分析功能已经在检测电商虚假交易、电信诈骗、侦查传销组织等多方面发挥重要作用。
我们已经将《狂飙》、《人民的名义》、西方哲学等相关数据集分享至KGS云平台(http://cloud.gstore.cn/
),欢迎大家登录云平台探索更多知识图谱的应用。
内容来源:电视剧《狂飙》
文字:代雪佩
UI:唐莹婷、荣悦斯
免责声明:本文封面及插图来源于网络开放信息,如有侵权,请联系删除
欢迎关注北京大学王选计算机研究所数据管理实验室微信公众号“图谱学苑“
实验室官网:https://mod.wict.pku.edu.cn/
微信社区群:请回复“社区”获取
实验室开源产品图数据库gStore:
gStore官网:http://www.gstore.cn/
GitHub:https://github.com/pkumod/gStore
Gitee:https://gitee.com/PKUMOD/gStore