《长安三万里》作为2023年票房第一的国漫电影,以安史之乱为背景,从诗人高适的视角铺设了一幅绚丽的历史长卷,细细讲述“诗仙”李白跌宕起伏的一生,以及大唐盛世一路荣耀幻灭的唏嘘。同时,在这部动画电影中出现了多位大诗人,可谓群星璀璨……
李白算是唐代当之无愧的第一大V,非常喜欢结交朋友。杜甫、王维、孟浩然、王昌龄等其他诗人也算是头部顶流。诗圣杜甫是李白的迷弟,特别崇拜李白;李白则崇拜孟浩然;李白和高适曾经是好友,后面友谊的小船翻了!
那么如何通过一种简单、直观地的方式,了解李白和他的“朋友圈”呢?那就不得不提到知识图谱了!
什么是知识图谱?
知识图谱是以结构化的形式将节点通过关系相互连接起来,构成一张知识网络图。它可以把真实世界的各个场景抽象成图形,将信息表达成一种关系网络图。
举个例子,下图就是一个简单的图,节点(node)用红色标出,通过黑色的边(edge)连接。节点可以表示实体和属性,边可以表示为实体-实体和实体-属性之间的关系,这种形式对处理复杂的关联关系有着天然的优势,也更接近人类认知世界的形式,为数据处理提供了一种更好的组织和管理能力。
通常来说知识图谱的生命周期分为:构建、存储管理以及应用,下面我们逐一为大家演示介绍。
如何构建李白“朋友圈”知识图谱?
如何利用现有的数据构建知识图谱一直是知识图谱领域的一个难题。知识图谱自动化构建平台gBuilder是通过结合NLP技术、机器学习、人工智能、知识图谱、图数据库等众多技术,打造的一个知识图谱自动化构建平台。我们可以利用知识图谱自动化构建平台将结构化数据通过D2RQ技术进行映射,无损转化成知识图谱。也可以通过编写数据抽取程序、抽取模型等方式对半结构化和非结构化的数据进行抽取。
此外,我们还提供了表单录入的方式,用户可通过填写表单便捷快速地构建知识图谱。首先,平台会根据schema自动生成每种实体类型的表单;然后,用户直接在页面上即可新增实体,通过填写表单的方式,录入实体属性及关系,最后生成RDF数据。
本次我们从互联网上搜集了有关《长安三万里》中的人物以及其他唐代著名诗人的基本信息,然后以诗人、诗歌为主要实体类型,梳理了诗人之间的关系,在gBuilder中用非结构化数据表单录入的方式,最终得到了唐朝诗人关系的RDF文件。(文件下载地址http://file.gstore.cn/f/3ff6db5ed4604abbbb5a/?dl=1)
RDF文件是构建知识图谱的基础,有了RDF文件之后,大家就可以构建知识图谱了。在实际项目中,也可以根据不同类型的数据选择不同的抽取方式,或多种方式结合的形式来构建知识图谱。
如何存储和管理知识图谱?
我们可以将生成的RDF数据无缝导入gStore中进行存储与管理。gStore是由北京大学王选计算机研究所邹磊教授领导的数据管理研究室(PKUMOD)研发的面向知识图谱的开源图数据库系统,支持数据库的增删改查、导入、导出、备份、还原、事务ACID等功能;支持横向动态扩展解决存储容量限制;在查询速度方面通过底层的源头创新可在百亿规模的数据集且包含六跳查询情况下做到秒级响应。
2023年11月,gStore 上线发布了最新的V1.2版本,在V1.0版本基础上新增及优化了多项功能,详情请查看文章《gStore 1.2版本正式上线,体验再度升级!》,开源地址为:https://github.com/pkumod/gStore欢迎大家下载试用。
构建出来的知识图谱如何应用?
知识图谱构建完成后,我们就可以开始对李白及他的“朋友圈”用图的方式开始探索啦~
1. 知识图谱整体查询
我们可以在gStore可视化管理工具gWorkbench中输入SPARQL查询语句对整体的人物关系进行查询。查询语句:
SELECT *
WHERE {?a ?b ?c .
}
查询结果:
2. 李白“朋友圈”查询
我们可自定义输入SPARQL语句,一目了然地看到李白“朋友圈”的社交关系。
查询语句:
SELECT *
WHERE {<李白> ?b ?c .?c ?a ?d .?d ?d1 ?d2 .?d2 ?c1 ?c2 .?c2 ?c3 ?c4 .
}
查询结果:
3.李白所有相关信息查询
我们可输入SPARQL检索与之关联的其他实体。比如我们想看李白相关的所有信息,输入下方查询Sparql语句即可:
SELECT *
WHERE {<李白> ?b ?c .
}
查询结果:
4.李白的代表作里涉及哪些城市和著名景点
李白的代表作《望庐山瀑布》是其初游庐山时所作,以庐山的香炉峰入笔描写庐山瀑布之景。《黄鹤楼送孟浩然之广陵》是李白创作的一首送别诗。首句点出送别的地点:一代名胜黄鹤楼;二句写送别的时间与去向:“烟花三月”的春色和东南形胜的“扬州”。
那么李白还在哪些地方留下了他绝美的诗句,带我们领略了哪些祖国的名胜古迹呢?我们可以通过查询语句:
SELECT *
WHERE {
<李白> <代表作> ?a .
?a ?b ?c.
}
查询结果:
5.重要诗人分析
我们还可以采用紧密中心性算法来对重要诗人进行分析。紧密中心性算法gStore的内置图分析算法。具体的查询SPARQL语句:
SELECT (closenessCentrality(?t , false, {}) AS ?x)
WHERE{
?t a <诗人>
}
我们只取排名前5的诗人,查询结果为:
{"paths":[{"src":"<李白>","result":0.65625},{"src":"<杜甫>","result":0.575342},{"src":"<王维>","result":0.545455},{"src":"<王昌龄>","result":0.545455},{"src":"<孟浩然>","result":0.531646}]
}
从而我们可以发现李白、杜甫、王维、王昌龄、孟浩然在唐代诗人中具有重要地位。
由于本次录入的数据量比较小,只给大家展示了图分析比较基础的功能。除了以上应用,知识图谱在金融监管、公安侦查、政务大数据、智慧医疗、智慧教育等领域也有广泛应用。
我们已经将之前发布的《狂飙》、《人民的名义》、《水浒传》、西方哲学等相关数据集分享至基于gCloud云服务平台中(http://cloud.gstore.cn/),欢迎大家登录云平台探索更多知识图谱的应用。
相关阅读
图解《狂飙》人物关系
图解西方哲学
图说《人民的名义》
免责声明:本文封面及插图来源于网络开放信息,如有侵权,请联系删除