信息检索实验报告.docx
《信息检索实验报告.docx》由会员分享,可在线阅读,更多相关《信息检索实验报告.docx(12页珍藏版)》请在冰豆网上搜索。
![信息检索实验报告.docx](https://file1.bdocx.com/fileroot1/2023-2/9/73f6ee6f-1f35-4b2e-a59f-5ba2a2d45fa2/73f6ee6f-1f35-4b2e-a59f-5ba2a2d45fa21.gif)
信息检索实验报告
实验指导
1.安装相关文件
将nutch-0.9,tomcat,paoding-analysis-2.0.4-alpha2,apache-ant-1.8.3拷到D:
\test\目录还要对Tomcat\webapps\nutch-0.9\WEB-INF\classes中的nutch-site.xml文件进行修改,其中value=D:
\test\nutch-0.9\crawl\的值必须对应你所采集到的文件,并且环境变量的配置也必须改变),并配置环境变量(右击我的电脑----高级-----环境变量,如下图)
如果没有安装jdk需要先安装jdk安装目录为:
C:
\ProgramFiles\Java\jdk1.7.0
在用户变量中,编辑PATH,变量值D:
\test\apache-ant-1.8.3\bin;C:
\ProgramFiles\Java\jdk1.7.0\bin
在系统变量中,新建ANT_HOME,变量值D:
\test\apache-ant-1.8.3
在系统变量中,新建CATALINA_HOME,变量值D:
\test\Tomcat
在系统变量中,编辑CLASSPATH,变量值
D:
\test\nutch-0.9\src\plugin\lib-paoding-analyzers\paoding-analysis.jar;C:
\ProgramFiles\Java\jdk1.7.0\lib
在系统变量中,新建NUTCH_JAVA_HOME,变量值C:
\ProgramFiles\Java\jdk1.7.0
在系统变量中,新建PAODING_DIC_HOME,变量值D:
\test\paoding-analysis-2.0.4-alpha2\dic
在系统变量中,新建JAVA_HOME,变量值C:
\ProgramFiles\Java\jdk1.7.0
运行tomcat,进入tomcat\bin文件夹,双击startup.bat.。
打开浏览器,输入http:
//127.0.0.1:
8080/nutch-0.9,出现如下画面说明nutch运行成功:
2.数据检索
下面我们就可以进行检索了,如输入“北京邮电大学”就可以看到检测结果。
点击“评分详解”,还可以看到分词的结果,如下图所示:
3.查看索引分词结果
我们还可以用luke查看索引分词的结果,进入CMD,输入cdD:
\test\nutch-0.9\回车
再输入D:
回车输入java-jarlukeall-3.5.0.jar
就可以看到如下画面;或者去D:
\test\nutch-0.9\lukeall-3.5.0.jar(点击)
点击“browse”,选择D:
\test\nutch-0.9\crawl,我们就可以看到索引分词结果了。
我们也可以在luke中进行检索,选择“search”选项卡,输入“北京”就可以看到检索结果:
4.采集数据
如果想自己采集数据,还要安装cygwin软件。
安装过程如下:
4.1.选择installfromlocaldirectory
安装到的目录D:
/cygwin
选择已经下载的安装文件所在的目录(安装包目录)
选择全部安装(install)
安装完成........
4.2.配置抓取的起始网站地址
建立文本文件D:
\test\nutch-0.9\urls.txt,内容为:
该文本定义的是你要抓取的网站,可以自己选取
4.3.抓取
首先删除nutch-0.9中的crawl文件夹,双击Cygwin快捷方式,启动Cygwin
$cd/cygdrive/d/test/nutch-0.9/
$bin/nutchcrawlurls.txt-dircrawl-depth3-topN50
或者
$bin/nutchcrawlurls.txt-dircrawl-depth3>crawl.log?
$bin/nutchcrawlurls.txt-dircrawl-depth3-threads4
●urls就是刚才我们创建的url文件,存放我们要抓取的网址
●-dircrawl指定抓取内容所存放的目录,如上存在crawl中
●-threads4指定并发的线程数
●-depth3表示以要抓取网站顶级网址为起点的爬行深度
●-topN50表示获取前多少条记录,可省
●>crawl.log日志文件的存储地址,省略则将相关运行信息全部在控制台显示。
5.说明:
观察抓取后生成的目录
抓取后,在nutch目录下生成一个crawl文件夹,里面包含如下目录:
crawldb
linkdb
①/②crawldb/linkdb:
weblink目录,存放url及url的互联关系,作为爬行与重新爬行的依据,页面默认30天过期(可以在nutch-site.xml中配置)
segments
③segments:
一存放抓取的页面,与上面链接深度depth相关,depth设为2则在segments下生成两个以时间命名的子文件夹,比如”20061014163012”,打开此文件夹可以看到,它下面还有6个子文件夹,分别是
crawl_generate:
namesasetofurlstobefetched
crawl_fetch:
containsthestatusoffetchingeachurl
content:
containsthecontentofeachurl
parse_text:
containstheparsedtextofeachurl
parse_data:
containsoutlinksandmetadataparsedfromeachurl
crawl_parse:
containstheoutlinkurls,usedtoupdatethecrawldb
indexes
④indexes:
索引目录,我运行时生成了一个”part-00000”的文件夹,
index
⑤index:
lucene的索引目录(nutch是基于lucene的,在nutch-0.9\lib下可以看到lucene-core-2.1.0.jar,最后有luke工具的简单使用方法),是indexs里所有index合并后的完整索引,注意索引文件只对页面内容进行索引,没有进行存储,因此查询时要去访问segments目录才能获得页面内容
6.布尔检索
大多数的搜索引擎都会提供布尔操作符让用户可以组合查询,典型的布尔操作符有AND,OR,NOT。
Lucene支持5种布尔操作符,分别是AND,OR,NOT,加(+),减(-)。
每个操作符的用法如下。
OR:
如果你要搜索含有字符A或者B的文档,那么就需要使用OR操作符。
需要记住的是,如果你只是简单的用空格将两个关键词分割开,其实在搜索的时候搜索引擎会自动在两个关键词之间加上OR操作符。
例如,“JavaORLucene”和“JavaLucene”都是搜索含有Java或者含有Lucene的文档。
AND:
如果你需要搜索包含一个以上关键词的文档,那么就需要使用AND操作符。
例如,“JavaANDLucene”返回所有既包含Java又包含Lucene的文档。
NOT:
Not操作符使得包含紧跟在NOT后面的关键词的文档不会被返回。
例如,如果你想搜索所有含有Java但不含有Lucene的文档,你可以使用查询语句“JavaNOTLucene”。
但是你不能只对一个搜索词使用这个操作符,比如,查询语句“NOTJava”不会返回任何结果。
加号(+):
这个操作符的作用和AND差不多,但它只对紧跟着它的一个搜索词起作用。
例如,如果你想搜索一定包含Java和Lucene的文档,就可以使用查询语句“Java+Lucene”。
减号(-):
这个操作符的功能和NOT一样,查询语句“Java-Lucene”返回所有包含Java但不包含Lucene的文档。
本次检索中,由于只配置了中文,nutch不识别orandnot操作符,在此只给出用+-操作符的例子。
另外,对于如大学这类词语,检索时可以分成大大学两个词,在分词时可以使用""来限定。
Q&A
1.
Q:
将nutch-0.9,tomcat,paoding-analysis-2.0.4-alpha2,apache-ant-1.8.3拷到C盘根目录,并配置好环境变量后,为何搜索出0项选择结果?
A:
0项查询结果说明数据检索库没加载,通过检查nutch-0.9目录发现crawl目录被删除了,重新拷入crawl,重启计算机。
2.
Q:
用luke查看索引分词的结果,进入CMD,输入cdC:
\nutch-0.9>java–jarlukeall-3.5.0.jar,看到如下画面:
A:
命令输入过程中出现错误,改变输入命令方式如图: