Datawhale 知识图谱组队学习 之 Task 1 知识图谱介绍

知识图谱理论:

相关理论

知识图谱背景

早在 2010 年微软就开始构建知识图谱,包括 Satori 和 Probase;2012 年,Google 正式发布了 Google Knowledge Graph,现在规模已超 700 亿。目前微软和 Google 拥有全世界最大的通用知识图谱,Facebook 拥有全世界最大的社交知识图谱,而阿里巴巴和亚马逊则分别构建了商品知识图谱。

简介:

概念

从学术的角度,我们可以对知识图谱给一个这样的定义:“知识图谱本质上是语义网络(Semantic Network)的知识库”。

Schema

知识图谱另外一个很重要的概念是 Schema:

限定待加入知识图谱数据的格式;相当于某个领域内的数据模型,包含了该领域内有意义的概念类型以及这些类型的属性

这个概念十分关键,是核心部分。

价值

从图5中可以看出,知识图谱是人工智能很重要的一个分支, 人工智能的目标为了让机器具备像人一样理性思考及做事的能力 -> 在符号主义的引领下,知识工程(核心内容即建设专家系统)取得了突破性的进展 -> 在整个知识工程的分支下,知识表示是一个非常重要的任务 -> 而知识图谱又恰恰是知识表示的重要一环

个人认为,符号主义代表的人工智能不是核心解决思路,但一定很重要,他给机器提供了知识,这无疑十分·重要,但是这提供知识这个思路,本身是来自于 连接主义–仿生学的:
!因为人是依靠知识的!
同时,如何把知识融入模型十分关键!!!

如何建知识图谱

数据来源

这个特别重要:也是在把蛋糕做大的过程中很重要的一点。
知识图谱的构建是后续应用的基础,而且构建的前提是需要把数据从不同的数据源中抽取出来。对于垂直领域的知识图谱来说,它们的数据源主要来自两种渠道:

第一种:业务本身的数据。这部分数据通常包含在公司内的数据库表并以结构化的方式存储,一般只需要简单预处理即可以作为后续AI系统的输入;

第二种:网络上公开、抓取的数据。这些数据通常是以网页的形式存在所以是非结构化的数据,一般需要借助于自然语言处理等技术来提取出结构化信息。

难点

非结构化文本!!!

相关技术

在构建类似的图谱过程当中,主要涉及以下几个方面的自然语言处理技术:

  1. 实体命名识别(Name Entity Recognition)
  2. 关系抽取(Relation Extraction)
  3. 实体统一(Entity Resolution)
  4. 指代消解(Coreference Resolution)
  • 实体命名识别(Named Entity Recognition)
    实体命名识别(英语:Named Entity Recognition),简称NER
    目标:就是从文本里提取出实体并对每个实体做分类/打标签;
    举例说明:比如从上述文本里,我们可以提取出实体-“NYC”,并标记实体类型为 “Location”;我们也可以从中提取出“Virgil’s BBQ”,并标记实体类型为“Restarant”。
    这种过程称之为实体命名识别,这是一项相对比较成熟的技术,有一些现成的工具可以用来做这件事情。

  • 关系抽取(Relation Extraction)
    关系抽取(英语:Relation Extraction),简称 RE
    介绍:通过关系抽取技术,把实体间的关系从文本中提取出来;
    举例说明:比如实体“hotel”和“Hilton property”之间的关系为“in”;“hotel”和“Time Square”的关系为“near”等等。


还有两个小任务:

  • 实体统一(英语:Entity Resolution),简称 ER
    介绍:对于有些实体写法上不一样,但其实是指向同一个实体;
    举例说明:比如“NYC”和“New York”表面上是不同的字符串,但其实指的都是纽约这个城市,需要合并。
    价值:实体统一不仅可以减少实体的种类,也可以降低图谱的稀疏性(Sparsity)
  • 指代消解(Disambiguation)
    指代消解(英语:Disambiguation)
    介绍:文本中出现的“it”, “he”, “she”这些词到底指向哪个实体,比如在本文里两个被标记出来的“it”都指向“hotel”这个实体。

知识图谱动手构建:

NEO4J

知识图谱的存储

这个地方对小白不太友好:

RDF形式上表示为SPO三元组,有时候也称为一条语句(statement),知识图谱中我们也称其为一条知识,如下图。
主要是方便

Neo4j 和 Python 的py2neo

关于Neo4j: 使用了官网上的 sandbox 在线版。这样省去了大量的环境配置时间。
Sandbox

Cypher查询语言:对应于SQL在关系数据库中的程序语言。

实验演示:

所包含的三种基本的:实体–关系–实体

  • Person-Friends-PERSON
  • Person-Married-PERSON
  • Person-Born_in-Location

创建节点:人物节点和location节点
创建关系:人物间关系和出生地和人物的关系
这些关系还包含一部分属性
图数据库的查询:
删除和修改:

##通过python的py2neo来进行控制

  • neo4j模块:执行CQL ( cypher ) 语句
  • py2neo模块:通过操作python变量,达到操作neo4j的目的
  g = Graph(url+user+code)

通过csv文件批量导入图数据

csv分为两个nodes.csv和relations.csv,注意关系里的起始节点必须是在nodes.csv里能找到的

参考资料

  1. 干货 | 从零到一学习知识图谱的技术与应用
  2. 手把手教你快速入门知识图谱 - Neo4J教程
  3. python操作图数据库neo4j的两种方式
  4. Neo4j之导入数据
  5. schema 介绍
  6. 知识图谱Schema
  7. 美团大脑:知识图谱的建模方法及其应用
  8. 肖仰华. 知识图谱:概念与技术.北京:电子工业出版社, 2020.2-39.

Datawhale 知识图谱组队学习 之 Task 1 知识图谱介绍相关推荐

  1. Datawhale 知识图谱组队学习 之 Task 4 用户输入->知识库的查询语句

    文章编写人:王翔 特别鸣谢:QASystemOnMedicalGraph 目录 Datawhale 知识图谱组队学习 之 Task 4 用户输入->知识库的查询语句 目录 一.引言 二.什么是问 ...

  2. Datawhale 知识图谱组队学习之Task 4 用户输入->知识库的查询语句

    Datawhale 知识图谱组队学习 之 Task 4 用户输入->知识库的查询语句 文章编写人:王翔 github 地址: 特别鸣谢:QASystemOnMedicalGraph 目录 Dat ...

  3. Datawhale第九期组队学习计划

    Datawhale 组队学习 第九期Datawhale组队学习计划马上就要开始啦! 这次共组织三个组队学习,涵盖了编程.机器学习理论以及动手实践的内容,大家可以按照需要选择参加. 数据结构与算法(上) ...

  4. python基础语法及知识总结-Python 学习完基础语法知识后,如何进一步提高?

    ---4.30更新---感谢大家支持,点赞都破两千了.给大家整理出来新的资料,需要的小伙伴来自取: Python练手项目视频如下: Python自学基础知识如下: 以下为原文内容: Python 学习 ...

  5. python开发需要掌握哪些知识-人工智能需要学习哪些专业课程知识?

    原标题:人工智能需要学习哪些专业课程知识? 谈到人工智能,相信大家已经不陌生了,人工智能技术在近两年已经火得人尽皆知,跟互联网技术火的时候一样,那时行业和产品只要跟互联网相结合,就能在这个风口分得一杯 ...

  6. python开发需要掌握哪些知识-Python基础学习需要掌握哪些知识

    1.1Python的对象 python的内置对象类型有很多,包括数字,字符串,列表,集合,元组,字典等等,在Python中,一切皆对象 pickle腌制--在Python中,如果有一些对象需要持久性存 ...

  7. 知识图谱组队学习Task05——图数据库查询

    Cypher 介绍:作为Neo4j的查询语言,"Cypher"是一个描述性的图形查询语言,允许不必编写图形结构的遍历代码对图形存储有表现力和效率的查询.Cypher还在继续发展和成 ...

  8. 知识图谱组队学习Task04——知识库的查询语句

    这里写目录标题 一.问答系统 1.Query理解 (1)意图识别 (2)槽值填充 2.任务实践 二.命名实体识别任务实践 1.构建 AC Tree和初始化参数 2.使用AC Tree进行问句过滤 3. ...

  9. 知识图谱组队学习Task03——图数据库导入数据

    这里写目录标题 一.知识图谱结构 1 知识图谱实体类型 2.知识图谱实体关系类型 3 知识图谱疾病属性 二.build_graph文件解析 1.总体介绍 2.关键代码解析 项目地址:QASystemO ...

最新文章

  1. golang 追加内容到文件
  2. 怎么才能更好的掌握Python这门语言?该怎么学呢?
  3. hdu 6386 Age of Moyu (重边判断)
  4. vs2015通过ODBC连接SQLSERVER2012
  5. Fedora 15 安装 HP 打印机
  6. linux外部命令帮助,Linux的命令帮助
  7. Sqlite 管理工具收藏
  8. vbs代码炫酷效果_Python|实现黑客帝国代码雨效果
  9. js和CSS3炫酷3D相册展示
  10. android item复用,RecyclerView item正确的复用方式
  11. html的meta标签的作用
  12. 翻译: 如何使用Xcode构建xcframework
  13. 计算机视觉的技术与应用
  14. 图像scale与相机参数_Blender 的相机参数解析
  15. upnp+摄相头捕捉服务器端程序
  16. Matlab求解黎卡提方程
  17. 2019第十届蓝桥杯大赛软件类省赛C++ C组真题题解
  18. 一天接收了131份前端面试简历......(面试总结)
  19. 在anaconda中安装tensorflow
  20. 前端 html,css 经典面试题 16道 (20220322)

热门文章

  1. linux 亚马逊服务器排查当前时间相差8小时及解决方案
  2. The Lighting Handbook, Tenth Edition 读书札记
  3. 手把手带你制作WIFI智能开关.走进物联网-ESP8266学习日记(四)
  4. html5 答题器页面,公需科目考试答题器
  5. php星外提权,一次星外虚拟主机的提权
  6. php 手写签批 手机办公_用好签,在手机上就可以签批文件,手写签字,盖章,输入文本.........
  7. 20200925:k线
  8. 聊一聊usb电缆的几种类型
  9. OpenCV从入门到放弃(七):直方图那些事儿
  10. Angular 路由配置