KnowledgeGraph
前⾔引⼊
知识图谱(Knowledge Graph)是⼀门前沿的交叉学科,⽤于将⼈类社会的海量知识结构化,并提供⼀个可理解,可解释的⼀个模型。这⾥我们将以射雕三部曲为例,从 0 构建起⼀个可以实际应⽤的知识图谱。
知识图谱技术是⼈⼯智能技术的组成部分,其强⼤的语义处理和互联组织能⼒,为智能化信息应⽤提供了基础。
知识图谱旨在描述现实世界中存在的实体以及实体之间的关系。
随着⼈⼯智能的技术发展和应⽤,知识图谱作为关键技术之⼀,已被⼴泛应⽤于智能搜索、智能问答、个性化推荐、内容分发等领域。
然⽽,相⽐于传统技术,知识图谱的普及远远不够。⼤部分垂直⾏业中的技术和业务⼈员对知识图谱的概念、⽤途和相关技术的认识仍然⽐较模糊。
这⾥我们会对知识图谱的来龙去脉有个整体的了解,随后将详细介绍知识图谱⽣命周期中各个环节中涉及的理论,技术和⼯具。
射雕三部曲构建后的图模型展⽰:
项⽬简介
如何快速梳理《射雕三部曲》中的⼈物关系,或者查看哪些⼈会什么武功?
通常的思路是通过原著和⽹络上的解读分析,将⼈物,武功,门派等信息提取出来,并构建⼀个模型存储,提问时通过查询这个模型来获得解答。知识图谱(knowledge graph) 就⾮常适合这⼀个任务。
知识图谱最早起源于 Google Knowledge Graph。它利⽤实体,关系,属性这些基本单位,以符号的形式描述了现实世界中不同概念之间的相互关系。⽬前,知识图谱已被⼴泛认为是实现认知智能的必备基础。
基础知识
图论与知识图谱
图论是数学的⼀个分⽀,以图(Graph) 为研究对象。在图论中,图由节点(Vertex)和边(Edge) 来构成。
如下图为⼀个由四个顶点和三条边组成的⽆向图。
有向图是边具有⽅向的图,如下图所⽰
知识图谱从实际应⽤的⾓度出发可以理解成多关系图。 多关系图⼀般包含多种类型的节点和多种类型的边,如下图,不同颜⾊代表不同的种类。
在知识图谱中,通常⽤实体(Entity)来表达图中的节点,⽤关系(Relation) 来表达图中的边。实体 指的是现实世界的事物⽐如⼈、地名、书名等,关系 则是不同实体之间到的某种联系。 在现实世界中,实体和关系也会拥有各⾃的属性,⽐如⼈有姓名和年龄。
知识图谱是⼀种基于图的数据结构,由节点(Point)和边(Edge) 组成,每个节点表⽰⼀个“实体”,每条边为实体与实体之间的“关系”,知识图谱本质上是语义⽹络。
实体指的可以是现实世界中的事物,⽐如⼈、地名、公司、电话、动物等;
关系则⽤来表达不同实体之间的某种联系。
由上图,可以看到实体有地名和⼈;⼤理属于云南、⼩明住在⼤理、⼩明和⼩秦是朋友,这些都是实体与实体之间的关系。
通俗定义:知识图谱就是把所有不同种类的信息连接在⼀起⽽得到的⼀个关系⽹络,因此知识图谱提供了从“关系”的⾓度去分析问题的能⼒。
因为底层知识图谱已经有了周杰伦和昆凌是夫妻关系,所以可以理解到你要的是昆凌,⽽不是周杰伦,这也说明了知识图谱有理解⽤户意图的能⼒。
⼜⽐如下图为带属性的图,郭靖和黄蓉都是《射雕英雄传》的⾓⾊,郭靖性别男,⽣性单纯刚直,在第三次华⼭论剑中获得称号“北侠”。
到这⾥相信你我已经初步认识了知识图谱。
让我们⼀起崇敬前辈们的伟⼤,⼀起憧憬未来吧!
感谢他们,让我们能够站在巨⼈的肩膀上前进!
知识图谱构建流程
知识图谱的构建是知识图谱应⽤的基础。
在现实世界中,存在着⼤量⾮结构化的数据,如整套⾦庸⼩说,或者是百度百科等对⾦庸⼩说⼈物的介绍,如何将这些⾮结构化的数据提取成结构化的数据,就需要借助⾃然语⾔处理等技术了,需要的技术包括但不限于如下:
命名实体识别
命名实体识别是⾃然语⾔处理的⼀个基础任务,其⽬的是识别语料中⼈、地名、书名等命名实体。
命名实体识别的⽅法基本分为两种:
1. 基于规则与词典的⽅法:为⽬标实体编写模板,然后在原始语料中进⾏匹配
2. 基于统计机器学习的⽅法:通过机器学习的⽅法对原始语料进⾏训练,然后再利⽤训练好的模型去识别实体
关系抽取
⽂本预料经过实体抽取,得到的是⼀系列离散的命名实体,为了得到语义信息,还得从语料中提取出实体之间的关联关系,通过关系将实体联系起来,才能够形成⽹状的知识结构。
知识图谱存储
知识图谱的本质是⼀种图形数据库,图数据库的基本含义是以“图”这种数据结构存储和查询数据。
图形数据库是 NoSQL 数据库的⼀种类型,它应⽤图形理论存储实体之间的关系信息。
NoSQL,泛指⾮关系型的数据库。
随着互联⽹web2.0⽹站的兴起,传统的关系数据库在处理web2.0⽹站,特别是超⼤规模和⾼并发的SNS类型的web2.0纯动态⽹站已经显得⼒不从⼼,出现了很多难以克服的问题,⽽⾮关系型的数据库则由于其本⾝的特点得到了⾮常迅速的发展。
NoSQL数据库的产⽣就是为了解决⼤规模数据集合多重数据种类带来的挑战,特别是⼤数据应⽤难题。
------百度百科
常见的图形数据库有 Neo4j,FlockDB,AllegroGrap 等。
在本项⽬中主要学习 Neo4j ,Neo4j 是⼀个流⾏的开源图形数据库。
Neo4j 基于 Java 实现,兼容 ACID 特性,也⽀持其他编程语⾔,如 Ruby 和 Python。
完成本项⽬的最低要求:
开学第一课怎么上1)掌握 Linux 基本操作
2)掌握 Python 基础操作
3)了解机器学习中监督学习的基本概念
若掌握以上技能,则可以获得更好的课程体验。
1)基础的英语阅读⽔平
炒湖蟹2)对⾃然语⾔处理有⼀定的了解
拓展知识:监督学习supervised learning
监督学习是指:利⽤⼀组已知类别的样本调整分类器的参数,使其达到所要求性能的过程,也称为监督训练或有教师学习。
监督学习是从标记的训练数据来推断⼀个功能的机器学习任务。训练数据包括⼀套训练⽰例。在监督学习中,每个实例都是由⼀个输⼊对象(通常为⽮量)和⼀个期望的输出值(也称为监督信号)组成。
监督学习算法是分析该训练数据,并产⽣⼀个推断的功能,其可以⽤于映射出新的实例。⼀个最佳的⽅案将允许该算法来正确地决定那些看不见的实例的类标签。
这就要求学习算法是在⼀种“合理”的⽅式从⼀种从训练数据到看不见的情况下形成。
关键技术
知识图谱构建的过程中,最主要的⼀个步骤就是把数据从不同的数据源中抽取出来,然后按⼀定的规则加⼊到知识图谱中,这个过程我们称为知识抽取。
数据源的分为两种:结构化的数据和⾮结构化的数据。
感谢信范文结构化的数据是⽐较好处理的,难点在于处理⾮结构化的数据。
处理⾮结构化数据通常需要使⽤⾃然语⾔处理技术:实体命名识别、关系抽取、实体统⼀、指代消解等。
学习内容
本课程分六个⽅向七个实验,具体组织如下:
1. Neo4j 学习
主要掌握 Neo4j 图形数据库的部署,并通过导⼊已构建好的《射雕三部曲》的知识图谱,来掌握客户端界⾯的操作使⽤⽅法。
2. Cypher 学习
本⽅向分为两个实验,第⼀个实验使⽤ Neo4j 的查询语⾔ Cypher 进⾏增删查改操作。第⼆个实验使⽤ Neo4j 提供的 Python api 进⾏增删查改操作。
3. 知识图谱建⽴
使⽤ Neo4j 中的两种批量导⼊⽅法,建⽴《射雕三部曲》中的⼈物,武功,门派等关系。
4. Keras ⼊门
主要学习 Keras 的使⽤⽅法,以及构建 NLP 模型常⽤的⽹络层。
5. 命名实体识别
本⽅向主要介绍命名实体识别任务,并通过 Keras 构建⼀个常⽤于命名实体识别任务的模型 Bi-LSTM,最后进⾏训练与预测。
6. 关系抽取
本⽅向主要介绍关系抽取任务,并通过 Keras 构建⼀个⽤于关系抽取的简单⽹络,最后进⾏训练与预测。
实验环境密码
本实验分两个环境
三年级英语教学计划容器环境:⽤于 Neo4j 相关实验的学习
jupyter:⽤于机器学习相关实验的学习
Jupyter Notebook(此前被称为 IPython notebook)是⼀个交互式笔记本,⽀持运⾏ 40 多种编程语⾔。
Jupyter Notebook 的本质是⼀个 Web 应⽤程序,便于创建和共享⽂学化程序⽂档,⽀持实时代码,数学⽅程,可视化和
markdown。
⽤途包括:数据清理和转换,数值模拟,统计建模,机器学习等等。
有关文学的名言-------百度百科
后序引出
All Link
努⼒ 进步 感谢
加油!
发布评论