• Non ci sono risultati.

Annotazione pragmati..>

N/A
N/A
Protected

Academic year: 2021

Condividi "Annotazione pragmati..>"

Copied!
10
0
0

Testo completo

(1)

API: ANNOTAZIONE DEL LIVELLO

PRAGMATICO

UNA SPERIMENTAZIONE

GIACOMO FERRARI

UNIVERSITA' DEL PIEMONTE ORIENTALE

DIPARTIMENTO DI STUDI UMANISTICI

(2)

1. Raccordo con la precedente sperimentazione

Nel corso del progetto AVIP è stata condotta, a titolo di sperimentazione, l'annotazione di

tre dialoghi ai livelli seguenti

Napoli C01

ann. DialActs MapTask

ann.DialActs DAMSL

Napoli B02

ann. DialActs MapTask

Pisa C03

DialActs MapTask

ann.coreferenza

ann. Parte del discorso

L'annotazione è stata condotta totalmente a mano, inclusa la fase d'identificazione e

numerazione delle parole del testo. Inoltre, nel dialogo Pisa_C03, le tre annotazioni concorrenti

sono state riportate tutte su uno stesso file e i tags sono stati posti nella loro collocazione fisica

corretta, eccetto alcune indicazioni di coreferenza. Questo porta ad una leggibilità immediata del

file annotato, in quanto le uità linguistiche annotate risultato delimitate fisicamente dai tags stessi.

2. Procedura di annotazione semiautomatica

La necessità di annotare una quantità estesa di dati impone la ricerca di metodologie il più possibile

automatiche. In mancanza di un sistema a ciclo completo, si è proceduto con un metodo ibrido. Il

ciclo ideale si configura come segue:

POS-tagging

procedure (semi)automatiche

tokenizzazione

annotazione

procedura manuale

dialogica

Il parallelismo delle operazioni induce a superare la linearità del file unico, a favore di una struttura

più vicina alla filosofia dell'XML, il linguaggio di mark-up, di file multipli, stratificati e riferiti ad

un file unico che fa da base, il file tokenizzato, come segue:

file tokenizzato

href

href

POS-tags

dialogue

moves/games..

3. La tokenizzazione

La tokenizzazione è un'operazione meccanica di isolamento delle unità base del testo e numerazione

progressiva delle stesse. In forma banale, si può dire che tokenizzare significa isolare ciascuna

parola del testo e darle un numero progressivo del tipo <word id="w_00n"> parola </word>.

(3)

A parte l'ovvia disputa su che cosa si intende per parola o unità lessicale, il processo di

tokenzzazione richiede una preliminare "ripulitura" del file originario di trascrizione.

Esemplifichiamo quello che si intende. Il file di trascrizione si presenta come segue:

ING: Alessia, età 23, sesso F, luogo di nascita Pisa INF: Andrea, età 23, sesso M, luogo di nascita Pisa LOC: Pisa, SNS, 15/4/99

DUR: 7 min. 40 sec.

CON: le condizioni della registrazione sono buone

CMT: il dialogo scorre velocemente sia perché i due informatori sembrano affiatati, sia perché soprattutto G si comporta come se stesse facendo una sorta di gara e dovesse portare F all'arrivo il più velocemente possibile

G001: #[ridendo] vai , #<F002> Sae##

"Sae" dovrebbe essere l'abbreviazione del cognome di F

F002: #<G001> allora# senti , per arrivare<ee> alla valle limpida G003: <mh> #<F004> okay#

F004: #<G003> la strada# che devo fare

G005: <mh> , allora <inspirazione> parti<ii> <f.vocale> ce l'hai il colibrì , no?

F006: sì

G007: <mh> , allora , da lì<ii> F008: <mh>

G009: <inspirazione> vai un pochino<oo> in su<uu>

Esso riporta il dialogo effettivo e tutte le annotazioni del trascrittore, tra cui l'indicazione del turno

(G00n, F00n), i commenti, le indicazioni di articolazione, i vocoidi ecc. L'operazione di

tokenizzazione dovrebbe essere predisposta per distingue tutti i tipi diversi di indicazione, ad

esempio, isolando ed escludendo dalla numerazione il commento introduttivo, assegnando uno

statuto speciale all'indicazione di turno (es.: <turn id="G001"…) e isolando i commenti. Vi è infine

il problema di evidenziare le sovrapposizioni, indicando esattamente quali parole di un turno si

sovrappongono con quali del turno precedente e successivo. Per ottenere questo genere di

tokenizzazione occorre un programma specifico che sappia riconoscere i simboli usati dai

trascrittori per ogni specifico caso. Un file così ripulito può essere annotato anche con il sistema dei

tags compresenti (vedi AVIP), anche se sincronizzare le operazioni automatiche e quelle manuali

non è semplice.

4. Procedura effettiva

4.1. Tokenizzazione

L'unità di Vercelli ha ricevuto dall'Università di Venezia i file parzialmente ripuliti e tokenizzati

automaticamente con un programma di tipo generale. Per cui il brano sopra riportato prende la

forma:

<orthotranscription id="a03_p"> <turn id="G001">

<w id=" w_13279 " case="cap"> G001 </w> <w id=" w_13280 " case="cap"> Vai </w> <w id=" w_13281 " case="punt"> , </w> <w id=" w_13282 " case="punt"> { </w> <w id=" w_13283 " case="low"> allora </w> <w id=" w_13284 " case="low"> senti </w> <w id=" w_13285 " case="punt"> } </w> <w id=" w_13286 " case="cap"> Sae </w> <w id=" w_13287 " case="punt"> '.' </w> </turn>

<turn id="F002">

(4)

<w id=" w_13289 " case="cap"> Per </w> <w id=" w_13290 " case="low"> arivare </w> <w id=" w_13291 " case="low"> alla </w> <w id=" w_13292 " case="low"> valle </w> <w id=" w_13293 " case="low"> limpida </w> <w id=" w_13294 " case="punt"> '.' </w> </turn> <turn id="G003"> <w id=" w_13295 " case="cap"> G003 </w> <w id=" w_13296 " case="cap"> Mh </w> <w id=" w_13297 " case="punt"> , </w> <w id=" w_13298 " case="punt"> { </w> <w id=" w_13299 " case="low"> la </w> <w id=" w_13300 " case="low"> strada </w> <w id=" w_13301 " case="punt"> } </w> <w id=" w_13302 " case="low"> okay </w> <w id=" w_13303 " case="punt"> '.' </w> </turn>

<turn id="F004">

<w id=" w_13304 " case="cap"> F004 </w> <w id=" w_13305 " case="cap"> Che </w> <w id=" w_13306 " case="low"> devo </w> <w id=" w_13307 " case="low"> fare </w> <w id=" w_13308 " case="punt"> '.' </w> </turn> <turn id="G005"> <w id=" w_13309 " case="cap"> G005 </w> <w id=" w_13310 " case="cap"> Mh </w> <w id=" w_13311 " case="punt"> , </w> <w id=" w_13312 " case="low"> allora </w> <w id=" w_13313 " case="punt"> , </w> <w id=" w_13314 " case="low"> parti </w> <w id=" w_13315 " case="punt"> , </w> <w id=" w_13316 " case="low"> ce </w> <w id=" w_13317 " case="low"> l </w> <w id=" w_13318 " case="low"> hai </w> <w id=" w_13319 " case="low"> il </w> <w id=" w_13320 " case="low"> colibri </w> <w id=" w_13321 " case="punt"> , </w> <w id=" w_13322 " case="low"> no </w> <w id=" w_13323 " case="punt"> ? </w> </turn> <turn id="F006"> <w id=" w_13324 " case="cap"> F006 </w> <w id=" w_13325 " case="cap"> Si </w> <w id=" w_13326 " case="punt"> '.' </w> </turn> <turn id="G007"> <w id=" w_13327 " case="cap"> G007 </w> <w id=" w_13328 " case="cap"> Mh </w> <w id=" w_13329 " case="punt"> , </w> <w id=" w_13330 " case="low"> allora </w> <w id=" w_13331 " case="punt"> , </w> <w id=" w_13332 " case="low"> da </w> <w id=" w_13333 " case="low"> li </w> <w id=" w_13334 " case="punt"> ... </w> </turn>

(5)

<turn id="F008"> <w id=" w_13335 " case="cap"> F008 </w> <w id=" w_13336 " case="cap"> Mh </w> <w id=" w_13337 " case="punt"> '.' </w> </turn> <turn id="G009"> <w id=" w_13338 " case="cap"> G009 </w> <w id=" w_13339 " case="cap"> Vai </w> <w id=" w_13340 " case="low"> un </w> <w id=" w_13341 " case="low"> pochino </w> <w id=" w_13342 " case="low"> in </w> <w id=" w_13343 " case="low"> su </w> <w id=" w_13344 " case="punt"> '.' </w> </turn>

I caratteri salienti di questa tokenizzazione sono:

- i contatori di turno (G00n, F00m) sono trattati come parole

- i segni d'interpunzione, che nell'annotazione API erano stati soppressi, vengono contati come

parole ed evidenziati come case="punt"

- i commenti sono stati soppressi

- le sovrapposizioni sono risolte sovrapponendo fisicamente i segmenti, al caso usando le parentesi

per segnalare le inclusioni.

4.2. Informazioni automatizzate

Su questo file l'Università di Venezia ha prodotto un'annotazione automatica, come segue:

<mword_file id="api.a03_p">

<mw id="mw_0" pos="I" sfeats="turn" href="a03_p.xml#id(w_13279)"> G001</mw> <mw id="mw_1" pos="V" mfeats="KL2s" lemma="andare" sfeats="vin" sems="intr" href="a03_p.xml#id(w_13280)"> Vai</mw>

<mw id="mw_2" pos="PU" sfeats="punt" href="a03_p.xml#id(w_13281)"> ,</mw> <mw id="mw_3" pos="PU" sfeats="par" href="a03_p.xml#id(w_13282)"> <</mw> <mw id="mw_4" pos="C" mfeats="NN" lemma="allora" sfeats="congf" sems="sum" href="a03_p.xml#id(w_13283)"> allora</mw>

<mw id="mw_5" pos="V" mfeats="KL2s" lemma="sentire" sfeats="vin" sems="intr" href="a03_p.xml#id(w_13284)"> senti</mw>

<mw id="mw_6" pos="PU" sfeats="par" href="a03_p.xml#id(w_13285)"> ></mw> <mw id="mw_7" pos="N" mfeats="ms" lemma="Saè" sfeats="nh" sems="hum" href="a03_p.xml#id(w_13286)"> Saè</mw>

<mw id="mw_8" pos="PU" sfeats="punto" href="a03_p.xml#id(w_13287)"> .</mw> <mw id="mw_9" pos="I" sfeats="turn" href="a03_p.xml#id(w_13288)"> F002</mw> <mw id="mw_10" pos="P" sfeats="p" href="a03_p.xml#id(w_13289)"> Per</mw> <mw id="mw_11" pos="V" mfeats="FL" lemma="arrivare" sfeats="viin" sems="intr" href="a03_p.xml#id(w_13290)"> arivare</mw>

<mw id="mw_12" pos="P" mfeats="fs" lemma="a" sfeats="part" sems="def" href="a03_p.xml#id(w_13291)"> alla</mw>

<mw id="mw_13" pos="N" mfeats="fs" lemma="valle" sfeats="n" sems="com" href="a03_p.xml#id(w_13292)"> valle</mw>

<mw id="mw_14" pos="A" mfeats="fs" lemma="limpido" sfeats="ag" href="a03_p.xml#id(w_13293)"> limpida</mw>

<mw id="mw_15" pos="PU" sfeats="punto" href="a03_p.xml#id(w_13294)"> .</mw> <mw id="mw_16" pos="I" sfeats="turn" href="a03_p.xml#id(w_13295)"> G003</mw> <mw id="mw_17" pos="I" mfeats="NN" lemma="mh" sfeats="intj"

href="a03_p.xml#id(w_13296)"> Mh</mw>

<mw id="mw_18" pos="PU" sfeats="punt" href="a03_p.xml#id(w_13297)"> ,</mw> <mw id="mw_19" pos="PU" sfeats="par" href="a03_p.xml#id(w_13298)"> <</mw>

(6)

<mw id="mw_20" pos="D" mfeats="fs" lemma="il" sfeats="art" sems="def" href="a03_p.xml#id(w_13299)"> la</mw>

<mw id="mw_21" pos="N" mfeats="fs" lemma="strada" sfeats="n" sems="com" href="a03_p.xml#id(w_13300)"> strada</mw>

<mw id="mw_22" pos="PU" sfeats="par" href="a03_p.xml#id(w_13301)"> ></mw> <mw id="mw_23" pos="I" mfeats="NN" lemma="okay" sfeats="intj"

href="a03_p.xml#id(w_13302)"> okay</mw>

<mw id="mw_24" pos="PU" sfeats="punto" href="a03_p.xml#id(w_13303)"> .</mw> <mw id="mw_25" pos="I" sfeats="turn" href="a03_p.xml#id(w_13304)"> F004</mw> <mw id="mw_26" pos="W" mfeats="NN" lemma="che" sfeats="rel"

href="a03_p.xml#id(w_13305)"> Che</mw>

<mw id="mw_27" pos="V" mfeats="KL1s" lemma="dovere" sfeats="vsupp" sems="tr" href="a03_p.xml#id(w_13306)"> devo</mw>

<mw id="mw_28" pos="V" mfeats="FL" lemma="fare" sfeats="vit" sems="tr" href="a03_p.xml#id(w_13307)"> fare</mw>

<mw id="mw_29" pos="PU" sfeats="punto" href="a03_p.xml#id(w_13308)"> .</mw> <mw id="mw_30" pos="I" sfeats="turn" href="a03_p.xml#id(w_13309)"> G005</mw> <mw id="mw_31" pos="I" mfeats="NN" lemma="mh" sfeats="intj"

href="a03_p.xml#id(w_13310)"> Mh</mw>

<mw id="mw_32" pos="PU" sfeats="punt" href="a03_p.xml#id(w_13311)"> ,</mw> <mw id="mw_33" pos="C" mfeats="NN" lemma="allora" sfeats="congf" sems="sum" href="a03_p.xml#id(w_13312)"> allora</mw>

<mw id="mw_34" pos="PU" sfeats="punt" href="a03_p.xml#id(w_13313)"> ,</mw> <mw id="mw_35" pos="V" mfeats="ML2s" lemma="partire" sfeats="virin" sems="intr" href="a03_p.xml#id(w_13314)"> parti</mw>

<mw id="mw_36" pos="PU" sfeats="punt" href="a03_p.xml#id(w_13315)"> ,</mw> <mw id="mw_37" pos="E" mfeats="1mfp" lemma="ce" sfeats="clitdat" sems="dat" href="a03_p.xml#id(w_13316)"> ce</mw>

<mw id="mw_38" pos="E" mfeats="3mfs" lemma="l" sfeats="clitac" sems="acc" href="a03_p.xml#id(w_13317)"> l</mw>

<mw id="mw_39" pos="V" mfeats="KL2s" lemma="avere" sfeats="vc" sems="cop" href="a03_p.xml#id(w_13318)"> hai</mw>

<mw id="mw_40" pos="D" mfeats="ms" lemma="il" sfeats="art" sems="def" href="a03_p.xml#id(w_13319)"> il</mw>

<mw id="mw_41" pos="N" mfeats="m" lemma="colibrì" sfeats="n" sems="invar" href="a03_p.xml#id(w_13320)"> colibrì</mw>

<mw id="mw_42" pos="PU" sfeats="punt" href="a03_p.xml#id(w_13321)"> ,</mw> <mw id="mw_43" pos="I" mfeats="NN" lemma="no" sfeats="intj"

href="a03_p.xml#id(w_13322)"> no</mw>

<mw id="mw_44" pos="PU" sfeats="puntint" href="a03_p.xml#id(w_13323)"> ?</mw> <mw id="mw_45" pos="I" sfeats="turn" href="a03_p.xml#id(w_13324)"> F006</mw> <mw id="mw_46" pos="I" mfeats="NN" lemma="sì" sfeats="intj"

href="a03_p.xml#id(w_13325)"> Sì</mw>

<mw id="mw_47" pos="PU" sfeats="punto" href="a03_p.xml#id(w_13326)"> .</mw> <mw id="mw_48" pos="I" sfeats="turn" href="a03_p.xml#id(w_13327)"> G007</mw> <mw id="mw_49" pos="I" mfeats="NN" lemma="mh" sfeats="intj"

href="a03_p.xml#id(w_13328)"> Mh</mw>

<mw id="mw_50" pos="PU" sfeats="punt" href="a03_p.xml#id(w_13329)"> ,</mw> <mw id="mw_51" pos="C" mfeats="NN" lemma="allora" sfeats="congf" sems="sum" href="a03_p.xml#id(w_13330)"> allora</mw>

<mw id="mw_52" pos="PU" sfeats="punt" href="a03_p.xml#id(w_13331)"> ,</mw> <mw id="mw_53" pos="P" sfeats="pd" href="a03_p.xml#id(w_13332)"> da</mw> <mw id="mw_54" pos="B" mfeats="NN" lemma="lì" sfeats="avv" sems="l" href="a03_p.xml#id(w_13333)"> lì</mw>

<mw id="mw_55" pos="PU" sfeats="da_riempire" href="a03_p.xml#id(w_13334)"> ...</mw>

<mw id="mw_56" pos="I" sfeats="turn" href="a03_p.xml#id(w_13335)"> F008</mw> <mw id="mw_57" pos="I" mfeats="NN" lemma="mh" sfeats="intj"

href="a03_p.xml#id(w_13336)"> Mh</mw>

<mw id="mw_58" pos="PU" sfeats="punto" href="a03_p.xml#id(w_13337)"> .</mw> <mw id="mw_59" pos="I" sfeats="turn" href="a03_p.xml#id(w_13338)"> G009</mw> <mw id="mw_60" pos="V" mfeats="KL2s" lemma="andare" sfeats="vin" sems="intr" href="a03_p.xml#id(w_13339)"> Vai</mw>

(7)

<mw id="mw_61" pos="D" mfeats="ms" lemma="un" sfeats="art" sems="ind" href="a03_p.xml#id(w_13340)"> un</mw>

<mw id="mw_62" pos="A" mfeats="ms" lemma="pochino" sfeats="ag" href="a03_p.xml#id(w_13341)"> pochino</mw>

<mw id="mw_63" pos="P" sfeats="p" href="a03_p.xml#id(w_13342)"> in</mw> <mw id="mw_64" pos="P" sfeats="p" href="a03_p.xml#id(w_13343)"> su</mw> <mw id="mw_65" pos="PU" sfeats="punto" href="a03_p.xml#id(w_13344)"> .</mw>

Ai fini dell'annotazione di livello superiore è sufficiente notare che il legame tra le informazioni

espresse in questo file e le parole della trascrizione è mantenuto attraverso la numerazione prodotta

dal tokenizzatore, richiamata da un link "href".

5. Annotazione pragmatica

Nell'ambito del progetto API è stata prodotta un'annotazione pragmatica, secondo lo schema

MapTask, dei seguenti dialoghi, per i seguenti livelli

N. dialogo

moves

games

transactions

turns

a01_n

si

si

si

si

a03_p

si

si

si

si

b02_b

si

si

si

si

b03_p

si

si

si

si

b03_n

si

si

si

si

c01_b

si

si

si

si

c02_b

si

si

si

si

c02_n

si

si

si

si

c03_p

si

si

si

si

c04_n

si

si

si

si

d01_b

si

si

si

si

d01_o

si

si

si

si

d02_b

si

si

si

si

d02_o

si

si

si

si

d02_p

si

si

si

si

L'annotazione è stata prodotta originariamente in forma testuale in Latex (cod_ltx.pdf).

Lo schema annotativo completo di MapTask prevede una gerarchia di tre livelli:

- le moves, che sono quelle già introdotte nel documento AVI

- i games, che sono struture ricorsive, composte di moves, oppure di games o di transactions

i games possono essere:

giver_instruct

giver_explain

follower_explain

giver_check

follower_check

giver_query-yn

follower_query-yn

giver_query-w

follower_query_w

giver_reply-y

giver_reply-,n

follower_reply-y

follower_reply-n

giver_reply-w

(8)

follower_reply-w

giver_align

follower_align

- le transactions, che sono le strutture più alte, anch'esse ricorsivamente formate di games o di altre

transactions. Esse sono

normal

review

irrelevant

L'annotazione, così prodotta e resa ben visibile, è stata poi trasferita ai seguenti dialoghi

N. dialogo

moves

games

transactions

a01_n.

OK

OK

OK

a03_p

OK

OK

OK

b02_b

OK

OK

OK

b03_p

OK

NO

NO

in un formato più coerente con la logica XML e con la tradizione originale del MapTask. Si tratta di

assumere un file come base e agganciare i diversi livelli di analisi pragmatica a questo unico file,

con il link href. Lo schema MapTask è illustrato nella figura seguente

(9)

Nel caso nostro, agganciare i diversi files di annotazione alle unità temporali non è stato

tecnicamente possibile, per cui ci si è riferiti al file "tokenizzato" automaticamente dall'unità di

Venezia, per cui lo schema risulta leggermente cambiato, nel modo seguente

Così il livello di moves, relativamente al dialogo riportato sopra, prende la seguente forma

il livello di games risulta come segue

<game id="g_001" type="follower_query-w" href="a03_p.xml#id(w_13279)...id(w_13307)"/>

<game id="g_002" type="giver_instruct" href="a03_p.xml#id(w_13310)...id(w_13471)"/>

<game id="g_003" type="giver_check" href="a03_p.xml#id(w_13316)...id(w_13325)"/>

<game id="g_004" type="follower_query-yn" href="a03_p.xml#id(w_13352)...id(w_13365)"/>

mentre, il livello transaction è

<transaction id="t_01" type="normal" href="a03_p.xml#id(w_13279)...id(w_13471)"/>

<transaction id="t_02" type="normal" href="a03_p.xml#id(w_13465)...id(w_13512)"/>

(10)

<transaction d="t_03" type="normal" href="a03_p.xml#id(w_13515)...id(w_13545)"/>

Come si vede:

- i segni d'interpunzione finali sono esclusi di fatto, nel senso che tra la fine di una move e l'inizio

della successiva di solito saltano alcuni numeri

- le sovrapposizioni si possono rilevare osservando sovrapposizioni nelle sequenze numeriche, ma

non è rintracciabile il numero esatto e la posizione delle parole pronunciate in sovrapposizione.

6. Valutazione

Al termine di questa esperienza si possono fare le seguenti valutazioni:

- la produzione di un software di tokenizzazione specifico per le trascrizioni di dialoghi è un

elemento fondamentale nella standardizzazione della procedura. L'obiettivo ideale è quello di poter

tenere come "linea guida" la numerazione delle parole, come numerazione sequenziale, senza

interferenza di altri elementi (turni, punteggiatura)

- il file di annotazione è assolutamente illeggibile, per cui è necessario mantenere un file in cui

l'annotazione è leggibile

- senza la presenza di un software capace di mostrare l'annotazione completa usando e collegando

tutti i file disponibili, non si potrà utilizzare il file XML come file di lavoro manuale, in quanto la

sua lettura è troppo malagevole.

Riferimenti

Documenti correlati

Similarities between smuggling and trafficking in situations of migrants being involved as drivers have been explored in the central Mediterranean context, Libya

As a result, cases of exploitation in domestic work may give rise to liabilities under legal provisions that address submission to forced labour, servitude,

On the other hand, the Tyrrhenian Sea basalts define a trend between the em ii component and a mid-ocean ridge basalt (morb)-like component (Fig. 8), consistent with new

 Per leggere dati da un file presente sul disco, Per leggere dati da un file presente sul disco, occorre dapprima costruire un oggetto di tipo occorre dapprima costruire un

• Per il sistema operativo i file vengono memorizzati in un opportuno descrittore, detto File Control Block che.. contiene,

ARCHIVIO.C Il secondo programma deve gestire un archivio di persone che vengono memorizzate in un file INI diviso in due sezioni: nella prima sezione, “Struttura” , c’è un

È da notare il fatto che tra i metadati di un inode non c’è il nome del file, in quanto esso viene memorizzato soltanto all’interno della directory che lo contiene

• Prima di accedere ad un file e` necessario aprirlo : l’operazione di apertura compie le azioni preliminari necessarie affinche` il file possa essere acceduto (in lettura o