Skip to content

アノテーション用のデータ形式を設計する

アノテーションプロジェクトの入力データ(JSON、JSONL、CSV)の構成方法、Potato が期待するフィールド、そして学習パイプラインへきれいにエクスポートするための計画の立て方を解説します。

良いアノテーションは、よく構造化された入力から始まります。各項目には変わらない一意の識別子とラベル付けの対象となる内容が必要で、それ以外はすべて任意の文脈情報です。 最初にここを正しく整えておくと、あとで苦しいやり直しを避けられます。アノテーションは項目 ID に紐づけて保存されるからです。

よく使われる交換形式は JSONJSON Lines(1 行に 1 オブジェクト、大規模データセットに最適)、そして CSV です。Potato はこの 3 つすべてを読み込めます。完全なリファレンスはデータ形式を参照してください。

各項目に最低限必要なもの

  • 決して変わらない一意の 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 に加えて、系列ラベリング用の CoNLL、Hugging Face Datasets、spaCy、ビジョン用の COCO/YOLO といった ML ネイティブ形式にもエクスポートできます。出力先の形式を先に決めておくと、いま使うべきフィールドと ID 方式が分かります。機械学習向けにアノテーションをエクスポートするを参照してください。

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

さらに読む