Skip to content
このページはまだお使いの言語に翻訳されていません。英語版を表示しています。

Annotazione di dialoghi

Annota conversazioni e testi multi-elemento con opzioni di visualizzazione speciali.

Annotazione di dialoghi e liste

Potato supporta l'annotazione di dati multi-elemento in cui ogni istanza contiene un elenco di elementi testuali. Questo è comunemente usato per:

  • Annotazione di dialoghi: Conversazioni con più turni
  • Confronto a coppie: Confronto di due o più varianti testuali
  • Compiti multi-documento: Valutazione o etichettatura di più testi correlati

Formato dei dati

Dati di input

I dati multi-elemento sono rappresentati come un elenco di stringhe nel campo text:

json
{"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!"]}

Ogni stringa nell'elenco rappresenta un elemento (ad es., un turno di dialogo, una variante di documento).

Configurazione

Configurazione di base

yaml
# 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
      - negative

Opzioni di visualizzazione

La configurazione list_as_text controlla come vengono visualizzati gli elementi dell'elenco:

yaml
list_as_text:
  text_list_prefix_type: alphabet  # Prefix type for items
  horizontal: false                # Layout direction
  alternating_shading: false       # Shade alternate turns

Tipi di prefisso

OpzioneEsempioIdeale per
alphabetA. B. C.Confronti a coppie, opzioni
number1. 2. 3.Turni sequenziali, liste ordinate
bullet. . .Elementi non ordinati
none(nessun prefisso)Dialogo con nomi degli oratori nel testo

Opzioni di layout

OpzioneDescrizione
horizontal: falseLayout verticale (predefinito) - elementi impilati
horizontal: trueLayout affiancato - per confronto a coppie
alternating_shading: trueOmbreggia ogni altro turno per i dialoghi

Configurazioni di esempio

Annotazione di dialoghi

yaml
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: true

Confronto di testi a coppie

yaml
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
      - Equal

Esempio funzionante

Un esempio funzionante completo è disponibile in project-hub/dialogue_analysis/:

bash
python potato/flask_server.py start project-hub/dialogue_analysis/configs/dialogue-analysis.yaml -p 8000

Formato dei dati di esempio:

json
{"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!"]}

Suggerimenti

  1. Nomi degli oratori: Includi i nomi degli oratori nel testo (ad es., "Tom: Ciao") quando usi text_list_prefix_type: none per i dialoghi

  2. Annotazione span: Quando si usa l'annotazione span con dati di dialogo, gli annotatori possono evidenziare testo all'interno di qualsiasi turno visualizzato

  3. Scelta del prefisso:

    • Usa none per i dialoghi in cui i nomi degli oratori sono incorporati nel testo
    • Usa number quando l'ordine sequenziale è importante
    • Usa alphabet per compiti di confronto a coppie
  4. Leggibilità: Abilita alternating_shading per dialoghi lunghi per aiutare gli annotatori a seguire il turno che stanno leggendo

  5. Compiti di confronto: Usa horizontal: true con prefissi alphabet per confronti affiancati

Ulteriori letture

Per i dettagli di implementazione, consulta la documentazione sorgente.