Skip to content

為標註設計資料格式

如何為標註項目組織輸入資料(JSON、JSONL、CSV),Potato 期望哪些欄位,以及如何規劃乾淨匯出到訓練流程。

好的標註始於結構良好的輸入。每個條目都需要一個穩定的唯一識別符號以及待標註的內容;其餘一切都是可選的上下文。 一開始就把這件事做對,能省去日後痛苦的返工,因為標註是按你的條目 ID 來關聯的。

常見的交換格式有 JSONJSON Lines(每行一個物件,適合大型資料集)和 CSV。Potato 三者都能讀取。完整參考請見資料格式

每個條目至少需要什麼

  • 一個永不變更的唯一 ID。標註是按這個 ID 儲存的,所以如果你在項目進行中重新編號,就會丟失與現有標籤的關聯。
  • 待標註的內容:一個文本欄位、一個圖片 URL、一段音訊路徑,或一條結構化的軌跡。

一個文本任務的 JSONL 檔案看起來是這樣:

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

你需要告訴 Potato 使用哪些鍵:

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

攜帶上下文,但要與標籤分開

額外的欄位,比如來源 URL、時間戳、模型名稱,可以隨每個條目一同傳入並展示給標註者,而不會成為標籤本身。給它們取清晰的名字,這樣日後閱讀匯出結果會更輕鬆。

在標註之前先規劃匯出

儘早決定標註好的資料將如何接入你的流程。Potato 可匯出為 JSON、JSONL 和 CSV,也可匯出為 ML 原生格式,例如用於序列標註的 CoNLL、Hugging Face Datasets,以及用於視覺任務的 COCO/YOLO。預先確定目標格式,能讓你知道現在該使用哪些欄位和哪種 ID 方案。參見為機器學習匯出標註

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

延伸閱讀