डेटा प्रारूप
समर्थित डेटा प्रारूप और अपने एनोटेशन डेटा को कैसे संरचित करें।
डेटा प्रारूप
Potato बॉक्स से बाहर एकाधिक डेटा प्रारूपों का समर्थन करता है। यह गाइड बताती है कि एनोटेशन के लिए अपने डेटा को कैसे संरचित करें।
समर्थित प्रारूप
| प्रारूप | एक्सटेंशन | विवरण |
|---|---|---|
| JSON | .json | ऑब्जेक्ट की सरणी |
| JSON Lines | .jsonl | प्रति पंक्ति एक JSON ऑब्जेक्ट |
| CSV | .csv | अल्पविराम-पृथक मूल्य |
| TSV | .tsv | टैब-पृथक मूल्य |
JSON प्रारूप
सबसे सामान्य प्रारूप। आपका डेटा ऑब्जेक्ट की एक सरणी होनी चाहिए:
[
{
"id": "doc_001",
"text": "This is the first document to annotate.",
"source": "twitter",
"date": "2024-01-15"
},
{
"id": "doc_002",
"text": "This is the second document.",
"source": "reddit",
"date": "2024-01-16"
}
]JSON Lines प्रारूप
प्रत्येक पंक्ति एक अलग JSON ऑब्जेक्ट है। बड़े डेटासेट के लिए उपयोगी:
{"id": "doc_001", "text": "First document"}
{"id": "doc_002", "text": "Second document"}
{"id": "doc_003", "text": "Third document"}CSV/TSV प्रारूप
हेडर के साथ सारणीबद्ध डेटा:
id,text,source
doc_001,"This is the first document",twitter
doc_002,"This is the second document",redditकॉन्फ़िगरेशन
बुनियादी सेटअप
अपने YAML में डेटा फ़ाइलें और फील्ड मैपिंग कॉन्फ़िगर करें:
data_files:
- "data/documents.json"
item_properties:
id_key: id # Field name for unique ID
text_key: text # Field name for content to annotateएकाधिक डेटा फ़ाइलें
एकाधिक डेटा स्रोत संयोजित करें:
data_files:
- "data/batch_1.json"
- "data/batch_2.json"
- "data/batch_3.jsonl"फ़ाइलें क्रम में प्रोसेस और संयुक्त की जाती हैं।
डेटा प्रकार
सादा पाठ
सरल पाठ सामग्री:
{
"id": "1",
"text": "The product arrived quickly and works great!"
}मीडिया फ़ाइलें
छवियों, वीडियो, या ऑडियो का संदर्भ दें:
{
"id": "1",
"image_path": "images/photo_001.jpg"
}item_properties:
id_key: id
image_key: image_pathडायलॉग/सूचियाँ
सूचियाँ स्वचालित रूप से क्षैतिज रूप से प्रदर्शित होती हैं:
{
"id": "1",
"text": "Option A,Option B,Option C"
}पाठ जोड़े
तुलना कार्यों के लिए:
{
"id": "pair_001",
"text": {
"A": "Response from Model A",
"B": "Response from Model B"
}
}HTML फ़ाइलें
फ़ोल्डर में संग्रहीत HTML फ़ाइलों का संदर्भ दें:
{
"id": "1",
"html_file": "html/document_001.html"
}संदर्भात्मक एनोटेशन
मुख्य पाठ के साथ संदर्भ शामिल करें:
{
"id": "1",
"text": "This is great!",
"context": "Previous message: How do you like the new feature?"
}item_properties:
id_key: id
text_key: text
context_key: contextडिस्प्ले कॉन्फ़िगरेशन
सूची डिस्प्ले विकल्प
नियंत्रित करें कि सूचियाँ और शब्दकोश कैसे प्रदर्शित होते हैं:
list_as_text:
# Add prefixes to items
text_prefix: "A" # A., B., C. (or "1" for 1., 2., 3.)
# Display orientation
horizontal: true # Side-by-side (false for vertical)
# Randomization
randomize_values: true # Shuffle list items
randomize_keys: true # Shuffle dictionary keysHTML सामग्री
पाठ में HTML रेंडरिंग सक्षम करें:
html_content: true{
"id": "1",
"text": "<p>This is <strong>formatted</strong> text.</p>"
}आउटपुट कॉन्फ़िगरेशन
आउटपुट डायरेक्टरी
निर्दिष्ट करें कि एनोटेशन कहाँ सहेजे जाएं:
output_annotation_dir: "output/"आउटपुट प्रारूप
आउटपुट प्रारूप चुनें:
output_annotation_format: "json" # json, jsonl, csv, or tsvआउटपुट संरचना
एनोटेशन में दस्तावेज़ ID और प्रतिक्रियाएं शामिल हैं:
{
"id": "doc_001",
"user": "annotator_1",
"annotations": {
"sentiment": "Positive",
"confidence": 4
},
"timestamp": "2024-01-15T10:30:00Z"
}विशेष डेटा प्रकार
Best-Worst Scaling
रैंकिंग कार्यों के लिए, अल्पविराम-पृथक आइटम उपयोग करें:
{
"id": "1",
"text": "Item A,Item B,Item C,Item D"
}कस्टम तर्क
डिस्प्ले या फ़िल्टरिंग के लिए अतिरिक्त फील्ड शामिल करें:
{
"id": "1",
"text": "Document content",
"category": "news",
"priority": "high",
"custom_field": "any value"
}डेटाबेस बैकएंड
बड़े डेटासेट के लिए, MySQL का उपयोग करें:
database:
type: mysql
host: localhost
database: potato_db
user: ${DB_USER}
password: ${DB_PASSWORD}Potato पहले स्टार्टअप पर स्वचालित रूप से आवश्यक तालिकाएं बनाता है।
डेटा सत्यापन
Potato स्टार्टअप पर आपके डेटा को मान्य करता है:
- गुम ID फील्ड - सभी आइटम में अद्वितीय पहचानकर्ता होने चाहिए
- गुम पाठ फील्ड - आइटम में एनोटेट करने योग्य सामग्री होनी चाहिए
- डुप्लिकेट ID - सभी ID अद्वितीय होनी चाहिए
- फ़ाइल नहीं मिली - डेटा फ़ाइल पथ सत्यापित करें
पूर्ण उदाहरण
task_name: "Document Classification"
task_dir: "."
port: 8000
# Data configuration
data_files:
- "data/documents.json"
item_properties:
id_key: id
text_key: text
context_key: metadata
# Display settings
list_as_text:
text_prefix: "1"
horizontal: false
# Output
output_annotation_dir: "output/"
output_annotation_format: "json"
# Annotation scheme
annotation_schemes:
- annotation_type: radio
name: category
description: "Select the document category"
labels:
- News
- Opinion
- Tutorial
- Other
allow_all_users: trueसर्वोत्तम अभ्यास
1. अर्थपूर्ण ID का उपयोग करें
ट्रैकिंग और डीबगिंग आसान बनाता है:
{"id": "twitter_2024_001", "text": "..."}2. पाठ संक्षिप्त रखें
लंबे पाठ एनोटेशन धीमा करते हैं। विचार करें:
- महत्वपूर्ण भागों को छोटा करना
- सारांश प्रदान करना
- स्क्रॉल कंटेनर उपयोग करना
3. मेटाडेटा शामिल करें
फ़िल्टरिंग और विश्लेषण में मदद करता है:
{
"id": "1",
"text": "Content",
"source": "twitter",
"date": "2024-01-15",
"language": "en"
}4. लोड करने से पहले मान्य करें
अपने डेटा को ऑफलाइन जांचें:
import json
with open('data.json') as f:
data = json.load(f)
# Check for required fields
for item in data:
assert 'id' in item, f"Missing id: {item}"
assert 'text' in item, f"Missing text: {item}"
# Check for duplicates
ids = [item['id'] for item in data]
assert len(ids) == len(set(ids)), "Duplicate IDs found"
print(f"Validated {len(data)} items")5. मूल डेटा का बैकअप लें
पुनरुत्पादन के लिए एनोटेशन से कच्चे डेटा को अलग रखें।
6. बड़ी फ़ाइलों के लिए JSON Lines का उपयोग करें
JSON सरणियों की तुलना में अधिक मेमोरी-कुशल:
# Convert JSON array to JSON Lines
cat data.json | jq -c '.[]' > data.jsonlआगे पढ़ें
- Data Directory Loading - लाइव वॉचिंग के साथ डायरेक्टरी से लोड करें
- Dialogue Annotation - मल्टी-आइटम डेटा डिस्प्ले
- Export Formats - आउटपुट प्रारूप विकल्प
कार्यान्वयन विवरण के लिए, स्रोत दस्तावेज़ देखें।