【知识图谱】知识抽取与挖掘(I)

一、知识抽取任务定义和相关比赛

1、知识抽取任务定义

从不同来源、不同结构的数据中进行抽取,形成知识存入到知识图谱。
在这里插入图片描述

2、知识抽取的技术与难点

结构化数据库中获取知识:D2R

  • 难点:复杂表数据的处理

链接数据中获取知识:图映射

  • 难点:数据对齐

半结构化(网站)数据中获取知识:使用包装器

  • 难点:方便的包装器定义方法,包装器自动生成、更新与维护

文本中获取知识:信息抽取

  • 难点:结果的准确率与覆盖率

3、知识抽取的子任务

知识抽取:自动化从文本中发现和抽取相关信息。将非结构化转化为结构化数据。

(1)知识抽取 的 子任务

  • 命名实体识别(NER)
    • 检测:西瓜书的作者是周志华。→[西瓜书]:实体
    • 分类:西瓜书的作者是周志华。→[西瓜书]:书籍
  • 术语抽取
    • 从语料中发现多个单词组成的相关术语。
  • 关系抽取:抽取出实体、属性等之间的关系。
    • eg:王思聪是万达集团董事长王健林的独子。→[王健林] <父子关系> [王思聪]
  • 事件抽取:相当于多元关系抽取
    • eg:据路透社消息,英国当地时间9月15日早8时15分,位于伦敦西南地铁线District Line的Parsons Green地铁站发生爆炸,目前已确定有多人受伤,具体伤亡人数尚不明确。目前,英国警方已将此次爆炸与起火定性为恐怖袭击。
      在这里插入图片描述
  • 共指消解
    在这里插入图片描述

4、相关竞赛与数据集

MUC(Message Understanding Conference):正规文本(新闻报告等)抽取

  • 命名实体识别(Named Entity Recognition,NER)
  • 共指消解(Co-reference Resolution,CR)

ACE(Automatic Content Extraction):对MUC的任务融合、分类、细化,涵盖英语、阿拉伯语和汉语;

  • 实体检测与识别(Entity Detection And Recognition,EDR)
    • 细化了实体分类(eg:person,organizations,locations……)
  • 数值检测与识别(Value Detection And Recognition,VAL)
    • 分类:百分比、钱、邮箱、时间
  • **时间表达检测与识别(**Time Detection And Recognition,TERN)
  • 关系检测与识别(Relation Detection And Recognition,RDR)
  • 事件检测与识别(Event Detection And Recognition,VDR)

KBP(TAC Knowledge Base Population):对ACE的进一步修订,分为四个独立任务和一个整合任务。

  • 实体发现与链接(Entity Discovery and Linking,EDL):需要知识库中唯一URI去链接实体
  • 槽填充(Slot Filling,SF):事件/多元关系抽取;
  • 事件抽取(Event)
  • 信念和情感(Belief and Sentiment,BeSt):抽取知识的额外描述
  • 整合任务:端到端冷启动知识构建:对数据层进行学习和扩充

SemEval(Semantic Evaluation):国际权威的词义消歧评测

二、面向非结构化数据的知识抽取

1、实体抽取

实体抽取:抽取文本中的原子信息元素。包括人名、组织/机构名、地理位置、时间/日期、字符值、金额值等(原子根据场景来定义)

示例
在这里插入图片描述

非结构化数据的实体抽取可以认为是一个序列标注问题,则可使用序列标注的方法,通过评价指标 F1值的比较如下:

  • 人工特征:IOB标注体系——O(Others)/B-ORG(组织开始字)/I-ORG(组织中间词)….
    • 词本身的特征:边界特征、词性、依存关系等
    • 前后缀特征:姓氏、地名等
    • 字本身的特征:是否是数字、是否是字符等
  • HMM
    • 有向图模型、生成式模型(找到使 P ( X , Y ) P(X,Y) P(X,Y) 最大的参数)、假设特征之间是独立的
  • CRF
    • 无向图模型、判别式模型(找到使 P ( Y ∣ X ) P(Y|X) P(YX) 最大的参数)、没有关于特征之间是独立的
  • LSTM+CRF(主流)
    • 判别式模型、端到端网络、自动提取特征
    • 模型:word embeddings->Bi-LSTM encoder->CRF Layer
      在这里插入图片描述

2、实体识别与链接

示例:聊天机器人

  • 如何处理大规模细粒度实体识别?
  • 如何应对新兴实体或实体新说法?
    在这里插入图片描述

实体链接的流程

  • 文本 =》实体指称识别 =》候选实体生成 =》候选实体消歧 =》链接
    在这里插入图片描述

开源工具:Wikipedia Miner、DBpedia Spotligth、OpenCalais

实体链接示例

  • eg:中国证券网讯(记者 王雪青)中国证券记者今日获悉,万达集团的文明产业版图将再添世界级新军——传奇影业,具体收购情况或于下周二正式发布。
    在这里插入图片描述

3、关系抽取

关系抽取:从文本中抽取两个或多个实体之间的语义关系。它是信息抽取研究领域的任务之一。

示例1王健林谈儿子王思聪:我期望他稳重一点。==》父子(王健林, 王思聪)

示例2
在这里插入图片描述

方法分类

  • 基于模板的方法
    • 基于触发词的Pattern
    • 基于依存句法分析的Pattern
  • 基于监督学习方法
    • 机器学习方法
    • 深度学习方法
  • 基于弱监督学习方法
    • 远程监督
    • Bootstrapping

(1)基于模板的方法

a、基于触发词的Pattern

首先确定触发词(trigger word),然后根据触发词做pattern的匹配及抽取,然后做一个映射。
在这里插入图片描述
分析:上述示例中的触发词为老婆妻子配偶等。根据这些触发词找出夫妻关系这种关系,同时通过命名实体识别给出关系的参与方。

b、基于依存句法分析的Pattern

文本一般具有一些句法结构,如主谓结构、动宾结构、从句结构、这些结构可以是跨多个词所产生的。最常见的情况是动宾短语,所以通常以动词为起点,构建规则,对节点上的词性和边上的依存关系进行限定(可以理解为泛化的正则表达式)。具体的流程如下:
在这里插入图片描述
示例董卿现身国家博物馆看展优雅端庄大方。
在这里插入图片描述
+ 分析:上图中,我们可以看出这个例子中的依存关系路径中 -1 代表谓语,同时可以看出 董卿 这个词依存关系路径为 1,说明此处的董卿是和词顺序为 1 的现身关联,于是可以得到“董卿,现身”;接着看“国家博物馆”也是和“现身”所关联,所以可以得出一个动宾关系“现身,国家博物馆”。

c、小结

优点

  • 人工规则有高准确率(high-precision)
  • 可以为特定领域定制(tailor)
  • 在小规模数据集上容易实现,构建简单

缺点

  • 低召回率(low-recall)
  • 特定领域的模板需要专家构建,要考虑周全所有可能的 pattern 很难,也很费时间精力
  • 需要为每条关系来定义 pattern
  • 难以维护
  • 可移植性差

(2)基于监督学习方法

a、基于机器学习的方法

在给定实体对的情况下,根据句子上下文对实体关系进行预测,传统的执行流程为:

  • 预先定义好关系的类别。
  • 人工标注一些数据(获得数据)。
  • 设计特征表示(特征工程)。
  • 选择一个分类方法。(分类器:SVM、NN、朴素贝叶斯)
  • 评估方法。

特征表示

  • 轻量级特征——词
    • 实体前后的词
    • 实体的类型
    • 实体之间的距离(也就是实体之间的相似度)
  • 中等量级特征——词组
    • Chunk序列:如词组
  • 重量级特征——句子
    • 实体间的依存关系路径
    • 实体间树结构的距离
    • 特定的结构信息
b、基于深度学习的方法

特征表示

  • Position embeddings
  • Word embeddings
  • Knowledge embedding

方法分类

  • Pipeline:识别实体和关系分类是完全分离的两个过程(即串联方式),不会相互影响,关系的识别依赖于实体识别的效果
  • Joint Model:实体识别和关系分类的过程是共同优化的

典型的Pipeline方法——存在错误传递的问题

  • CR-CNN模型

这里是引用

  • 仅使用词向量和位置向量作为输入
  • F1值84.1,超过现有的非深度学习方法
  • Att-CNN 模型

这里是引用

  • 应用注意力机制(表现为不同的词对上下文来说有不同的权重)
  • F1值88.0
  • Att-BLSTM模型

在这里插入图片描述

典型的Joint Model方法——效果一般情况下优于Pipeline,但是参数空间会提高。

  • LSTM-RNNs模型

在这里插入图片描述

c、小结
  • 优点:准确率高,标注数据越多越准确
  • 缺点:标注数据成本太高;不能扩展新的关系

(3)基于半监督学习方法

标注数据不足数据量又特别大的情况下 ==》半监督学习的方法

a、远程监督方法

远程监督知识库与非结构化文本对齐来自动构建大量训练数据,减少模型对人工标注数据的依赖,增强模型跨领域适应能力。

基本假设:若两个实体在知识库中存在某种关系,则包含该两个实体的非结构化句子均能表示出这种关系。

示例

在某知识库中存在: 创始人 (乔布斯, 苹果公司)
则可构建训练正例:乔布斯是苹果公司的联合创始人和CEO

具体的步骤

  • 从知识库中抽取存在关系的实体对;
  • 从非结构化文本中抽取含有实体对的句子作为训练样例。

小结

  • 优点:可以利用丰富的知识库信息,减少一定的人工标注,
  • 缺点:假设过于肯定,引入大量的噪声,存在语义漂移现象;很难发现新的关系。
b、Bootstrapping

Bootstrapping

  • 通过在文本中匹配实体对和表达关系短语模式,寻找和发现新的潜在关系三元组。
  • 具体来讲,主要是利用少量实例作为初始种子(seed tuples)的集合,然后利用 pattern 学习方法进行学习,通过不断迭代从非结构化数据中抽取实例,然后从新学到的实例中学习新的 pattern 并扩充 pattern 集合,寻找和发现新的潜在关系三元组。

整体步骤

  • 假设给定了一个种子集合,种子词一般都是实体对,如:<姚明,叶莉>
  • 从文档中抽取出包含种子实体词的新闻,eg:

姚明 老婆 叶莉 简历身高曝光 ==》X 老婆 Y 简历身高曝光
姚明 与妻子 叶莉 外出赴约 ==》
X 与妻子 Y 外出赴约

  • 将抽取出的Pattern去文档集中匹配

小猪 与妻子 伊万 外出赴约

  • 根据Pattern抽取出的新文档如种子库,迭代多轮直到不符合条件

小结

  • 优点:构建成本低,适合大规模的构建;同时还可以发现新的(隐含的)关系。
  • 缺点:对初始给定的种子集敏感;存在语义漂移现象;结果的准确率较低等。

4、事件抽取

(1)概述

事件:指发生的事情,通常具有时间、地点、参与者等属性,事件的发生可能因为一个动作的产生或者系统状态的改变

事件抽取:从自然语言中抽取出用户感兴趣的事件信息,并以结构化的形式呈现出来,例如事件发生的时间、地点、发生原因、参与着等。

事件抽取的相关术语

  • 事件描述 (Event Mention):描述事件的词组或句子;
  • 事件触发 (Event Trigger):表明事件出现的主要词汇;
  • 事件元素 (Event Argument):事件的重要信息;
  • 元素角色 (Argument Role):元素在句子中的语义角色。

示例
在这里插入图片描述
事件嵌套:事件是可以嵌套的,可以做事件的检测与跟踪。
在这里插入图片描述

(2)事件抽取任务

事件抽取任务最基础的部分包括:

  • 识别事件触发词及事件类型
  • 抽取事件元素同时判断其角色
  • 抽出描述事件的词组或句子

此外,事件抽取任务还包括:

  • 事件属性标注
  • 事件共指消解

(3)事件抽取的Pipeline方法

有监督的事件抽取方法的标准流程一种pipeline的方法,将事件抽取任务转化为多阶段的分类问题,
在这里插入图片描述

需要的分类器包括

  • 事件触发次分类器(Trigger Classifier)
    • 用于判断词汇是否是是事件触发词,以及事件的类别
  • 元素分类器(Argument Classifier)
    • 判别词组是否是事件的元素
  • 元素角色分类器(Role Classifier)
    • 判定元素的角色类别
  • 属性分类器(attribute classifier)
    • 判定事件的属性
  • 可报告性分类器(Reportable-Event Classifier)
    • 判定是否存在值得报告的事件实例

分类器模型可以是机器学习方法中的各种分类器模型,比如MaxEnt、SVM等。

典型的分类特征
在这里插入图片描述

存在问题

  • 误差累积:误差从前面的环节传播到后面的环节,使得性能急剧衰减
  • 环节独立:各个环节的预测任务是独立的,之间没有互动
  • 无法处理全局的依赖关系

(4)事件抽取的联合方法

a、Joint Inference(联合推理方法):

是一种集成学习的方法,构建 n n n 个模型,最后对 n n n 个模型的结果进行求和等方法来预测。
在这里插入图片描述
可以基于以下方法:

  • Constrained Conditional Models
  • ILP Re-ranking (整形规划重排序)
  • Dual decomposition
b、Joint Modeling

实际上是一种多任务学习,在不同任务中共享一些隐层特征,如word特征、embedding特征、句法特征等。
在这里插入图片描述
可以基于如下方法:

  • Probabilistic Graphical Models
  • Markov logic networks

(4)基于深度学习的事件抽取方法

优势

  • 减少了对外部NLP工具的依赖,甚至不依赖NLP工具,建模成端到端的系统。
  • 使用词向量作为输入,词向量蕴含丰富的语言特征。
  • 自动提取句子特征,避免人工设计特征的繁琐工作。

基于动态多池化卷积神经网络的事件抽取方法
在这里插入图片描述
动态多池化层:

  • 传统的神经网络利用最大池化层
  • 事件抽取中,一个句子可能包含多个事件

三、面向结构化数据的知识抽取

结构化数据 ==》RDF或其他形式的知识库内容

  • 一种常用的W3C推荐的映射语言是 R2RML(RDB2RDF) 。一种映射结果如下图所示:
    在这里插入图片描述

1、Direct Mapping

通过明确在关系模式中编码的语义,将关系数据转换为RDF。如下按照一些简单的规则创建 URIs: Map

  • 数据库的表作为本体中的类(Class)。比如我们在mysql中保存的数据,一共有5张表。那么通过映射后,我们的本体就有5个类了,而不是我们自己定义的三个类。
  • 表的列作为属性(Property)。
  • 表的行作为实例/资源。
  • 表的单元格值为字面量
  • 如果单元格所在的列是外键,那么其值为IRI,或者说实体/资源。

示例

在这里插入图片描述
在这里插入图片描述

2、R2RML

R2RML(RDB to RDF Mapping Language):映射的任务是将逻辑表作为输入,然后依据 triples map规则 将其转换成三元组的集合。

  • 逻辑表:一个数据库表、一个数据库视图 或者 一个SQL查询
  • Triples Maps:通过主语、谓语、宾语映射产生Triples。

示例
在这里插入图片描述

  • The subject IRI is generated from the empno column by the template(http://data.example.com/employee/{empno})
  • The predicate IRI is the constant ex:name
  • The object is the literal "SMITH”, that is copied from the ENAME column

RDF Triples:

<http://data.example.com/employee/7369> rdf:type ex:Employee.
<http://data.example.com/employee/7369> ex:name "SMITH".
<http://data.example.com/employee/7369> ex:department <http://data.example.com/department/10>.

<http://data.example.com/department/10> rdf:type ex:Department.
<http://data.example.com/department/10> ex:name "APPSERVER".
<http://data.example.com/department/10> ex:location "NEW YORK".
<http://data.example.com/department/10> ex:staff 1.
  • 数据库表映射:在Employee类上,将 ENAME 映射到 ex:name 上。

    @prefix rr: <http://www.w3.org/ns/r2rml#>.
    @prefix ex: <http://example.com/ns#>.
    <#TriplesMap1>
        rr:logicalTable [ rr:tableName "EMP" ];
        rr:subjectMap [
            rr:template "http://data.example.com/employee/{EMPNO}";
            rr:class ex:Employee;
        ];
        rr:predicateObjectMap [
            rr:predicate ex:name;
            rr:objectMap [ rr:column "ENAME" ];
        ].
    
    ####  结果
    # <http://data.example.com/employee/7369> rdf:type ex:Employee.
    # <http://data.example.com/employee/7369> ex:name "SMITH".
    
  • 视图映射

    ## 创建视图
    <#DeptTableView> rr:sqlQuery """
    SELECT DEPTNO, 
    	   DNAME,
    	   LOC, 
    	   (SELECT COUNT(*) FROM EMP WHERE EMP.DEPTNO=DEPT.DEPTNO) AS STAFF
    FROM DEPT;
    """.
    
    ## 视图映射
    <#TriplesMap2>
    	rr:logicalTable <#DeptTableView>;
    	rr:subjectMap [
    		rr:template "http://data.example.com/department/{DEPTNO}";
    		rr:class ex:Department;
    	    ];
    	rr:predicateObjectMap [
    		rr:predicate ex:name;
    		rr:objectMap [ rr:column "DNAME" ];
    	].
    	rr:predicateObjectMap [
    		rr:predicate ex:location;
    		rr:objectMap [ rr:column "LOC" ];
    	].
    	rr:predicateObjectMap [
    		rr:predicate ex:staff;
    		rr:objectMap [ rr:column "STAFF" ];
    	].
    
    ###  结果
    # <http://data.example.com/department/10> rdf:type ex:Department.
    # <http://data.example.com/department/10> ex:name "APPSERVER".
    # <http://data.example.com/department/10> ex:location "NEW YORK".
    # <http://data.example.com/department/10> ex:staff 1.
    
  • 连接两个逻辑表

    <#TriplesMap1>
    	rr:predicateObjectMap [
    	rr:objectMap [
    		rr:parentTriplesMap<#TriplesMap2>;
    		rr:joinCondition [
    			rr:child "DEPTNO";
    			rr:parent "DEPTNO";
    		];
    	];
    ].
    
    #### 结果
    # <http://data.example.com/employee/7369> ex:department <http://data.example.com/department/10>.
    

四、面向半结构化数据的知识抽取

1、百科类知识抽取

从百科里抽取知识的流程介绍:
在这里插入图片描述

示例:以从维基百科抽取图灵奖获得者Tim Berners-Lee来介绍。对网页进行分析,抽取感兴趣部分。

  • 抽取出 Label,将短摘要(第一段)作为 comment,长摘要作为 abstract
    在这里插入图片描述
  • 通过Wikimedia Commons抽取出图像信息作为depiction
    在这里插入图片描述
  • infobox的数据转换成一些property
    在这里插入图片描述
  • 此外,还包括抽取内链、类别、歧义以及重定向等数据。

2、WEB网页数据抽取:包装器生成

互联网中的数据往往也具有一定的结构,我们可以通过包装器等方法进行知识的抽取。

(1)包装器简介及描述方式

包装器:一个能够将数据从HTML网页中抽取出来,并且将它们还原为结构化的数据的软件程序。包装器抽取流程如下:
在这里插入图片描述
包装器的生成方法:手工方法、包装器归纳方法和自动抽取的方法。

包装器生成:手工方法

  • 需要查看网页结构和代码,通过人工分析,手工写出适合这个网站的表达式,这个表达式的形式可以是XPath表达式,也可以是CSS选择器的表达式等。

(2)包装器生成:包装器归纳

包装器归纳:是基于有监督学习的,它从标注好的训练样例集合中学习数据抽取规则,用于从其他用相同标记或相同网页模板抽取目标数据。
在这里插入图片描述

主要步骤

  • 网页清洗
    • 清洗网页结构不规范网页,eg:前后标签不对成,没有结束标签符。不规范的网页结构容易在抽取的过程中产生噪声。
    • 清洗可以用 Tidy 来完成。
  • 网页标注
    • 标注所需要抽取数据的过程。 标注的过程可以是给网页中的某个位置打上特殊的标签表明这是需要抽取的数据。
  • 包装器空间的生成
    • 对标注的数据生成XPath集合空间并进行归纳,形成若干个子集。
    • 归纳的规则是在子集中的XPath能够覆盖多个标注的数据项,具有一定的泛化能力。
  • 包装器评估
    • 评估规则一:准确率。 将筛选出来的包装器对原先训练的网页进行标注,统计与人工标注的相同项的数量,除以当前标注的总数量。准确率越高评分越高。
    • 评估规则二:召回率。将筛选出来的包装器对原先训练的网页进行标注,统计与人工标注的相同项的数量,除以人工标注的总数量。召回率越高评分越高。
  • 包装器归纳结果
    • 经过前面一系列的工作之后,得到所需要抽取信息的XPath的路径。

示例
在这里插入图片描述

(3)包装器生成:自动抽取

网站中的数据通常是用很少的一些模板来编码的,通过挖掘多个数据记录中的重复模式来寻找这些模板是可能的。

在这里插入图片描述

  • 包装器训练网页聚类
    自动抽取网页中的信息不需要任何的先验知识和人工数据的标注。将一组网页通过聚类将相似的网页分成若干个组,每组相似的网页将获得不同的包装器。
  • 包装器应用
    将需要抽取的网页与之前生成包装器的网页进行比较,在某个分类下则使用该分类下的包装器来获取网页中的信息。

示例
在这里插入图片描述
在这里插入图片描述

(4)小结

三种实现方法对比
在这里插入图片描述
挑战

  • 动态生成的网页中很多信息无法直接通过网页获取;
  • 对包装器的实时性要求越来越高,维护成本依旧很大。

3、WEB TABLE 抽取

为了解释Web table中隐含的语义,一些工作将其中的内容标注为RDF三元组。这种标注的第一步就是实体链接 (entity linking ),即将表格中各单元格的字符串映射到给定知识库的实体上。
在这里插入图片描述

表格实体链接步骤

  • 候选生成
    针对表格单元格中的每个字符串,从给定的知识库中识别候选实体。(token匹配 ,字符串匹配,同义词匹配……)

示例:
在这里插入图片描述

  • 实体消岐
    从给定字符串所对应的实体集中选择唯一的一个实体作为链接实体。

示例: 位于相同行或者列的字符串可能相关,换句话说,出现在同一表格中的任意两个字符串都存在某种潜在的关联。
在这里插入图片描述
ps:红色方框为“迈克尔·乔丹”的相关字符串

构建实体消岐图:
对每张给定的表格建立一个实体消岐图每个图由如下的元素构成:

  • 字符串节点, 实体节点
  • 字符串-实体 边: 字符串与候选实体间的无向边,
  • 实体-实体 边: 实体间的无向边。

示例:
在这里插入图片描述

计算实体链接影响因子(两类)

  • 每个字符串的初始重要性(importance of each mention);
  • 不同节点间的语义相关度(semantic relatedness between different nodes)。

实体消岐算法—PageRank

  • PageRank算法 (Iterative probability propagation) 用来整合不同的实体链接影响因子从而做出最终的实体链接决定.

生成三元组:
在这里插入图片描述

  • 1
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值