热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

知识图谱入门:知识图谱的技术流程

知识图谱的技术流程知识图谱用于表达更加规范的高质量数据。一方面,知识图谱采用更加规范而标准的概念模型、本体术语和语法格式来建模和描述数据;另一方面&#x

知识图谱的技术流程


知识图谱用于表达更加规范的高质量数据。



  • 一方面,知识图谱采用更加规范而标准的概念模型、本体术语和语法格式来建模和描述数据;
  • 另一方面,知识图谱通过语义链接增强数据之间的关联。这种表达规范、关联性强的数据在改进搜索、问答体验、辅助决策分析和支持推理等多个方面都能发挥重要的作用。

知识图谱方法论涉及知识表示知识获取知识处理知识利用多个方面。一般流程为:


  • 首先确定知识表示模型,然后根据数据来源选择不同的知识获取手段导入知识
  • 接着综合利用知识推理、知识融合、知识挖掘等技术对构建的知识图谱进行质量提升
  • 最后根据场景需求设计不同的知识访问与呈现方法,如语义搜索、问答交互、图谱可视化分析等。

下面简要概述这些技术流程的核心技术要素。


1.知识来源


可以从多种来源获取知识图谱数据,包括文本、结构化数据库、多媒体数据、传感器数据和人工众包等。


每一种数据源的知识化都需要综合各种不同的技术手段。例如,对于文本数据源,需要综合实体识别、实体链接、关系抽取、事件抽取等各种自然语言处理技术,实现从文本中抽取知识。

结构化数据库如各种关系数据库,也是最常用的数据来源之一。已有的结构化数据库通常不能直接作为知识图谱使用,而需要将结构化数据定义到本体模型之间的语义映射。再通过编写语义翻译工具实现结构化数据到知识图谱的转化。此外,还需要综合采用实体消歧数据融合知识链接等技术,提升数据的规范化水平,增强数据之间的关联。

语义技术也被用来对传感器产生的数据进行语义化。这包括对物联设备进行抽象,定义符合语义标准的数据接口;对传感数据进行语义封装和对传感数据增加上下文语义描述等。

人工众包是获取高质量知识图谱的重要手段。例如,WikidataSehema.org 都是较为典型的知识众包技术手段。此外,还可以开发针对文本、图像等多种媒体数据的语义标注工具,辅助人工进行知识获取。


2.知识表示与 Schema 工程


知识表示是指用计算机符号描述和表示人脑中的知识,以支持机器模拟人的心智进行推理的方法与技术。


知识表示决定了图谱构建的产出目标,即知识图谱的语义描述框架
(Description Framework)、Schema 与本体(Ontology)、知识交换语法(Syntax)实体命名ID 体系

基本描述框架定义知识图谱的基本数据模型(Data Model)和逻辑结构(Structure),如:


  • 国际万维网联盟(World Wide Web Consortium,W3C)的 RDF。
  • Schema 与本体定义知识图谱的类集、属性集、关系集和词汇集。交换语法定义知识实际存在的物理格式,如TurtleJSON 等。实体命名及 ID 体系定义实体的命名原则及唯一标识规范等。

什么是 RDF?

w3school中是这样解释的:


RDF 指资源描述框架(Resource Description Framework)
RDF 是一个用于描述 Web 上的资源的框架
RDF 提供了针对数据的模型以及语法,这样独立的团体们就可以交换和使用它
RDF 被设计为可被计算机阅读和理解
RDF 被设计的目的不是为了向人们显示出来
RDF 使用 XML 编写
RDF 是 W3C 语义网络活动的组成部分
RDF 是一个 W3C 推荐标准


按知识类型的不同,知识图谱包括词(Vocabulary)、实体(Entity)、关系(Relation)、事件(Event)、术语体系(Taxonomy)、规则(Rule)等。


  • 词一级的知识以为中心,并定义词与词之间的关系,如 WordNet,ConceptNet 等。
  • 实体一级的知识以实体以实体为中心,并定义实体之间的关系、描述实体的术语体系等。
  • 事件是一种复合的实体:

W3C 的 RDF 把三元组(Triple)作为基本的数据模型,其基本的逻辑结构包含主语(Subject)、谓词(Predicate)、宾语(Object)三个部分。虽然不同知识库的描述框架的表述有所不同,但本质上都包含实体实体的属性实体之间的关系几个要素。


3.知识抽取


知识抽取按任务可以分为概念抽取、实体识别、关系抽取、事件抽取和规则抽取等。


传统专家系统时代的知识主要依靠专家手工录入,难以扩大规模。现代知识图谱的构建通常大多依靠已有的结构化数据资源进行转化,形成基础数据集,再依靠自动化知识抽取知识图谱补全技术,从多种数据来源进一步扩展知识图谱,并通过人工众包进一步提升知识图谱的质量。

结构化和文本数据是目前最主要的知识来源。


4.知识融合

在构建知识图谱时,可以从第三方知识库产品或已有结构化数据中获取知识输入。

当多个知识图谱进行融合,或者将外部关系数据库合并到本体知识库时,需要处理两个层面的问题:


  • 通过模式层的融合,将新得到的本体融入已有的本体库中,以及新旧本体的融合;
  • 数据层的融合,包括实体的指称、属性、关系以及所属类别等,主要的问题是如何避免实例以及关系的冲突问题,造成不必要的冗余。

数据层的融合是指实体和关系(包括属性)元组的融合,主要是实体匹配或者对齐
由于知识库中有些实体含义相同但是具有不同的标识符,因此需要对这些实体进行合并处理。

此外,还需要对新增实体和关系进行验证和评估,以确保知识图谱的内容一致性和准确性,通常采用的方法是在评估过程中为新加入的知识赋予可信度值,据此进行知识的过滤和融合。


实体对齐的任务包括实体消歧共指消解,即判断知识库中的同名实体是否代表不同的含义以及知识库中是否存在其他命名实体表示相同的含义。



  • 实体消歧专门用于解决同名实体产生歧义的问题,通常采用聚类法,其关键问题是如何定义实体对象与指称项之间的相似度,一些最新的工作利用知识图谱嵌入方法进行实体对齐,并引入人机协作方式提升实体对齐的质量。
  • 本体是针对特定领域中 Schema定义、概念模型和公理定义而言的,目的是弥合词汇异构性语义歧义的间隙,使沟通达成共识。这种共识往往通过一个反复的过程达到,每次迭代都是一次共识的修改。因此,本体对齐通常带来的是共识模式的演化和变化,本体对齐的主要问题之一也可以转化为怎样管理这种演化和变化】。

5.知识图谱补全与推理

常用的知识图谱补全方法包括:


  • 基于本体推理的补全方法,这类推理主要针对TBox,即概念层进行推理,也可以用来对实体级的关系进行补全。
  • 于图结构和关系路径特征的方法,如基于随机游走获取路径特征的PRA算法、基于子图结构的SFE法基于层次随机游走模型的 PRA算法。这类算法的共同特点是通过两个实体节点之间的路径,以及节点周围图的结构提取特征,并通过随机游走等算法降低特征抽取的复杂度,然后叠加线性的学习模型进行关系的预测。此类算法依赖于图结构和路径的丰富程度
  • 更为常见的补全实现是基于表示学习和知识图谱嵌入的链接预测,简单的如前面介绍最基本的翻译模型、组合模型和神经元模型等。这类简单的嵌入模型一般只能实现单步的推理。对于更为复杂的模型,如向量空间中引入随机游走模型的方法,在同一个向量空间中将路径与实体和关系一起表示出来再进行补全的模型
  • 文本信息也被用来辅助实现知识图谱的补全[。例如,Jointly(w)、ointly(z)、 DKRL、TEKE、SSP 等方法将文本中的实体和结构化图谱中的实体对齐,然后利用双方的语义信息辅助实现关系预测或抽取。这类模型一般包含三个部分:三元组解码器、文本解码器和联合解码器。三元组解码器将知识图谱中的实体和关系转化为低维向量;文本解码器则要从文本语料库中学习实体(词)的向量表示;联合解码器的目的是要保证实体、关系和词的嵌入向量位于相同的空间中,并且集成实体向量和词向量。

6、知识检索与知识分析

基于知识图谱的知识检索的实现形式主要包括语义检索智能问答


  • 传统搜索引擎依靠网页之间的超链接实现网页的搜索,
  • 而语义搜索直接对事物进行搜索,如人物、机构、地点等。这些事物可能来自文本、图片、视频、音频、loT设备等各种信息资源。而知识图谱和语义技术提供了关于这些事物的分类、属性和关系的描述,使得搜索引擎可以直接对事物进行索引和搜索。

知识图谱和语义技术也被用来辅助做数据分析与决策。例如,大数据公司 Plantir基于本体融合和集成多种来源的数据,通过知识图谱和语义技术增强数据之间的关联,使得用户可以用更加直观的图谱方式对数据进行关联挖掘与分析。

近年来,描述性数据分析(Declarative Data Analysis)越来越受到重视。描述性数据分析是指依赖数据本身的语义描述实现数据分析的方法。

不同于计算性数据分析主要以建立各种数据分析模型,如深度神经网络,描述性数据分析突出预先抽取数据的语义,建立数据之间的逻辑,并依靠逻辑推理的方法(如Datalog)实现数据分析。

参考资料: 知识图谱:方法、实践与应用:王昊奋 漆桂林等主编


推荐阅读
  • Python 伦理黑客技术:深入探讨后门攻击(第三部分)
    在《Python 伦理黑客技术:深入探讨后门攻击(第三部分)》中,作者详细分析了后门攻击中的Socket问题。由于TCP协议基于流,难以确定消息批次的结束点,这给后门攻击的实现带来了挑战。为了解决这一问题,文章提出了一系列有效的技术方案,包括使用特定的分隔符和长度前缀,以确保数据包的准确传输和解析。这些方法不仅提高了攻击的隐蔽性和可靠性,还为安全研究人员提供了宝贵的参考。 ... [详细]
  • 第六章:枚举类型与switch结构的应用分析
    第六章深入探讨了枚举类型与 `switch` 结构在编程中的应用。枚举类型(`enum`)是一种将一组相关常量组织在一起的数据类型,广泛存在于多种编程语言中。例如,在 Cocoa 框架中,处理文本对齐时常用 `NSTextAlignment` 枚举来表示不同的对齐方式。通过结合 `switch` 结构,可以更清晰、高效地实现基于枚举值的逻辑分支,提高代码的可读性和维护性。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 本文介绍了如何利用Struts1框架构建一个简易的四则运算计算器。通过采用DispatchAction来处理不同类型的计算请求,并使用动态Form来优化开发流程,确保代码的简洁性和可维护性。同时,系统提供了用户友好的错误提示,以增强用户体验。 ... [详细]
  • Python 程序转换为 EXE 文件:详细解析 .py 脚本打包成独立可执行文件的方法与技巧
    在开发了几个简单的爬虫 Python 程序后,我决定将其封装成独立的可执行文件以便于分发和使用。为了实现这一目标,首先需要解决的是如何将 Python 脚本转换为 EXE 文件。在这个过程中,我选择了 Qt 作为 GUI 框架,因为之前对此并不熟悉,希望通过这个项目进一步学习和掌握 Qt 的基本用法。本文将详细介绍从 .py 脚本到 EXE 文件的整个过程,包括所需工具、具体步骤以及常见问题的解决方案。 ... [详细]
  • 本文将继续探讨 JavaScript 函数式编程的高级技巧及其实际应用。通过一个具体的寻路算法示例,我们将深入分析如何利用函数式编程的思想解决复杂问题。示例中,节点之间的连线代表路径,连线上的数字表示两点间的距离。我们将详细讲解如何通过递归和高阶函数等技术实现高效的寻路算法。 ... [详细]
  • 本文介绍了如何利用ObjectMapper实现JSON与JavaBean之间的高效转换。ObjectMapper是Jackson库的核心组件,能够便捷地将Java对象序列化为JSON格式,并支持从JSON、XML以及文件等多种数据源反序列化为Java对象。此外,还探讨了在实际应用中如何优化转换性能,以提升系统整体效率。 ... [详细]
  • 如何在C#中配置组合框的背景颜色? ... [详细]
  • 本文详细介绍了使用 Python 进行 MySQL 和 Redis 数据库操作的实战技巧。首先,针对 MySQL 数据库,通过 `pymysql` 模块展示了如何连接和操作数据库,包括建立连接、执行查询和更新等常见操作。接着,文章深入探讨了 Redis 的基本命令和高级功能,如键值存储、列表操作和事务处理。此外,还提供了多个实际案例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 计算机视觉领域介绍 | 自然语言驱动的跨模态行人重识别前沿技术综述(上篇)
    本文介绍了计算机视觉领域的最新进展,特别是自然语言驱动的跨模态行人重识别技术。上篇内容详细探讨了该领域的基础理论、关键技术及当前的研究热点,为读者提供了全面的概述。 ... [详细]
  • REST与RPC:选择哪种API架构风格?
    在探讨REST与RPC这两种API架构风格的选择时,本文首先介绍了RPC(远程过程调用)的概念。RPC允许客户端通过网络调用远程服务器上的函数或方法,从而实现分布式系统的功能调用。相比之下,REST(Representational State Transfer)则基于资源的交互模型,通过HTTP协议进行数据传输和操作。本文将详细分析两种架构风格的特点、适用场景及其优缺点,帮助开发者根据具体需求做出合适的选择。 ... [详细]
  • 本文探讨了如何利用 jQuery 的 JSONP 技术实现跨域调用外部 Web 服务。通过详细解析 JSONP 的工作原理及其在 jQuery 中的应用,本文提供了实用的代码示例和最佳实践,帮助开发者解决跨域请求中的常见问题。 ... [详细]
  • 本文详细探讨了 jQuery 中 `ajaxSubmit` 方法的使用技巧及其应用场景。首先,介绍了如何正确引入必要的脚本文件,如 `jquery.form.js` 和 `jquery-1.8.0.min.js`。接着,通过具体示例展示了如何利用 `ajaxSubmit` 方法实现表单的异步提交,包括数据的发送、接收和处理。此外,还讨论了该方法在不同场景下的应用,如文件上传、表单验证和动态更新页面内容等,提供了丰富的代码示例和最佳实践建议。 ... [详细]
  • 在处理木偶评估函数时,我发现可以顺利传递本机对象(如字符串、列表和数字),但每当尝试将JSHandle或ElementHandle作为参数传递时,函数会拒绝接受这些对象。这可能是由于这些句柄对象的特殊性质导致的,建议在使用时进行适当的转换或封装,以确保函数能够正确处理。 ... [详细]
  • 技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告
    技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告 ... [详细]
author-avatar
高淑美萱士建志
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有