コード例 #1
0
def PostHits():
    mtc = MTurkConnection(aws_access_key_id=ACCESS_ID,
                          aws_secret_access_key=SECRET_KEY,
                          host=HOST)

    q = ExternalQuestion(
        external_url="https://paulscotti.github.io/mturk/ContLTMBlocked90",
        frame_height=675)
    keywords = [
        'memory', 'psychology', 'game', 'attention', 'experiment', 'research'
    ]
    title = 'Memorize the colors of objects! (Psychology Experiment, 1.5 hours)'
    experimentName = 'Cont_LTM_90'
    description = 'Research study involving color memory.'
    pay = 9.00

    qualifications = mtqu.Qualifications()
    qualifications.add(
        mtqu.PercentAssignmentsApprovedRequirement('GreaterThanOrEqualTo', 98))
    qualifications.add(
        mtqu.NumberHitsApprovedRequirement('GreaterThanOrEqualTo', 1000))
    qualifications.add(mtqu.LocaleRequirement("EqualTo", "US"))
    qualifications.add(
        mtqu.Requirement(
            '38XLDN1M8DBWG1FPHU43ZCVTZ4T3DT', 'DoesNotExist', '',
            'DiscoverPreviewAndAccept'))  # No prior workers of ours
    qualifications.add(
        mtqu.Requirement('2F1QJWKUDD8XADTFD2Q0G6UTO95ALH', 'Exists', '',
                         'DiscoverPreviewAndAccept'))  # Masters only

    theHIT = mtc.create_hit(
        question=q,
        lifetime=2 * 60 * 60,  # 2 hours
        max_assignments=1,  #needs to be less than 10 else additional fees
        title=title,
        description=description,
        keywords=keywords,
        qualifications=qualifications,
        reward=pay,
        duration=180 *
        60,  #3 hours (HIT won't be accepted if they go over time)
        approval_delay=1 * 60 * 60,  # 1 hours
        annotation=experimentName)

    assert (theHIT.status == True)
    print theHIT
    print theHIT[0].HITId
コード例 #2
0
def PostHits_loop():
    # To post a HIT, first connect to Turk using our access codes:
    # The ACCESS_ID and SECRET_KEY are loaded before this function is called
    # (e.g., from alvarezlab import * );
    mtc = MTurkConnection(aws_access_key_id=ACCESS_ID,
                          aws_secret_access_key=SECRET_KEY,
                          host=HOST)

    for x in range(startHSet, endHSet + 1):
        HSet = x
        urlForHIT = "https://scorsese.wjh.harvard.edu/turk/experiments/cfm/Search10/index_cmtrial_Search10.html?HSetNum=%d" % HSet

        # Now lets setup a structure for our external HIT. We need the URL we want to be
        # shown within the Turk window and also how tall we want the Turk iframe to be:
        q = ExternalQuestion(external_url=urlForHIT, frame_height=frameHeight)

        # And any qualifications we want people to have:
        qualifications = mtqu.Qualifications()

        qualifications.add(
            mtqu.PercentAssignmentsApprovedRequirement(
                'GreaterThanOrEqualTo', percentAssignmentsApprovedRequirement))
        qualifications.add(mtqu.LocaleRequirement("EqualTo",
                                                  localeRequirement))
        if (qualificationID != "NONE"):
            qualifications.add(
                mtqu.Requirement(qualificationID, "EqualTo", 1,
                                 notifyWorkerOfQualification))

        # Post:
        theHIT = mtc.create_hit(
            question=q,
            lifetime=minToSec(minutesBeforeHitExpires),
            max_assignments=numAssignmentsToPost,
            title=titleForWorkers,
            description=descriptionForWorkers,
            keywords=keywordsForWorkers,
            qualifications=qualifications,
            reward=pay,
            duration=minToSec(minutesForUsersToFinish),
            approval_delay=minToSec(minutesBeforeAutoApproved),
            annotation=projectNameForRequesters)

        # get more info about the hit
        hit = mtc.get_hit(theHIT[0].HITId)

        # Print out the HIT's ID if all went well:
        # pprint(vars(hit[0]))
        # print "Experiment info:"
        # print HOST
        print "preview hit in HSet ", HSet, ": "
        # print urlForHIT, "\n"
        # print "HITId"
        # print theHIT[0].HITId, "\n"
        print PREVIEW + "?groupId=" + hit[0].HITGroupId, "\n"
コード例 #3
0
ファイル: turk.py プロジェクト: dpfried/phrasenode
def standard_quals(debug):
    """Construct qualifications for MTurk task.

    Args:
        debug (bool): if True, use a special qualification that only we possess.
    """
    quals = mtqu.Qualifications()
    if debug:
        quals.add(mtqu.Requirement("3B9TX86P8NTZUJU62N2SLJ1DZCERL5", "EqualTo", 100, required_to_preview=True))
    else:
        quals.add(mtqu.LocaleRequirement("EqualTo", "US", required_to_preview=True))
        quals.add(mtqu.PercentAssignmentsApprovedRequirement("GreaterThan", 95))
        quals.add(mtqu.NumberHitsApprovedRequirement("GreaterThan", 10))
    return quals
コード例 #4
0
def ManualReward():
    mtc = MTurkConnection(aws_access_key_id=ACCESS_ID,
                          aws_secret_access_key=SECRET_KEY,
                          host=HOST)

    q = ExternalQuestion(
        external_url="https://paulscotti.github.io/mturk/RewardPage",
        frame_height=675)
    keywords = ['compensation', 'experiment', 'research']
    title = 'Compensation for Cont_LTM color experiment'
    experimentName = 'Cont_LTM_Reward'
    description = 'Compensating a previous worker of the Cont_LTM study.'
    pay = 10.27

    #for adding new people
    #mtc.assign_qualification('35GMP5037Q9KDB285EZ1DGC38JE39C','A1N1EF0MIRSEZZ');

    qualifications = mtqu.Qualifications()
    qualifications.add(
        mtqu.Requirement('35GMP5037Q9KDB285EZ1DGC38JE39C', 'Exists', '',
                         'DiscoverPreviewAndAccept'))

    rewardHIT = mtc.create_hit(
        question=q,
        lifetime=12 * 60 * 60,  #12 hours
        max_assignments=1,  #needs to be less than 10 else additional fees
        title=title,
        description=description,
        keywords=keywords,
        qualifications=qualifications,
        reward=pay,
        duration=10 *
        60,  #10 minutes (HIT won't be accepted if they go over time)
        approval_delay=12 * 60 * 60,  # 12 hours
        annotation=experimentName)

    assert (rewardHIT.status == True)
    print rewardHIT
    print rewardHIT[0].HITId
コード例 #5
0
    'global/MTurkPreview.html',
    'minutes_allotted_per_assignment':
    40,
    'expiration_hours':
    1,  # 1 day
    #'grant_qualification_id': '3LQV637WQB4JX22NPA62LG08IF76BE',    #sandbox
    'grant_qualification_id':
    '3X03PXFE93BZZPK7U8HT29SECH8OFF',  # real mturk (kristianlopezvargas)
    #'grant_qualification_id': '3SL0IB85URSUSM2RNGYM7CLMXT3JRV',      # real mturk (kecolab)
    'qualification_requirements': [
        qualification.LocaleRequirement("EqualTo", "US"),
        qualification.PercentAssignmentsApprovedRequirement(
            "GreaterThanOrEqualTo", 30),
        qualification.NumberHitsApprovedRequirement("GreaterThanOrEqualTo", 1),
        qualification.Requirement(
            '3X03PXFE93BZZPK7U8HT29SECH8OFF',
            'DoesNotExist'),  # change for sandbox or real mturk
    ]
}

# if you set a property in SESSION_CONFIG_DEFAULTS, it will be inherited by all configs
# in SESSION_CONFIGS, except those that explicitly override it.
# the session config can be accessed from methods in your apps as self.session.config,
# e.g. self.session.config['participation_fee']

SESSION_CONFIG_DEFAULTS = {
    'real_world_currency_per_point': 0.01,
    'participation_fee': 4.00,
    'num_bots': 6,
    'doc': "",
    'mturk_hit_settings': mturk_hit_settings,
コード例 #6
0
     'app_sequence': ['cf_update', 'cf_predict', 'cf_survey'],
     'participation_fee': 2.00,
     'mturk_hit_settings': {
         'keywords': ['easy', 'bonus', 'choice', 'study', 'economics'],
         'title': '40 Minutes STANFORD UNIVERSITY Economics Study - Earn BONUS of $1.5~$6',
         'description': 'We are conducting an academic survey on individual decision making. You will be asked a number of questions on how likely some events happen.',
         'frame_height': 800,
         'preview_template': 'global/MTurkPreview.html',
         'minutes_allotted_per_assignment': 120,
         'expiration_hours': 7*24, # 7 days
         'grant_qualification_id': '3SFGOZQ0QP9FTMWL37V9SYPG2VPC6V',# to prevent retakes
         'qualification_requirements': [
             qualification.LocaleRequirement("EqualTo", "US"),
             qualification.PercentAssignmentsApprovedRequirement("GreaterThanOrEqualTo", 97),
             qualification.NumberHitsApprovedRequirement("GreaterThanOrEqualTo", 2000),
             qualification.Requirement('3SFGOZQ0QP9FTMWL37V9SYPG2VPC6V', 'DoesNotExist')
         ]
     },
 },
 {
     'name': 'cf_iia_strategy',
     'display_name': "Belief Updating (strategy)",
     'num_demo_participants': 9,
     'app_sequence': ['cf_strategy', 'cf_predict', 'cf_survey'],
     'participation_fee': 2.00,
     'mturk_hit_settings': {
         'keywords': ['easy', 'bonus', 'choice', 'study', 'economics'],
         'title': '40 Minutes STANFORD UNIVERSITY Economics Study - Earn BONUS of $1.5~$6',
         'description': 'We are conducting an academic survey on individual decision making. You will be asked a number of questions on how likely some events happen.',
         'frame_height': 800,
         'preview_template': 'global/MTurkPreview2.html',
コード例 #7
0
ファイル: settings.py プロジェクト: kmlv/otree_express
    'minutes_allotted_per_assignment':
    40,
    'expiration_hours':
    1,  # 1 day
    # 'grant_qualification_id': '3LQV637WQB4JX22NPA62LG08IF76BE',    #sandbox
    # real mturk (kristianlopezvargas)
    'grant_qualification_id':
    '3X03PXFE93BZZPK7U8HT29SECH8OFF',
    # 'grant_qualification_id': '3SL0IB85URSUSM2RNGYM7CLMXT3JRV',      # real mturk (kecolab)
    'qualification_requirements': [
        qualification.LocaleRequirement("EqualTo", "US"),
        qualification.PercentAssignmentsApprovedRequirement(
            "GreaterThanOrEqualTo", 30),
        qualification.NumberHitsApprovedRequirement("GreaterThanOrEqualTo", 1),
        # change for sandbox or real mturk
        qualification.Requirement('3X03PXFE93BZZPK7U8HT29SECH8OFF',
                                  'DoesNotExist'),
    ]
}

# if you set a property in SESSION_CONFIG_DEFAULTS, it will be inherited by all configs
# in SESSION_CONFIGS, except those that explicitly override it.
# the session config can be accessed from methods in your apps as self.session.config,
# e.g. self.session.config['participation_fee']

SESSION_CONFIG_DEFAULTS = {
    'real_world_currency_per_point': 0.01,
    'participation_fee': 4.00,
    'num_bots': 6,
    'doc': "",
    'mturk_hit_settings': mturk_hit_settings,
    'USE_POINTS': False
コード例 #8
0
    'global/MTurkPreview.html',
    'minutes_allotted_per_assignment':
    30,
    'expiration_hours':
    6,
    # 'grant_qualification_id': '',  # sandbox
    'grant_qualification_id':
    '',  # to prevent retakes
    'qualification_requirements': [
        # qualification.LocaleRequirement("EqualTo", "US"),
        qualification.PercentAssignmentsApprovedRequirement(
            "GreaterThanOrEqualTo", 70),
        qualification.NumberHitsApprovedRequirement("GreaterThanOrEqualTo",
                                                    30),
        # qualification.Requirement('', 'DoesNotExist')  # sandbox
        qualification.Requirement('', 'DoesNotExist')
    ]
}

# if you set a property in SESSION_CONFIG_DEFAULTS, it will be inherited by all configs
# in SESSION_CONFIGS, except those that explicitly override it.
# the session config can be accessed from methods in your apps as self.session.config,
# e.g. self.session.config['participation_fee']

SESSION_CONFIG_DEFAULTS = {
    'real_world_currency_per_point': 0.01,
    'participation_fee': 0.00,
    'doc': "",
    'mturk_hit_settings': mturk_hit_settings,
}