【问题标题】:Retrieve and Rank Python: What kind of "Answer Data" to pass to rank method?检索和排名 Python:将什么样的“答案数据”传递给排名方法?
【发布时间】:2016-07-19 14:52:12
【问题描述】:

我正在使用 Python 访问 Retreive-And-Rank 服务。到目前为止,我已经上传了我的配置和文档,并在相关文件上训练了我的排名器。我想剩下的就是将一些查询结果(来自 Solr?)传递给我的 R-A-R 对象的“rank”方法。

我的问题:这些结果究竟是什么,它们以什么形式出现?以及如何访问它们?

现在我正在使用 get_pysolr_client() 方法访问 PySolr 对象,然后搜索查询并使用返回的结果:

answer_data = pysolr.search(query)
rrv1.rank(<my_ranker_id>, answer_data, top_answers=10)

我这样做是因为它类似于 IBM 在 Java example 中的 rank() 方法中所做的。但我收到了错误消息:

AttributeError: 'Results' object has no attribute 'read'

我得到这个是因为 PySolr 返回一个“结果”对象。

我应该将什么传递给 rank() 方法以使其工作?

rank 方法的 Retrieve_and_Rank 规范如下,我认为 answer_data 应该是一个“类文件”对象:

def rank(self, ranker_id, answer_data, top_answers=10)

【问题讨论】:

    标签: python ibm-cloud ibm-watson pysolr retrieve-and-rank


    【解决方案1】:

    一种解决方法是调用 pysolr 的 _send_request 方法:

    results = pysolr._send_request("GET", path="/fcselect?q=%s&ranker_id=%s&wt=json" %
                                  (query_string, ranker_id))
    for doc in json.loads(results)["response"]["docs"]:
        print doc
    

    感谢 dW Answers 上的 rishavc。

    【讨论】:

      猜你喜欢
      • 2022-06-23
      • 1970-01-01
      • 2016-05-12
      • 2020-08-14
      • 1970-01-01
      • 1970-01-01
      • 2016-09-10
      • 1970-01-01
      • 2012-12-24
      相关资源
      最近更新 更多