Skip to content

एनोटेशन के लिए डेटा फ़ॉर्मैट डिज़ाइन करना

एनोटेशन प्रोजेक्ट के लिए इनपुट डेटा (JSON, JSONL, CSV) को कैसे ढाँचा दें, Potato किन फ़ील्ड की उम्मीद करता है, और ट्रेनिंग पाइपलाइन तक साफ़ एक्सपोर्ट की योजना कैसे बनाएँ।

अच्छा एनोटेशन ढंग से बने इनपुट से शुरू होता है। हर आइटम को एक स्थिर, अनोखी पहचान और लेबल की जाने वाली सामग्री चाहिए; बाक़ी सब वैकल्पिक संदर्भ है। शुरू में ही यह ठीक कर लेने से बाद की तकलीफ़देह दोबारा-दौड़ बच जाती है, क्योंकि एनोटेशन आपके आइटम ID से बँधे होते हैं।

आम विनिमय फ़ॉर्मैट हैं JSON, JSON Lines (हर पंक्ति पर एक ऑब्जेक्ट, बड़े डेटासेट के लिए सबसे उपयुक्त), और CSV। Potato तीनों पढ़ता है। पूरे संदर्भ के लिए डेटा फ़ॉर्मैट देखें।

हर आइटम में कम से कम क्या चाहिए

  • एक अनोखी ID जो कभी न बदले। एनोटेशन इसी ID के नाम रखे जाते हैं, इसलिए प्रोजेक्ट के बीच में आइटम को दोबारा नंबर देने पर मौजूदा लेबल से नाता टूट जाता है।
  • एनोटेट की जाने वाली सामग्री: कोई टेक्स्ट फ़ील्ड, कोई image URL, कोई ऑडियो पथ, समय से मिलाया गया कोई ट्रांसक्रिप्ट, या कोई संरचित ट्रेस।

टेक्स्ट कार्य के लिए JSONL फ़ाइल कुछ ऐसी दिखती है:

json
{"id": "rev_001", "text": "The battery lasts all day. Highly recommend."}
{"id": "rev_002", "text": "Stopped working after a week."}

आप Potato को बताते हैं कि कौन-सी key इस्तेमाल करनी है:

yaml
item_properties:
  id_key: id
  text_key: text
 
data_files:
  - "data/reviews.jsonl"

संदर्भ साथ रखें, पर लेबल से अलग

अतिरिक्त फ़ील्ड, कोई source URL, कोई timestamp, कोई मॉडल का नाम, हर आइटम के साथ चल सकते हैं और एनोटेटर को दिखाए जा सकते हैं, बिना लेबल बने। उनके नाम साफ़ रखें ताकि बाद में एक्सपोर्ट पढ़ने में आसान रहे।

ट्रांसक्रिप्ट फ़ाइलें भी इनपुट हैं

अगर आपकी सामग्री बोली हुई है, तो उसे पहले किसी टेक्स्ट फ़ील्ड में समेटना ज़रूरी नहीं। Potato ट्रांसक्रिप्ट और सबटाइटल के 21 फ़ॉर्मैट पढ़ता है, जिनमें Whisper और WhisperX JSON, Deepgram, AssemblyAI, AWS Transcribe, SRT, WebVTT, TTML, Praat TextGrid, और ELAN EAF शामिल हैं। कोई डेटा फ़ाइल सीधे उन्हीं फ़ाइलों की ओर इशारा कर सकती है जो आपके ASR टूल ने लिखी हैं:

json
{"id": "int_001", "conversation": {"audio": "media/int_001.mp3",
                                   "transcript": "media/int_001.srt"}}

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

लेबल करने से पहले एक्सपोर्ट की योजना बनाएँ

जल्दी तय कर लें कि लेबल किया हुआ डेटा आपकी पाइपलाइन में कैसे जाएगा। Potato JSON, JSONL, और CSV में एक्सपोर्ट करता है, और ML के अपने फ़ॉर्मैट में भी, जैसे sequence labeling के लिए CoNLL, Hugging Face Datasets, spaCy, और विज़न के लिए COCO/YOLO। लक्ष्य फ़ॉर्मैट पहले चुन लेने से पता चल जाता है कि अभी कौन-से फ़ील्ड और कौन-सी ID व्यवस्था इस्तेमाल करनी है। देखें ML के लिए एनोटेशन एक्सपोर्ट करना

yaml
output_annotation_dir: "annotation_output/"
output_annotation_format: "jsonl"

आगे पढ़ें