前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【 文智背后的奥秘 】系列篇:结构化抽取平台

【 文智背后的奥秘 】系列篇:结构化抽取平台

原创
作者头像
文智
修改于 2017-06-19 11:29:42
修改于 2017-06-19 11:29:42
3.8K00
代码可运行
举报
文章被收录于专栏:文智的专栏文智的专栏
运行总次数:0
代码可运行

随着大数据时代的到来,一个大规模生成、分享、处理以及应用数据的时代正在开启。如果能将互联网上异源异构的非结构化或半结构化数据转换为更易处理的结构化数据,可以极大的降低获取数据的门槛,为信息检索和数据挖掘提供基础,更好的挖掘数据中蕴藏的价值。

单纯考虑网页这种半结构化数据的抽取:对于搜索引擎一般需要抽取出页面的标题、实际标题、时间、正文等关键信息;而对于去哪儿、携程这种酒店预定网站则需要进行更精细化的信息抽取,需要抽取出酒店名称、地址、电话、价格、评分、简介等具体属性。

可以看到,大量互联网产品都依赖抽取功能,因此迫切需要一个方便、便捷、高效且准确的网页抽取平台。

一.常用抽取方法

目前针对html这种半结构化的页面,业界比较流行的抽取方法大致就两类:dom树分块以及模版抽取。

1.dom树分块

该方法的基本思想就是对html页面建dom树后,对dom树进行遍历,同时根据事先训练好的分类模型判断遍历到的容器节点的语义块类别,本质上就是分类问题。比如对新闻网页,一般定义的语义块类别有标题、实际标题、时间、正文、相关推荐、相关阅读、版权、广告等。如果用分类模型进行语义块判断,需要用事先标注好的样本进行训练。采用的特征集合包括该节点下的文本长度、特定关键词命中情况、标点符号个数、图片个数、标签宽度、各种html标签的分布情况等等。

通过模型预测节点的语义块类别会有几个候选,整体上会得到若干语义块组合序列,最后可以再用语言模型的思路得到一个最优序列。

该方法的优点是通用性强,主要工作包括定义新类别页面的语义块类别、样本标注、训练模型、抽取程序,一般用于大规模网页的处理;缺点是一般抽取到的语义块比较粗,精度不高。另外样本标注也需要大量的人力成本和时间成本。

2.模版类

针对下面这个页面

图2.1 豆瓣电影详情页

我们希望抽取导演、编剧、主演、类型、语言、上映日期等字段的信息, dom树分块的方法就不太适用了。因为这块区域整体上属于一个容器节点,子节点的特征方面区分度也不大。

因此有了第二类抽取方法:模版类抽取。该方法的基本思想很简单:事先配置好需要抽取内容的模版,模版可以是正则表达式或XPATH, 然后基于html进行精确的模版匹配,将匹配结果输出。该方法的优点是可以实现精细化抽取,缺点是模版的配置和维护成本较高。如正则抽取比较依赖页面中的wording,把wording作为桩,提取出桩周围的有用信息,因此对配置人员的正则能力要求比较高。

精细化抽取现在业界采用比较多的是XPATH,XPATH作为XML文档路径标准语言,通过路径表达式来定位与查找XML文档中的节点。使用XPATH进行精细化抽取的优点有:

(1)很多主流的浏览器都提供获取指定节点XPATH路径的功能,或者可以通过嵌入的JavaScript代码从DOM中获取XPATH路径,因此易于实现可视化配置,降低配置门槛。

(2)XPATH依赖页面DOM结构。而实际上一个网站或者一个子域下的页面结构确实大体一样,或者基本可以穷举,因此配置一组XPATH往往可以覆盖一个子域甚至一个站点下的页面。

(3)作为XML标准集下的一个重要标准,XPATH被广大厂商接受并推广,已经有很多开源且成熟的实现,因此更易得到社区的广泛支持。

本篇重点介绍我们在XPATH模版抽取方面做的工作,包括如何使配置简单化、如何对抽取的结果进行去噪、如何维护模版的更新、如何快速接入抽取等等;

在开始介绍抽取平台之前,先看看刚才那个豆瓣页面我们的抽取效果:

图2.2 豆瓣电影详情页抽取结果

二.平台的整体框架及介绍

系统分为配置管理、XPATH抽取以及去噪处理三个主要模块:

(1) 配置管理:负责配置的管理、更新与分发。

(2) XPATH抽取:根据配置的XPATH抽取页面中指定的属性。

(3)去噪处理:对抽取的结果做去噪处理。

图3.1 抽取平台整体框图

1.XPATH配置

为了降低配置门槛,做到人人可配、人人会配,因此在设计和实现模板配置的UI和交互的过程尽量做到简洁明了、轻量级、引导式交互、及时响应等原则。

图3.2 XPATH配置页面

2.抽取过程

整个抽取过程比较简单,因此直接使用流程图来说明抽取过程。

图3.3 XPATH抽取流程

3.去噪处理

虽然XPATH的抽取能精确到元素粒度,但很多时候仍然有大量的噪音存在。为此,我们提供了四个方面的噪音过滤规则:

(1)文本规则:通过配置正则表达式将属性值中的噪音去除。

(2)URL规则:针对链接元素,通过配置URL规则,将href属性不满足URL规则的节点过滤掉。

(3)元素属性规则:通过配置标签的属性规则进行噪音过滤。

(4)html规则:通过配置起始串与结束串,将html中以起始串开始,以结束串终止的子串过滤掉。

图3.4 噪音过滤规则配置页面

4.List元素抽取

在实现的过程中,发现有一类属性的属性值是一个List,List内元素之间是并列的。比如专辑《吻别》页面中,名称、歌手、发行时间等字段属于普通属性,但专辑下的曲目则属于List类型的属性。

图3.5 百度音乐专辑页

List元素XPATH有以下特点:拥有一个相同的祖先节点,从该祖先节点开始节点名称、层次以及深度都完全相同,并且在某个或某几个层级上是平行关系(偏移不一样)。上述专辑页中任意两首歌曲的XPATH即满足该特点:

《恋爱的人都一样》:/html/body/div[4]/div/div/div[4]/div/div[1]/div[2]/div[2]/div/ul/li[8]/div/span[5]/a

《拥抱阳光》:/html/body/div[4]/div/div/div[4]/div/div[1]/div[2]/div[2]/div/ul/li[9]/div/span[5]/a

根据这一特征,为了更好的表达和抽取这类属性值,我们将上面歌曲属性的XPATH虚化为: /html/body/div[4]/div/div/div[4]/div/div[1]/div[2]/div[2]/div/ul/li[%d]/div/span[5]/a

其中%d作为占位符,抽取匹配的时候会具体化为实际的数字。

List属性的抽取流程为:

图3.6 List属性抽取流程

5.抽取指标及运营工具

平台经过近一年的持续迭代和运营,各项指标趋于稳定;平台的稳定性和可靠性得到验证;运营工具趋于完备,监控告警也基本做到全方位无死角。下面从三个方面来说明:

(1)运营指标:各项指标都在稳步上升,数据质量也在持续提高。数据在Qzone资讯推荐、QQ音乐搜索以及部门内数据挖掘类需求中得到应用,数据质量经受住了业务的考验。

最近两周系统主要运营指标如下,可以看到各项指标稳中有升,系统的运营状况良好。

日期

站点数

URL模板数

XPATH模板数

网页数

抽取成功数

成功率

2014-10-23

179

1159

2914

57,345,499

52,545,262

91.63%

2014-10-27

183

1168

293158,736,758

53,096,224

90.40%

2014-11-03

203

1295

3069

68,272,962

62,444,849

91.46%

表3.1 平台运营指标

(2)运营工具:提供了下载诊断与查询、快照查询、抽取检查、标准集验证、模板评测、抽样验证、抽取诊断等一系列的运营诊断工具。从配置、下载、快照、抽取到最终数据等环节都力争做到可运营。

(3)监控告警:结合一年以来暴露的运营问题,不断丰富对抽取各项指标的监控,提高系统的可用性和可靠性。目前主要告警有整体抽取失败报警以及模板抽取成功率跌幅超过阈值报警。

三.暗网数据抽取

通过上面的XPATH抽取平台,我们已经具备将互联网上大部分网页转换为结构化数据的能力。但是对于互联网上存在的“暗网”数据,由于其自身的特殊性,需要专门设计和优化我们的下载和抽取系统,下面主要介绍我们在这方面的思考和解决方案。

1.暗网的形成

WEB2.0时代,随着用户对WEB应用的体验要求越来越高,大量相关技术应运而生,特别是AJAX技术的兴起,使得WEB应用的用户体验接近客户端类的体验,因此被业界广泛采用。这类应用的架构大体是这样的:

图4.1 AJAX请求流程

这类富WEB应用对于用户来说比较友好,却对信息检索提出了考验。现今的搜索引擎爬虫大部分还是基于页面之间的链接关系,但对于这种无法通过超链接扩散以及抓取的动态网页,则无法被搜索引擎收录, 因此形成所谓的“暗网”。

另外,随着移动互联网的兴起,信息出现了多元化、异构化及碎片化的趋势。大量数据从WEB端向移动端转移,甚至有很多数据就是为移动端而生的。这类数据的典型特点是,通过常规的页面链接无法获取,形成一个一个的信息孤岛。为了解决数据获取问题,业界主要从下面两个方面入手:

(1)开发更强大的爬虫系统,以应对信息的孤岛化。从相关新闻可以看到:百度针对搜索引擎的升级和更新中,很大一部分与解决“暗网”问题有关。

(2)与“暗网”网站合作,数据厂商通过平台方开发的API提交结构化的数据,来达到信息的互联互通。像google前不久推出的应用内搜索,就是通过这种方式试图打破信息壁垒。

2.难点及解决方案

通过大量的案例分析,发现存在两个方面的问题:

(1)下载扩散

对于常见的网页,我们可以通过页面之间自然的链接关系被爬虫抓取,但是这类暗网页面往往无法通过正常的链接关系获取,接口之间是独立的。因此要扩散到这类动态接口,必须通过特殊的规则生成它们。这里我们归纳并抽象了一类特殊的模板类型:链接工厂模板,该模板是专门用来生产URL的。根据URL中可变的参数,在类型下我们会预定义n个属性参数。然后通过定义一个URL拼接规则,将链接工厂类页面中抽取出来的属性填充到URL拼接规则中,生成最终的数据接口URL。

整个URL生成流程如下:

图4.2 URL生成与扩散流程

(2)抽取

我们的抽取平台是基于XPATH的, 因此对于接口数据格式为XML的异步HTTP请求,我们只要通过上面的方法生成并下载便能进行抽取。但在富WEB应用中JSON已经成为广泛采用的数据格式,为了接入上面的抽取框架, 这里我们采用的是将JSON数据转换成XML格式的方法,然后使用XPATH进行抽取。

图4.3 JSON数据抽取

可以看到,上述对暗网页面的下载与抽取比较好的适配在原有框架里,仅仅增加了一种链接工厂模板用于链接扩散,以及在抽取环节增加了一个数据类型转换的适配器模块。

3、暗网抽取案例分析

在Qzone资讯推荐项目开发及运营的的过程中,发现今日头条新闻列表页都是采用AJAX的方式加载的,通过抓包以及分析源码发现,今日头条推荐频道的数据接口地址为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://www.toutiao.com/api/article/recent/?category=__all__&count=100&max_behot_time=(time_stamp).00&offset=0&utm_source=toutiao

图4.4 今日头条推荐频道异步HTTP请求

图4.5 今日头条发起异步HTTP请求的JS代码

该接口是JSON格式的接口,而新闻详情页的URL为JSON中的一个字段,如图所示:

图4.6 今日头条JSON数据字段详情

我们将JSON转换为XML文档,转换后的结果为:

图4.7 转换为XML的今日头条接口数据

标红的部分即为新闻详情页的URL,可以通过正常的XPATH抽取出来,然后将该URL推给下载系统下载。通过这种特殊的扩散方法,今日头条的新闻才得以被下载系统下载,进而通过XPATH进行抽取。

四.未来展望

未来希望在以下几个方面进行改进和优化,使得结构化抽取平台越来越完善。

  1. 平台配置的简易性:后续会在XPATH配置管理上持续优化,提高平台的易用性,进一步降低配置门槛和学习成本。
  2. 抽取任务接入更加方便快捷,降低接入所需的沟通成本和开发成本,实现自动化和通用化。
  3. 支持更多的数据输出格式:目前是输出基于protobuf协议的sstable、recordio格式的文件,未来会支持更多的数据格式。

同时欢迎有需求的团队联系我们,使用腾讯文智自然语言处理

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【文智背后的奥秘】系列篇:海量数据抓取
文智
2016/10/10
11.8K2
【文智背后的奥秘】系列篇:海量数据抓取
新闻类网页正文通用抽取器(一)——项目介绍
开发这个项目,源自于我在知网发现了一篇关于自动化抽取新闻类网站正文的算法论文——《基于文本及符号密度的网页正文提取方法》
青南
2019/09/10
1.7K0
新闻类网页正文通用抽取器(一)——项目介绍
【 文智背后的奥秘 】系列篇 : 分布式爬虫之 WebKit
本文介绍了一种基于Qt的Webkit框架实现的浏览器方案,该方案可以加载和渲染网页,支持JavaScript等脚本语言的解析,实现了对网页的爬取和模拟点击等操作。该方案具有高度可扩展性和可定制性,可以广泛应用于各种不同的应用场景。
文智
2016/10/11
4.7K0
【 文智背后的奥秘 】系列篇 : 分布式爬虫之 WebKit
万字详解:腾讯如何自研大规模知识图谱 Topbase
作者:郑孙聪,腾讯 TEG 应用研究员 Topbase 是由 TEG-AI 平台部构建并维护的一个专注于通用领域知识图谱,其涉及 226 种概念类型,共计 1 亿多实体,三元组数量达 22 亿。在技术上,Topbase 支持图谱的自动构建和数据的及时更新入库。此外,Topbase 还连续两次获得过知识图谱领域顶级赛事 KBP 的大奖。目前,Topbase 主要应用在微信搜一搜,信息流推荐以及智能问答产品。本文主要梳理 Topbase 构建过程中的技术经验,从 0 到 1 的介绍了构建过程中的重难点问
腾讯技术工程官方号
2020/06/02
2.2K0
「Python爬虫系列讲解」九、用 Selenium 爬取在线百科知识
前文回顾: 「Python爬虫系列讲解」一、网络数据爬取概述 「Python爬虫系列讲解」二、Python知识初学 「Python爬虫系列讲解」三、正则表达式爬虫之牛刀小试 「Python爬虫系列讲解」四、BeautifulSoup 技术 「Python爬虫系列讲解」五、用 BeautifulSoup 爬取电影信息 「Python爬虫系列讲解」六、Python 数据库知识 「Python爬虫系列讲解」七、基于数据库存储的 BeautifulSoup 招聘爬取 「Python爬虫系列讲解」八、Selenium 技术
荣仔_最靓的仔
2021/02/02
2.8K0
「Python爬虫系列讲解」九、用 Selenium 爬取在线百科知识
大数据时代数据获取
本文作者:陈宏武,2013年华中科技大学毕业,之前从事搜搜网页搜索的下载调度,数据质量优化工作。目前在内部搜索平台部外站数据组从事网络爬虫、下载调度、页面抽取及数据整合相关工作。 “你百度一下会死啊”?答:“会”。 最近的WZX事件闹得沸沸扬扬,不由得引起我们思考,如果WZX能获取更多更全的相关数据,如synovial sarcoma(滑膜肉瘤) 的DC CIK免疫疗法临床现状、武警二院属于莆田系等,也许当前的医疗手段依然无法挽回他的生命,但是他的求医体验应该不会是现在这样。 大数据是什么?个人认为
腾讯技术工程官方号
2018/01/26
1.3K0
lxparse:解析列表页链接和详情页内容
Github地址:https://github.com/lixi5338619/lxparse
李玺
2022/09/23
1.3K0
lxparse:解析列表页链接和详情页内容
【 文智背后的奥秘 】系列篇 : 自动文本分类
本文讲述了一种基于自然语言处理的文本分类系统,通过使用朴素贝叶斯、规则引擎、主题模型等算法,实现对互联网文本的快速分类。系统具有良好的扩展性,支持快速更新,可以应用在多种场景中。
文智
2016/10/08
4.6K3
【 文智背后的奥秘 】系列篇 : 自动文本分类
《今日头条,走好》背后的算法瓶颈
当各大互联网公司豪掷千金在各大春晚上怒刷一波存在感时,本来也准备大干一场的今日头条旗下两款产品——“火山小视频”、“抖音”,却遭遇了春晚冠名被多家卫视临时撤下的尴尬窘境,最后不得不用刚刚收购的自拍相机App激萌救场。
养码场
2018/08/13
8340
今日头条技术架构分析
来源:blog.csdn.net/mucaoyx/article/details/84498468
互扯程序
2019/11/06
1.9K0
今日头条技术架构分析
AdTech与MarTech数据厂商的最新动态(纷析数据行业雷达|2018年11月期)
《AdTech与MarTech数据厂商的最新动态(纷析数据行业雷达|2018年11月期)》,即互联网数据厂商与MarTech数据厂商最新动向雷达,由纷析数据科技出品。
iCDO互联网数据官
2018/12/19
8300
AdTech与MarTech数据厂商的最新动态(纷析数据行业雷达|2018年11月期)
第2章 知识抽取:概述、方法
一般来说,知识抽取主要是面向链接开发数据,大家获取不知道何为链接开放数据,下面我为大家整理了一下
小馒头学Python
2024/04/29
4180
第2章 知识抽取:概述、方法
GNE v0.1正式发布:4行代码开发新闻网站通用爬虫
GNE(GeneralNewsExtractor)是一个通用新闻网站正文抽取模块,输入一篇新闻网页的 HTML, 输出正文内容、标题、作者、发布时间、正文中的图片地址和正文所在的标签源代码。GNE在提取今日头条、网易新闻、游民星空、 观察者网、凤凰网、腾讯新闻、ReadHub、新浪新闻等数百个中文新闻网站上效果非常出色,几乎能够达到100%的准确率。
青南
2020/02/11
1.5K0
【 文智背后的奥秘 】系列篇 :文本聚类系统
本文介绍了基于Spark的LDA主题模型在文本聚类分析中的应用,通过与其他常见聚类算法进行比较,展示了其在处理大规模文本数据时的效率和准确性。同时,文章还介绍了文智平台在支持多语言、处理多主题、提供可视化界面等方面的特点。
文智
2016/09/29
5.5K0
【 文智背后的奥秘 】系列篇 :文本聚类系统
微博视听节目服务被叫停,内容平台的品质之争才刚开始?
今天广电总局要求新浪微博、ACFUN等关停视听节目服务,这一通知一出,微博股价盘前大跌7.43%,市值蒸发12亿美金。 不过即便如此,微博市值依然超过150亿美金,最近一年多已上涨超过10倍,超出所有
罗超频道
2018/04/16
1.4K0
微博视听节目服务被叫停,内容平台的品质之争才刚开始?
【PPT详解】曹欢欢:今日头条算法原理
作者:曹欢欢博士 今天,算法分发已经是信息平台、搜索引擎、浏览器、社交软件等几乎所有软件的标配,但同时,算法也开始面临质疑、挑战和误解。今日头条的推荐算法,从2012年9月第一版开发运行至今,已经经
钱塘数据
2018/03/06
5.9K0
【PPT详解】曹欢欢:今日头条算法原理
技术经理眼中的从零搭建推荐体系—全链路
随着信息技术的迅速发展和信息内容的日益增长,“信息过载”问题愈来愈严重,愈发带来很大的信息负担。推荐系统可以有效缓解此难题,从而得到推崇并加以广泛应用。 简单来说:推荐系统是通过挖掘用户与项目之间的二元关系,帮助用户从大量数据中发现其可能感兴趣的项目如网页、服务、商品、人等,并生成个性化推荐以满足个性化需求。目前市场上对于电子商务的推荐系统有亚马逊、阿里巴巴、豆瓣网、当当网等,信息检索的有谷歌、雅虎、百度等,以及在其它周边领域广泛运用如移动应用、电子旅游、互联网广告等。本文只阐述网页内容,特制新闻方面的项目体系搭建。
guichen1013
2022/09/22
4590
技术经理眼中的从零搭建推荐体系—全链路
标签体系下的用户画像建设小指南
用户画像是指根据用户的属性、用户偏好、生活习惯、用户行为等信息而抽象出来的标签化用户模型。通俗说就是给用户打标签,而标签是通过对用户信息分析而来的高度精炼的特征标识。通过打标签可以利用一些高度概括、容易理解的特征来描述用户,可以让人更容易理解用户,并且可以方便计算机处理。
王知无-import_bigdata
2021/07/12
4.5K0
标签体系下的用户画像建设小指南
爬虫0040:数据筛选爬虫处理之结构化数据操作
爬虫程序,主要是运行在网络中进行数据采集的一种计算机程序,正常的一个爬虫采集数据的过程大致如下:
大牧莫邪
2018/08/27
3.4K0
AI算法起家的今日头条为何败给了色情?一文告诉你机器学习何以搞不定鉴黄
12月29日,国家互联网信息办公室在官网发布消息称,针对今日头条、凤凰新闻手机客户端持续传播色情低俗信息、违规提供互联网新闻信息服务等问题,要求北京市互联网信息办公室分别约谈两家企业负责人,责令企业立即停止违法违规行为。 对此,今日头条乖乖表示,依据有关部门的整改要求, 今日头条手机客户端“推荐”、“热点”、“社会”、“图片”、“问答”、“财经”6个频道自2017年12月29日18时至次日18时暂停更新24小时,进入维护状态。 如此,今日头条遭遇史上最严“整改”,网信办动真格了。 其实,今日头条不是第一
AI科技大本营
2018/04/27
1.3K0
AI算法起家的今日头条为何败给了色情?一文告诉你机器学习何以搞不定鉴黄
推荐阅读
相关推荐
【文智背后的奥秘】系列篇:海量数据抓取
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档