前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【知识图谱】获取到知识后,如何进行存储和便捷的检索?

【知识图谱】获取到知识后,如何进行存储和便捷的检索?

作者头像
用户1508658
发布2019-12-25 18:01:13
1.6K0
发布2019-12-25 18:01:13
举报
文章被收录于专栏:有三AI有三AI

互联网时代,人类在与自然和社会的交互中生产了异常庞大的数据,这些数据中包含了大量描述自然界和人类社会客观规律有用信息。如何将这些信息有效组织起来,进行结构化的存储,就是知识图谱的内容。

知识图谱的难点在于知识图谱的搭建,如何高效、高质量、快速的搭建知识图谱是知识图谱工程的核心,那之后获取到的知识,该如何存储以及便捷的检索呢?

作者&编辑 | 小Dream哥

1 知识存储

在前面的知识图谱的文章中,我们介绍了如何进行知识表示以及知识抽取。今天我们来思考这样一个问题,当获取到了大量的知识(通常是一系列的三元组)之后,该用什么样的形式存储这些知识呢?

先思考一下,用来存储知识的系统,应该具有哪些特点呢?

首先,图谱的价值体现在其对对话系统,信息抽取等下游任务的加成,因此知识的存储系统应该能够支持快速和频繁的知识查询操作。

其次,图谱里的知识是按照shcema的结构抽取的,因此,知识的存储应该能够按照schema的结构,体现出知识的层次结构和知识间联系。

此外,知识存储应该尽量高效,避免出现过多的存储空间的浪费。

1)关系型数据库

数据存储最容易想到的就是常用的关系型数据库,包括Oracle、MySQL等。

如上图所示,是采用传统关系型数据库表示知识的示意图。每条知识是一个三元组(S,P,O),其中S称为主语Subject,其取值可以是实体、事件或者概念中的任何一个;P被称为谓语Predicate,取值可以是关系或者属性;O被称为宾语Object,取值可以是实体、事件、概念或者其他普通的值(例如数字,字符串等)。

在传统关系型数据库中,将三元组一个一个的存储在数据库的一个数据项中,当数据量非常大时,表的规模就非常大,这样的话,查询和修改操作的开销会变得非常的大,这会极大伤害知识图谱的实用性。虽然,基于关系型数据库,有人提出了类型表的方法,即将数据按照schema进行分类,然后数据按照不同的类型表分表存储。但是,由于其本质上并没有“理解”知识图谱的复杂结构,其查表过程仍然较慢较繁琐,无法适应数据量极大的知识图谱的应用。

2)图数据库

将实体看作节点,关系看作带有标签的边,那么知识图谱的数据很自然的满足图模型结构。因此,基于图结构的存储方式能够直接准确的反映知识图谱的内部结构,有利于对知识的查询。另外,以图的方式对知识进行存储,还可以借鉴图论的相关算法,有利于知识推理和知识挖掘。

常用的图数据库有:Neo4J,OrientDB,InfoGrid,HyperGraphDB等。目前,应用较为广泛的为Neo4J和OrientDB。图数据发展较晚,相关标准和技术均不完备,实际应用时可能会遇到意想不到的问题。因此,在为项目选择图数据库时,需要将数据库的易用性和技术文档的完整性等因素也考虑进来。Neo4J是目前较为流行的图数据库,它极易入门,访问速度快。

基于图结构的存储模型用节点表示实体,用边表示实体之间的关系。如下图所示,展示了基于图数据库的知识存储示例。由图可见,节点可以定义属性,用来描述实体的各种特性,下图中“周杰伦”有“身高”,“体重”等属性。基于图结构的存储方法,还可以为边定义属性,因此,还能够描绘实体之间的关系,例如,“周杰伦”和“黄秋生”之间就用了一条叫“义父”的边来连接,表达了他们之间的关系。

2 知识的检索

知识检索的过程,通常是知道三元组(S,P,O)中S和P,从图谱中获取O的过程。以KBQA为例,我们来讲述一下知识检索的过程。

假设用户输入这样的query:“周杰伦的义父是谁?”,读者先想一下,需要经过哪些步骤,才能检索图谱得到答案呢?

如上图所示,展示了这样一个过程:

1.通过实体识别模块,识别出S:周杰伦

2.通过关系识别模块,识别出P:义父是谁

3.检索图数据库,得到答案“黄秋生”

上述过程是一个标准的流程,在实际的应用过程中,可能还会有实体的链接以及关系校正等过程。

当然,检索数据库过程因不同数据库而异,具体不会太复杂,感兴趣的同学可以参考自己所使用的数据库的文档,这里不做详细的介绍。

总结

知识图谱是人工智能技术最重要的基础设施,是计算机能够实现推理、预测等类似人类思考能力的关键。知识存储和检索是知识图谱系列技术中相对简单的一环。对开发者而言,其难点在于检索过程,即组建检索语句的过程,设计实体识别及关系识别。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 有三AI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档