如何根据 rturk gem 上的状态对 mturk 进行分页和搜索?

how to do pagination and search based on status on rturk gem for mturk?

我们正在与 rturk gem 合作,以便在 ruby

中受到 mturk 的打击
rturk gem : https://github.com/ryantate/rturk

我可以使用以下代码从 mturk 中攻击

hits = RTurk::Hit.all
puts "#{hits.size} hits. \n"

但它只给了我 100 次点击 how to find pagination object and the total count of hits using rturk gem

我们如何使用 rturk 管理分页? 使用上面的代码它给出了所有结果,但我想根据特定状态搜索匹配项。 我们如何按状态搜索命中?

Amazon Mechanical Turk 的最大页面大小为 100 (details here),这就是 rturk gem 忠实地返回 100 个 HIT 的原因。

RTurk::SearchHITs操作似乎不支持按状态搜索。相反,您可以使用 RTurk::GetReviewableHITs 操作来执行如下操作:

    get_reviewable_hits = RTurk::GetReviewableHITs.new status: 'Reviewable', page_size: 10, page_number: 2
    => #<RTurk::GetReviewableHITs:0x007faacb523668 @status="Reviewable", @page_number=2, @page_size=10>

    request = get_reviewable_hits.request

    request.total_num_results
    => 91

    request.num_results
    => 10

    hits = request.hit_ids.map { |id| RTurk::Hit.new(id) }
    hits_with_details_and_assignments = request.hit_ids.map { |id| RTurk::Hit.find(id) }

我们来了:

  • 按状态筛选 Reviewable
  • 将页面大小设置为 10 以演示分页,因为我手边只有 91 个可查看的 HIT
  • 请求第 2 页(共 9 页)进行说明

希望这对您有所帮助。干杯。