Sei sulla pagina 1di 14

Definite la nozione di corpus (1)

I corpora sono grandi collezioni di testi che rappresentano l’uso naturale della lingua. Attualmente con il
termine corpus si implica il suo formato digitale, ma la creazione di un corpus come raccolta di testi è
un’operazione ben più attempata per gli studi sul linguaggio. L’avvento del computer ha permesso di
collezionare dati linguistici sempre in maggior quantità, di facilitarne lo studio e di stilare modelli
computazionali di lingua. Gli albori di questo approccio si riconoscono a Padre Roberto Busa, con un’analisi
lessicografica dell’opera omnia di Tommaso d’Aquino. Esistono diversi parametri che definiscono le diverse
tipologie di corpora per permettere innumerevoli analisi. Ci sono corpora specialistici che contengono testi
appartenenti a un certo dominio che solitamente vengono utilizzati in un ristretto campo di ricerca ( il
Childes raccoglie trascrizioni di interazioni con bambini o soggetti con patologie del linguaggio), e ci sono
per contro corpora generali che sono definiti plurifunzionali ma soprattutto risorse trasversali di
riferimento, proprio perché l’alto livello di generalità permette uno studio comprensivo della lingua nel suo
complesso. Altre distinzioni circa i corpora riguardano la modalità, la lingua, la cronologia, l’integrità e la
codifica dei testi. Con un approccio prettamente statistico-acquisizionale, il corpus viene definito campione
(o sample) rappresentativo della lingua o di una varietà, per poter studiare e generalizzare induttivamente
fenomeni linguistici di interesse, dal campione alla popolazione. Per garantire la rappresentatività del corpus
è necessario che questo sia bilanciato e perché ci sia il bilanciamento è necessario che siano presenti le
descrizioni riguardanti: i confini spaziali e temporali dei testi e la loro tipologia. Un esempio di
bilanciamento, spesso preso come modello, è quello del BNC (British National Corpus) ed è suddiviso nel
seguente modo: 90% di lingua scritta, 10% trascrizioni di lingua parlata. Le trascrizioni si dividono
principalmente in “demografiche” e in “contestualizzate”. Il concetto di corpus come campione è essenziale,
giacché sia la dimensione quantitativa che quella qualitativa incidono fortemente sul modo in cui i dati
ricavati possono essere proiettati in un modello della lingua.
La dimensione quantitativa è un punto fondamentale della linguistica dei corpora , ma non è privo di
criticità: essendo infatti osservazioni dell’uso linguistico di parlanti reali, suscitano forti obiezioni circa
l’effettiva possibilità di costituire fonti adeguate di evidenza linguistica. Il loro limite intrinseco è proprio
quello di essere un insieme finito di registrazioni di usi linguistici, dunque di essere parziali e non adatti a
seguire i mutamenti e le evoluzioni che in una lingua avvengono come conseguenza della sua natura
intrinsecamente dinamica. Come soluzione al limite dei corpora “chiusi”, si è scelto infatti di sopperire con
dei corpora di monitoraggio, proposti da Sinclair. In questi termini lo sviluppo informatico ha permesso di
potenziare i corpora dal punto di vista della loro estensione, dove la regola generale è diventata ‘’the larger,
the better’’, ma anche dal punto di vista qualitativo ottimizzando i criteri di selezione.

Cosa si intende per Rappresentatività di un corpus?

La rappresentatività è il criterio di base per garantire l’inferenza statistica; vale a dire la proprietà che
permette di generalizzare induttivamente i risultati rinvenuti all’interno del corpus ad una varietà. Ancora più
specificamente si può definire come la garanzia dell’adattabilità di un sistema - sviluppato a partire da un
corpus- ad altri tipi di dominio. Tanto più il corpus è rappresentativo di una varietà più il fenomeno
riconosciuto potrà essere validato per l’intero linguaggio.
Affinché sia rappresentativo di una lingua, un corpus deve tenere traccia dell’intero ambito di variabilità dei
suoi tratti, quindi è effettivamente rappresentativo quando restituisce un quadro accurato delle variazioni e
delle tendenze linguistiche in esame. Un campione deve essere rappresentativo per essere utile e
significativo. Esistono vari metodi per valutare la rappresentatività di un campione, ma la maggio parte delle
valutazioni più accurate si basano sulla ricchezza del vocabolario, misurata come numero di parole diverse
presenti nel corpus. Quello della rappresentatività è in ogni caso un valore difficile a cui avvicinarsi, un
valore ideale che il corpus linguistics tenta di massimizzare. Dal momento che il limite intrinseco dei corpora
è la loro natura parziale, secondo Chomsky il modello offerto da un corpus sarà sempre fuori scala, in quanto
la distribuzione dei tratti linguistici è condizionata dai vincoli d’uso. Tecniche statistiche di campionamento
possono aumentare il grado di rappresentatività, ma gran parte delle scelte è condizionata da fattori
pragmatici.
Che differenza c’è tra un corpus specialistico e un corpus generale? Cosa si intende per
bilanciamento di un corpus?

Un corpus è una collezione di testi selezionati ed organizzati in maniera tale da soddisfare specifici criteri
che la rendano funzionale alle analisi linguistiche, con lo scopo di essere usata come campione
rappresentativo del linguaggio. La tipologia, o meglio, la natura di un corpus si palesa sulla base di alcuni
parametri di riferimento: tra i vari, anche il grado di generalità.
Il grado di generalità di un corpus dipende dalla misura in cui i suoi testi sono stati selezionati rispetto a
varietà diverse di una lingua; un corpus specialistico (o verticale) ha il grado minimo di generalità ed è
orientato alla descrizione di un particolare tipo, una particolare varietà di linguaggio (sublaguage) o ad un
ristretto dominio applicativo. Corpora generali invece appartengono a diverse varietà, uno o più registri
selezionati per comporre il quadro descrittivo di una lingua nel suo complesso. Sono considerati, quindi,
plurifunzionali e sono spesso progettati come risorse trasversali di riferimento rispetto ad una lingua L.
Spesso i corpora generali sono articolati in vari sottocorpora, ovvero in sottoinsiemi di testi che
appartengono ad una particolare varietà.
E’ chiaro che la variabilità interna limitata e l’elevata omogeneità linguistica dei corpora specialistici
garantiscono la possibilità di ottenere un alto grado di rappresentatività; invece i Corpora generali devono
essere diversificati (bilanciati) rispetto a un ampio spettro di tipi testuali affinché siano rappresentativi.
Il bilanciamento è quindi la condizione essenziale a garantire la rappresentatività di un corpus e presuppone
una descrizione accurata della popolazione di riferimento con una mappatura della lingua in termini di
confini spaziali e temporali, oltre a tenere conto della tipologia dei testi. Un corretto bilanciamento richiede
una consistente quantità di testi selezionati dal punto di vista sia quantitativo che qualitativo. Un esempio di
bilanciamento, spesso preso come modello, è quello del BNC (British National Corpus) ed è suddiviso nel
seguente modo: 90% di lingua scritta, 10% trascrizioni di lingua parlata. Corpus Linguistics: there is no data
like more data! Il bilanciamento, già legato alla rappresentatività, è anche collegato alla dimensione
quantitativa del corpus.
Infatti, altra caratteristica fondamentale per valutare ed utilizzare un corpus è la sua estensione, misurata in
base al numero di parole (token) contenute

Cosa si intende per corpus diacronico e corpus sincronico?

In relazione al parametro della cronologia, i corpora differiscono e vengono selezionati in base all’asse
temporale. Con il termine sincronia si indica, in linguistica, lo studio e la valutazione dei fatti linguistici
considerati in un dato momento, astraendo dalla loro evoluzione nel tempo, ovvero in un determinato stato
della lingua (proprio della linguistica storico-comparativa). Si contrappone alla diacronia che invece studia le
lingue secondo il loro divenire nel tempo.
Pertanto è definito sincronico un corpus che descrive un particolare stadio del linguaggio ed i testi
appartengono tutti ad una stessa finestra temporale, mentre viene definito diacronico quando comprende testi
appartenenti a periodi diversi per descriverne il mutamento linguistico. Il CORIS è un corpus di riferimento
bilanciato sincronico dell'italiano scritto contemporaneo.

Cosa vuol dire tokenizzare un testo?

Tokenizzare un testo significa dividere le sequenze di caratteri in unità minime di analisi dette “token”. La
nozione di token è distinta da quella di parola, infatti i token possono essere anche entità strutturalmente
complesse , ma sono comunque assunte come unità di base per i successivi livelli di elaborazione
(morfologico, sintattico ecc.). Quello della tokenizzazione a seconda del tipo di lingua e sistema di scrittura
può essere un task estremamente complesso. Nelle lingue non segmentate la tokenizzazione di fatto richiede
l’analisi lessicale (word segmentation) ed è relativamente semplice per lingue che -similmente
all'italiano- adoperano gli spazi per delimitare le parole. Nelle lingue segmentate, infatti, la
tokenizzazione si basa su un misto di criteri ortografici e linguistici che prescindono da qualsiasi forma di
analisi morfologica o sintattica
Cos’è la Mutua Informazione?

La mutua informazione è il rapporto tra la frequenza osservata di un bigramma e la sua frequenza attesa:
MI (u,v) ≤ 0 - assenza di associazione tra le parole
MI (u,v) >> 0 - forte associazione tra le parole.
Si può quindi definire come la quantità che misura la mutua dipendenza delle due variabili in questione;
giacché l’ unità di misura della mutua informazione è il bit, si usano i logaritmi in base 2 per formalizzarla in
termini di probabilità.

MI log2 f (< u,v >) * N / f (u) f (v)

In questo modo viene confrontata la probabilità di osservare il bigramma <u, v>, con la probabilità di
osservare u e v indipendentemente l’una dall’altra. Se due parole u e v sono statisticamente indipendenti,
allora p(u, v) = p(u) * p(v). Maggiore è il valore della frazione in MI, più alto è il grado di dipendenza tra u
e v, e dunque più forte la loro associazione lessicale.
Bisogna in ogni caso tenere presente che la MI è estremamente sensibile agli eventi rari: in qualsiasi corpus, i
bigrammi con frequenza 1 formati da hapax avranno sempre valori massimi di MI, cosa che la rende poco
indicativa (in un testo i bigrammi hapax possono arrivare al 75%).
In questo caso

MI log2 f*N/f^2

Dopo aver spiegato cos’è un set di caratteri illustrate le caratteristiche principali di Unicode e le
differenze più salienti rispetto a ISO8859.

I set di caratteri sono associazioni convenzionali tra caratteri di un testo e codici numerici; tramite
un’apposita tabella vengono effettuate associazioni biunivoche (I a I) tra elementi di un repertorio di caratteri
e punti di codice. Nelle tabelle di caratteri i codici sono tipicamente riportati in base decimale, ottale ed
esadecimale (tutti sistemi di natura posizionale) e ciascun punto di codice è rappresentato un forma binaria
come sequenza di bit. A questo punto il numero di caratteri codificati dipende dai punti di codice disponibili.
Generalizzando: con n cifre binarie è possibile codificare 2^n caratteri.
Il più noto e diffuso tra i set di caratteri è ASCII, primo codice standard per la rappresentazione dei cratteri:
ciascun carattere è codificato con un byte di cui solo i le prime 7 cifre sono usate, mentre l’ottava è di parità
per verificare la corretta trasmissione del codice. Le estensioni ASCII fanno parte della famiglia di set
codificati con un byte, ISO-8859. Ogni set è equivalente a ASCII per i primi 128 punti di codice mentre i
punti da 160 a 255 sono utilizzati per codificare caratteri di sistemi grafici diversi.
UNICODE è il set di caratteri universale che permette di codificare testi contenenti caratteri di ogni sistema
alfabetico (96.382 caratteri) e nasce come soluzione ai limiti di ISO8895. La sostanziale differenza tra
unicode rispetto a questa estensione ASCII infatti è che al contrario di ISO-5589 non esiste una mutua
esclusività tra caratteri di alfabeti diversi che possono – quindi – essere usati simultaneamente a prescindere
dai sistemi grafici a cui appartengono. A seconda della complessità dei caratteri Unicode adotta principi di
composizione dinamica o codifica statica per l’assegnazione dei punti di codice. E’ comunque necessario
ricordare che sebbene i primi 256 punti di codice rappresentano gli stessi di ISO-Latin-I e la codifica utf-8
abbia totale compatibilità con ASCII, non si estende ai caratteri ISO-Latin- I giacché i punti codice dei due
set sono diversamente codificati in binario.
Cosa si intende per codifica di alto livello e di basso livello?

Quando parliamo di codifica definiamo la rappresentazione digitale di un testo, affinché sia leggibile dalla
macchina. Tipicamente il testo si presenta come una struttura complessa che contiene informazioni su più
livelli, per cui è necessario riconoscere anche più livelli di codifica. Nella fattispecie riconosciamo la
codifica di basso livello e quella di alto livello.
La codifica di basso livello (o di livello zero) consiste nella rappresentazione binaria della sequenza ordinata
di caratteri del testo e consta dell’associazione – a ciascun carattere (inteso come entità atomica)- di un
codice numerico che lo identifichi univocamente; avvalendosi di appositi set di caratteri viene definita una
corrispondenza biunivoca (1 a 1) tra un repertorio di caratteri e punti di codice. L’informazione testuale è
nuda e cruda ed i files utilizzati sono plein text per cui si può dire che la codifica di basso livello abbia anche
massima portabilità, sebbene presenti alcuni svantaggi: non può infatti rappresentare aspetti relativi alla
formattazione del testo, informazione linguistica, ecc.
Proprio perché il contenuto informativo di un testo va al di là della mera sequenza di caratteri ed il computer
non dispone di livelli di conoscenza tali da esplicitare l’informazione linguistica, per rendere queste strutture
accessibili occorre quindi un’adeguata codifica che- a partire dalla codifica di livello zero- vada ad
arricchirla associando esplicitamente a porzioni di testo, strutture e funzioni corrispondenti. Il compito della
codifica di alto livello è quello di dar forma rendendo esplicita quella parte di informazione veicolata
attraverso le convenzioni tipografiche, testuali e linguistiche. Esistono vari livelli di interpretazione, come ad
esempio i metadati che qualificano e descrivono altri dati. Il testo di articola di vari livelli: struttura del testo,
struttura del contesto e struttura linguistica. Quando vengono codificate informazioni di tipo linguistico gli
algoritmi di machine learning per ‘’imparare’’ questi fenomeni devono avere accesso a tali tipologie di
informazione implicita. Una volta esposti ad una serie di testi in cui le parole sono codificate con la loro
categoria grammaticale, gli algoritmi di apprendimento automatico imparano le parti del discorso e le
riconoscono in nuovi testi (part of speech tag). Nella codifica di alto livello è importante distinguere i dati
dalle informazioni. Tutti i caratteri sono dati allo stesso livello, ma dire che una certa sequenza corrisponde
ad un titolo, vuol dire denotarli di un informazione. Riconoscere la struttura di un testo, la flessione di una
parola e così via, vuol dire conferire valore informativo ai dati resi espliciti nella loro organizzazione
strutturale e linguistica.
Per codificare un testi in alto livello si usano i linguaggi di markup per rendere esplicite le relazioni tra un
testo e le sue parti. Nella fattispecie si utilizza XML, definibile più che altro come un metalinguaggio di
marcatura

Quali sono i tre assiomi della probabilità?

Con il termine ASSIOMA dal lat. tardo axioma, In generale designa una proposizione il cui ruolo
conoscitivo è quello di un principio evidente di per sé e che non necessita quindi di una
dimostrazione logica.
Il matematico russo Kolmogorov ha proposto una teoria della probabilità basata sulla individuazione di
alcuni assiomi, dai quali si dimostrano una serie di teoremi.
1. Positività: per cui ad ogni evento casuale a corrisponde un certo numero P(a), chiamato "probabilità
di a", che soddisfa la P(a)>=0.
2. Certezza: la probabilità dell'evento certo è 1. P(Ω) = 1
3. Unione: la probabilità dell'unione di un numero finito o infinito numerabile di eventi mutuamente
esclusivi è pari alla somma delle probabilità di questi eventi. P(A∪B) = P(A) + P(B), se A∩B= O/

Illustrate le nozioni di concordanza e collocazione


Per concordanza si intende la presentazione delle parole di un testo, con l’indicazione della frequenza con la
quale la parola occorre e del contesto linguistico precedente e successivo (cotesto), quindi una lista delle
occorrenze di una parola tipo nel testo, ciascuna nel suo contesto linguistico. Tali concordanze permettono di
esplorare l’uso di una parola nei singoli habitat linguistici in cui ricorre; il metodo standard cui vengono
presentate le concordanze di una forma lessicale specifica (parola chiave) è il formato KWIC , dove la lista si
articola di tante righe quante sono le occorrenze della parola chiave nel testo ed è accompagnata da numeri
incolonnati che identificano ogni riga di testo in cui si trova una specifica occorrenza di parola.
Si intende invece per collocazione – citando Sinclair - una combinazione di 2 o più parole caratterizzate da
un elevato grado di associazione reciproca, determinata dalla tendenza a ricorrere una accanto all’altra,
ovvero a “co-occorrere. Tratti peculiari delle collocazioni sono una Elevata convenzionalità e collocazioni
sono tendenzialmente espressione di usi convenzionali o stereotipati, tipici di particolari varietà linguistiche.
Una Ridotta composizionalità semantica il significato di una collocazione è molto spesso non
immediatamente ricavabile dalla composizione del significato delle parole che la formano ed una Forte
rigidità strutturale, per cui le collocazioni sono spesso resistenti a modificazioni aggettivali o avverbiali, o
possono occorrere solo in particolari forme flesse e contesti sintattici
Secondo una concezione in senso lato, una collocazione è ogni combinazione di parole che risulta in un
corpus, indipendentemente dal contenuto semantico delle combinazioni. Se invece si parte da una concezione
ristretta, basata su una concezione qualitativa e semantica le collocazioni rappresentano costruzioni binarie
organizzate gerarchicamente, per cui consistono di un elemento cognitivamente sovraordinato (la base) e di
un elemento subordinato (il collocatore). Si parla essenzialmente di espressioni polirematiche fortemente
lessicalizzate, idiomatiche e idiosincratiche. I tipi di collocazione possono articolarsi secondo un aspetto
morfo-sintatti o semantico-concettuale (ad esempio in presenza di collocatori polisemici). Le misure
statistiche delle collocazioni sono formalizzate nella Mutua Informazione, dove con un approccio
frequentista (o anche tradotto in termini di probabilità) si confronta la co-occorrenza osservata con il valore
della frequenza attesa delle coppie di parole organizzate in tavole di contingenza. La mutua informazione è
il rapporto tra la frequenza osservata di un bigramma e la sua frequenza attesa:
MI (u,v) ≤ 0 - assenza di associazione tra le parole
MI (u,v) >> 0 - forte associazione tra le parole.
Si può quindi definire come la quantità che misura la mutua dipendenza delle due variabili in questione.

Modelli markoviani

I modelli n-grammi sono usati in linguistica per la Word prediction, ovvero:


data una sequenza di parole w1,…,wn-1, qual è la parola seguente wn?
Il cane ha mangiato la X
Adottare un modello markoviano del primo ordine implica che una parola dipenda soltanto da
quella immediatamente precedente. Ai fini della word prediction è necessario utilizzare modelli di
secondo ordine (trigrammi).
Addestrare un modello di ordine n a partire da un corpus di addestramento:
usare il modello per generare sequenze di parole; con l’aumentare dell’ordine le sequenze generate
approssimano meglio i vincoli strutturali della lingua reale.

You shall know a word by the company it keeps


J. R. Firth (1957)

L’analisi distribuzionale (ovvero dei contesti linguistici) rivela le preferenze combinatorie delle
parole. Alcune potenzialità combinatorie sono determinate da tratti morfo-sintattici e semantici
generali delle parole stesse, in quanto membri di una classe linguistica astratta.
Le espressioni linguistiche che condividono quindi gli stessi tratti possono essere sostituite alle
parole della frase originaria per ottenere nuove frasi grammaticali.
Tuttavia esistono tipi di combinazioni lessicali che si basano su legami non riconducibili alle classi
linguistiche generali. A tal proposito è utile chiarire la nozione di collocazione.
Cosa vuol dire che i “dati linguistici sono sparsi (rari)”. Qual è la ragione matematica di questo
fenomeno?

Per Data Sparsness si intende una cronica mancanza di dati empirici annotati con cui ricostruire i modelli dei
fenomeni linguistici; quando gli esempi di un certo fenomeno sono scarsi, diventa arduo stabilire se quel dato
fenomeno non appartenga al sistema linguistico o sia semplicemente raro.
Quest’ argomentazione trova ragione nella legge empirica di Zipf che formalizza – come segue - il legame
matematico che sussiste tra la frequenza ed il rango di una parola.

f(z) = C/za,

dove f(z) è la frequenza della parola di rango z, C è la costante ed a è l’indice inverso di ricchezza lessicale,
vale a dire che più grande è “a”, più ristretto risulta il vocabolario del corpus.
La frequenza di ogni parola, ovvero, è inversamente proporzionale alla posizione – tipicamente definita
‘’rango’’ – che la stessa occupa nella lista di tutte le parole in ordine decrescente di frequenza.
La distribuzione di frequenza che ne consegue, per tali sopracitati motivi, evidenzia perfettamente che un
numero estremamente limitato di parole, essenzialmente grammaticali, ha frequenza molto alta e sono
posizionate sul grafico nella parte alta della distribuzione di frequenza, mentre sono numerose le parole
lessicali – molto più interessanti nello studio delle lingue - che tendono a ricorrere con una frequenza molto
più bassa (sono definite hapax le parole che occorrono una sola volta).
In virtù di tali considerazioni la problematica della sparsità dei dati, soggiace anche e soprattutto alla
struttura generativa del linguaggio e porta alla necessità di costruire corpora enormi, al fine di avere un
adeguato numero di esempi del fenomeno in esame dai quali ricavare regolarità ed eccezioni.

Spiegate le fasi principali della preparazione di un testo per l’analisi computazionale .

I testi digitali talvolta sono pieni di rumore in fasi di conversione, OCR o markup.
Per questo motivo la preparazione del testo è la fase preliminare attraverso la quale il testo
digitalizzato viene predisposto all’analisi computazionale. Le fasi sono le seguenti:

1) TEXT CLEANING: si isola il contenuto testuale dal formato testo dagli elementi che possono
alterare le successive elaborazioni. Si tratta di un’operazione di correzione ortografica che provvede
a ripulire il testo da elementi non linguistici (tabelle, didascalie, materiale ripetuto per ragioni
tipografiche, materiale html, frammenti di codice js).
2) VERIFICA DEI CARATTERI
3)NORMALIZZAZIONE: dal momento che maiuscole e minuscole sono effettivamente caratteri
distinti, con punti di codice differenti, si ha la necessità di introdurre una soluzione diversa dal
CASE FOLDING. L’elaborazione è case sensitive, quindi la procedura di normalizzazione consente
di eliminare dal testo fonti di sdoppiamento del dato, abbassando le maiuscole non rilevanti,
uniformando nomi propri, sigle, altre entità.
4) TOKENIZZAZIONE

Definire l’Entropia:
E’ la quantità di informazione portata dagli eventi prodotti in un sistema aleatorio formalizzato come
variabile casuale (misurata in bit). Gli stati possibili di un sistema sono i valori di una variabile a cui è
associata una distribuzione di probabilità p(a).
Giacché la probabilità serve a modellare fenomeni e sistemi il cui esito è incerto (fenomeni aleatori),
l’entropia – come misura di incertezza di un fenomeno – dipende essenzialmente da 2 fattori: lo spazio
campione e la distribuzione di probabilità di ogni singolo esito.
Data una sorgente di messaggi l’informazione media contenuta in ogni messaggio emesso è tanto più ingente
quanto minore è la sua probabilità (gli eventi rari sono più informativi). L’informazione contenuta in un
evento X emesso da una sorgente X si calcola come h(v)= - log2 p(v) - NOTAZIONE ENTROPIA PUNTUALE
Dove p(v) è la probabilità che l’evento si verifichi. Il logaritmo denota che l’informazione può
essere vista come la quantità di cifre in base b da utilizzare per distinguere l’evento verificatosi da
tutti gli altri equiprobabili. L’entropia risponde a due quesiti essenziali: quale sia il numero di bit
necessari a memorizzare un messaggio e quanto questo messaggio sia predicibile. Con la media
calcolata sulla distribuzione di probabilità di un insieme di eventi mutuamente esclusivi, viene
espressa la lunghezza minima media dei messaggi, per cui le parole più frequenti hanno codifica più
breve, mentre quelle più rare codifica più lunga. A parità di stati, il sistema meno equiprobabile ha
maggiore entropia. Estendendo la formalizzazione dell’entropia ad un testo (o ad una lingua) si
ottiene:

Dove un testo è una variabile casuale (W) i cui valori sono parole, ciascuna con una probabilità associata.

Codice di Shannon-Fano:

La codifica di Shannon-Fano è un algoritmo che permette di ottenere un codice basato sulla frequenza di
simbolo di sorgente. L'idea di principio, come per altri codici, è creare parole di codice più corte per i
simboli più frequenti. La teoria dell’entropia linguistica rappresenta la codifica ottimale di un sistema
aleatorio, ovvero una codifica in grado di ottimizzare la spesa di bits per messaggio; gli stati più probabili
(più frequenti) sono descritti usando messaggi più corti, gli stati meno probabili sono descritti usando
messaggi più lunghi. Anche se questi sono più dispendiosi, il risparmio si attua nella loro bassa frequenza.
Un esempio in linguistica è dato dalla grammaticalizzazione, ovvero il caso in cui il lessema si trasforma in
un elemento funzionale. Nel momento in cui si incontrano parole funzionali con alta frequenza (parte alta
della distribuzione zipfiana) avviene un processo di accorciamento dovuto ad una riduzione fonologica così
da ottimizzare gli sforzi (cfr. principio del minimo sforzo) e mantenere il numero di bits medi del sistema.
Codifica ottimale in bits:

il = 0 cane = 10 gatto = 110 mangia = 111

L’entropia aumenta con l’aumentare degli stati possibili di un sistema. L’entropia viene utilizzata per
individuare le parole più informative sul contenuto di un testo . Più una parola è uniformemente distribuita in
testi diversi, minore è la sua informatività.
Definire la nozione di annotazione:

L’annotazione linguistica del testo consiste nella codifica di informazione linguistica associata al dato
testuale. Permette di rendere esplicita, interpretabile ed esplorabile dal computer la struttura linguistica del
testo. I corpora annotati sono usati per addestrare modelli computazionali basati su algoritmi di
apprendimento automatico supervisionato (training corpora)
Esistono più metodi di annotazione linguistica: l’ annotazione manuale è necessaria per alcuni tipi di
annotazione (es. pragmatica, prosodica), ma è altamente costosa e lenta; tra gli altri svantaggi c’è la necessità
di “addestrare” gli annotatori oltre che una certa inconsistenza nell’applicazione.
L’ annotazione (semi)-automatica invece offre una certa rapidità di sviluppo sebbene presenti errori
consistenti (taggers 98% precision e/ parsers 85% precisione).
L’annotazione interagisce con la codifica essenzialmente su 4 livelli: copertura, riproducibilità, interazione,
espressività. Annotare, fondamentalmente, vuol dire aggiungere ad un corpus codici di markup che rendono
esplicita e machine readable l’informazione relativa alla struttura linguistica del testo.
Esistono vari livelli di annotazione: annotazione morfo-sitattica, è la forma basilare e consiste nell’assegnare
a ogni token l’informazione della relativa categoria grammaticale (parte del discorso). Questo tipo di
annotazione è spesso combinato con la lemmatizzazione.
L’annotazione sintattica avviene per rappresentazione a costituenti sintattici (con relazioni gerarchiche) e
rappresentazioni a dipendenze funzionali. l corpora anntati sintatticamente sono chiamati Treebanks sono
database sintattici i cui corpora contengono l’analisi sintattica (parse) delle frasi; i tipi di informazione si
esplicitano con la struttura a costituenti (bracketing), relazioni grammaticali (es. soggetto, oggetto, ecc.),
struttura predicativa (es. predicato, argomenti, aggiunti, ecc.)
L’annotazione semantica riguarda la codifica esplicita del significato delle espressioni linguistiche
(classificazione delle parole lessicalmente piene rispetto a categorie semantiche predefinite, oppure
marcatura dei ruoli tematici), mentre l’ annotazione pragmatica concerne corpora di parlato.

Annotation Development Process


Model  descrizione teorica di un fenomeno linguistico con l’identificazione
degli attributi (feature) da annotare
Annotate  annotazione del corpus con uno schema di annotazione basato
sulle feature identificate
Train  addestramento di un algoritmo di ML sul corpus annotato
Test  test del sistema addestrato su un nuovo campione di dati annotati
Evaluate  valutazione delle performance del sistema
Revise  revisione del modello linguistico e dello schema di annotazione
per renderlo più robusto e affidabile per l’uso con l’algoritmo di ML

Definire uno schema di Annotazione:

Uno schema di annotazione definisce il contenuto linguistico dell’annotazione, non il


modo in cui l’annotazione è proiettata sul testo. Si basa su diversi tipi di informazione linguistica, quali
categoriale, settoriale e relazionale, vale a dire: l’assegnazione di categorie ad unità linguistiche, l’
identificazione di unità strutturali del testo e la loro organizzazione in strutture gerarchiche e le relazioni a
dipendenza.
Uno schema di annotazione prevede pertanto:
- un repertorio di categorie linguistiche per l’annotazione, corrispondenti alla tipologia dei tratti da
rappresentare nel testo, che generalmente è espresso nella forma di attributi e dei loro possibili valori.
- la definizione delle regole di compatibilità tra categorie
es. l’aggettivo non possiede un attributo di persona, o un nome quello di tempo
- un’ accurata specificazione dei criteri di applicazione al testo delle categorie selezionate.
Come avviene la valutazione dell’annotazione?

I dati annotati a mano devono essere valutati per il loro grado di affidabilità che dipende dal grado di
accordo raggiunto da 2 o più annotatori indipendenti nell’assegnazione al testo delle categorie dello schema
di annotazione. L’affidabilità è una condizione fondamentale per valutare la validità dello schema di
annotazione; l’annotazione deve poter essere replicabile in maniera coerente dallo stesso annotatore
in tempi diversi e da differenti annotatori. Giacché un campione di testo rappresentativo deve essere
annotato da (almeno) 2 annotatori, addestrati in egual maniera ma che procedono indipendentemente, u na
metrica statistica utilizzata per misurare il grado di accordo tra gli annotatori è l’Interannotator
Agreement (a measure of how well two (or more) annotators can make the same annotation
decision for a certain category). Tendenzialmente serve a stabilire quanto sia facile delineare
chiaramente una categoria - se gli annotatori attuano la stessa decisione in quasi tutti i casi – e
quanto affidabile sia l'annotazione. La K di Cohen misura l’accordo tra DUE annotatori, al netto
dell’accordo che si potrebbe verificare casualmente (per più di due annotatori bisogna usare altri indici)

k = P(A) - P(E) / 1- P(E), dove:

P(A) = proporzione del numero di volte in cui gli annotatori hanno fatto la stessa scelta
P(E) = proporzione del numero di volte in cui ci si attende che gli annotatori facciano la stessa scelta per
caso
Illustrate la nozione di PoS tagging e i principali metodi per realizzarlo

Per Pos tagging si intende un tipo di task utilizzato essenzialmente per la disambiguazione
morfologica nelle metodologie di machine learning: a tale livello di analisi vengono ad esempio
risolte le omografie riguardanti le parte del discorso, laddove una certa parola -considerata invece
fuori dal suo contesto di occorrenza- è suscettibile di diverse classificazioni grammaticali.
Il PoS tagging è quindi un tipo di annotazione morfo-sintattica che rappresenta la forma più
elementare, oltre che la più comune, di annotazione linguistica.
Molto spesso il problema dell’ambiguità di una parola è connesso alla sparsità di altre parole che
invece non lo sono e che possono quindi prestarsi come ancore per garantire la giusta
interpretazione alla parola in analisi. Lo scopo di disambiguazione è perseguito con
l’assegnazione - a ogni token del testo - dell’informazione relativa alla sua categoria grammaticale
(part of speech) nel suo contesto specifico. Tale informazione è ulteriormente arricchita dalla
specificazione delle categorie morfosintattiche (persona, genere, numero etc) che moltiplicano le
classi evidenziate dallo schema di annotazione. Il Pos tagging avviene essenzialmente in due modi.
Il primo approccio (incrementale- riduzionistico), è il Pos tagging a regole ENGCG, dove stabilite
delle pattern- action rules, una certa azione è compiuta in base a quanto richiesto dal pattern.
In questo caso i patterns sono Automi a stati finiti: la categoria di una parola dipende da un numero
molto ristretto di parole che la precedono o la seguono; vale a dire che gli ASF esprimono vincoli
sintagmatici sulle sequenze di tag.

I Pos tagger più avanzati sono analizzatori statistici che funzionano sulla base di algoritmi di
apprendimento automatico; tale metodo prevede due fasi principali: durante la fase di
addestramento partendo da un training set il sistema apprende i modelli da un insieme di dati
annotati, mentre nella fase di analisi successiva il modello viene applicato nuovamente a dati non
annotati che vengono analizzati in seguito alla selezione e all’estrazione di features, per finire al
modello della lingua.
Scopo della fase di addestramento è l’apprendimento di una funzione f(xi), detta funzione obiettivo,
tale che f(xi)=y. Data la loro importanza per la creazione di corpora annotati, la linguistica
computazionale ha sviluppato numerosi pos tagger per le lingue moderne ed il livello di accuratezza
raggiunto per testi standard della lingua italiana è di circa il 98%.
Features:

Le feature nei compiti del TAL vengono distinte in tre categorie: locali, contestuali, globali.
Le feature locali sono quelle che vengono estratte direttamente dal token che stiamo analizzando (es. forma,
lemma, suffisso, prefisso, presenza di caratteri non alfabetici all’interno della parola).
Le feature contestuali sono quelle che vengono estratte dal contesto nel quale il token analizzato si trova (es
parola precedente, successiva, POS della parola precedente o della parola successiva ecc). Le feature globali
sono estratte invece da contesti più ampi rispetto a quelle contestuali. Alla fine del processo di estrazione su
tutto il corpus, l’algoritmo di apprendimento automatico calcola la frequenza delle features ed assegna alle
stesse un peso in funzione della loro distribuzione statistica nel corpus.

Prefisso=Ro
Suffisso=ma
Forma=Roma
Lunghezza=4
Token(-1)= la
POS(+1)=V
Token(+2)=vinto

I pesi indicano la “forza o salienza” della feature nell’indicare una certa classe come possibile output e
possono essere visti come il modello della lingua che il sistema di addestramento crea nella fase di
apprendimento. Il processo di estrazione delle feature restituisce per ogni coppia (input, output) la lista delle
feature attive in quel contesto per la classe output.

Descrivete come è possibile utilizzare algoritmi di a pprendimento Supervisionato

La funzione obiettivo (o anche scoring function) calcola un punteggio per ogni possibile classe di
Output il punteggio viene calcolato sulla base delle feature estratte dal testo da analizzare, utilizzando i pesi
delle feature presenti nel modello della lingua creato nella fase di apprendimento. La funzione di score varia
in base al tipo di algoritmo supervisionato utilizzato (somme, moltiplicazioni o funzioni più complesse tra i
pesi delle feature).
La classe a cui viene assegnato lo score più alto è la classe vincente (il risultato dell’analisi).
Definire la nozione di parsing

Algoritmo di un programma applicativo che sulla base di grammatica e lessico di una certa lingua effettua
un’analisi automatica della struttura morfologica delle parole. Si tratta di un processo di lemmatizzazione da
cui la determinazione di morfemi dai quali è costituita una certa parola. L’approccio generalmente accettato
per l’analisi morfologica è il TSF dove: nel caso dei morfemi radice l’output di analisi è il lemma
corrispondente, mentre nel caso degli affissi l’output è l’attributo con i rispettivi valori morfologici.

Definire la nozione di stemming

Per stemming si intende un processo di normalizzazione lessicale, tuttavia avulsa da criteri e regole
linguistiche. Più specificamente di potrebbe definire come un processo di riduzione della forma flessa di una
parola alla sua forma radice (nella sua accezione più gnerica). In linguistica il concetto di radice non
necessariamente coincide con quello utilizzato in un algoritmo di stemming, ovvero: il tema non corrisponde
necessariamente al lemma della parola; l’importante è che le parole correlate siano mappate allo stesso tema,
anche se non è una valida radice per la parola. In questo caso si considera la radice della parola come uno
stelo (stem) da cui diramano tutte le varianti, come un albero che compone la famiglia delle parole. Il primo
programma di stemming fu sviluppato negli anni ’80 da Martin Porter, un algoritmo implementabile con
espressioni regolari (ASF) che rimuove gli affissi (affix stripping). Benché lo stemming abbia i propri
vantaggi a livello di tecnica è efficace purché il processo di riduzione non faccia perdere informazioni e la
radice della parola conservi lo stesso significato tematico della parola completa.
Si può incorrere in due tipi di problemi, come l’individuazione di una radice sbagliata o anche l’alterazione
nei processi di flessione o derivazione.
Parsing sintattico

Il Natural Language Parsing (o parsing sintattico) è il processo di analisi linguistica attraverso il quale viene
ricostruita la struttura sintattica di una frase, che può essere rappresentata dall’articolazione dei costituenti
sintagmatici e dalle relazioni di dipendenza grammaticale. In virtù di ciò esistono diversi tipi di parser che
possono essere classificati rispetto al tipo di output che producono.

- Parser a dipendenze
- Parser a costituenti

Tipicamente il parser prende una stringa ed una grammatica come input e restituisce uno o più alberi di
parsing per quella stringa.
Nel parsing sintattico a dipendenze vengono individuate le relazioni sintattiche tra i token della frase e
vengono prodotti alberi a dipendenze, i cui nodi sono SOLO le parole della frase, più il nodo radice ROOT,
mentre gli archi possono essere marcati con il tipo di relazione di dipendenza che c’è tra le parole.
I parser sintattici a costituenti altresì producono alberi a costituenti formati da una radice (F), nodi non
terminali (che denotano i costituenti sintattici) e le foglie (le parole della frase).

Nel passato i parser a costituenti erano molto più diffusi, oggi con lo sviluppo degli approcci basati
su algoritmi di apprendimento automatico supervisionato i parser a dipendenze sono i più utilizzati.
Annotare un corpus di apprendimento per un parser a costituenti è più difficile, giacché richiede una
conoscenza linguistica del compito di analisi sintattica più profonda rispetto alla annotazione di alberi a
dipendenze. In definitiva annotare frasi con l’annotazione a dipendenza è più veloce e manipolare (attraverso
un sistema automatico) alberi a dipendenza è più semplice poiché i nodi sono solo le parole della frase.

Cosa si intende per Full Parsing e Shallow Parsing?

Lo Shallow Parsing è un’ annotazione sintattica parziale, finalizzata al riconoscimento di strutture


linguistiche parziali; è una rappresentazione particolarmente utile dal punto di vista
applicativo e consta di sistemi che identificano e classificano sotto-porzioni di testo.
Presenta diversi possibili approcci all’annotazione sintattica parziale ma il più diffuso è il
“chunking”, ovvero annotazione in termini di sequenze di costituenti sintattici non ricorsivi
(“chunks”). Una rappresentazione a “chunk” è caratterizzata da una struttura piatta, quindi dalla
mancanza di relazioni gerarchiche. Un chunk è definito come un proto-costituente formato da una
sequenza di unità morfolessicali adiacenti e che non presenta sottostrutture dello stesso tipo al suo
interno; ciascuna unità morfolessicale di un testo deve dunque essere assegnata a uno e un solo
“chunk”(isola sintattica affidabile).
Il Full parsing altrimenti, ricostruisce l’organizzazione sintagmatica completa della frase e le
relazioni di dipendenza funzionale tra i costituenti. Vengono evidenziate: l’ annotazione di relazioni
grammaticali “profonde”, informazioni sulle dipendenze sintattiche ed un’ analisi più articolata dei
costituenti.