2

boto ライブラリを使用して、Amazon Mechanical Turk の作業者が送信したフリーテキストの回答を抽出しようとしています。

assignments = conn.get_assignments(hit_id)
for assignment in assignments:
    worker = assignment.WorkerId
    answer = assignment.Answer

ここでは、回答がワーカーによって送信されたフリーテキスト文字列 (HIT がワーカーに送信するように要求する唯一のもの) であると予想していますが、上記のコードではそれが得られません。ここで何が欠けていますか?

4

2 に答える 2

3

boto で探しているFreeText情報を取得するには、割り当てプロパティの answer を反復処理する必要があります。複数のフォームを送信した場合を除き、フォームは最初のインデックスにする必要があります。

このリストのタイプはQuestionFormAnswerです

QuestionFormAnswer に関する boto ドキュメントは次のとおりです
http://sourcecodebrowser.com/python-boto/2.3.0/classboto_1_1mturk_1_1connection_1_1_question_form_answer.html

実際に必要なプロパティはqidfieldsであることがわかります

これは、より意味のある更新されたコードです。

assignments = conn.get_assignments(hit_id)
for assignment in assignments:
    worker_id = assignment.WorkerId
    # Iterate through question forms answers which are our fields
    for question_form_answer in assignment.answers[0]:
        field_id = question_form_answer.qid
        field_value = question_form_answer.fields
于 2015-02-10T10:04:09.607 に答える
2

answers上記の例の割り当てオブジェクトには、オブジェクトのリストであるという属性があると思いQuestionFormAnswerます。これらの各オブジェクトには、 という属性が必要ですFreeText

于 2013-03-20T14:13:49.550 に答える