基于互联网的信息采集系统的设计与实现

2010-11-07 07:16方自金
河北大学成人教育学院学报 2010年4期
关键词:字符串标引后缀

孙 乐,方自金

(1.河北大学 管理学院,河北 保定 071002;2.国家图书馆参考咨询部,北京 100081)

基于互联网的信息采集系统的设计与实现

孙 乐1,方自金2

(1.河北大学 管理学院,河北 保定 071002;2.国家图书馆参考咨询部,北京 100081)

互联网资源越来越丰富,而从中获取所需要信息的难度却越来越大。本文介绍了一种在 NET环境下开发的信息自动采集系统,有效地提高了情报人员获取指定信息的速度和准确性,为以后信息的进一步加工和分析,打下了良好的基础。

信息采集;正则表达式;中文分词

随着 Internet的普及与发展,网络已经深入到了人们生活的各个方面,成为经济、文化、社会、教育以及娱乐等几乎所有领域的重要组成部分。同时,网络也以惊人的速度在全球蔓延,据统计,全球目前网页数已经超过 200亿,并每天以数百万张的速度在增长,在如此浩瀚的信息海洋中寻找自己需要的资源,无疑是大海捞针。

虽然现在搜索引擎技术的发展日新月异,提供了很多种便捷的搜索方法,但由于各种原因,专业情报人员并不能通过百度、Google等搜索引擎迅速获取并掌握与自己所关心领域密切相关的所有资源。为此,就需要有一个专门的互联网信息采集工具来帮助情报人员获取所关心的信息。

一、正则表达式

IEEE Std 1003.1(2004 Edition)对正则表达式的定义为:“正则表达式是一种上下文无关的语法,它能够表达各种各样的字符集合以及集合中字符的顺序,并且这些字符集是按照当前语言 /区域设置被解释的”。除此之外,对于正则表达式,还有其他一些定义,当前比较正式的定义主要有:“正则表达式是一种语言,它可以明确描述文本字符串中的模式”、“正则表达式是用来描述字符串模式的符号”、“正则表达式是一个字符串,它按照特定的语法规则描述或匹配字符串集”等等。

正则表达式提供了一种从字符集合中搜寻特定字符串的机制,它可以让用户通过使用一系列的特殊字符构建匹配模式,然后把匹配模式与数据文件、程序输入等目标对象进行比较,根据目标对象中是否包含匹配模式,执行相应的程序。因此,正则表达式恰恰适应了读者从互联网上海量信息中准确提取有效信息的要求。

正则表达式有以下几个主要功能:数据有效性验证功能,用于测试字符串的某个模式是否有效;替换文本功能,用于在文档中使用匹配模式来标识特定文字,然后将其删除或进行替换;提取子字符串功能,用于根据模式匹配,从字符串中提取一个子字符串。

它主要有四类字符:首先是匹配字符,包含了需要搜索匹配的对象;其次是重复操作符,描述了查找一个特定字符的次数;还有锚字符,它指定了所要匹配的格式,有“$”、“^”等;另外有一些保留字符,需要用反斜杠来替换它们,比如 “ (”号,是个保留字符,如果要在表达式里表示这个特定的字符,就得用 “ (”这种形式。

二、中文自动分词

汉语不同于英语,词与词之间没有明显的界限进行分割,因此,有效的信息采集就必不可回避有效的分词。然而,对于汉语的分词一直是中文信息处理中的热点和难点。目前,中文分词的传统方法是基于词典的分词,也就是将文章中的词与词典进行对照,从而找出描述词。在此基础上,出现了很多种分词方法,如在文本的扫描顺序上有正向扫描、逆向扫描、正向逆向扫描等,在匹配原则上有最长匹配、最常匹配等原则。但是这些方法都没有从根本上解决歧义词的问题,而且使用词典匹配法,不容易发现某领域中最新出现的知识。由此,产生了无词典分词方法,让计算机决定去拆分哪些词,其基本原则是,如果一个词在文章中重复出现,那么这个词便是一个有意义的词。本文所介绍的系统就是基于这样的思想,利用后缀数组算法来对文章进行无词典拆分和标引的。

(一)后缀数组

后缀数组是作为一种文本索引结构提出的,这种结构记录了一个字符串中各后缀的字典序索引,通过对字符串的编码,可以利用后缀数组进行字符串集序列的处理。Manber和Myers给出了一个利用 O(N)的额外空间,在O(N lgN)时间内同时构造出后缀数组及最长公共前缀信息数组 LCP(language conversion program)的算法。通过这种方法,可以将一个字符串中所有的后缀取出,并得到这些后缀的公共前缀的长度,从而为基于后缀数组的分词做准备。

(二)基于后缀数组的无词典分词算法

将字符串的后缀全部取出后,得到后缀数组 SA,按字母顺序进行排序,并得到后缀数组的最长公共前缀数组LCP,最后将这些后缀字符串两两比较,得到第一次分词的结果。此次结果可能会出现很多重复字符串,并会出现有的字符串是另外字符串子串的现象。

在此基础上,算出结果中每个词在文中的词频,并得到词与词之间的置信度 (confidence(W2,W1) =TF(W2)/TF(W1),其中 TF(W2)是词W2的词频,TF(W1)是词W1的词频),令置信度的上限为 0.9,下限为 0.3,若置信度高于 0.9,则可以去除W1,若置信度低于 0.3,则可以去除W2。经过这样处理后,就可以把文章中的词抽取出来了。

三、采集原理

现在越来越多的网站使用动态页面来显示文章内容,在这种情况下,每个网站所显示的文章内容,在网页上的格式基本上是一致的,这就给应用正则表达式采集网页信息提供了很好的保证。每个网站只要设置固定的几个正则表达式,就可以获取相应的信息,通过中文自动分词技术,取出相应的关键词,并将采集结果和相关标引信息以一定的格式存入数据库中。整个程序的工作流程如图 1所示。

图 1 系统工作流程

四、系统实现

(一)采集处理

在进行网络采集的工作中,系统应用了 NET框架的HttpWebRequest对象发送请求,使用 HttpWebResponse对象获取服务器返回数据流。并实现了一个WebQuery类,将这两个对象封装起来,提供 Post方法和 Get方法的请求,返回服务器数据。

首先,获取指定网站 URL,如果该网站需要登录,那么可以通过预先设定好的用户名和密码,登录网站,并保存 Session。

其次,请求该网站指定文章列表页面的 URL,并获取文章列表页面的 HT ML编码,通过正则表达式处理,得到每篇文章链接的URL,放入数组中。

最后,对数组中的 URL地址,分别请求,获取文章详细页面的 HT ML编码,并利用正则表达式,分离出标题、日期、来源、全文等信息。

过程如下:

(二)后处理

得到采集结果后,需要对采集结果进行分词标引等后处理,目的是将文章中有意义的词标引出来,提高检索的准确性,以及方便对检索结果进行进一步的聚类处理。

自动分词的过程采用了基于后缀数组的无词典分词算法,在没有任何词典数据辅助的情况下,对新闻的标题和全文进行了分词处理。一般地文章的标题最能够反映作者的意愿,所以,在分词的过程中,对于标题和全文都涉及到的词,标注为首选关键词,对于标题中没有而全文中有的词标注为次要关键词,并统一存放在数据库中。这样做的目的,一方面在检索时,先检索首选关键词,并将结果显示出来,再检索次要关键词,这样可以提高检索的速度,还可以将最相关的文章排列在前面,便于用户查看;另一方面,在进行聚类处理时,对于首先关键词,可以加以高一点权重,使聚类结果更加准确。

主要处理方法分为两步,首先将全文的所有后缀取出,并按字母顺序排列,形成后缀数组 SA,计算最长公共前缀数组 LCP。

其次,进行取词操作,依据 LCP[i]来进行计算,代码如下:

五、需要改进的问题

本系统在实际使用的过程中,取得了较好的效果。程序可以根据用户的定制,定期采集指定网站的新闻信息,通过自动排重功能,只保留最新的信息,并对采集回本地的信息自动标引,但还有下面几个问题有待改进。

(一)运用 AJAX技术网站的处理

AJAX技术是网页数据的异步传输技术,采用该技术后,页面的提交和返回方式发生了改变。不再是提交和返回完整的 HT ML页面,而是通过AJAX引擎,提交并返回页面中的一部分数据。这样,所有的新闻详细页面的链接都隐藏在AJAX引擎中,直接使用正则表达式无法获取详细页面的链接,也就无法得到该页面的源文件字符串。增加对这种类型网站的特殊处理,将会大大提高软件的采集范围。

(二)同义词、近义词的处理

虽然软件对文章进行了标引,并分配了不同的权重,但是在检索时,同义词和近义词会被忽略。如 “土豆”和“马铃薯”,“番茄”和 “西红柿”都是同义词,但是在检索中,如果用户只按 “土豆”检索,就得不到关于“马铃薯”的新闻。一个常用的方法是在检索时,引入同义词近义词表,让系统自动根据用户输入的检索词去查找相关词,再去检索,提高查全率。

(三)特殊文件格式的处理

网页文档格式有时也会包含一定的信息,如 DOC、PDF、PPT等,如果在网络采集时按照格式进行标引,在检索时分门别类地将不同的文件格式显示出来,会更加方便用户的使用。

(四)系统网络架构的改进

系统目前采用 C/S结构,用户需要在机器上安装该软件才能使用,如果用户数量过多,维护起来将会比较麻烦。使用 B/S、C/S结合的模式,采集引擎采用 C/S结构,分布在多个机器中,以减轻服务器的负担。采集获取的数据可以放在服务器中,并建立Web服务器,用户只需要在浏览器中就可以进行检索。这样,不仅便于系统的维护,而且便于用户使用。

互联网上有海量的信息,但信息的无序排列给我们获取和利用带来了一定的难度,本文介绍的Web信息自动采集系统,可以快速准确地获取信息的原文,并以统一的数据库格式存放,大大提高了情报人员获取指定领域信息的效率和准确性,为信息的进一步分析挖掘提供了坚实的基础。

[1]张米雅.利用 Net技术实现 Web信息的采集 [J].科技信息,2006(5):135.

[2]程 冲,黄水清.利用正则表达式解析新闻网页的算法研究 [J].农业图书情报学刊,2005(4):5-8.

[3]邵晓良,刘 红.Web信息采集中军事主题信息的识别 [J].情报技术,2004(7):14-16.

[4]吴丽辉,王 斌,张 刚.一个个性化的 Web信息采集模型 [J].计算机工程,2005(22):86-88.

[5]朱 华.浅谈网络信息资源采集技术 [J].国家图书馆学刊,2004(2):38-40.

[6]张长利,郝枫林,左万利.一种基于后缀数组的无词典分词方法 [J].吉林大学学报 (理学版),2004(4):548-553.

G202

A

1008-6471(2010)04-0126-02

2010-10-01

孙乐 (1978—),男,河北保定人,河北大学管理学院图书馆学 2008级在职硕士研究生;国家图书馆总务处馆员。

猜你喜欢
字符串标引后缀
基于文本挖掘的语词典研究
档案主题标引与分类标引的比较分析
本刊对来稿中关键词标引的要求
河北霸州方言后缀“乎”的研究
TalKaholic话痨
本刊对来稿中关键词标引的要求
说“迪烈子”——关于辽金元时期族名后缀问题
一种基于后缀排序快速实现Burrows-Wheeler变换的方法
一种新的基于对称性的字符串相似性处理算法
本刊对来稿中关键词标引的要求