翻译自:https://lemur.sourceforge.io/indri/
Indri是Lemur项目衍生的一个基于语言模型的新的搜索引擎,由University of Massachusetts和Carnegie Mellon University合作开发。
一、安装
1.下载。下载Indri并进入indri文件夹的顶层目录!!!
2.修改configure文件权限。确认其中的configure文件的权限是否是rwx(可读可写可执行)。一般来是rw,需要改成rwx。终端输入chmod 744 configure,再用ls -all查看是否修改为可执行。
3.执行configure文件。
终端输入./configure --prefix=<install-directory> --enable-java --with-javahome=$JAVA_HOME
4.编译。终端输入make,回车即可。
5.安装。终端输入make install,回车即可。
6.设置环境变量。如果配置了--enable-java, 公共的库文件存放在<install-directory>/lib/libindri_jni.so,java class文件存放在<install-directory>/share/indri/indri.jar。所以需要将<install-directory>/lib添加到环境变量LD_LIBRARY_PATH中,将<install-directory>/share/indri/indri.jar添加到CLASSPATH。
至此,安装结束。
完成上述步骤后,就会在<install-directory>中生成需要的所有东西了。
另外,安装过程中总会遇到各种问题:比如configure因为没有执行权限而无法执行,没有在命令行前面加入./而导致不能运行,使用make编译时没有找到zlib.h而导致编译失败。多上网搜一下就可以解决了。
二、建立索引 (Indexing)
1.进入IndriBuildIndex所在目录,默认对目录是/usr/local/bin。
2.输入IndriBuildIndex <index_parameter_file>即可为语料建立索引。其中,index_parameter_file是参数文件,具体参数说明见参考文献1,也可以见这个系列的另一篇文章。
3.索引保存在index目录中,为一系列二进制文件。
注意:Indri在建立了检索之后,如果在重新执行该命令,就不会在重新对已经index过的文件再建立索引了。
三、检索 (Retrieval)
1.进入IndriRunQuery所在路径。如果安装时候没有设置安装路径,则默认路径是/usr/local/bin。
2.输入 IndriRunQuery <path-to-query_parameter_file > path-to-query_result_file
3.结果可以保存为TREC格式,格式为
<queryID> Q0 <DocID> <rank> <score> <runID>
150 Q0 AP890101-0001 1 -4.83646 runName
150 Q0 AP890101-0015 2 -7.06236 runName
四、评价 (Evaluation)
TREC提供两种评价工具包,java实现的ireval.jar和c++实现的trec_eval。
使用ireval.jar
1.首先,注意可能需要要修改ireval.jar的menifest文件才可以执行!!!
2.进入ireval.jar的目录
输入:java -jar /home/path-to-ireval/ireval.jar path-to-query_result_file path-to-qrel_file
3.使用trec_eval。进入trec_eval的目录,注意编译生成可执行文件trec_eval才可以!!!
输入:./trec_eval -q path-to-qrel_file path-to-query_result_file
参考文献
https://sourceforge.net/p/lemur/wiki/IndriBuildIndex%20Parameters/
https://sourceforge.net/p/lemur/wiki/Quick%20Start/
http://www.cnblogs.com/supakito/archive/2012/11/26/2789381.html