Terrier是英国格拉斯哥大学信息检索组开发的工具, 但是相关文档实在是少。 看了官方的document, 做了一些实验, 特此记录, 供以后参考等等。
Information Retrieval in Terrier: a glossary
在Terrier所有文件中, 只需要重点关注如下几个文件夹。
bin/ : 存放运行的脚本
etc/:存放collection.spec, terrier.properties等重要的文件
var/:存放index, result
share/:存放stopword-list.txt等文件
Terrier的bin中提供了可以进行索引,检索的脚本
分为如下的步骤:
`
// 建立索引
// 设置data的路径, 将会在etc/中产生collection.spec供indexing用
bin/trec_setup.sh < absolute-path-to-collection-files >
// 建立索引. 如果不想得到direct index, 可以加上参数-j,这样建立索引的方法是single pass index, 不会产生direct index, 速度更快, 但会导致无法进行query expansion
bin/trec_terrier.sh -i
// 查看index的统计数据
bin/trec_terrier.sh –printstats
// 查询
// 可以在command line输入参数, 进行单个query的检索了
bin/interactive_terrier.sh
// 检索(批量)
// 指定topic的位置, 将在var/results的位置产生 .res 文件
bin/trec_terrier.sh -r -Dtrec.topics=share/vaswani_npl/query-text.trec
// 评价
// 指定qrel文件的位置, 将在var/results的位置产生.eval文件
bin/trec_terrier.sh -e -Dtrec.qrels=share/vaswani_npl/qrels
// 交互式检索
// 将在浏览器产生一个检索窗口 http://localhost:8080
bin/http_terrier.sh
`
Indexing
By default, Terrier使用的Collection是TRECCollection, 它的文本有如下的格式
<DOC>
<DOCNO> doc1 </DOCNO>
Content of the document does here
</DOC>
<DOC