这么多搞爬虫的,有木有直接解析 HTML 的呀?

2015-11-02 16:02:35 +08:00
 est
突然想到一个问题,大家都是先正文提取成纯文本,再做 NLP 什么的,但是实际上,格式化富文本有很多重要信息,比如斜体,粗体,这些是不是都被忽略了?
7422 次点击
所在节点    Python
39 条回复
icedx
2015-11-02 21:17:05 +08:00
是的 都忽略了

不过感谢楼主给我的一个项目提供新的思路 wwwwwwwwww
hitluobin
2015-11-02 21:18:37 +08:00
@est 你的思路是非常正确的。我们现在的项目就很依赖与这种加粗,分段的 html 标记。但是处理起来非常杂,很有挑战。
for8ever
2015-11-02 21:21:35 +08:00
用 Node.js ,炒鸡简单
menc
2015-11-02 21:38:08 +08:00
@est 当然有,我给你贴一段我的本科毕业论文的一段, NLP 相关的

以百度百科为例,现在的百度百科,已将整个文档进行了处理。在每个词条之前,加入了与该条目相关性最强的同时也是对用户最为有用的一些信息,在相关信息之后,条目正文开始之前,百度百科将整个正文的章节和不同章节的章节标题描述以及各章节的小标题罗列出来。而这些条目相关信息和条目章节信息是由百度百科的用户自行维护,由社区在后面进行审核,换言之,这些条目相关信息和条目索引是可靠性极高的人工标注,其对整理文本语料的作用不言而喻。如果能有效的利用这些信息,其准确率毫无疑问要高于纯使用程序进行主题分类。
以百度百科的“成龙”词条为例,在成龙的词条正文开始之前,百度百科将成龙的一部分常用的个人信息罗列出来,如原名、曾用名、代表作、职业、国际、民族等等,如图 3.1 所示;在词条正文开始之前,百度百科将词条正文的目录章节标题和小标题罗列出来,如图 3.2 所示,这些标题和小标题和章节内容直接相关,而且具有极高的相关度,可以直接作为段落主题使用。
?1
图 3.1 成龙的个人信息

图 3.2 成龙的词条正文目录索引
从图片中可以看到,这些信息的页面组成具有其规律性,查看源代码也可以看出,其源代码也具有规律性,如图 3.3 所示,可以对 HTML 源代码进行处理得到其相关信息。通过对维基百科的调查研究,我们可以发现,维基百科也具有同样的性质和特征。
?1
图 3.2 成龙的个人信息目录网页源码
事实上,我们可以认为,原本非结构化的百科网站的组织,经过不断优化,现在已经可以认为其具有一定的结构化特征,非结构化文本的粒度由以前普遍认为的篇章,转变成为现在的段落。甚至能直接从百科词条中提取出相关条目最重要的一部分知识。对于采用结构化知识的知识库,在语料处理的时候,能够直接得到一系列人工标注的知识;对于非结构化的知识库,能够以章节标题作为索引,同时拥有该词条相关的无信息噪点的文本内容。
menc
2015-11-02 21:40:42 +08:00
事实上,对网页清洗的过程中,要具体情况具体分析,很多人拿百度百科和 wikipedia 的语料直接保留 inner text 训练是不理智的,很多有用的信息在网页中确实呈现半结构化的规律,比如我上面给出的成龙的例子,稍加注意,可以提取出实体相关的诸多属性,我写到论文中,但是目前没发现哪里还有人写到论文中。。
est
2015-11-02 21:57:31 +08:00
@menc wikipedia 的页面特定模板解析起来很有意思的。比如可以绘制出地球上人口超过 20w 的城市分布图。但是我感觉这个属于另外一个话题了。
binux
2015-11-02 22:15:09 +08:00
怎么没有, 网页解析不用 html 用什么? 你以为正文提取就不用 html 信息了?
DOM 树是做网页提取最基本的树.
在此之上分块树, 视觉信息也很常用.
est
2015-11-02 22:16:44 +08:00
@binux 求分块树相关 case 。

还有就是你们是怎么保存富文本数据的?直接 html 还是?
binux
2015-11-02 22:18:48 +08:00
@est 分块树就是先做一层网页分块, 把它当做一层特征, 毎什么稀奇的. 直接存 html 就好了啊, 有什么问题?
loading
2015-11-02 22:20:50 +08:00
重新挖坑?
你去看下实现代码,看你能避开多少个。
loading
2015-11-02 22:22:55 +08:00
没认真看回复,这个坑你挖得够深的!
我只能说:到时记得传 github ,我好跪着看!
binux
2015-11-02 22:30:10 +08:00
@menc https://scholar.google.co.uk/scholar?q=semi-structured+wikipedia
这东西别说论文了... 实现都实现了...
menc
2015-11-02 22:33:55 +08:00
@est 我的意思是,你的问题,已经有人完整的做过和应用到 research 中了
menc
2015-11-02 22:35:45 +08:00
@binux 谢谢,之前不知道半结构化对应 keyword 是 semi structured
menc
2015-11-02 22:37:19 +08:00
@est readable 算法,工业界普遍在用,正文提取算法,就是根据 div 区块大小和视觉区域对正文区域进行筛选和排查,决定有用文本和无用文本,各种语言的实现都有,印象笔记、 pocket 等一干应用都应用了该算法或者该算法的升级版
breeswish
2015-11-02 23:17:59 +08:00
各种搜索引擎就是对这些标签进行参考的典型…
ljdawn
2015-11-03 08:55:26 +08:00
以前处理过这种。 也保存格式的。特定场景应用而已。 你保存相应的标签就好了
jugelizi
2015-11-03 12:56:30 +08:00
那么意思在你爬去之前目标网站是特定的了吧
那么有限的规则可以成为既定的去匹配啊
randyzhao
2015-11-06 01:25:26 +08:00
HTML 会对内容分类处理有帮助, 实际应用中很多都会这么做.

分开之后, NLP 还是跑不掉的.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/232954

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX