RIASSUNTI
CAPITOLO 1
La linguistica computazionale si fonda sulla capacità di raccogliere dati linguistici appropriati,
conoscere metodi formali per la loro analisi e padroneggiare tecniche informatiche per il trattamento
automatico. Negli ultimi anni la disciplina ha vissuto una svolta empiristica, ponendo al centro il ruolo
del dato testuale come evidenza empirica fondamentale per costruire modelli e teorie linguistiche.
Dato linguistico → prodotti del linguaggio che sono oggetto di un processo di analisi e che formano
l’evidenza empirica su cui fondare lo sviluppo di modelli e teorie linguistiche.
Dato linguistico = parole, frasi, enunciati
Come si individuano le fonti dalle quali attingere i dati necessari per le proprie analisi:
- I testi dei parlanti di una lingua → prodotto dell’attività linguistica dei parlanti elaborato o
trascritto come sequenza di caratteri.
- I parlanti stessi
Distinzione tra dati testuali:
1. Dati linguistici ecologici → il testo rappresenta l’habitat naturale dei dati linguistici: parole,
frasi o enunciati vivono nel testo come il luogo nel quale acquisiscono senso. Sono ecologici in
quanto osservati e raccolti nel proprio ambiente, di cui dunque conservano tutta la
naturalezza.
2. Dati linguistici controllati → ottenuti attraverso test, questionari o esperimenti in laboratorio,
dove il linguista controlla le variabili per isolare specifici fenomeni.
CORPUS → collezione di testi selezionati e organizzati secondo criteri specifici per essere funzionale
all’analisi linguistica. In ambito statistico, esso è considerato un campione, ovvero un sottinsieme
rappresentativo di una lingua o di una sua varietà, da cui trarre generalizzazioni affidabili.
Tipologie di corpus:
1. Generalità → il grado di generalità dipende dalla misura in cui i suoi testi sono stati selezionati
in maniera trasversale rispetto a varietà diverse di una lingua.
- Corpora specialistici o verticali → hanno il grado minimo di generalità perché includono solo
testi che appartengono a una specifica varietà linguistica o a un particolare dominio tematico
- Corpora generali → appartengono alle diverse varietà. Comunità d’uso o registri di una lingua e
sono selezionati per comporre il quadro descrittivo della lingua nel suo complesso. Sono
plurifunzionali, non sono costruiti per una specifica applicazione o obiettivo di ricerca.
2. Modalità → scritta (solo testi prodotti originariamente in modalità scritta), orale (solo testi
prodotti originariamente in modalità orale e successivamente trascritti) o misti (contengono in
proporzioni variabili sia testi prodotti in modalità scritta sia trascrizioni di una lingua parlata).
3. Cronologia → il modo in cui i testi sono selezionati rispetto all’asse temporale.
- Corpus sincrono → i testi appartengono alla stessa finestra temporale
- Corpus diacronico → comprende testi appartenenti a periodi diversi
4. Lingua → corpus monolingue e corpus bilingue.
I corpora bilingue possono essere suddivisi in corpora paralleli e corpora comparabili.
- Corpora paralleli → comprendono testi sia nella loro lingua originaria sia una traduzione in
un’altra lingua. Se le unità linguistiche sono collegate alle esplicite traduzioni, si parla di
corpus parallelo allineato
- Corpora comparabili → non contengono testi in traduzione, ma testi originali in lingue diverse.
Permettono di comparare due o più lingue rispetto allo stesso genere testuale o dominio
tematico. Dal momento che i testi sono tutti originari, i dati raccolti possiedono un maggiore
grado di naturalezza.
5. Integrità dei testi → testi interi o porzioni di testi di una lunghezza prefissata
6. Codifica digitale dei testi → il modo in cui sono rappresentati i testi digitali
- I corpora annotati → le informazioni codificate riguardano la struttura linguistica del testo a
livelli diversi di rappresentazione
Perché un corpus sia scientificamente utile, deve essere rappresentativo, ovvero riflettere fedelmente
la variabilità della lingua di riferimento. Questo obiettivo si raggiunge attraverso il bilanciamento, che
consiste nel selezionare testi appartenenti a un ampio spettro di generi, registri e domini temativi in
proporzioni adeguate.
Rappresentatività → vincolo che qualifica una collezione di testi come un vero corpus,
distinguendola da archivi opportunistici o biblioteche digitali.
Un campione è rappresentativo se cotistuisce un modello fedele in scala ridotta delle proprietà della
popolazione. Se questa condizione manca, i risultati delle analisi potrebbero essere effetti accidentali
del campionamento anziché proprietà reali della lingua.
Per essere rappresentativo, un corpus deve coprire l’intero spettro di variabilità dei tratti linguistici,
che cambiano a seconda della situazione, dello scopo comunicativo, del dominio e della modalità.
La rappr3esentatività è considerata un valore limite a cui tendere attraverso metodologie rigorose,
poiché nessun corpus può dirsi perfettamente rappresentativo della competenza linguistica umana,
che è intrinsecamente infinita.
Bilanciamento → è lo strumento qualitativo necessario per garantire la rappresentatività,
specialmente nei corpora generali, che mirano a descrivere una lingua nel suo complesso.
Criteri di selezione: bilanciare un corpus significa selezionare testi appartenenti a una mappa definita
della popolazione, che includa diversi domini tematici, registri e varietà.
Il British National Corpus è considerato uno standard per il bilanciamento. Esso organizza i suoi 100
milioni di parole distinguendo tra lingua scritta (suddivisa per dominio e mezzo di diffusione) e lingua
parlata (suddivisa in una parte demografica, bilanciata per età e sesso dei parlanti e una
contestualizzata per situazioni specifiche).
Un corpus bilanciato deve fornire un’immagine accurata delle tendenze linguistiche, includendo le
diverse varietà nelle giuste proporzioni.
Rapporto tra qualità e quantità .
Sebbene la tecnologia permetta oggi di gestite enormi quantità di dati, la dimensione (quantità) da
sola non garantisce la qualità.
Come affermato in letteratura, focalizzarsi solo sulla grandezza è ingenuo. Più grande non significa
necessariamente migliore se manca il controllo sulla selezione.
Tuttavia, dimensione e bilanciamento sono legati: un bilanciamento corretto richiede comunque una
quantità consistente di testi per ogni tipologia individuata, affichè le inferenze statistiche siano
affidabili.
IL WEB
L’uso del web come corpus rappresenta una delle evoluzioni più significative della LC.
Vantaggi → il web è la più grande collezione di testi esistente. Tutto il materiale è già disponibile in
formato elettronico, facilitando la raccolta automatica tramite programmi. Grazie alla sua estensione,
il web permette di trovare un numero sufficiente di attestazioni anche per parole, costruzioni o varianti
rare. Sebbene l’inglese sia la lingua predominante, il web ospita quantità enormi di testi in moltissime
lingue. È anche lo strumento ideale per monitorare l’evoluzione della lingua in tempo reale,
permettendo di individuare neologismi, nuovi sensi delle parole ed errori ortografici comuni utili per
applicazioni come i correttori automatici.
Limiti →il web non è un campione rappresentativo di una lingua nel suo complesso, ma riflette se
stesso e le proprie dinamiche interne. Molte varietà linguistiche non trovano spazio: una lingua parlata
è quasi del tutto assente, a favore di una specifica lingua del web con tratti lessicali e sintattici
peculiari. I testi sul web sono dinamici e soggetti a sparire o a cambiare, rendendo difficile la stabilità
delle osservazioni nel tempo. L’uso diretto del web comporta l’acquisizione di una grande quantità di
informazioni non rilevanti o spurie che devono essere accuratamente filtrare per non inquinare i
risultati delle analisi.
Per cui il web non sostituirà i corpora tradizionali, ma li affiancherà come risorsa complementare.
CAPITOLO 2
L’operazione di codifica si articola logicamente su due livelli fondamentali
1. La codifica di livello zero (dei caratteri)
- ASCII → è il set di caratteri più diffuso, ma limitato a 128 codici che coprono l’alfabeto
anglosassone e i segni di base
- ISO-Latin-1 → estende ASCII a 256 codici per includere i caratteri delle lingue europee
occidentali, ma appartiene a una famiglia di codifiche mutuamente esclusive che non
permettono di mescolare alfabeti diversi nello stesso testo
- Unicode → è lo standard universale che assegna a un punto di codice distinto a ogni carattere
di quasi tutti i sistemi di scrittura conosciuti. La sua modalità di codifica più comune, UTF-8, è
a lunghezza variabile e mantiene la totale compatibilità con ASCII
2. La codifica di livello alto
Questo livello trasforma il dato testuale grezzo in una vera fonte di informazione linguistica. Il principio
cardine è l’equazione informazione=dati+struttura. I dati acquistano significato solo se inseriti in uno
schema che ne rende espliciti i rapporti.
Occorre definire:
- Cosa codificare → si stabilisce uno schema di codifica che seleziona i tratti linguistici rilevanti,
come le categorie grammaticali o le strutture sintattiche, e le regole per assegnarli
- Come codificare → vengono analizzati diversi formati digitali. Mentre il “solo testo” è portatile
ma poco espressivo e i formati proprietari (come .doc o .pdf) sono troppo legati a programmi
specifici, la soluzione ottimale è rappresentata dai linguaggi di marcatura (come XLM). Questi
linguaggi usano etichette (tag) inserite nel file per marcare porzioni di testo e associarvi
un’interpretazione strutturale o linguistica
CAPITOLO 4
LA TOKENIZZAZIONE
È il processo di segmentazione del testo in unità di base chiamate token, che includono parole,
numeri, sigle e segni di punteggiatura.
È un’operazione sul testo in formato digitale, che ci permette di segmentarlo in parti più piccole che
possiamo, in un secondo momento, analizzare, contare e di cui possiamo osservare la distribuzione.
Quando dobbiamo operare su un testo tramite un computer, quindi quando abbiamo una grande
quantità di dati testuali che vogliamo analizzare, dobbiamo trovare un modo per immagazzinare in un
file digitale, non solo il testo nella sua forma non analizzata, ma anche i segmenti che ci interessa
individuare e analizzare per le nostre analisi.
Un'occorrenza, o token, è ogni singola unità di base base di cui è composto un testo. Comunemente,
diremmo che un testo è composto di parole; ecco, un token, come abbiamo già visto, può
corrispondere in linea di massima a una parola, ma la corrispondenza non è sempre perfetta,
biunivoca: di solito quando utilizziamo uno strumento di tokenizzazione individuiamo le "parole
grafiche", ovvero sequenze di caratteri riconosciuti come caratteri di parola (come le lettere
dell'alfabeto o i numeri arabi) delimitati da altri caratteri non riconosciuti come caratteri di parola,
come spazi, segni di punteggiatura o di fine riga. Questi token, quindi, non corrispondono sempre
perfettamente alle "parole", perché in alcuni casi potremmo avere parole composte da più elementi
separati da uno spazio o un segno di punteggiatura (pensate alle città di New York o L'Aquila) o forme
grafiche che combinano più parole in una (come succede con i clitici dell'italiano... ma non solo).
Quando parliamo di types, invece, ci riferiamo a unità astratte, sequenze di caratteri che
riconosciamo e che possono ricorrere più volte all'interno di un testo. Ogni tipo, o type, potrà quindi
realizzarsi una o più volte all'interno di un testo di un corpus: a ogni type univoco, in sostanza,
corrispondono una o più occorrenze.
L’esempio prototipico della tokenizzazione è la divisione in parole e, salvo casi eccezionali in cui viene
esplicitato che quando parliamo di tokenizzazione parliamo di segmentare un testo in parole. In
termini informatici, rappresenta segmentare la stringa continua rappresentata dal testo in una serie di
stringhe più corte, che rappresentano tanti altri campi di memoria, unità di informazione.
Un token è identificato in base a caratteristiche superficiali della codifica (livello zero), a differenza
della parola, che richiede criteri morfologici o semantici. Ad esempio, “darglielo” è un unico toke, ma
linguisticamente composto da tre unità.
La tokenizzazione richiede di gestire la variabilità linguistica e le convenzioni ortografiche. Le sfide
principali includono:
- Punteggiatura → un segno come il punto è ambiguo: può indicare la fine di una frase,
un’abbreviazione o parte di un acronimo
- Maiuscole e minuscole → il computer distingue queste due. È necessaria però una
normalizzazione intelligente per capire quando la maiuscola è puramente ortografica o
distintiva, come per i nomi propri.
- Acronimi e abbreviazioni → costituiscono classi aperte e produttive che richiedono dizionari e
regole euristiche per essere riconosciuti correttamente
- Token graficamente complessi → include nomi propri composti, espressioni multilessicali e
strutture alfanumeriche come date o prezzi
ESPRESSIONI REGOLARI
Sono una notazione algebrica usata per definire in modo formale e rigoroso degli schemi (pattern)
di stringhe di caratteri. Sono lo strumento ideale per formalizzare le regole di tokenizzazione e per
effettuare ricerche avanzate nei testi. Le regular expressions, o espressioni regolari, sono stringhe
di ricerca variabile, ovvero sequenze di caratteri con funzioni particolari che permettono di cercare
insiemi di stringhe sulla base di una serie di criteri.
Una regular expression è una funzione che descrive uno schema astratto a cui possono
corrispondere più stringhe. Anche una regular expression è una stringa, per cui occorre fare
attenzione a ricordarsi che alcuni caratteri hanno funzioni specifiche nelle regular expressions,
mentre altri sono presi letteralmente.
Usando la notazione di Perl:
- Classi di caratteri → [la] (l o a), [a-z] (intervallo di minuscole), [^la] (qualsiasi carattere eccetto
l o a)
- Caratteri speciali → \d (cifre), \w (alfanumerici), \s (spazi), . (carattere jolly)
- Operatori di alternativa e quantificazione → | (o), ? (zero o una volta), * (zero o più), + (una o
più). I quantificatori possono essere "ingordi" (greedy) o "pigri" (lazy)
- Ancore → ^ (inizio riga), $ (fine riga), \b (confine di token)
- Raggruppamento e sostituzione → L'uso delle parentesi () permette di raggruppare sotto-
pattern e memorizzarli in registri per sostituzioni testuali complesse (s/regex/nuova_stringa/)
Analizzare il linguaggio con le espressioni regolari
Le regular expresion permettono di tradurre le conoscenze linguistiche in regole eseguibili dal
computer.
- Disambiguazione → è possibile scrivere ER per identificare quando un punto segna la fine di
una frase basandosi sul contesto
- Mini grammatiche → si possono creare regole per riconoscere date, indirizzi o acronimi
- Modellizzazione linguistica → le ER possono modellare regole morfologiche o semplici
strutture sintattiche come i sintagmi nominali.
Ad es., ipotizziamo di voler cercare tutte le parole che iniziano per "mang" (potenzialmente, per
cercare tutte le forme del verbo "mangiare", ma con possibili "falsi positivi", come "mango"). Possiamo
usare la seguente regular expression: mang.+
Quando eseguiamo una query tramite una regular expression, il software interpreta la stringa della
nostra espressione secondo una sintassi stabilita: i caratteri alfabetici vengono interpretati
letteralmente, per cui il motore di ricerca del corpus cercherà nei suoi testi tutte le concatenazioni di
"m", "a", "n" e "g" (a seconda dello strumento usato, possiamo anche filtrare i risultati in base all'esatta
corrispondenza di maiuscole e minuscole). Dopo questi caratteri interpretati letteralmente, ci sono
due simboli che, nella sintassi delle regular expressions, hanno una funzione particolare:
. (punto): sostituisce un qualsiasi carattere (alfabetico, numero, punteggiatura etc.)
+ (più): è un quantificatore. Richiede che il carattere immediatamente precedente sia presente una o
più volte.
Per cui, la sequenza di simboli ".+", nelle regular expressions, significa: "cerca una sequenza qualsiasi
di caratteri, di lunghezza qualsiasi da uno a infinito". La regular expression completa "mang.+"
permetterà quindi di cercare tutte le stringhe che iniziano per "mang" e sono seguite da almeno un
carattere (qualsiasi). Le regular expressions sono utilizzate in informatica in vari modi. Il text mining
(ovvero l'esplorazione quantitativa di dati in formato testo) si basa sull'uso delle regular expressions
per molte operazioni di estrazione di informazioni (information extraction).
Classi di caratteri (base)
. qualsiasi carattere
[a-z] lettere minuscole
[A-Z] lettere maiuscole
[0-9] numeri
[^a] tutti i caratteri tranne "a"
Il simbolo . (punto) ha la funzione di sostituire un qualsiasi carattere. Nella sintassi delle regular
expressions, simboli come questo permettono di individuare una classe di caratteri. Per classe di
caratteri si intende un possibile raggruppamento di simboli di cui può essere composta una stringa; ad
es. caratteri alfabetici latini, caratteri numerici, punteggiatura, caratteri dell'alfabeto arabo etc.
Le parentesi quadre permettono di creare raggruppamenti ad hoc: all'interno delle parentesi quadre
possiamo inserire tutti i possibili caratteri
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.