マルチフェーズワークフロー
調査、トレーニング、分岐ロジックを含む複雑なアノテーションワークフローの構築。
マルチフェーズワークフロー
Potato 2.0は、同意、事前調査、指示、トレーニング、アノテーション、事後フィードバックを含む複数の連続フェーズによる構造化されたアノテーションワークフローをサポートしています。
利用可能なフェーズ
| フェーズ | 説明 |
|---|---|
consent | インフォームドコンセントの収集 |
prestudy | アノテーション前の調査(人口統計、スクリーニング) |
instructions | タスクのガイドラインと情報 |
training | フィードバック付きの練習問題 |
annotation | メインアノテーションタスク(常に必須) |
poststudy | アノテーション後の調査とフィードバック |
基本設定
設定のphasesセクションを使用します:
phases:
consent:
enabled: true
data_file: "data/consent.json"
prestudy:
enabled: true
data_file: "data/demographics.json"
instructions:
enabled: true
content: "data/instructions.html"
training:
enabled: true
data_file: "data/training.json"
schema_name: sentiment
passing_criteria:
min_correct: 8
# annotation phase is always enabled
poststudy:
enabled: true
data_file: "data/feedback.json"調査の質問タイプ
調査フェーズは以下の質問タイプをサポートしています:
ラジオ(単一選択)
{
"name": "experience",
"type": "radio",
"description": "How much annotation experience do you have?",
"labels": ["None", "Some (< 10 hours)", "Moderate", "Extensive"],
"required": true
}チェックボックス/マルチセレクト
{
"name": "languages",
"type": "checkbox",
"description": "What languages do you speak fluently?",
"labels": ["English", "Spanish", "French", "German", "Chinese", "Other"]
}テキスト入力
{
"name": "occupation",
"type": "text",
"description": "What is your occupation?",
"required": true
}数値入力
{
"name": "years_experience",
"type": "number",
"description": "Years of professional experience",
"min": 0,
"max": 50
}リッカート尺度
{
"name": "familiarity",
"type": "likert",
"description": "How familiar are you with this topic?",
"size": 5,
"min_label": "Not familiar",
"max_label": "Very familiar"
}ドロップダウン選択
{
"name": "country",
"type": "select",
"description": "Select your country",
"labels": ["USA", "Canada", "UK", "Germany", "France", "Other"]
}同意フェーズ
開始前にインフォームドコンセントを収集します:
phases:
consent:
enabled: true
data_file: "data/consent.json"consent.json:
[
{
"name": "consent_agreement",
"type": "radio",
"description": "I have read and understood the research consent form and agree to participate.",
"labels": ["I agree", "I do not agree"],
"right_label": "I agree",
"required": true
}
]right_labelフィールドは、進行するために必要な回答を指定します。
事前調査
人口統計またはスクリーニング質問を収集します:
phases:
prestudy:
enabled: true
data_file: "data/demographics.json"demographics.json:
[
{
"name": "age_range",
"type": "radio",
"description": "What is your age range?",
"labels": ["18-24", "25-34", "35-44", "45-54", "55+"],
"required": true
},
{
"name": "education",
"type": "radio",
"description": "Highest level of education completed",
"labels": ["High school", "Bachelor's degree", "Master's degree", "Doctoral degree", "Other"],
"required": true
},
{
"name": "english_native",
"type": "radio",
"description": "Is English your native language?",
"labels": ["Yes", "No"],
"required": true
}
]指示フェーズ
タスクの指示を表示します:
phases:
instructions:
enabled: true
content: "data/instructions.html"またはインラインコンテンツを使用します:
phases:
instructions:
enabled: true
inline_content: |
<h2>Task Instructions</h2>
<p>In this task, you will classify the sentiment of product reviews.</p>
<ul>
<li><strong>Positive:</strong> Expresses satisfaction or praise</li>
<li><strong>Negative:</strong> Expresses dissatisfaction or criticism</li>
<li><strong>Neutral:</strong> Factual or mixed sentiment</li>
</ul>トレーニングフェーズ
フィードバック付きの練習問題(詳細はトレーニングフェーズを参照):
phases:
training:
enabled: true
data_file: "data/training.json"
schema_name: sentiment
passing_criteria:
min_correct: 8
total_questions: 10
show_explanations: true事後調査
アノテーション後にフィードバックを収集します:
phases:
poststudy:
enabled: true
data_file: "data/feedback.json"feedback.json:
[
{
"name": "difficulty",
"type": "likert",
"description": "How difficult was this task?",
"size": 5,
"min_label": "Very easy",
"max_label": "Very difficult"
},
{
"name": "clarity",
"type": "likert",
"description": "How clear were the instructions?",
"size": 5,
"min_label": "Very unclear",
"max_label": "Very clear"
},
{
"name": "suggestions",
"type": "text",
"description": "Any suggestions for improvement?",
"textarea": true,
"required": false
}
]組み込みテンプレート
Potatoには一般的な調査質問用の定義済みラベルセットが含まれています:
| テンプレート | ラベル |
|---|---|
countries | 国のリスト |
languages | 一般的な言語 |
ethnicity | 民族オプション |
religion | 宗教オプション |
質問でテンプレートを使用します:
{
"name": "country",
"type": "select",
"description": "Select your country",
"template": "countries"
}自由回答フィールド
構造化された質問とともにオプションのテキスト入力を追加します:
{
"name": "topics",
"type": "checkbox",
"description": "Which topics interest you?",
"labels": ["Technology", "Sports", "Politics", "Entertainment"],
"free_response": true,
"free_response_label": "Other (please specify)"
}ページヘッダー
調査セクションのヘッダーをカスタマイズします:
{
"page_header": "Demographics Survey",
"questions": [
{"name": "age", "type": "radio", ...},
{"name": "gender", "type": "radio", ...}
]
}完全な例
task_name: "Sentiment Analysis Study"
task_dir: "."
port: 8000
# Data configuration
data_files:
- "data/reviews.json"
item_properties:
id_key: id
text_key: text
# Annotation scheme
annotation_schemes:
- annotation_type: radio
name: sentiment
description: "What is the sentiment of this review?"
labels:
- Positive
- Negative
- Neutral
sequential_key_binding: true
# Multi-phase workflow
phases:
consent:
enabled: true
data_file: "data/consent.json"
prestudy:
enabled: true
data_file: "data/demographics.json"
instructions:
enabled: true
content: "data/instructions.html"
training:
enabled: true
data_file: "data/training.json"
schema_name: sentiment
passing_criteria:
min_correct: 8
total_questions: 10
retries:
enabled: true
max_retries: 2
show_explanations: true
# annotation phase is always enabled
poststudy:
enabled: true
data_file: "data/feedback.json"
# Output
output_annotation_dir: "output/"
output_annotation_format: "json"
# User access
allow_all_users: trueレガシー設定
古いsurveyflow設定形式も後方互換性のために引き続きサポートされています:
surveyflow:
enabled: true
phases:
- name: pre_survey
type: survey
questions: survey_questions.json
- name: main_annotation
type: annotationただし、新しいプロジェクトでは新しいphases形式への移行を推奨します。
ベストプラクティス
1. 調査は簡潔に
長い調査は完了率を下げます。必須の質問のみに絞りましょう。
2. 複雑なタスクにはトレーニングを使用
トレーニングフェーズはアノテーション品質を向上させます。特にニュアンスのあるタスクに効果的です。
3. 合理的な合格基準を設定
# Too strict - may exclude good annotators
passing_criteria:
require_all_correct: true
# Better - allows for learning
passing_criteria:
min_correct: 8
total_questions: 104. 明確な指示を提供
指示フェーズに例を含めて期待を明確にしましょう。
5. フルフローをテスト
デプロイ前にワークフロー全体を自分で完了して問題を発見しましょう。
6. 必須フィールドは賢く使用
本当に必要な質問のみを必須にしましょう - オプションの質問のほうが回答の質が高くなります。
クラウドソーシング統合
ProlificまたはMTurk向けに完了コードを設定します:
phases:
poststudy:
enabled: true
data_file: "data/feedback.json"
show_completion_code: true
completion_code_format: "POTATO-{user_id}-{timestamp}"詳細はクラウドソーシングを参照してください。