从零构建知识图谱:技术、方法与案例
上QQ阅读APP看书,第一时间看更新

1.6 知识图谱的技术架构

本节将简要介绍知识图谱的技术架构,更多知识图谱的技术和工程实践细节将在后文详细阐述。构建知识图谱是一个系统性工程。图1-14给出了一个典型的知识图谱构建与计算的架构。

000

图1-14 知识图谱的构建与计算

知识图谱的构建与计算,不仅需要考虑如何结合文本、多媒体、半结构化、结构化知识、服务或API,以及时态知识等的统一知识表示,还需要进一步考虑如何结合结构化(如关系型数据库)、半结构化(HTML或XML)和非结构化(文本、图像等)多源异质数据源来分别构建通用事实类(各种领域相关实体知识)、常识类、用户个人记忆类和服务任务类知识库等。针对不同类型的数据和知识,有不同的构建技术,如针对结构化数据的知识映射、针对半结构化知识的包装器(Wrapper),以及针对非结构化知识的文本挖掘和自然语言处理。文本挖掘充分利用Web和大规模语料库的冗余信息来发现隐含的模式;而自然语言处理更多是在开放或者确定的Schema下做各种知识抽取。为了得到融合的图谱,我们除了需要考虑离线的多源异构的知识融合,还需要额外考虑服务任务类动态知识的对象绑定。这项工作往往是在线完成的,相当于根据不同的交互,在线动态扩充知识图谱并实例化的过程。

最后还需要考虑知识图谱的存储。既然有了知识,就必须用一定的手段去存储。但这里谈到的存储,不仅仅是建立一个知识库,还包括存储之后的应用效率等。传统型关系数据库,例如MySQL,以及一些NoSQL数据库,例如MongoDB,能不能存储KG呢?答案是肯定的,但从直观上说,考虑到知识是互联、庞大的,且联系是数据的本质所在,而传统型数据库对于数据联系的表现比较差,所以在知识图谱的存储上,关系型数据库没有图数据库灵活。尤其是涉及多跳关联查询时(例如姚明的妻子的国籍是什么),图数据库的效率会远比关系型数据库高。