概述
第三章:知识抽取:问题、方法和数据
知识抽取-问题和方法
问题分析
知识抽取场景(数据源)
- (半)结构化文本数据:百科知识中的Inforbox、规范的表格、数据库、社交网络、…
- 非结构化文本数据:网页、新闻、社交媒体、论文、…
- 多媒体数据:图片、视频
从信息抽取到知识抽取
区别:信息抽取获得结构化数据,知识抽取获得机器学习可理解和处理的知识(知识表示)。
关系:信息抽取建立在信息抽取基础上,都普遍利用到自然语言处理基础、基于规则的包装器和机器学习等技术。
知识抽取例子
### 知识抽取的挑战
- 知识的不确定性
- 知识的不完备性
- 知识的不一致性
知识抽取场景和方法
面向结构化数据的知识提取
从数据库中抽取知识
- 抽取原理
- 表(Table)- 类(Class)
- 列(Cloumn)- 属性(Property)
- 行(Row)- 资源/实例(Resource/Instance)
- 单元(Cell)- 属性值(Property Value)
- 外键(Foreign Key)- 指代(Reference)
根据上述规则可将关系数据库转为一个知识库。
- 抽取标准
- Direct Mapping
- R2RML
- 抽取工具
- D2R, Virtuoso,Orcle SW, Morph等
R2RML 映射语言
– 输入:数据库、视图、Sql查询
– 输出:三元组
面向半结构化数据的知识提取
- 大规模多语言百科知识图谱,维基百科的结构化版本,linked data核心数据集
- 覆盖127种语言,两千八百万个实体,数亿三元组,支持数据集的完整下载。
- 固定模式对实体信息进行抽取,包括abstract, infobox, category,page link
YAGO - YAGO的百科知识抽取
- YAGO整合了WikiPedia于Wordnet
- 覆盖多种语言,1000万个实体,1.2一个三元组
- 在YAGO2整合了GeoNames,增加了对时空信息的支持
- 通过对规则实体信息进行抽取的推断
- Infobox启发式规则 - 人工定义映射规则,将同义属性同义表示 GDP–>HashGDP, Children->HasChild
- 每个属性定义domain和range,用于进一步推断和清洗
- 类型推断(Type Heuristics):优先首字母是名词且可数的推断
面向无结构化数据的知识提取
- 问题
- 挑战:是当前知识图谱构建的技术瓶颈
- 关键技术
- 实体抽取
- 关系抽取
- 事件抽取
- Pipeline的抽取过程会迅速降低知识的质量
实体识别
关系抽取
事件抽取
- 事件定义:具有时间、地点、参与者等基本元素,可由某个动作触发或者状态改变而发生的一个图结构知识片段。
- 事件抽取:从数据中抽取事件信息,并以结构化和语义化形式展现,例如事件发生的时间、地点、原因、参与者等
数据获取
知识抽取-数据获取
- 数据源和数据量是知识图谱完备性的重要保证。
- 用户往往拥有私有的数据,但知识图谱构建还需要公告的数据支持,而这些数据往往从万维网上获得。
- 很多半结构化数据、多模态数据分布于万维网,并且具有较好的数据质量,有利益构建大规模高质量领域知识图谱。
数据采集原理和技术
爬虫原理
数据采集一般流程
- 获得目标数据的URL;
- 向对应URL提交HTTP请求;
- 解析HTTP响应;
- 存储解析结果
请求与响应
Requests能做什么?
- 向目标URL发起不同种类的HTTP请求(GET,POST, DELETE等);
- 定制HTTP请求的头部,设置User-Agent和Cookie;
- 使用代理(Proxy)进行请求。
- 对HTTP响应进行解析,获取状态码和文本字段。
数据解析
- Beautiful Soup 除了本身自带的解析库外,还可以用来指定解析 HTML文件进行解析,如lxml和html.parser
- lxml(https://lxml.dev/) 是用C语言编写的HTML和XML解析库。由于lxml的实现非常底层,使得他处理大多数HTML文件的速度非常快。
- html.parser是python自带的HTML解析器,使用方便、稳定。
- 在实践过程种,我们遇到过使用lxml在不同操作系统上对同一页面解析结果不一样的情况,推荐使用html.parser。
正则表达式
若一个HTML标签内包含了多个需要抽取字段,可以编写正则表达式模板对该标签内容进行抽取。
多线程并行爬取
爬虫机制应对
多数网站都有反爬虫机制,常见反爬虫机制:
- 通过验证HTTP请求头的反爬虫机制
- 基于用户行为的反爬虫机制
反爬机制1原理
- 每个HTTP请求的头部都会包含一些关于此请求的附加信息,如User-Agent、referer、cookie。绝大多数的网站都会查验User_Agent字段,对不同的User-Agent提供不同的响应
反爬机机制1应对 - 第2种机制的应对措施也非常简单,就是在发起HTTP请求时, 在请求头中加入定制的信息。比如在User-Agent字段声明此请求来自一个浏览器Agent或者一百度爬虫Agent。
数据采集实战
参考
东南大学课件
最后
以上就是默默曲奇为你收集整理的第3章 知识抽取:问题、方法和数据第三章:知识抽取:问题、方法和数据的全部内容,希望文章能够帮你解决第3章 知识抽取:问题、方法和数据第三章:知识抽取:问题、方法和数据所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复