我是靠谱客的博主 默默曲奇,最近开发中收集的这篇文章主要介绍第3章 知识抽取:问题、方法和数据第三章:知识抽取:问题、方法和数据,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

第三章:知识抽取:问题、方法和数据

知识抽取-问题和方法

问题分析

知识抽取场景(数据源)

  • (半)结构化文本数据:百科知识中的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的抽取过程会迅速降低知识的质量

实体识别

关系抽取

事件抽取

  • 事件定义:具有时间、地点、参与者等基本元素,可由某个动作触发或者状态改变而发生的一个图结构知识片段。
  • 事件抽取:从数据中抽取事件信息,并以结构化和语义化形式展现,例如事件发生的时间、地点、原因、参与者等

数据获取

知识抽取-数据获取

  • 数据源和数据量是知识图谱完备性的重要保证。
  • 用户往往拥有私有的数据,但知识图谱构建还需要公告的数据支持,而这些数据往往从万维网上获得。
  • 很多半结构化数据、多模态数据分布于万维网,并且具有较好的数据质量,有利益构建大规模高质量领域知识图谱。

数据采集原理和技术

爬虫原理
数据采集一般流程

  1. 获得目标数据的URL;
  2. 向对应URL提交HTTP请求;
  3. 解析HTTP响应;
  4. 存储解析结果


请求与响应
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章 知识抽取:问题、方法和数据第三章:知识抽取:问题、方法和数据所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部