2010-05-14 12 views
13

मैकेनिकल तुर्क श्रमिकों के साथ संचार से मुझे पता है कि एक विशिष्ट कार्यकर्ता एचआईटी की संख्या को सीमित करने का एक तरीका है, लेकिन मैं यह नहीं समझ सकता कि इसे कैसे किया जाए । किसी भी तरह की सहायता का स्वागत किया जाएगा!मैकेनिकल तुर्क में, आप एक एचआईटी प्रति कार्यकर्ता को कैसे सीमित करते हैं

उत्तर

1

देखें

http://docs.amazonwebservices.com/AWSMechanicalTurkRequester/2008-08-02/

आप सीमा के दो प्रकार सेट कर सकते हैं:

  • कार्य किसी भी कार्यकर्ता अपने द्वारा बनाए गए एक विशिष्ट हिट प्रकार के लिए स्वीकार कर सकते हैं की अधिकतम संख्या। यह मान तब तक अपरिभाषित है जब तक आप इसे सेट नहीं करते।
  • असाइनमेंट की अधिकतम संख्या कोई भी कर्मचारी आपके सभी एचआईटी के लिए स्वीकार कर सकता है जो अन्यथा पहले से ही एक एचआईटी-प्रकार-विशिष्ट सीमा निर्दिष्ट नहीं है। प्रारंभिक डिफ़ॉल्ट मान 10.

प्रारंभ में, एचआईटी प्रकार के बावजूद, आपके सभी एचआईटी समूह में आवेदन करने वाली कुल सीमा (10 का डिफ़ॉल्ट) के साथ समूहबद्ध होते हैं।

ध्यान दें कि यह असाइनमेंट की संख्या को संदर्भित करता है जो एक कर्मचारी वर्तमान में स्वीकार कर सकता है। एक बार कर्मचारी ने असाइनमेंट सबमिट कर लिया है, तो वे एक और असाइनमेंट स्वीकार कर सकते हैं।

आपको शायद इस बात पर परवाह नहीं करना चाहिए कि एक कार्यकर्ता कुल मिलाकर कितने एचआईटी पूरा करता है, लेकिन एक कारण हो सकता है कि आप उस कार्य को बदलना चाहते हैं जिस पर एक कर्मचारी वर्तमान में डिफ़ॉल्ट 10 से स्वीकार कर सकता है। बेशक, एक कर्मचारी केवल स्वीकार कर सकता है एकाधिक असाइनमेंट के साथ एक एचआईटी से एक असाइनमेंट।

यदि आप वास्तव में वास्तव में वास्तव में ऐसा करने वाले एचआईटी की संख्या को सीमित करना चाहते हैं, तो आपको या तो यह निर्दिष्ट करने की आवश्यकता होगी कि आप प्रति कार्यकर्ता की एक निश्चित संख्या से अधिक स्वीकार नहीं करेंगे, स्पष्ट रूप से यह बताते हुए एक बार सीमा पार हो जाने के बाद आप किसी भी सबमिशन को अस्वीकार करने जा रहे हैं या आप ऐसा करने के लिए योग्यता प्रकारों के साथ बंदर कर सकते हैं (लेकिन यह बहुत काम हो सकता है)!

बाद के उदाहरण के रूप में, यदि आप किसी को कुल असाइनमेंट करने के लिए किसी को सीमित करना चाहते हैं, तो आप प्रत्येक एचआईटी के लिए योग्यता प्रकार प्राप्त कर सकते हैं और किसी एक कार्यकर्ता को एन प्रकार से अधिक नहीं दे सकते हैं।

+0

"आपको शायद इस बात परवाह नहीं करना चाहिए कि एक कार्यकर्ता कितने एचआईटी को पूरा करता है" - निश्चित रूप से आपको चाहिए। काम की कुछ श्रेणियों के लिए, एक व्यक्ति को कई पुनरावृत्ति करना समझ में आता है। अन्य श्रेणियों के लिए, यह पूरी तरह से बेकार है। सर्वेक्षण के बहुत सारे तुर्की का उपयोग कर रहे हैं, उदाहरण के लिए, और चाहते हैं कि एक व्यक्ति केवल एक बार सर्वेक्षण करे। –

+1

हालांकि, तुर्की के लिए यह नहीं है। मैकेनिकल तुर्क मुख्य रूप से मनुष्यों के लिए मानव खुफिया कार्य करने के लिए मौजूद है जो एक कंप्यूटर आसानी से नहीं कर सकता है। यदि आप वास्तव में परवाह करते हैं कि एक कर्मचारी कितने एचआईटी पूरा करता है, तो शायद आपको पहले स्थान पर मैकेनिकल तुर्क का उपयोग नहीं करना चाहिए। –

+4

आप स्पष्ट रूप से SetWorkerAcceptLimit के लिए प्रलेखन उद्धृत कर रहे हैं। यह कार्यक्षमता 2008 से अक्षम कर दी गई है: "अब आप स्वीकृति सीमा निर्धारित नहीं कर सकते हैं।" http://docs.amazonwebservices.com/AWSMechTurk/2008-04-01/AWSMechanicalTurkRequester/ApiReference_SetWorkerAcceptLimitOperation.html –

3

आप इसे बाहरी प्रश्नों के साथ भी कर सकते हैं। मैं यांत्रिक टर्की पर मनोविज्ञान प्रयोग चलाता हूं, इसलिए मुझे अद्वितीय प्रतिभागियों की आवश्यकता है। अनुरोध करने के अलावा कि श्रमिक केवल एक एचआईटी करते हैं, मैं विशिष्टता को सत्यापित करने के लिए एक पायथन स्क्रिप्ट का उपयोग करता हूं। मेरे एचआईटी सभी सवाल उठाने के लिए एक सीजीआई स्क्रिप्ट चलाते हैं। लिपि एक लॉग फ़ाइल का समर्थन करती है, और यदि कर्मचारी पहले से संबंधित नौकरी स्वीकार कर चुका है, तो यह विनम्रतापूर्वक उन्हें सूचित करता है कि क्योंकि मुझे अद्वितीय प्रतिभागियों की आवश्यकता है, एचआईटी उपलब्ध नहीं होगा।

मैं योग्यता के साथ ऐसा करता था, लेकिन पाया कि यह वास्तव में सीमित भागीदारी है।

+0

क्या टर्कर्स परेशान हो जाते हैं अगर वे हिट स्वीकार करते हैं और फिर कहा जाता है कि वे इसे नहीं ले सकते हैं? – VikR

5

एक हिट बनाएं जो वास्तव में एक ही एचआईटी है लेकिन हर बार जब इसे देखा जाता है तो एचआईटी को गतिशील रूप से बदलने के लिए जावास्क्रिप्ट का उपयोग करें। फिर जब आप चाहते हैं कि प्रतिभागियों की संख्या के लिए एचआईटी सेट "प्रति एचआईटी असाइनमेंट की संख्या" पोस्ट करते समय। इस तरह आप केवल अद्वितीय प्रतिभागियों को ही प्राप्त करेंगे।

एचआईटी के प्रकार के आधार पर आप इसे चलाने के लिए एक तकनीक है जो आपके लिए काम कर सकती है। मैंने प्रतिभागियों को दिखाए गए उत्तेजना को यादृच्छिक बनाने के लिए इसका उपयोग किया है।

1

सिर्फ यह स्पष्ट करने के लिए कि क्या आप केवल एक अद्वितीय हिट को पूरा करने के लिए अद्वितीय श्रमिक चाहते हैं, आपको केवल इतना करना है कि आप अपने इच्छित कई अद्वितीय श्रमिकों को अधिकतम असाइनमेंट सेट करें और डिफ़ॉल्ट रूप से मैकेनिकल तुर्क उस हिट के लिए केवल अद्वितीय श्रमिकों को असाइन करेगा ।

अब अगर आप चाहते हैं कई हिट भर में अद्वितीय श्रमिकों तो आप कल्पना हो और एक बाहरी सवाल एक स्क्रिप्ट है कि कार्यकर्ता आईडी के ext लॉग के साथ मिलकर उपयोग करने के लिए है ...

1

आप एक्स अद्वितीय उपयोगकर्ताओं, बनाना चाहते हैं "डिजाइन" खंड में x के बराबर प्रति एचआईटी असाइनमेंट की संख्या। फिर, अपनी सीएसवी फ़ाइल लोड करते समय, फ़ाइल में केवल एक एचआईटी डालें।

15

मैंने एक ऐसी स्क्रिप्ट विकसित की है जो ज्यादातर इस समस्या को हल करती है। मुख्य विचार है कि डेटाबेस के खिलाफ कार्यकर्ता आईडी की जांच करें और फिर एचआईटी को छुपाएं यदि कर्मचारी पहले से ही संबंधित एचआईटी पूरा कर चुका है।

ताकि आपको अपना खुद का डेटाबेस सर्वर होस्ट करने की आवश्यकता न हो, मैंने अपनी स्क्रिप्ट को एक (फ्री) सेवा के रूप में उपलब्ध कराया है: http://uniqueturker.myleott.com। अगर आपको स्क्रिप्ट का उपयोग करने में कोई परेशानी है, या यदि आपके कोई प्रश्न या सुझाव हैं तो कृपया मुझे बताएं।

मैं यहां स्क्रिप्ट भी शामिल कर रहा हूं, यदि आप इसे अपने यूआरएल/डेटाबेस के साथ उपयोग करना चाहते हैं। यदि आप उस मार्ग पर जाते हैं, तो आपको अपने डीबी में एक वेब इंटरफ़ेस स्थापित करना होगा जो कार्यकर्ता आईडी लेता है और यदि कार्यकर्ता को एचआईटी पर काम करने की अनुमति है और अन्यथा "0" देता है। तो फिर तुम सिर्फ इतना है कि वेब इंटरफेस को इंगित करने के लिए नीचे दिए गए "YOUR_URL" से बदल देंगे:

<script type="text/javascript"> 
(function() { 
    var assignmentId = turkGetParam('assignmentId', ''); 
    if (assignmentId != '' && assignmentId != 'ASSIGNMENT_ID_NOT_AVAILABLE') { 
    var workerId = turkGetParam('workerId', ''); 
    var url = 'http://YOUR_URL/?workerId='+workerId; 
    var request = new XMLHttpRequest(); 
    request.open('GET', url, false); 
    request.send(); 
    if (request.responseText != '1') { 
    document.getElementById('mturk_form').style.display = 'none'; 
    document.getElementsByTagName('body')[0].innerHTML = "You have already completed the maximum number of HITs allowed by this requester. Please click 'Return HIT' to avoid any impact on your approval rating."; 
    } 
    } 
})(); 
</script> 
+0

आपका उत्तर पोस्ट करने के लिए धन्यवाद! कृपया सावधानीपूर्वक [स्व-संवर्धन पर अक्सर पूछे जाने वाले प्रश्न] (http://stackoverflow.com/faq#promotion) को पढ़ना सुनिश्चित करें। –

+1

धन्यवाद एंड्रयू। मैंने स्क्रिप्ट को शामिल करने के लिए अपना जवाब संपादित कर लिया है, ताकि आशा है कि उत्तर अधिक सामान्य बनाये। –

+0

@MyleOtt, यह बहुत उपयोगी है, लेकिन ऊपर लिपि के बारे में एक सवाल है, 'टर्कीगेटम' समारोह कहां परिभाषित किया गया है? क्या यह कुछ फ़ंक्शन एमटीर्क के साथ मानक लाइब्रेरी में शामिल है, या आपने अपना लिखा है? धन्यवाद। –

0

psiTurk (Mturk व्यवहार अनुसंधान एप्लिकेशन) स्वचालित रूप से एक दृष्टिकोण @ डेविड-एल के समान का उपयोग कर दोहरा हिट से श्रमिकों को रोकता है। प्रकटीकरण: मैं परियोजना पर डेवलपर्स में से एक हूं।

+0

उपर्युक्त धागे में पोस्ट के अनुसार, मैं यह सुनिश्चित करने के लिए बाहरी हिट का उपयोग कर रहा हूं कि मेरे पास अलग-अलग एचआईटी समूहों के अद्वितीय कार्यकर्ता हैं। ऐसा प्रतीत होता है कि जब एमटीयूआरके कार्यकर्ता द्वारा बाहरी एचआईटी का पूर्वावलोकन किया जाता है, तो एमटीयूआरके वर्कर्स आईडी को बाहरी सर्वर पर नहीं भेजता है। कार्यकर्ता को एचआईटी का पूर्वावलोकन दिखाते समय लोग यहां कैसे व्यवहार करते हैं? यदि संभव हो तो मैं इससे बचना चाहूंगा, उन्हें एक एचआईटी दिखा रहा हूं, और उसके बाद ही इसे स्वीकार करने के बाद, संभावित रूप से उन्हें बताएं कि वे इसे नहीं ले सकते हैं। किसी भी विचार/जानकारी के लिए सभी के लिए अग्रिम धन्यवाद। – VikR

+0

आप कर्मचारी को अपने एमटीर्किड (वर्कर आईडी) जमा करने के लिए कह सकते हैं और इसे इनबाउंड सर्वे लिंक से जोड़ सकते हैं। फिर आईडी को पहले ही देखा जा चुका है तो भाग लेने वाले पृष्ठ के लिए धन्यवाद। – Kwame

संबंधित मुद्दे