课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
知识图谱能够让我们在学习一项新的技术的时候能够有一个依据,从而让自己的知识掌握的更加全面,今天我们就通过案例分析来了解一下,程序员如何构建自己的知识图谱。
1.数据支持层
底下是知识获取及存储,或者说是数据支持层,先从不同来源、不同结构的数据中获取知识,CN-DBpedia的知识来源主要是通过爬取各种百科知识这类半结构化数据。
至于数据存储,要考虑的是选什么样的数据库以及怎么设计schema。选关系数据库还是NoSQL数据库?要不要用内存数据库?要不要用图数据库?这些都需要根据数据场景慎重选择。
CN-DBpedia实际上是基于mongo数据库,参与开发的谢晨昊提到,一般只有在基于特定领域才可能会用到图数据库,就知识图谱而言,基于json(bson)的mongo就足够了。用到图查询的领域如征信,一般是需要要找两个公司之间的关联交易,会用到短路径/社区计算等。
schema的重要性不用多说,高质量、标准化的schema能有效降低领域数据之间对接的成本。我们希望达到的效果是,对于任何数据,进入知识图谱后后续流程都是相同的。换言之,对于不同格式、不同来源、不同内容的数据,在接入知识图谱时都会按照预定义的schema对数据进行转换和清洗,无缝使用已有元数据和资源。
2.知识融合层
我们知道,目前分布在互联网上的知识常常以分散、异构、自治的形式存在,另外还具有冗余、噪音、不确定、非完备的特点,清洗并不能解决这些问题,因此从这些知识出发,通常需要融合和验证的步骤,来将不同源不同结构的数据融合成统一的知识图谱,以保证知识的一致性。
所以数据支持层往上一层实际上是融合层,主要工作是对获取的数据进行标注、抽取,得到大量的三元组,并对这些三元组进行融合,去冗余、去冲突、规范化。
3.知识验证
再往上一层主要是验证,分为补全、纠错、外链、更新各部分,确保知识图谱的一致性和准确性。
一个典型问题是,知识图谱的构建不是一个静态的过程,当引入新知识时,需要判断新知识是否正确,与已有知识是否一致,如果新知识与旧知识间有冲突,那么要判断是原有的知识错了,还是新的知识不靠谱?这里可以用到的证据可以是度、冗余度、多样性、一致性等。如果新知识是正确的,那么要进行相关实体和关系的更新。
4.知识计算和应用
这一部分主要是基于知识图谱计算功能以及知识图谱的应用。知识计算主要是根据图谱提供的信息得到更多隐含的知识,像是通过本体或者规则推理技术可以获取数据中存在的隐含知识;通过链接预测预测实体间隐含的关系;通过社区计算在知识网络上计算获取知识图谱上存在的社区,提供知识间关联的路径……通过知识计算知识图谱可以产生大量的智能应用如专家系统、推荐系统、语义搜索、问答等。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。