论文部分内容阅读
[摘要] 本文针对新闻搜索的特点研究了中文新闻搜索引擎的构建技术,包括从网页文档抓取、解析、再到建立索引、发布搜索、用户界面搭建的全过程,并基于开源的Lucene软件包,结合中文分词与Pagerank技术实现了一个原型系统,取得了较好的搜索效果。
[关键词] Lucene 新闻搜索引擎 Pagerank 中文分词
一、引言
当今社会随着信息化的快速发展,信息的获取已成为人们生产生活最频繁最重要的活动之一,Internet的发展改变了传统的信息传输渠道,大量的信息甚至可在短短的几秒内就从地球的这端传到那端。
新闻信息的发布已历经从传统的纸质媒体到电子媒体的变革,各新闻门户网站也如雨后春笋般涌现,科技的变革往往带来生活方式的变革,人们获取新闻信息的方式也从传统的被动接受方式转变成主动搜索方式,甚至将来的交互式问答方式。在其中发挥核心作用的就是信息检索技术。目前,尽管Google等搜索引擎公司推出了新闻搜索系统,但其技术未予公布,用户也无法对其改进以使系统更加个性化,而且,各类信息提供商也经常需要提供搜索引擎来方便用户对信息的获取。因此,研究专业信息领域的搜索引擎技术有着重大的意义和巨大的市场价值。本文研究中文新闻搜索引擎的构建技术,并基于开源的Lucene[1] java软件包实现了一个原型系统。
二、系统概述
1.设计目标
本系统考虑新闻检索的特点,如时效性、权威性等特点,基于Lucence,引入网页解析技术提取网页中的新闻,利用中文分词技术对新闻内容分词,同时引入PageRank技术对评分系统进行修改,使其能够很好地满足用户需求。
2.系统框架
Web搜索引擎的建立,包含从网页文档抓取,解析,再到建立索引,发布搜索,是一项复杂的工作。在本研究中,新闻网页数据集选自新浪,搜狐,雅虎,中国新闻网等权威门户网站,系统不仅能实现一般的Web搜索引擎提供的关键字搜索,同时它又有别于一般的Web搜索引擎,可以满足用户对新闻搜索的特殊需求。系统先利用WebZip工具从不同的新闻网站定时抓取网页,将网页保存于本地磁盘,然后利用Htmlparser解析网页以提取其中的新闻内容,发布时间,网址链接,本地路径。对网址链接用PageRank技术计算其重要性;利用中文分词技术对新闻内容进行分词,再由Lucene分析器进行分析,结果提交给索引器建立索引。将索引结果和PageRank值提供给搜索器,在用户对搜索器发出请求后,返回相应的查询结果。
三、系统模块和设计
1.抓取网页
我们使用软件Webzip作为抓取网页的工具,由于待抓取的是新闻网页,我们选择了几个权威的网站(搜狐,雅虎,中国新闻网)作为我们实验数据的来源,具体步骤如下:
首先,创建一个工程,并在工程的地址栏中输入待抓网页的网站根目录如www.news.sina.com。
其次,在工程的属性中进行一系列的选择:filetype选择HTML,在linklever中选择all level表示可以抓取任意层次的网页,在pagelocation中选择within current site表示只抓取该网站的网页。
我们用Webzip总共抓取了700多兆的数据量用于实验。
2.HTML解析与中文分词
由于Lucence只支持txt等纯文本格式的索引,对于HTML这类包含标签的数据我们需要进行解析过滤后才能进行索引,我们利用开源的HTMLParser[3]对网页进行解析,提取网页中的新闻标题,发布时间,新闻内容和链接地址,滤掉标签等不必要的信息。我们将解析器解析出来的文本利用中文分词工具ICTCLAS[4]进行分词后传递给Lucence的索引器建立索引。
3.建立索引
先利用Lucene的分析器去掉常用词,统一大小写,替换同义词等。然后就可以对四个域进行索引,分别是”paths”,”contents”,”time”,”title”。这样搜索就可以建立在这四个域上,根据不同的搜索需求对不同的域进行搜索。比如需要查某个时间的文档,就只需要搜索”time”域。
4.建立搜索函数
在索引建好的基础上我们需要建立搜索API, Lucence的搜索机制是根据用户输入的关键词,用其分析器(这里我们先用ICTCLAS进行中文分词)分析关键词,再将分析结果传给搜索函数进行搜索,返回命中文档的集合。在本系统中我们提供了两个搜索函数:一个是Lucence搜索函数的改进版,它结合Lucence的评分规则和PageRank;另一个根据时间排序。
在搜索引擎的研究中,一个核心问题就是评分规则的确定,如何确保用户感兴趣的网页或重要的富含信息的网页得分较高,这是一个较难的工作,也是一个研究热点。较成熟的方法包括向量模型,贝叶斯网络等。Lucence采用的是向量模型,基本思想是将文档依据关键词映射到一个向量空间,根据词频和逆词频来计算文档的权重,然后计算查询向量q和文档dj的相似度,此相似度便作为查询文档的得分。由于Lucence只考虑了文档自身的内容,没有考虑文档间的关系,而文档间的引用关系往往能反应文档的重要程度;就比如经常被引用的论文往往是好论文,尽管可能它的文档内容得分不高,但因为它足够权威,我们还是要提高其得分。PageRank便基于类似的思路利用网页间的链接关系来计算网页的重要性,该技术已经应用在Google上。于是我们引入Pagerank对Lucence的评分机制进行修改,在计算向量模型时加入Pagerank的值,再进行规范化处理。
5.重要新闻的提取
之前我们所做的工作主要是给用户提供关于新闻的搜索功能。除了搜索服务,我们在网页上还要提供给用户一个新闻浏览的平台,让用户知道现在什么新闻最重要,甚至可以在将来开发个性化推荐系统。因此提取重要的新闻是一项很关键的工作。在我们的研究中,该问题的解决方法如下:
A.首先提取每条新闻的标题,利用Lucene分析器对标题去除停用词并进行分词。
B.对每个标题,我们根据向量模型比较它与其他标题的相似度,得到其分数titlescore。
C.对于新闻出自的网站按其网站的重要性对每个网站赋予不同的权值weight。
D.对于新闻的出现位置,我们认为它对评分也有影响,采用如下的公式:timescore=1-i/(2*legnth)。其中i表示该新闻在网页上所处的位置,length表示当天总的新闻数。
E.最后我们综合所有的评分因子得到如下的公式:
score=titlescore*timescore*weight*(1+0.2*title.length());
按照score从大到小输出当天的部分重要新闻。
实验表明,重特大新闻和一些关注较多的新闻都排在了前列。
6.Pagerank的计算
Pagerank是Google使用的根据网页之间的链接关系,给出网页权重的一种算法。其基本思想为:当网页A有n个链接指向其他网页时,将网页A的rank值分为n份,分别赋予这n个网页。对网页集合中的所用网页使用迭代计算的方法反复计算,直到收敛到一个不动点为止。我们采用中的算法。
四、结束语
系统采用Tomcat作为Web Server, 使用Jsp/Servlet架构,界面提供按内容相似性和时间两种排序方式,实现了中文分词,Pagerank等技术;并根据新闻搜索的特点提出了相应的算法;取得了较好的搜索效果。在将来,对于用户推荐,热点新闻识别等,亦有很多研究工作有待开展。
参考文献:
[1]MICHAEL B,DORON C.lucene. http://lucene.apache.org/java/docs/ ,2007-6-14/2007-7-20
[2]SPIDERSOFT .WebZIP Overview.http://www.spidersoft.com/webzip/default.asp
[3]DERRICK O.HTMLParser. http://htmlparser.sourceforge.net/
[4]张华平. 计算所汉语词法分析系统ICTCLAS3.0白皮书.
http://www.i3s.ac.cn/Manual/
[5]IAN ROGERS. The Google Pagerank Algorithm and How It Works.
http://www.alvit.de/vf/en/web-development-the-google-pagerank-algorithm-and-how-it-works.html
[关键词] Lucene 新闻搜索引擎 Pagerank 中文分词
一、引言
当今社会随着信息化的快速发展,信息的获取已成为人们生产生活最频繁最重要的活动之一,Internet的发展改变了传统的信息传输渠道,大量的信息甚至可在短短的几秒内就从地球的这端传到那端。
新闻信息的发布已历经从传统的纸质媒体到电子媒体的变革,各新闻门户网站也如雨后春笋般涌现,科技的变革往往带来生活方式的变革,人们获取新闻信息的方式也从传统的被动接受方式转变成主动搜索方式,甚至将来的交互式问答方式。在其中发挥核心作用的就是信息检索技术。目前,尽管Google等搜索引擎公司推出了新闻搜索系统,但其技术未予公布,用户也无法对其改进以使系统更加个性化,而且,各类信息提供商也经常需要提供搜索引擎来方便用户对信息的获取。因此,研究专业信息领域的搜索引擎技术有着重大的意义和巨大的市场价值。本文研究中文新闻搜索引擎的构建技术,并基于开源的Lucene[1] java软件包实现了一个原型系统。
二、系统概述
1.设计目标
本系统考虑新闻检索的特点,如时效性、权威性等特点,基于Lucence,引入网页解析技术提取网页中的新闻,利用中文分词技术对新闻内容分词,同时引入PageRank技术对评分系统进行修改,使其能够很好地满足用户需求。
2.系统框架
Web搜索引擎的建立,包含从网页文档抓取,解析,再到建立索引,发布搜索,是一项复杂的工作。在本研究中,新闻网页数据集选自新浪,搜狐,雅虎,中国新闻网等权威门户网站,系统不仅能实现一般的Web搜索引擎提供的关键字搜索,同时它又有别于一般的Web搜索引擎,可以满足用户对新闻搜索的特殊需求。系统先利用WebZip工具从不同的新闻网站定时抓取网页,将网页保存于本地磁盘,然后利用Htmlparser解析网页以提取其中的新闻内容,发布时间,网址链接,本地路径。对网址链接用PageRank技术计算其重要性;利用中文分词技术对新闻内容进行分词,再由Lucene分析器进行分析,结果提交给索引器建立索引。将索引结果和PageRank值提供给搜索器,在用户对搜索器发出请求后,返回相应的查询结果。
三、系统模块和设计
1.抓取网页
我们使用软件Webzip作为抓取网页的工具,由于待抓取的是新闻网页,我们选择了几个权威的网站(搜狐,雅虎,中国新闻网)作为我们实验数据的来源,具体步骤如下:
首先,创建一个工程,并在工程的地址栏中输入待抓网页的网站根目录如www.news.sina.com。
其次,在工程的属性中进行一系列的选择:filetype选择HTML,在linklever中选择all level表示可以抓取任意层次的网页,在pagelocation中选择within current site表示只抓取该网站的网页。
我们用Webzip总共抓取了700多兆的数据量用于实验。
2.HTML解析与中文分词
由于Lucence只支持txt等纯文本格式的索引,对于HTML这类包含标签的数据我们需要进行解析过滤后才能进行索引,我们利用开源的HTMLParser[3]对网页进行解析,提取网页中的新闻标题,发布时间,新闻内容和链接地址,滤掉标签等不必要的信息。我们将解析器解析出来的文本利用中文分词工具ICTCLAS[4]进行分词后传递给Lucence的索引器建立索引。
3.建立索引
先利用Lucene的分析器去掉常用词,统一大小写,替换同义词等。然后就可以对四个域进行索引,分别是”paths”,”contents”,”time”,”title”。这样搜索就可以建立在这四个域上,根据不同的搜索需求对不同的域进行搜索。比如需要查某个时间的文档,就只需要搜索”time”域。
4.建立搜索函数
在索引建好的基础上我们需要建立搜索API, Lucence的搜索机制是根据用户输入的关键词,用其分析器(这里我们先用ICTCLAS进行中文分词)分析关键词,再将分析结果传给搜索函数进行搜索,返回命中文档的集合。在本系统中我们提供了两个搜索函数:一个是Lucence搜索函数的改进版,它结合Lucence的评分规则和PageRank;另一个根据时间排序。
在搜索引擎的研究中,一个核心问题就是评分规则的确定,如何确保用户感兴趣的网页或重要的富含信息的网页得分较高,这是一个较难的工作,也是一个研究热点。较成熟的方法包括向量模型,贝叶斯网络等。Lucence采用的是向量模型,基本思想是将文档依据关键词映射到一个向量空间,根据词频和逆词频来计算文档的权重,然后计算查询向量q和文档dj的相似度,此相似度便作为查询文档的得分。由于Lucence只考虑了文档自身的内容,没有考虑文档间的关系,而文档间的引用关系往往能反应文档的重要程度;就比如经常被引用的论文往往是好论文,尽管可能它的文档内容得分不高,但因为它足够权威,我们还是要提高其得分。PageRank便基于类似的思路利用网页间的链接关系来计算网页的重要性,该技术已经应用在Google上。于是我们引入Pagerank对Lucence的评分机制进行修改,在计算向量模型时加入Pagerank的值,再进行规范化处理。
5.重要新闻的提取
之前我们所做的工作主要是给用户提供关于新闻的搜索功能。除了搜索服务,我们在网页上还要提供给用户一个新闻浏览的平台,让用户知道现在什么新闻最重要,甚至可以在将来开发个性化推荐系统。因此提取重要的新闻是一项很关键的工作。在我们的研究中,该问题的解决方法如下:
A.首先提取每条新闻的标题,利用Lucene分析器对标题去除停用词并进行分词。
B.对每个标题,我们根据向量模型比较它与其他标题的相似度,得到其分数titlescore。
C.对于新闻出自的网站按其网站的重要性对每个网站赋予不同的权值weight。
D.对于新闻的出现位置,我们认为它对评分也有影响,采用如下的公式:timescore=1-i/(2*legnth)。其中i表示该新闻在网页上所处的位置,length表示当天总的新闻数。
E.最后我们综合所有的评分因子得到如下的公式:
score=titlescore*timescore*weight*(1+0.2*title.length());
按照score从大到小输出当天的部分重要新闻。
实验表明,重特大新闻和一些关注较多的新闻都排在了前列。
6.Pagerank的计算
Pagerank是Google使用的根据网页之间的链接关系,给出网页权重的一种算法。其基本思想为:当网页A有n个链接指向其他网页时,将网页A的rank值分为n份,分别赋予这n个网页。对网页集合中的所用网页使用迭代计算的方法反复计算,直到收敛到一个不动点为止。我们采用中的算法。
四、结束语
系统采用Tomcat作为Web Server, 使用Jsp/Servlet架构,界面提供按内容相似性和时间两种排序方式,实现了中文分词,Pagerank等技术;并根据新闻搜索的特点提出了相应的算法;取得了较好的搜索效果。在将来,对于用户推荐,热点新闻识别等,亦有很多研究工作有待开展。
参考文献:
[1]MICHAEL B,DORON C.lucene. http://lucene.apache.org/java/docs/ ,2007-6-14/2007-7-20
[2]SPIDERSOFT .WebZIP Overview.http://www.spidersoft.com/webzip/default.asp
[3]DERRICK O.HTMLParser. http://htmlparser.sourceforge.net/
[4]张华平. 计算所汉语词法分析系统ICTCLAS3.0白皮书.
http://www.i3s.ac.cn/Manual/
[5]IAN ROGERS. The Google Pagerank Algorithm and How It Works.
http://www.alvit.de/vf/en/web-development-the-google-pagerank-algorithm-and-how-it-works.html