第5章,通过D2RQ和爬虫的方式获取了结构化和半结构化数据,
本章知识抽取部分,主要侧重点的非结构化的知识。主要是文本的知识抽取。
一、知识抽取概述
1.知识抽取( Knowledge Extraction) 是指把蕴含于信息源中的知识经过识别、理解、筛选、归纳等过程抽取出来,存储形成知识元库。即是指基于给定的本体从文本中抽取与既定本体相匹配的知识内容。
知识抽取(也称信息/数据抽取)有两部分:命名实体识别(目标是识别和分类真实世界里的知名实体)和关系提取(目标是提取实体之间的语义关系)。
2.知识抽取的主要任务
(1)实体识别与抽取
任务:识别出待处理文本中七类(人名、机构名、地名、时间、日期、货币和百分比)命名实体。
两个子任务:实体边界识别和确定实体类型。
举个例子:
检测: 北京是忙碌的城市。 [北京]: 实体
分类:北京是忙碌的城市。 [北京]: 地名
(2)实体链接
任务:实体识别即识别出句子或文本中的实体,链接就是将该实体与知识库中的对应实体进行链接。
(3)属性抽取
任务:对一个给定的实体从非结构化文本中抽取出实体的属性及其属性值形成结构化数据。
例如:“人物”类实体一般有国籍、出生日期、职业、毕业院校等属性;“电影”类实体一般有导演、主演、编剧等属性。
(4)关系抽取
任务:关系抽取是从文本中抽取出两个或多个实体之间的语义关系。它是信息抽取研究领域的任务之一。
- 王健林谈儿子王思聪:我期望他稳重一点。
- 父子 (王健林, 王思聪)
(5)事件抽取
任务:从自然语言中抽取出用户感兴趣的事件信息,并以结构化的形式呈现出来,例如事件发生的时间、地点、发生原因、参与者等。
二、实体抽取技术
构建知识图谱包含四个主要的步骤:数据获取、知识抽取、知识融合和知识加工。其中最主要的步骤是知识抽取。
知识抽取包括三个要素:实体抽取(命名实体识别 NER)、实体关系抽取(RE) 和 属性抽取。其中属性抽取可以使用python爬虫爬取百度百科、维基百科等网站,操作较为简单,因此命名实体识别(NER)和实体关系抽取(RE)是知识抽取中非常重要的部分。
命名实体识别(NER)主要抽取的是文本中的原子信息元素(人名、机构名、地名、时间、日期、货币和百分比)。
实体抽取任务有两个关键词:find & classify,找到命名实体,并进行分类。
主要应用:
命名实体作为索引和超链接
情感分析的准备步骤,在情感分析的文本中需要识别公司和产品,才能进一步为情感词归类
关系抽取(Relation Extraction)的准备步骤
QA 系统,大多数答案都是命名实体
(1)基于Bilstm+CRF的命名实体识别
(2)基于关键词技术的实体抽取
算法原理:
如果一个单词出现在很多单词后面的话,那么说明这个单词比较重要;因此:一个TextRank值很高的单词后面跟着的一个单词,那么这个单词的TextRank值会相应地因此而提高
三、关系抽取技术
实体关系抽取问题可以看做一个分类问题。使用有监督(标记学习)、半监督(统计分析)或无监督(聚类方法)等方法进行。实体关系抽取往往关注一个句子内的上下文,所以跨句子的上下文关系抽取就比较难。
实体识别和实体关系抽取问题基本思路就是转换为分类或序列标注问题进行解决。
(1)基于依存句法分析的开放式中文实体关系抽取
HanLP提供了两种依存句法分析的器,默认采用的是基于神经网络的依存句法分析器,另一种为基于最大熵的依存句法分析器。
依存句法分析就是将句子分析成一棵依存句法树,描述各个词语之间的依存关系,即指出词语之间在句法上的搭配关系。
四、事件抽取技术
事件抽取相关的任务:
事件发现(Event Detection):从文本中发现事件触发词(Event Trigger),
事件元素抽取(Argument Extraction):从文本中识别事件元素(Event Argument)并判断元素扮演的角色(Argument role)