Anotação de Diálogo
Anote conversas no Potato com avaliações por turno, rótulos de segmento e exibição personalizada. Suporta diálogos com vários falantes, transcrições de chat e respostas encadeadas.
O Potato suporta a anotação de dados com vários itens, em que cada instância contém uma lista de elementos de texto. Isso é comumente usado para:
- Anotação de diálogo: conversas com vários turnos
- Comparação par a par: comparação de duas ou mais variantes de texto
- Tarefas com múltiplos documentos: avaliação ou rotulagem de vários textos relacionados
Formato dos Dados
Dados de Entrada
Dados com vários itens são representados como uma lista de strings no 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 string na lista representa um item (por exemplo, um turno de diálogo, uma variante de documento).
Configuração
Configuração 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
- negativeOpções de Exibição
A configuração list_as_text controla como os itens da lista são exibidos:
list_as_text:
text_list_prefix_type: alphabet # Prefix type for items
horizontal: false # Layout direction
alternating_shading: false # Shade alternate turnsTipos de Prefixo
| Opção | Exemplo | Melhor Para |
|---|---|---|
alphabet | A. B. C. | Comparações par a par, opções |
number | 1. 2. 3. | Turnos sequenciais, listas ordenadas |
bullet | . . . | Itens não ordenados |
none | (sem prefixo) | Diálogo com nomes de falantes no texto |
Opções de Layout
| Opção | Descrição |
|---|---|
horizontal: false | Layout vertical (padrão) - itens empilhados |
horizontal: true | Layout lado a lado - para comparação par a par |
alternating_shading: true | Sombreia turnos alternados no diálogo |
Exemplos de Configuração
Anotação de Diálogo
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: trueComparação Par a Par de Textos
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
- EqualExemplo Prático
Um exemplo completo e funcional está disponível em project-hub/dialogue_analysis/:
python potato/flask_server.py start project-hub/dialogue_analysis/configs/dialogue-analysis.yaml -p 8000Formato dos dados de exemplo:
{"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!"]}Dicas
-
Nomes dos Falantes: inclua os nomes dos falantes no texto (por exemplo, "Tom: Olá") ao usar
text_list_prefix_type: nonepara diálogos -
Anotação de Segmentos: ao usar anotação de segmentos com dados de diálogo, os anotadores podem destacar texto dentro de qualquer um dos turnos exibidos
-
Escolha do Prefixo:
- Use
nonepara diálogos em que os nomes dos falantes estão embutidos no texto - Use
numberquando a ordem da sequência importa - Use
alphabetpara tarefas de comparação par a par
- Use
-
Legibilidade: ative
alternating_shadingem diálogos longos para ajudar os anotadores a acompanhar qual turno estão lendo -
Tarefas de Comparação: use
horizontal: truecom prefixosalphabetpara comparação lado a lado
Leitura Complementar
- Comparação Par a Par - Anotação de comparação lado a lado
- Anotação de Segmentos - Destaque de texto em turnos de diálogo
- Radio e Multiselect - Classificação de conversas
Para detalhes de implementação, consulte a documentação de origem.