新闻定制系统的设计与实现.pdf

新闻定制系统的设计与实现.pdf

ID:32045733

大小:113.24 KB

页数:9页

时间:2019-01-31

新闻定制系统的设计与实现.pdf_第1页
新闻定制系统的设计与实现.pdf_第2页
新闻定制系统的设计与实现.pdf_第3页
新闻定制系统的设计与实现.pdf_第4页
新闻定制系统的设计与实现.pdf_第5页
资源描述:

《新闻定制系统的设计与实现.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、新闻定制系统的设计与实现梁希云、张磊、李静静、袁玲、李勤飞系统总结结构我们的系统从逻辑上大致分为两部分:预处理部分和服务部分整个体统的结构如下图所示:抓取器正文提取(预处理)分类器索引检索结果界面定制界面预处理部分是指从抓取到建索引这部分,跟普通搜索引擎一样,是跟网页打交道,这部分是预先做好的,为查询做准备。服务部分主要跟用户打交道,接受用户的定制要求,进行查询,把结果返回给用户。有上图我们可以看出,我们提供中关键词定制,和分类定制两种功能。当然这两种功能可一起提供。对于不同的用户,他可能只关心

2、某一类的新闻,我们提供分类定制的功能;他可能只关心某一个人的新闻,我们不能做这么细的分类,所以我们提供关键词检索。对于在分类的基础上的关键词定制,其实在实现上并没有什么不同,只要把类别作为一个属性建立索引就行,我们支持标题、url、类别、全文四个字段的关键词检索。问题的关键在分类上,已有的分类算法,包括中科院那个,都不是很理想,离提供可信的服务时有一定距离的,分类是一个难点。下面分别对各部分详细介绍新闻抓取及正文提取抓取新闻的抓取器是在普通的Crawler基础上进行了扩展,根据我们这个系统的实际

3、需要。我们在抓取网页的时候要考虑两点:1,我们只抓取新闻;2,进一步的,我们只抓取最新的新闻,初步考虑是只抓取当天的或者抓取最近三天的新闻。通过对综合网站和新闻网站的分析,因为一般新闻页面的URL都含有日期,我们可以根据这个特点来判断一个页面是不是新闻网页。例如新浪的新闻网页的URL中一般都有“2004-12-21”类似的字符串,新华网的则都有“2004-12/21”类似的字符串。我们也可以根据这个特点来判断这个新闻是哪一天的,因为新闻的时效性比较强,过期的新闻已经没有意义了,所以我们一般只抓取

4、最新的新闻,我们在提供服务的时候也会询问用户需要最近几天的新闻。我们抓取过来的新闻是一个html文档,里面有很多无用信息,因为接下来要做索引和分类,所以必须进行正文的提取。正文提取,就必须分析html文档,针对我们抓取的网页的特殊性,我们可以做些简单的处理。一个网站的新闻网页一般都有特定的结构,我们可以针对不同的网站来分析它们的html代码,从而提取出新闻正文。我们分析了新浪网和新华网这两个网站的。分析发现,新闻正文一般都包含在

之间,可以把它们提取出来,然后去掉提取出的一些多余的

5、标签,比如ahref、strong、font之类的,就可以得到新闻正文。因为新闻正文要提供给索引模块建立索引,所以要保存下来。这里用文件来保存。每次抓取了一个新闻网页后,就要把新闻网页的URL,新闻的标题title和新闻正文的对应关系保存到一个文件news_list.txt中,具体保存的格式是:URLTitle保存新闻正文的本地文件名以方便建立索引。各个网站的新闻都保存在一个单独的文件夹下面。例如:新浪的新闻正文存放在文件夹sina_news下,新华网的新闻正文存放在文件夹xinhua_news

6、下。抓取网页的程序有很好的可扩展性。首先建立一个Crawler基类,从这个基类派生出两个类,Sina和Xinhua,分别负责新浪和新华网的新闻抓取和正文提取。因为各个网站的格式不一样,导致提取正文的程序不一样一个URL该不该抓也不一样,写新闻到不同的文件夹下的程序也不一样,所以我们在Crawler基类中定义了三个虚函数,保证了接口的统一。当要多抓一个网站时,只需再实现少量的代码就行了,可扩展性比较好。索引和检索索引和检索部分,我们使用了开源的系统clucene,它是lucene的C++版本实现。

7、Lucene是基于java实现的全文检索索引工具集。我们对这个系统做了自己的改进。Clucene系统简单介绍Lucene按模块分为以下几部分:Index包在该包中封装了建立索引时需要用到的一些类,主要有:•IndexWriter:创建和维护索引的类,对外开放的接口主要有创建一个新的空索引,向已有索引中添加索引文档,关闭索引,优化索引等。•IndexReader:一个抽象类,定义一些访问控制索引的接口,主要可使用接口为删除某个索引文档,获得该索引的一些主要信息值。•其他类:合并索引集的类和一些更底

8、层的添加索引的类,如DocumentWriter,FieldsWriter等。Search包该包中封装了检索时用到的一些类和工具:•IndexSearcher:检索包装类,通过它,调用对应检索类型的打分器,给索引文档打分,从索引集中获得检索结果;•Hits:结果集合类,可以返回某个文档,总文档数,某个文档的相似度得分等信息。•Similarity:相似度计算抽象类,提供相似度计算接口,可以由用户自定义相似度计算方式,该包中也提供一个默认的实例类DefaultSimilarity,该接口供打分器使

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。