Indri的使用

介绍

Indri和Terrier都是开源的搜索引擎,其中Indri作为Lemur项目的一个重要部分,具有强大的查询接口,易建索引,可扩展,高效率等优点。可以在SourceForge Lemur Project Page中下载。Terrier也是IR领域非常有影响力的开源搜索引擎,Terrier是Glasgow大学用Java语言编写的,具有高效灵活及易于部署等特点,目前最新的版本为Terrier 4.0,可在Terrier官网下载

无论Indri还是Terrier整个过程,需要先建立索引,然后根据自定义的query phrases(查询短语,当然也可以是句子),在已建立的索引上查询,并返回一个结果,类似如下(后面会具体讲解每一列的含义):

两个搜索引擎的使用关键在于它们的配置文件,接下来讲解如何配置

文本格式

[html]  view plain  copy
  1. <DOC>  
  2. <DOCNO>2011-12-05-20_1323118648-7cfd066125ff1daf479748f81346895d</DOCNO>  
  3. <date>12/05/2011 (MM/DD/YYYY)</date>  
  4. <SOURCE>arxiv</SOURCE>  
  5. <TEXT> S and Î› production in pp interactions at âˆšs = 0.9 and 7 TeV measured with the....</TEXT>  
  6. </DOC>  

1、Indri

Indri建索引

[html]  view plain  copy
  1. <parameters>  
  2. <memory>16G<memory>  
  3. <index>path/to/index</index> //建完索引后,这些索引结果文件存放的位置,如/home/tempUser/myindex  
  4. <stemmer>  
  5. <name>krovetz</name> //词干化工具,也即分词,这个是默认的,可以选择其他的  
  6. </stemmer>  
  7.   
  8. <corpus>  
  9. <path>path/to/original/file/directory</path> //原始需要建立索引的文件目录  
  10. <class>trectext</class>  //需要建立什么格式的索引,有xml, txt, trectext, web  
  11. </corpus>  
  12.   
  13. <field>  
  14. <name>DOCNO</name>  //文本ID号  
  15. </field>  
  16.   
  17. <field>        //如果需要用到时间信息,需加此field,  
  18. <name>date</name>  
  19. <numeric>true</numeric>  
  20. <parserName>DateFieldAnnotator</parserName>  
  21. </field>  
  22. </parameters>  

Indri查询

配置文件
[html]  view plain  copy
  1. <span style="font-size:14px;"><parameters>  
  2. <index>path1/to/index</index>  
  3. <index>path2/to/index</index>  
  4. <rule>method:dirichlet,mu:1000</rule>  //内置方法,用狄利克雷,参数值1000  
  5. <count>1000</count> //每个查询值返回1000条记录,可以自己设置  
  6.   
  7. <query> //第一个查询  
  8. <number>001</number>  //编号自己定义  
  9. //如果文本的发布日期在两个时间段之间的,则在其文本中查询“Abbotsford Arts Centre”,根据其内置算法,计算query phrases与文本的相关度值  
  10. <text>#scoreif(#datebetween(10/05/2011 01/26/2012) #1(Abbotsford Arts Centre))</text>   
  11. </query>  
  12. <query> //第二个查询  
  13. <number>003</number>  
  14. <text>#scoreif(#datebetween(10/05/2011 08/08/2012) #1(Andy Billig))</text>  
  15. </query>  
  16.   
  17. <trecFormat>true</trecFormat>  
  18. <queryOffset>1</queryOffset>  
  19. <runID>query_id</runID>  //自定义queryID  
  20. </parameters></span>  

Indri查询语言
1、Combining Beliefs
#combine,#weight, #not, #max, #or, #band(boolean and)
#wsum, #wand(weighted and)
#weight( 1 #1(Abbotsford Arts Centre)  0.5 #1(office) 0.5 #1(band))

2、Filter Operators
scoreif(#datebetween(10/05/2011 01/26/2012)  #1(Abbotsford Arts Centre)) 

3、Numeric Field Operator
#less( F N ) matches numeric field extents of type Fif value < N
#greater( F N ), #between(F N_low N_high ) , #equals(F N )

4、Date Field Operator
#dateafter( D ),
#datebefore( D ),
#datebetween( D_low D_high ),
#dateequals( D )

查询结果文件:


其中:
第一列:表示第003query
第二列:不用理会
第三列:DOCNO
第四列:排名
第五列:具体排序值
第六列:query_id

2、Indri和Terrier注意点
indri:除了a-z,A-Z,0-9,空格,其余字符如#@¥%都是非法字符,会导致错误


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值