IBM Watson检索并排名服务 - 布尔运算符

时间:2017-04-26 09:39:25

标签: solr ibm-watson watson retrieve-and-rank

我正在编写csv文件来训练 Watson Retrieve and Rank 服务中的排名,其中有很多行[查询," id_doc"," relev_score& #34;,...]
。 我对这个文件的结构有两个问题:

  1. 我必须区分两个文档,具体取决于查询是否包含单词" not"。更具体:
    • 第一个文档的正文和标题包含" manager"
    • 第二个文件的正文和标题包含"不是经理"
  2. 因此,如果查询类似于"我是经理。我怎么....?"那么第一个文件是正确的,但不是第二个。 如果查询类似于"我不是经理......"那么第二个文件是正确的,但不是第一个 是否有任何特定的语法可用于以正确的方式编写查询?也许使用布尔运算符?此文件是否适用于应用此类过滤器?

     这项服务还有一个网络界面来培训排名。本网站使用的评级是:1->错误答案,2->与该主题相关但没有回答该问题,3->好,但可以改进,4->完美的答案。
    此文件中使用的相关性分数是否与Web界面相同?

    谢谢!

1 个答案:

答案 0 :(得分:1)

  

是否有任何特定的语法可用于以正确的方式编写查询?也许使用布尔运算符?此文件是否适用于应用此类过滤器?

正如您所暗示的,此文件不适合使用过滤器。训练数据将用于确定排名者在尝试优化Solr搜索结果的排序时应注意哪些类型的词汇重叠功能(有关详细信息,请参阅此处的讨论:watson retrieve-and-rank - manual ranking)。

也就是说,您当然可以在训练数据中添加至少两行,如下所示:

  • 第一个可以有问题文本"我是经理。我如何做" 以及相应的正确文档ID和正整数相关标签。
  • 第二行可以有问题文本"我是不是经理。我如何做一些事情" 以及非经理的回答文档ID和正整数相关性标签。

有足够数量的这样的例子,希望排名者将学会关注二元词汇重叠特征。如果这不起作用,您当然可以使用预先检测经理与经理并应用适当的过滤器,但我相信已经使用单独的参数完成了(fq?)...因此您可能需要修改train.py以适当地传递过滤器查询(默认train.py接受完整查询并通过q传递到/fcselect端点。)

  

此文件中使用的相关性分数是否与网络界面相同?

不完全是,网络界面使用1-4星评级来改进数据收集的UI,但是在为排名者生成训练数据时将星级评级压缩为较小的相关标签比例。我认为压缩会给出错误答案(即星级评分< 3)相关标签0并传递更高的星级评分,以便有效地存在是3级评级(尽管UI团队中的某些人可以根据需要添加细节说明)。 对于错误答案获得0的相关性标签的基础排名算法非常重要。

相关问题