本文主要是介绍王昊奋知识图谱学习笔记--第三讲知识抽取与知识挖掘(上),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本文是基于王昊奋老师的知识图谱入门教程第三讲内容的学习笔记。总体来说,这节课介绍了知识图谱三种数据源,以及针对每种数据源实现的知识抽取方法,最后介绍了一个关于佛学知识图谱的实现案例,并留了两道基于正则表达式实现知识抽取的作业。
因为视频内容过于丰富,我个人有针对性的学习了第一部分,即针对非结构化的知识抽取,也就是关于文本的处理。而对于结构化的数据,和半结构化的数据,仅作为了解,笔记总结的内容不够详细。最后的案例我觉得是很好的,而且有在线的网址效果和对应的论文,有很好的学习和借鉴价值。
前言 知识图谱数据来源和知识抽取方式
知识图谱的数据源分为三种类型:结构化、半结构化和非结构化。
- 结构化数据:链接数据、数据库。
- 针对数据库的知识抽取方法主要是D2R,难点是嵌套表等复杂表数据的处理
- 针对链接数据的知识抽取方法主要是图映射,难点是数据对齐。从开放知识图谱中希望做一个领域知识图谱,一种方便的做法是图映射,基于自己领域知识图谱中定义的schema, 就需要有开放知识图谱与自己领域知识图谱的数据对齐。
- 半结构化数据:网页中的表格、列表、百科中的信息。
- 针对半结构化数据的知识抽取是使用包装器,难点是包装器的定义方法、包装器的自动生成、更新和维护
- 非结构化数据:纯文本数据、多媒体数据
- 针对非结构化数据的知识抽取方法是信息抽取,难点是结果的准确率与覆盖率
第一部分 面向非结构化的知识抽取任务
1.1 实体抽取
实体抽取
实体抽取,又称为命名实体识别。
它要做的是首先从文本中识别和定位文本,然后将识别到的实体分类到预定义的类别中去。
在这个例子中,“背景” 和 “10月25日” 分别为地点和时间类型的实体。而“骑士”和“公牛” 为组织类型的实体。
实体抽取的方法
- 基于规则的方法:首先构建大量的实体抽取规则,然后将规则与文本字符串进行匹配。适用于小规模数据集。
- 基于统计模型的方法:基于统计模型的方法主要涉及到训练语料标注、特征定义和模型训练三个步骤。主要使用的模型有隐马尔可夫模型HMM和条件随机场模型CRF;其中斯坦福大学的NER 是一个基于CRF实现的命名实体识别工具,具有较高的准确率。
- 基于深度学习的方法:主要是将深度学习和统计模型结合使用,通过深度学习得到每个词的新向量表示,然后使用CRF模型输出对每个词的标注结果。主要有LSTM+CRF 、LSTM-CNNs-CRF(该模型在CoNLL-2013命令实体识别数据集上获得了91.2%的F1值。)
相关开源系统
这一部分涉及的内容太多,理解的不好。
1.2 关系抽取
关系抽取
从文本抽取两个或多个实体之间的关系。
关系抽取和实体抽取关系密切,一般是在识别出文本中的实体后,再抽取实体之间的关系。
也即是说实体抽取完成后,在知识图谱中的呈现只有点,没有边。当关系抽取完成后(关系抽取出来的叫抽取元组,还需要再做清理、融合、以及人工审核),我们就有了边。这样一个知识图谱就基本完成了。
关系抽取分类
基于触发词的Pattern
基于依存句法分析的Pattern
这是哈工大LTP工具实现的效果,后续可以深入学习LTP的使用。
这种依存句法分析,可以理解为更泛化的正则表达式。
基于监督学习的关系抽取方法
基于深度学习的方法主要包括两大类:
- 流水线方法。将实体抽取和关系抽取作为两个独立的部分,因此关系抽取的结果依赖于实体抽取的结果,会存在错误累积的问题。
- 联合抽取方法。将实体抽取和关系抽取相结合,在统一的模型中共同优化。
半监督学习-远程监督
1.3 事件抽取
第二部分 面向结构化的知识抽取任务
垂直领域的知识往往来源于企业业务系统的关系数据库。因此,从数据库这种结构化数据中抽取知识也是一类重要的知识抽取方法。在该领域,已经有一些标准和工具支持将数据库转化为RDF数据、OWL本体等。
W3C的RDB2RDF工作组于2012年发布了两个推荐的RDB2RD映射语言。
-
直接映射DM。
-
R2RML。
相关工具 -
D2RQ
-
Mastro
-
Ultrawrap
-
Morph-RDB
-
Ontop
老师推荐使用Ontop去了解映射的过程
第三部分 面向半结构化的知识抽取任务
目前,百科类数据、网页数据是可被用于知识获取的重要半结构化数据。
第四部分 实践
这里作者初略介绍了一个在线百科知识抽取技术的具体应用,即构建佛学知识图谱的一个例子。下面是实现的网址和对应的论文,感兴趣的朋友可以深入学习,很有借鉴价值。
这是实现的网址:http://www.kg-buddhism.com
这是论文名称: KG-Buddhism: The Chinese Knowledge Graph on Buddhism
下面介绍以下这个实践的基本思路:
4.1 抽取框架
4.2 知识连接
这一步骤的工作是抽取类别和实例:
- 先找到与佛学相关的分类,抽取佛教人物分类下所有文章对应的实体。
- 维基百科“佛教头衔”分类下的所有实体
- 已抽取的实体名中高频的公共字符串
4.3 知识融合
这一个过程是做主语的融合:
- 实体的别名属性和重定向作为实体的别名集合
- 不同来源的实体,存在一个完全匹配的别名,则认为是相同实体
- 人工检查相同实体数多于三个的映射
主语融合中存在的问题:
-
同名,不同实体
-
同实体,不同名 (这种情况属于同义词)
解决方案: -
多个相同别名,来判断是否是同一实体
-
实体的“地址”、“建筑时间”属性来判断是否冲突
以上是介绍的主语的融合。除此之外,也会做谓语和宾语的融合。
4.4 知识补全
这里介绍基于正则化的知识补全。**作者推荐正则化是最早应该学习的,**这种方法因为编写规则需要领域经验,很难对文本中的关系通过规则做到全面的覆盖,但它的好处是一旦基于文本提取了规则,准确率挺高。
按照评价指标来评价这种方法,属于精确率高、召回率低的方法。
实现效果
实现的网址:http://www.kg-buddhism.com
这篇关于王昊奋知识图谱学习笔记--第三讲知识抽取与知识挖掘(上)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!