一种基于Nutch的垂直搜索引擎及方法技术

技术编号:12309648 阅读:96 留言:0更新日期:2015-11-11 18:24
本发明专利技术涉及互联玩搜索引擎技术领域,具体涉及一种基于Nutch的垂直搜索引擎及方法。本发明专利技术提出了一种基于Nutch的垂直搜索引擎及方法,能够围绕某一领域或某一专题展开检索,以满足特定人群对信息检索的个性化要求。本发明专利技术基于Nutch的垂直搜索引擎包括Nutch模块、预处理模块和聚类模块。Nutch模块用于从网络上搜集网页、建立网页的反向索引、利用反向索引搜索用户查找的关键词并向用户反馈检索结果。预处理模块用于文本的中文分词。聚类模块用于对Nutch模块的检索结果的文本聚类。Nutch模块分别与预处理模块和聚类模块双向通信。本发明专利技术垂直搜索引擎的搭建步骤包括(a)系统搭建和(b)服务器端软件配置。

【技术实现步骤摘要】

本专利技术涉及互联网搜索引擎
,具体涉及。
技术介绍
互联网信息以指数级增长,信息搜索引擎技术也得到空前发展。搜索引擎已经成为人们通过互联网获取信息的重要技术手段。传统搜索引擎,如G00gle、BaidU等由于搜索反馈信息量巨大而使有用的信息被淹没。特殊用户对信息检索准确率有特殊的要求。对于特殊用户来说,开发功能更先进、效率更高、更人性化的信息检索工具显得极为重要。
技术实现思路
本专利技术提出了,能够围绕某一领域或某一专题展开检索,以满足特定人群对信息检索的个性化要求。本专利技术解决其技术问题所采用的技术方案为: 一种基于Nutch的垂直搜索引擎,包括Nutch模块、预处理模块和聚类模块。Nutch模块用于从网络上搜集网页、建立网页的反向索引、利用反向索引搜索用户查找的关键词并向用户反馈检索结果。预处理模块用于文本的中文分词。聚类模块用于对Nutch模块的检索结果的文本聚类。Nutch模块分别与预处理模块和聚类模块双向通信。具体的,Nutch模块包括爬虫子模块和检索子模块。爬虫子模块用于从网络上采集网页数据并建立所述网页的反向索引。检索子模块利用。反向索引对爬虫子模块爬取到本地的网页数据进行关键词检索并将检索结果反馈用户。具体的,预处理模块采用JE分词算法对Nutch模块采集到的网页文本进行中文分Τ.κ| ο具体的,聚类模块为采用lingo聚类算法的Carr0t2开源搜索结果分类引擎。基于Nutch的垂直搜索引擎的搭建方法,步骤如下: (a)系统搭建 安装Nutch,配置Nutch,编译Nutch。(b)服务器端软件配置,包括以下子步骤: (b-ι)在服务器上安装Unix操作系统; (b-2)在用户文件夹下保存Unix版本的JDK和tomcat,完成环境变量设置; (b-3)将按照基于Nutch的垂直搜索引擎开发得到的运行文件保存到用户文件夹下,完成所述运行文件的自动运行脚本。(b-4)将按照基于Nutch的垂直搜索引擎开发得到的web工程保存到tomcat中的webapps 下。本专利技术的有益效果如下=Nutch是一个开源Java实现的搜索引擎,个人、企业都可通过Nutch来构建适合于自身需要的搜索引擎平台,提供适合于自身的搜索服务。Nutch可以让研究者通过配置逐步完善各个模块,从而实现满足其个性化需求的搜索引擎。Nutch的分词器对英文的切分比较完善,对中文只进行单字切分,为实现较好的中文信息的搜索查询,本专利技术在Nutch中增加中文分词处理,即采用JE分词算法的预处理模块,实现Nutch的中文分词。本专利技术在Nutch中增加对检索结果的聚类分析,即聚类模块,实现针对某一领域或某一专题的专向检索。Carrot2是一个基于检索结果文本聚类的工具,支持多方数据源和多种聚类算法。Carrot2根据被考察对象的内部或者外部特征,按照一定的要求(如类别数量限制、同类对象的亲近程度等),将相近、相似或者相同特征的对象聚合在一起。本专利技术基于Nutch架构,并对Nutch进行二次开发,完成配置系统、设定种子集、处理异构文件、切分中文分词、信息聚类以及检索,从而建立垂直搜索引擎。本专利技术建立的垂直搜索引擎主要围绕某一领域或某一专题展开检索,能够满足特定人群对信息检索的个性化要求。【附图说明】图1为本专利技术一种基于Nutch的垂直搜索引擎的结构示意图。【具体实施方式】参照图1,实施例的垂直搜索引擎包括Nutch模块、预处理模块和聚类模块。Nutch模块包括爬虫子模块和检索子模块。Nutch模块用于从网络上搜集网页、建立网页的反向索弓丨、利用反向索引搜索用户查找的关键词并向用户反馈检索结果。其中,爬虫子模块用于从网络上采集网页数据并建立所述网页的反向索引。检索子模块利用反向索引对爬虫子模块爬取到本地的网页数据进行关键词检索并将检索结果反馈用户。预处理模块用于文本的中文分词。本实施例中,预处理模块采用JE分词算法对Nutch模块采集到的网页文本进行中文分词。分词是指将一段文本拆成多个检索词的过程,中文分词是自然语言处理和文本挖掘的基础,因此分词问题是实现对全部文本信息检索的首要任务。本实施例采用JE分词算法。JE分词算法采用的是最大匹配算法,按从左至右正向最大匹配和从右到左反向最大匹配,当两种分词结果不一致时,按最少切分原则,取切分词数最少的一种,如果两种分词结果切分的词数一样,取反向最大匹配作为分词的结果。聚类模块用于对Nutch模块的检索结果的文本聚类。本实施例中,聚类模块为采用lingo聚类算法的Carr0t2开源搜索结果分类引擎。Nutch模块分别与预处理模块和聚类模块双向通信。实施例中,基于Nutch的垂直搜索引擎的搭建方法包括以下步骤: Ca)系统搭建,包括以下子步骤:测试环境为 Nutch 1.0,Eclipse SDK 3.2.0,JDK 6,cygwin, Win70(a-1)在Windows环境下应当安装cygwin,安装后应当设定PATH环境变量,设置后进入命令行,运行“bash”命令以运行cygwin。(a-2)安装 Nutch 首先,下载Nutch源代码;其次,在Eclipse中新建一个Java工程;再次,选择从已有的代码中创建,并且指向Nutch源码所在位置;再次,点击下一步,等待Eclipse扫描文件夹;再次,增加文件夹〃conf〃进classpath,切换到“排序和导出”标签,找到〃conf〃文件夹并且将其移动到顶端,以使Eclipse能够从"conf"读取配置文件;再次,Eclipse自动将所有的Java文件加入到设置好的classpath中;最后,点击"Source"标签,设置默认的输出文件夹到 /bin/tmp_build,点击"Finish"按钮。(a-3)配置 Nutch首先,修改 $ {nutch} \conf 下 nutch-default.xml 中 “plugin, folders” 的 value为./src/plugin。其次,修改$ {nutch} \conf 下的 crawl-urlf ilter.txt 中 # accept hostsin MY.DOMAIN.NAME 下的正则表达式为 +'http:// (*\.) *0 再次,修改 $ {nutch} \conf 下 nutch-default.xml 中 http, agent, name 的 value 为 nutchtest。最后,Eclipse 给出parse_mp3和parse-rtf插件一些非常重要的异常声明。这是因为与Apache license协议不相容,一些.jar文件被定义在一些必需的类中却没有被源代码说包含。按照以下网址下载这两个文件。http://nutch.cvs.sourceforge.net/nutch/nutch/src/plugin/parse-mp3/lib/http://nutch.cvs.sourceforge.net/nutch/nutch/src/plugin/parse-rtf/lib/ 分别拷贝 jar 文件到 src/plugin/parse_mp3/lib 和 src/plugin/parse-rtf/lib/,并且把这些本文档来自技高网...

【技术保护点】
一种基于Nutch的垂直搜索引擎,其特征在于其包括Nutch模块、预处理模块和聚类模块;所述Nutch模块用于从网络上搜集网页、建立所述网页的反向索引、利用所述反向索引搜索用户查找的关键词并向用户反馈检索结果;所述预处理模块用于文本的中文分词;所述聚类模块用于对Nutch模块的检索结果的文本聚类;所述Nutch模块分别与预处理模块和聚类模块双向通信。

【技术特征摘要】

【专利技术属性】
技术研发人员:田青高凯陶秋红
申请(专利权)人:国家电网公司国网河北省电力公司培训中心河北科技大学石家庄职工大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1