知识图谱的感性认识

2020-10-31  本文已影响0人  谭英智

定义

知识图谱可以分割为知识和图谱。知识包含实体和实体之间的联系,

图谱就是用图的方式把实体和它们之间的关系用图表示出来。

例如微信,我和我的朋友以好友的关系而关联起来,而我的朋友又有他们的朋友圈,进而把整个关系群以一个网络的方式关联起来。

kg-overview

用途

kg-qa kg-graph-embedding kg-trick kg-toporve

存储

对于知识图谱,需要存储所有信息只有实体和实体之间的关系

一般来说市面上有非常多的图数据库引擎可以使用

例如最热门的neo4j

图数据库与传统关系性数据库

大家可能有疑问,对于实体和实体之间的关系,是可以通过关系性数据库来存储的。

为什么需要图数据库?

按我的理解

融合(构建)

需要构建知识图谱,首先需要数据的导入

一般来说数据源都是非结构化的,例如网络上爬取下来的网页,音频文件,视频文件,图片

需要使用到的技术有NLP,图片信息抽取,音频转文本等技术

此篇只关注NLP技术,其他技术,只是在信息提取的细节不一样,对于融合到知识图谱的过程,是一致的。

NLP信息融合

NLP目前市面上有非常多的第三方库可以使用,在避免重复造轮,我们在应用上,应该更多的使用市面上的库,而不是自己写,对于NLP的理论知识,后面会有一篇博文分享。

对于此篇,我们关注NLP库给我们提供了什么,我们可以基于这些库,可以做什么。

pyltp的功能

库的使用如下:

https://pyltp.readthedocs.io/zh_CN/latest/api.html

kg-ltp-fenju kg-ltp-fenci kg-ltp-cixingbiaozhu kg-ltp-mingmingshiti kg-ltp-yicunjufa kg-ltp-yuyijuese

OK!有了上面对pyltp的感性认识,相信大家如果收到一份文本,通过使用以上的API,就可以轻而易举地分析出文本的信息。

关键词提取

例如我们要构建一个医疗问答系统,我们需要的信息如下:

那么我们拿到一份非结构化的医疗报告,我们改怎么把非结构化的报告转化为知识图谱呢?

例如病名,由于病名的数量是确定的,此时我们可以从某个医学的语料库找到大部分的病名,并定义为关键词

例如食物,一般来说食物前的动词时吃,食等动词,通过找到动宾结构,匹配动词,就可以确定谓语是食物

例如科室,通过命名实体识别找到所有的实体,并匹配是否包含关键词 ‘科’ ,就可以找到科室的名字

。。。。

功能

到目前为止,我们有了知识图谱,那么基于它,可以做什么呢?

成为其他机器学习输入参数

有了实体,有了关系,有了图,有了属性。

此时可以通过提取实体在图中的特征,并转化为vector特征,就可以对实体进行任何机器学习模型的输入参数

并进行更深度的数据挖掘。

kg-graph-embedding

Graph2vec

通过分析图的特征,并转化为vector的方法有很多,以下跟大家介绍Deepwalk

Deepwalk
kg-deepwalk kg-deepwalk-skip-gram

知识抽取

有了知识图谱在图数据库中

我们就可以各实体之间的关系。

例如我问系统:苏格拉底死了没有?

kg-answer
上一篇下一篇

猜你喜欢

热点阅读