Indri使用会遇到的坑和BUG

最近帮一个大佬处理一下语料,用Indri做个查询,但是中间遇到了不少的坑。虽然我不是做检索的,但还是记录一下吧2333。

首先Indri的安装及使用,可以参考这一篇博客Indri:安装及使用注意安装过程中可能会因为找不到zlib.h而失败,请自行百度zlib安装。

然后在建立索引和检索的时候要注意一下几点:

1 索引和检索的关键词注意都要进行分词和停用词的去除。停用词需要复制下来然后直接黏贴在建立索引 以及 查询的参数文件中,Indri提供有一份停用词列表

<parameters>
...

<!--通常都使用krovetz分词工具-->
<stemmer>
    <name>krovetz</name>
</stemmer>

<!--Indri需要直接在建立索引和检索的参数文件中指定停用词-->
<stopper>
    <word>word1</word>
    <word>word2</word>
</stopper>

...
</parameters>

2 使用Indri进行查询的时候需要把关键词中的标点全部去掉!!!例如但不限于! ? . , ( ) ' " :   冒号也要去掉,否则就会出现如下错误。但是连字符不用去掉如so-called 中间的- 就不会引起错误。

EXCEPTION in query 0: IndriRunQuery.cpp(383): QueryThread::_runQuery Exception 
../src/QueryEnvironment.cpp(874): Couldn't understand this query: NoViableAlt Seahawks

EXCEPTION in query 122: IndriRunQuery.cpp(410): QueryThread::_runQuery Exception
../src/QueryEnvironment.cpp(890): Couldn't understand this query: NoViableAlt

3 如果语料的格式不完全相同,那么建议单独建立索引,建立不同索引的时候建议完善参数文件中的<field>标签,查询的时候也可以用一个关键词查好几个索引。

<parameters>
...

<index>/home/username/indri/index1</index>
<index>/home/username/indri/index2</index>


<!--当有多个关键词的时候会将每个关键词在每个索引上都进行查询-->
<query>
    <number>001</number>
    <text>keyword1</text>
</query>

<query>
    </number>002</number>
    <text>keyword2</number>
</query>
...
</parameters>

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值