Integrazione tra TaLTaC2 e TreeTagger
Previous Top Next

TreeTagger è uno strumento che permette di annotare le parole contenute nei testi con la categoria grammaticale ed il lemma appropriati. È stato sviluppato nell’ambito del TC project all’Institute for Computational Linguistics of the University of Stuttgart.

Consente, di fatto, di lemmatizzare testi scritti in francese, inglese, tedesco, italiano, spagnolo bulgaro, russo, greco e portoghese mediante l’utilizzo di opportuni file di parametrizzazione. È inoltre disponibile per i tre principali sistemi operativi Windows, Linux e Mac.

È possibile scaricare i file di installazione dal sito internet:

http://www.ims.uni-stuttgart.de/projekte/corplex/TreeTagger/

in cui sono riportate anche le dovute istruzioni e altri materiali.

ATTENZIONE: alcuni file, in particolari i file dei parametri per le diverse lingue, sono forniti nel formato compresso .gz che non è gestito dal classico WinZip né dall'utility di gestione dei file compressi posseduta nativamente da Windows XP. Si consiglia di utilizzare un altro programma (ad esempio WinRar o Stuff It) per estrarre il contenuto di questi file.

Sono inoltre disponibili servizi web gratuiti che ne permettono l’utilizzo online. Ad esempio, il sito http://cental.fltr.ucl.ac.be/~pat/tagger/ mette a disposizione una pagina tramite la quale inviare un file da analizzare (max 2MB) e ricevere via e-mail il risultato dell’elaborazione di TreeTagger praticamente in tempo reale. Il servizio copre l’italiano, l’inglese, il francese ed il tedesco. Il file da inviare deve prç essere preventivamente convertito in formato .txt per UNIX (a questo scopo si può utilizzare un editor di testo come WinMerge o UltraEdit32).

Dato un corpus avente il seguente formato:

****1 *Data=11/12/1993 *Luogo=ITALIA, Nord *Tipo=dossier endrowvar

++++Titolo

Il colloquio, durato 4 ORE, ha riguardato anche le accuse lanciate da Craxi alle coop rosse. Faccia a faccia Occhetto-Di Pietro. Botteghe Oscure precisa: ascoltato in qualità di teste. Il pm Colombo: la procura aveva intenzione di sentirlo.

++++Corpo

Milano. Achille Occhetto, segretario del pds, un record è riuscito senz'altro a stabilirlo: è stato l'unico ad ottenere, in quasi dueanni di inchiesta, che il suo incontro con i magistrati milanesi restasse davvero segreto. Non era mai successo prima: poteva capitare che i cronisti apprendessero di un interrogatorio importante quando era già cominciato ma mai, veramente mai, a cose già finite. Ieri,invece, è successo: Occhetto è rimasto qualche ora nella casermadella Guardia di Finanza in via Filzi, a Milano; si è incontrato coni pubblici ministeri Antonio Di Pietro e Gherardo Colombo; ha parlato di molte cose, compresi gli incontri con Raul Gardini; è ripartito per Roma. La notizia è arrivata mentre era già in volo. Il recorddella riservatezza per quello che Occhetto definisce un  ncontro molto cordiale, utile e positivo .

TreeTagger restituisce un file con la seguente struttura:

****1                         NOM                ****1
*Data=11/12/1993     NOM                *Data=11/12/1993
*Luogo=ITALIA         ADJ                  *Luogo=ITALIA
,                               PON                 ,
Nord                        ADJ                  nord
*Tipo=dossier           NOM                *Tipo=dossier
endrowvar                NOM                endrowvar
++++Titolo                NOCAT            ++++Titolo
Il                              DET:def            il
colloquio                   NOM                colloquio
,                               PON                 ,
durato                      VER:pper          durare
4                              NUM                 @card@
ORE                        NOM                ora
,                               PON                 ,
ha                            VER:pres          avere
riguardato                 VER:pper          riguardare
anche                       ADJ                  anche
le                             DET:def            il
accuse                     NOM                accusa
lanciate                    VER:pper          lanciare
da                            PRE                 da
Craxi                        NPR                 Craxi
alle                          PRE:det            al
coop                        NOM                coop
rosse                       ADJ                  rosso
.                               SENT               .
Faccia                      NOM                faccia
a                              PRE                 a
faccia                       NOM                faccia
Occhetto-Di              ADJ                  Occhetto-Di
Pietro                       NPR                 Pietro
.                               SENT               .
Botteghe                  NOM                bottega
Oscure                     ADJ                  oscuro
precisa                     VER:pres          precisare
:                               PON                 :
ascoltato                  VER:pper          ascoltare
in                             PRE                 in
qualità                      NOM                qualità     
di                             PRE                 di
teste                        NOM                testa|teste
.                               SENT               .
Il                              DET:def            il
pm                           ABR                 pm
Colombo                  NOM                colombo
:                               PON                 :
la                             DET:def            il
procura                    NOM                procura
aveva                       VER:impf          avere
intenzione                NOM                intenzione
di                             PRE                 di
sentirlo                     VER:pper          sentire

Come si nota, il testo viene riscritto verticalmente, e ad ogni parola vengono attribuiti, separati mediante tabulatori, la categoria grammaticale ed il lemma di pertinenza.

TaLTaC2 è in grado di leggere un file fornito da TreeTagger ed acquisire le informazioni riguardanti categoria grammaticale e lemma. Inoltre, interrogando il proprio database di tagging grammaticale, TaLTaC2 riesce ad attribuire l’imprinting alle varie forme, completando così il profilo degli attributi grammaticali (questo solo per testi in lingua italiana).

TaLTaC2 è anche in grado di mantenere l'eventuale struttura di frammenti e sezioni in cui il corpus originario era stato suddiviso, a patto che siano rispettate le seguenti condizioni sintattiche:

·         la riga di identificazione del frammento deve terminare con l'etichetta endrowvar (è presente un'apposita opzione nelle funzioni ricostruzione del corpus ed estrazione del subcorpus che consentono di aggiungerla automaticamente);

·         l'etichetta della sezione deve essere composta da una sola parola, senza spazi o punteggiatura, neanche tra i quattro + e l'etichetta vera e propria (ad es.: ++++paragrafouno, oppure ++++paragrafo1, e non ++++ paragrafouno o ++++paragrafo uno).

Al momento della definizione del corpus, è necessario indicare al software che il corpus in analisi è il risultato di un’elaborazione operata con TreeTagger spuntando l’opzione “File proveniente da TreeTagger” (opzione prevista solo per i corpus di tipo File singolo o Collezione di file) della maschera Selezione del corpus.

Nell'esempio di corpus precedente si possono notare le righe di identificazione del frammento

Nel caso in cui il file sottoposto a TreeTagger fosse già nel formato TaLTaC2 (ovvero presenta le righe di identificazione dei frammenti e eventualmente quelle di sezione), benché TreeTagger non riesca a riconoscere questa particolare sintassi

Sotto questo regime di funzionamento nascono comunque una serie di implicazioni, in particolare:

·         Non è possibile scegliere i separatori. Le forme grafiche vengono individuate da TreeTagger secondo la propria logica di funzionamento, peraltro buona, e TaLTaC2 , nel momento in cui legge il corpus, non può più “permettersi” di rimetterle in discussione senza perdere le informazioni acquisite mediante l’uso di TreeTagger.

·         Una medesima forma grafica può presentarsi più volte nel vocabolario (ad es. <governi> può presentarsi come voce verbale del lemma <governare> o come flessione del sostantivo <governo>).

Limitazioni

L’attuale release di TaLTaC2 sotto il “regime” TreeTagger deve considerarsi una versione beta. Alcune procedure, infatti, possono generare risultati falsi o parziali: le procedure per il calcolo della matrice FormexTesti, del TFIDF e delle Cooccorrenze danno infatti risultati esatti solo se il criterio di selezione delle forme su cui eseguire le operazione si basa su una soglia di occorrenze; al contrario, utilizzando una lista, i risultati potrebbero non essere corretti. Anche l'analisi delle specificità non è ancora stata approntata per gestire la presenza di forme omografe nel vocabolario. Altre funzioni sono invece disabilitate (Tagging grammaticale, Normalizzazione) perché inutili o non pertinenti sotto questa logica.

Tutte queste limitazioni verranno superate quanto prima dallo sviluppo del programma. Le informazioni contenute in questa pagina della guida devono pertanto ritenersi temporanee e suscettibili di modifiche ed integrazioni nel prossimo futuro.

Procedure consigliate

Per sfruttare al meglio le potenzialità di entrambi i programmi, allo stato attuale si consiglia di seguire una delle due procedure seguenti.

Procedura 1

·         prima ancora di elaborare il corpus originale con TreeTagger, acquisirlo in TaLTaC2 in modalità “standard” (ovvero senza spuntare l'opzione "File proveniente da TreeTagger" della maschera Selezione del corpus) al fine di operare alcune trasformazioni utili a far funzionare per il meglio TreeTagger stesso. L'origine del corpus può essere una qualsiasi delle tre previste da TaLTaC2 (file singolo, collezione di file, file strutturato in campi).

·         Operare una Normalizzazione per trasformare gli apostrofi in accenti, lessicalizzare, se lo si desidera, poliformi e/o locuzioni grammaticali e/o nomi propri di vario tipo (toponimi celebrità ecc.) e ridurre le maiuscole.

·         Ricostruire il corpus per forme grafiche sostituendo il blank con underscore nelle forme lessicalizzate. Spuntare inoltre l'opzione Scrivi <endrowvar> alla fine della riga delle variabili della finestra Ricostruzione del corpus. Questa opzione è necessaria per far sì che TaLTaC2 riesca a riconoscere correttamente le righe di identificazione dei frammenti in seguito

Così facendo, si otterrà un corpus privo di parole con iniziale maiuscola inutili: TreeTagger è infatti sensibile a tali differenze e considererebbe <La> e <la> come parole differenti. Inoltre le forme lessicalizzate risulteranno “unite” tramite il carattere di underscore (carta_di_credito, presidente_del_consiglio, in_modo_da ecc.) in maniera che TreeTagger non le riscomponga nuovamente. Infine, per le forme categorizzate dalla normalizzazione verrà scritta anche la rispettiva categoria grammaticale.

Adesso sarà possibile sottoporre questo testo, qualitativamente migliore dell'originale, a TreeTagger, ed il risultato di quest'ultimo potrà essere reimportato in TaLTaC2 spuntando l'opzione File proveniente da TreeTagger della finestra Selezione del corpus descritta in precedenza. Le forme precedentemente categorizzate dalla normalizzazione di TaLTaC2 manterranno la categoria grammaticale attribuita in tale fase, indipendentemente da quella attribuita da TreeTagger. Anche l'eventuale struttura di frammentazione del corpus verrà rispettata e quindi riproposta, a patto che all'atto della precedente ricostruzione si sia spuntata l'opzione Scrivi <endrowvar> alla fine della riga delle variabili della finestra Ricostruzione del corpus.

Il risultato della sottoposizione di questo file a TreeTagger dovrà essere quindi reimportato in TaLTaC2 come file singolo spuntando l'opzione File proveniente da TreeTagger della maschera Selezione del corpus.

Procedura 2 (new)

ATTENZIONE: questa procedura funziona correttamente solo per corpus in italiano ed utilizzando, in TreeTagger, il tagset di Marco Baroni.

·         prima ancora di elaborare il corpus originale con TreeTagger, acquisirlo in TaLTaC2 in modalità “standard” (ovvero senza spuntare l'opzione "File proveniente da TreeTagger" della maschera Selezione del corpus) al fine di operare alcune trasformazioni utili a far funzionare per il meglio TreeTagger stesso. L'origine del corpus può essere una qualsiasi delle tre previste da TaLTaC2 (file singolo, collezione di file, file strutturato in campi).

·         Operare una Normalizzazione per trasformare gli apostrofi in accenti, lessicalizzare, se lo si desidera, poliformi e/o locuzioni grammaticali e/o nomi propri di vario tipo (toponimi celebrità ecc.) e ridurre le maiuscole.

·         Passaggio opzionale: operare una lessicalizzazione dei poliformi di interesse.

·         Eseguire un tagging grammaticale.

·         Ricostruire il corpus utilizzando l'opzione Ricostruzione per TreeTagger.

Si otterrà un corpus analogo all'esempio seguente:

graphic

Come si nota, il testo è stato riscritto nel formato di output di TreeTagger: il testo si svolge in verticale e alle forme non ambigue è stata associata la categoria grammaticale corrispondente di TreeTagger (la parola ragazzo è categorizzata con NOUN, e non con la categoria di TaLTaC2 N) ed il lemma. Questo tipo di informazioni "aiutano" TreeTagger nell'attribuire alle forme non categorizzate la corretta categoria grammaticale, minimizzando così il tasso di errore da cui sono affetti in generale i lemmatizzatori.

Inoltre sono state eliminate le iniziali maiuscole inutili: TreeTagger è infatti sensibile a tali differenze e considererebbe <La> e <la> come parole differenti.

Le forme lessicalizzate continueranno ad essere considerate come una unica unità di testo, testimoniata dal fatto che le forme semplici che le compongono risultano sulla medesima riga (si veda il poliforme mesi fa nell'esempio, che peraltro possiede anche la categoria grammaticale poiché è una lessicalizzazione dovuta alla normalizzaione dei poliformi).

In più, seguendo questa procedura, è possibile decidere in libertà i separatori da utilizzare, in quanto vengono imposti dalle scelte effettuate in TaLTaC2, e non si è più vincolati, in questo senso, alle impostazioni predefinite di TreeTagger.

Adesso sarà possibile sottoporre questo testo, qualitativamente migliore dell'originale, a TreeTagger, ed il risultato di quest'ultimo potrà essere reimportato in TaLTaC2, come file singolo, spuntando l'opzione File proveniente da TreeTagger della finestra Selezione del corpus descritta in precedenza.

SUGGERIMENTO: Per elaborare con TreeTagger un file avente il formato appena descritto:

1.        aprire una finestra DOS (menu Start di Windows, cliccare su Esegui, scrivere cmd nella finestrella e premere OK);

2.        scrivere il seguente comando:
C:\TreeTagger\bin\tree-tagger C:\TreeTagger\lib\italian.par -token -lemma -no-unknown -pt-with-lemma "PercorsoNomeEstensioneFileInput" > "PercorsoeNomeEstensioneFileOutput"
tutto sulla medesima riga e comprese le virgolette (all'interno delle virgolette occorre ovviamente inserire gli effettivi nomi dei file, completi di percorso ed estensione);

3.        premere invio/enter.

In alternativa, e vivamente consigliato, utilizzare il programma TreeTagger (Windows) scaricabile dal seguente indirizzo Internet: http://www.smo.uhi.ac.uk/~oduibhin/oideasra/interfaces/winttinterface.htm. Si tratta di un'interfaccia grafica che permette di gestire TreeTagger da ambiente grafico senza ricorrere a finestre e comandi DOS. E' gratuito ed estremamente completo. In particolare, con riguardo alla procedura che si sta descrivendo, spuntare l'opzione "none" nel riquadro "tokenization".

NOTA: a breve anche il team TaLTaC metterà a disposizione un piccolo programma ad uso gratuito che consentirà di gestire TreeTagger da ambiente grafico, meno completo di TreeTagger (Windows), ma di utilizzo più semplice ed intuitivo.

Le forme precedentemente categorizzate dalla normalizzazione di TaLTaC2 manterranno la categoria grammaticale attribuita in tale fase, indipendentemente da quella attribuita da TreeTagger. Anche l'eventuale struttura di frammentazione del corpus verrà rispettata e quindi riproposta.