Anotación de Diálogos
Anota conversaciones y texto multi-elemento con opciones especiales de visualización.
Anotación de Diálogos y Listas
Potato soporta la anotación de datos multi-elemento donde cada instancia contiene una lista de elementos de texto. Esto se usa comúnmente para:
- Anotación de diálogos: Conversaciones con múltiples turnos
- Comparación por pares: Comparar dos o más variantes de texto
- Tareas multi-documento: Calificar o etiquetar múltiples textos relacionados
Formato de Datos
Datos de Entrada
Los datos multi-elemento se representan como una lista de cadenas en el campo text:
{"id": "conv_001", "text": ["Tom: Isn't this awesome?!", "Sam: Yes! I like you!", "Tom: Great!", "Sam: Awesome! Let's party!"]}
{"id": "conv_002", "text": ["Tom: I am so sorry for that", "Sam: No worries", "Tom: Thanks for your understanding!"]}Cada cadena en la lista representa un elemento (por ejemplo, un turno de diálogo, una variante de documento).
Configuración
Configuración Básica
# Data configuration
data_files:
- data/dialogues.json
item_properties:
id_key: id
text_key: text
# Configure list display
list_as_text:
text_list_prefix_type: none # No prefix since speaker names are in text
alternating_shading: true # Shade every other turn for readability
# Annotation schemes
annotation_schemes:
- annotation_type: radio
name: sentiment
description: "What is the overall sentiment of this conversation?"
labels:
- positive
- neutral
- negativeOpciones de Visualización
La configuración list_as_text controla cómo se muestran los elementos de la lista:
list_as_text:
text_list_prefix_type: alphabet # Prefix type for items
horizontal: false # Layout direction
alternating_shading: false # Shade alternate turnsTipos de Prefijo
| Opción | Ejemplo | Mejor Para |
|---|---|---|
alphabet | A. B. C. | Comparaciones por pares, opciones |
number | 1. 2. 3. | Turnos secuenciales, listas ordenadas |
bullet | . . . | Elementos sin orden |
none | (sin prefijo) | Diálogo con nombres de hablantes en el texto |
Opciones de Diseño
| Opción | Descripción |
|---|---|
horizontal: false | Diseño vertical (predeterminado) - elementos apilados |
horizontal: true | Diseño lado a lado - para comparación por pares |
alternating_shading: true | Sombrea cada otro turno para diálogos |
Configuraciones de Ejemplo
Anotación de Diálogos
annotation_task_name: Dialogue Analysis
data_files:
- data/dialogues.json
item_properties:
id_key: id
text_key: text
list_as_text:
text_list_prefix_type: none
alternating_shading: true
annotation_schemes:
- annotation_type: span
name: certainty
description: Highlight phrases expressing certainty or uncertainty
labels:
- certain
- uncertain
sequential_key_binding: true
- annotation_type: radio
name: sentiment
description: What sentiment does the conversation hold?
labels:
- positive
- neutral
- negative
sequential_key_binding: trueComparación de Textos por Pares
annotation_task_name: Text Comparison
data_files:
- data/pairs.json
item_properties:
id_key: id
text_key: text
list_as_text:
text_list_prefix_type: alphabet
horizontal: true
annotation_schemes:
- annotation_type: radio
name: preference
description: Which text is better?
labels:
- A is better
- B is better
- EqualEjemplo Funcional
Un ejemplo funcional completo está disponible en project-hub/dialogue_analysis/:
python potato/flask_server.py start project-hub/dialogue_analysis/configs/dialogue-analysis.yaml -p 8000Formato de datos de ejemplo:
{"id":"1","text":["Tom: Isn't this awesome?!", "Sam: Yes! I like you!", "Tom: great!", "Sam: Awesome! Let's party!"]}
{"id":"2","text":["Tom: I am so sorry for that", "Sam: No worries", "Tom: thanks for your understanding!"]}Consejos
-
Nombres de Hablantes: Incluye nombres de hablantes en el texto (por ejemplo, "Tom: Hola") cuando uses
text_list_prefix_type: nonepara diálogos -
Anotación de Segmentos: Cuando uses anotación de segmentos con datos de diálogo, los anotadores pueden resaltar texto dentro de cualquiera de los turnos mostrados
-
Elección de Prefijo:
- Usa
nonepara diálogos donde los nombres de hablantes están incrustados en el texto - Usa
numbercuando el orden secuencial importa - Usa
alphabetpara tareas de comparación por pares
- Usa
-
Legibilidad: Habilita
alternating_shadingpara diálogos largos para ayudar a los anotadores a seguir qué turno están leyendo -
Tareas de Comparación: Usa
horizontal: truecon prefijosalphabetpara comparación lado a lado
Lectura Adicional
- Comparación por Pares - Anotación de comparación lado a lado
- Anotación de Segmentos - Resaltado de texto en turnos de diálogo
- Radio y Multiselect - Clasificación de conversaciones
Para detalles de implementación, consulta la documentación fuente.