知识图谱已成为人工智能和数据科学中一种强大而通用的方法,用于记录结构化信息,以促进成功的数据检索、推理和推理。本文探讨了最先进的知识图谱,包括构造、表示、查询、嵌入、推理、对齐和融合。
我们还讨论了知识图谱的许多应用,例如推荐引擎和问答系统。最后,为了为新的进展和研究机会铺平道路,我们探讨了该主题的问题和潜在的未来路线。
知识图谱通过提供灵活且可扩展的机制来表达实体和特征之间的复杂联系,彻底改变了信息的组织和使用方式。在这里,我们一般介绍知识图谱,它们的重要性以及它们在各个领域的潜在用途。
学习目标
- 理解知识图谱作为信息的结构化表示的概念和目的。
- 了解知识图谱的关键组件:节点、边和属性。
- 探索构建过程,包括数据提取和集成技术。
- 了解知识图谱嵌入如何将实体和关系表示为连续向量。
- 探索推理方法,从现有知识中推断出新的见解。
- 深入了解知识图谱可视化,以便更好地理解。
本文作为数据科学博客马拉松的一部分发布。
目录
知识图谱可以在信息提取操作期间存储提取的信息。许多基础知识图实现都利用了三元组的概念,三元组是三个元素(主语、谓词和宾语)的集合,可以保存有关任何内容的信息。
图形是节点和边的集合。
这是我们能设计的最小的知识图谱,也称为三元组。知识图谱有多种形式和大小。在这里,节点 A 和节点 B 是两个独立的东西。这些节点通过显示两个节点之间关系的边连接。
以下短语为例:
伦敦是英格兰的首都。威斯敏斯特位于伦敦。
我们稍后会看到一些基本的处理,但最初,我们将有两个三元组,如下所示:
(伦敦,成为首都,英格兰),(威斯敏斯特,定位,伦敦)
在此示例中,我们有三个不同的实体(伦敦、英国和威斯敏斯特)和两个关系(资本、位置)。构建知识图谱只需要网络中两个具有实体的相关节点和具有关系的顶点。生成的结构如下:手动创建知识图谱不可扩展。没有人会通过数百页来提取所有实体及其关系!
因为它们可以轻松地对数百甚至数千张论文进行分类,所以机器人比人类更适合处理这项工作。机器无法掌握自然语言的事实带来了另一个困难。在这种情况下使用自然语言处理 (NLP) 非常重要。
如果我们想从文本中创建知识图谱,让我们的计算机理解自然语言至关重要。使用 NLP 方法执行此操作,包括句子分割、依赖项解析、词性标记和实体识别。
import re
import pandas as pd
import bs4
import requests
import spacy
from spacy import displacy
nlp = spacy.load('en_core_web_sm')
from spacy.matcher import Matcher
from spacy.tokens import Span
import networkx as nx
import matplotlib.pyplot as plt
from tqdm import tqdm
pd.set_option('display.max_colwidth', 200)
%matplotlib inline
# import wikipedia sentences
candidate_sentences = pd.read_csv("../input/wiki-sentences1/wiki_sentences_v2.csv")
candidate_sentences.shape
candidate_sentences['sentence'].sample(5)
将文本文章或文档拆分为句子是创建知识图谱的第一阶段。然后,我们将只列出恰好具有一个主语和一个宾语的短语。</