Welcome

首页 / 软件开发 / JAVA / dySE:一个Java搜索引擎的实现,第2部分 网页预处理

dySE:一个Java搜索引擎的实现,第2部分 网页预处理2010-11-20 IBM 董宇在 上一部分 中,您了解到如何编写一个 spider 程序来进行网页的爬取, 作为 spider 的爬取结果,我们获得了一个按照一定格式存储的原始网页库,原 始网页库也是我们第二部分网页预处理的数据基础。网页预处理的主要目标是将 原始网页通过一步步的数据处理变成可方便搜索的数据形式。下面就让我们逐步 介绍网页预处理的设计和实现。

预处理模块的整体结构

预处理模块的整体结构如下:

图 1. 预处理模块的整体结构

通过 spider 的收集,保存下来的网页信息具有较好的信息存储格式,但是 还是有一个缺点,就是不能按照网页 URL 直接定位到所指向的网页。所以,在 第一个流程中,需要先建立网页的索引,如此通过索引,我们可以很方便的从原 始网页库中获得某个 URL 对应的页面信息。之后,我们处理网页数据,对于一 个网页,首先需要提取其网页正文信息,其次对正文信息进行分词,之后再根据 分词的情况建立索引和倒排索引,这样,网页的预处理也全部完成。可能读者对 于其中的某些专业术语会有一些不明白之处,在后续详述各个流程的时候会给出 相应的图或者例子来帮助大家理解。

建立索引网页库

原始网页库是按照格式存储的,这对于网页的索引建立提供了方便,下图给 出了一条网页信息记录:

清单 1. 原始网页库中的一条网页记录

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx // 之前的记录

version:1.0 // 记录头部
url:http://ast.nlsde.buaa.edu.cn/
date:Mon Apr 05 14:22:53 CST 2010
IP:218.241.236.72
length:3981

<!DOCTYPE …… // 记录数据部分
<html> …… </html>

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx // 之后的记录
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx