Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli

Riassunti libro testo e computer, Sintesi del corso di Elementi di Informatica

I riassunti del libro testo e computer di A. Lenci, S. Montemagni e V. Pirrelli

Tipologia: Sintesi del corso

2019/2020

Caricato il 19/05/2020

maryna1992
maryna1992 🇮🇹

4.3

(13)

3 documenti

1 / 27

Toggle sidebar

Spesso scaricati insieme


Documenti correlati


Anteprima parziale del testo

Scarica Riassunti libro testo e computer e più Sintesi del corso in PDF di Elementi di Informatica solo su Docsity! LIBRO: Testo e Computer di A. Lenci, S. Montemagni e V. Pirrelli 0. Introduzione Il linguaggio umano è lo strumento primario più immediato e duttile di cui disponiamo per comunicare contenuti complessi sempre nuovi. Il computer si è imposto come la macchina intelligente per eccellenza, capace di memorizzare ed elaborare dati strutturati e renderli disponibili come informazioni. Tuttavia, le sue capacità comunicative sono rimaste rudimentali, affidate a linguaggi artificiali ad hoc. La linguistica computazionale si propone di sviluppare modelli computazionali della lingua, che possano essere tradotti in programmi eseguibili dalla macchina, che consentano a quest’ultima di comunicare direttamente nella nostra lingua; allo stesso tempo, si occupa anche dell’applicazione della matematica e dell’informatica allo studio del linguaggio umano e dei testi. Allo stato attuale, questo obbiettivo può essere perseguito a più livelli di astrazione: riconoscitore vocale-trascrizione ortografica-analisi del contenuto, ecc. Ciascuno di questi compiti richiede l’acquisizione di competenze specifiche da tradurre in tecnologie linguistiche accessibili al computer. La capacità di comunicare con l’ambiente esterno in modo intelligente passa attraverso l’integrazione di queste tecnologie in sistemi funzionalmente complessi, che interpretino l’informazione in ingresso e rispondano con altra informazione pertinente. Il Natural Language Processing (NLP) o Trattaento Automatico del Linguaggio (TAL) cerca di dotare il computer di conoscenze linguistiche allo scopo di progettare programmi e sistemi informatici che assistano l’uomo in “compiti linguistici” (traduzione, gestione testi, interazioni con esseri umani, estrazione automatica di informazioni, ecc.) Viviamo in quella che è definita la società della conoscenza, dove chiunque si trova nella necessità quotidiana di recuperare, selezionare e gestire grandi quantità di informazioni dal web: la LC promette di espandere la capacità del computer di comprendere la struttura e il contenuto dei nostri testi, per far sì che le informazioni siano a tutti più facilmente accessibili e le parti rilevanti siano distinte da quelle inutili. La prospettiva parallela è quella secondo cui il mondo computazionale può contribuire nell’indagine linguistica, definendo modelli che spieghino proprietà e problemi linguistici interessanti, attraverso l’ausilio del computer. Queste due direzioni del rapporto fra linguaggio e computer sono in continua osmosi: programmi applicativi sono stati sviluppati grazie a una più profonda comprensione del linguaggio, metodi informatici nati per scopi autonomi si sono rivelati utili per innovare le metodologie di rappresentazione e le analisi linguistiche. Negli anni ’50 si hanno le prime applicazioni del calcolatore allo studio di testi filosofici e letterari, con il lavoro di padre Roberto Busa a Pisa. Nel 1957 nasce la Grammatica Generativa di Noam Chomsky, con la quale si ha l’applicazione di metodi formali all’analisi del linguaggio; questo tipo di analisi è profondamente intrecciato con le ricerche nel settore dell’Intelligenza Artificiale, e all’interno di questa tradizione si sviluppa il NLP. Nei primi decenni, questo è stato fortemente influenzato dalla metodologia razionalista e simbolica dell’epoca, per cui il modello più influente della conoscenza umana era quello di un sistema di regole per la manipolazione di strutture di simboli. Parallelamente, a metà degli anni ’60, si è sviluppata una tradizione di ricerca linguistica di derivazione empirista, che fonda l’indagine sulla raccolta e l’analisi di corpora, ovvero raccolte di grandi quantità di testi appartenenti a una certa varietà del linguaggio, con strumenti di analisi quantitativa e statistica. La LC di ispirazione razionalista e quella empirista hanno proceduto in maniera parallela per molti anni, ma dalla seconda metà degli anni ’80 si ha un netto prevalere di un approccio neoempirista al NLP; questo cambiamento si è concretizzato nella diffusione di metodi statistico-quantitativi e nella rinnovata centralità dei dati testuali come base essenziale per l’esplorazione del linguaggio. lOMoARcPSD|2650267 Parte 1 – Il Dato e la sua Rappresentazione 1. I Dati della Lingua Per “dati linguistici” si intende i prodotti del linguaggio che sono oggetto di un processo di analisi (in questo caso computazionale) e che formano l’evidenza empirica per lo sviluppo di modelli e teorie linguistiche. Un linguista computazionale deve innanzitutto saper selezionare e raccogliere dati linguistici appropriati, per poi analizzarli secondo metodi formali (matematici, logici, statistici, ecc.) e tramite strumenti informatici, così da ricostruire l’organizzazione e la struttura del linguaggio. Un dei problemi fondamentali in questo campo è l’individuazione delle corrette fonti da cui attingere i dati per le proprie analisi. Esistono due tipi di fonti principali, che si distinguono per la naturalezza del contesto in cui sono racolte: -le intuizioni linguistiche sono dette dati linguistici controllati, nel senso che sono raccolti in un contesto “sperimentale” ed in situazioni “idealizzate”; questo tipo di dati è la fonte primaria per la linguistica formale “razionalista” di derivazione chomskiana e per la psicolinguistica, il cui obiettivo è ricostruire le conoscenze che i parlanti hanno della lingua (competenza) indipendentemente dal modo in cui la usano (esecuzione). Questo tipo di dati presenta però dei limiti in quanto le intuizioni dei parlanti non sono sempre chiare, si ha un eccessivo grado di astrazione rispetto all’uso effettivo del linguaggio e inoltre si presentano difficoltà nel gestire testi reali che contengono un altro grado di rumore (errori di vario tipo, forme substandard, ecc.) -i testi dei parlanti sono detti dati linguistici ecologici e rappresentano l’habitat naturale dei dati linguistici, che in questo caso conservano tutta la propria naturalezza; solitamente i testi vengono raccolti in un corpus, ovvero una collezione di testi organizzati in maniera tale da soddisfare specifici criteri che li rendono funzionali per le analisi linguistiche. I corpora rappresentano fonti di dati linguistici ecologici raccolti nei loro habitat naturali, che possono riguardare lingua scritta (libri, giornali, riviste, pagine Web, ecc.) o lingua parlata trascritta (notiziari, conversazioni telefoniche, ecc.). I corpora testuali rappresentano la principale fonte di dati in linguistica computazionale. Per quanto la nozione di corpus preceda l’avvento del computer (la raccolta di testi era già la prassi comune nello studio del linguaggio), è con l’era informatica che viene rivoluzionata la natura, il ruolo e l’uso dei corpora: il computer permette di immagazzinare quantità di dati testuali prima inimmaginabili, ottimizzando la loro esplorazione e la ricerca di dati linguistici interessanti, per poi sviluppare modelli computazionali della lingua. Il ruolo del computer nell’uso dei corpora è così cruciale che ormai il termine di corpus è diventato sinonimo di corpus elettronico, ovvero corpus in formato digitale (machine-readable). Fra i principali usi dei corpora ci si sofferma su quello applicativo, tipico del NLP e dell’ingegneria del linguaggio, utilizzato per progettare strumenti (“robusti” e ben adattati al linguaggio reale, dotati di conoscenze linguistiche ricavate da dati rappresentativi) e quello analitico utilizzato per fondare analisi linguistiche sull’effettiva distribuzione delle costruzioni all’interno del linguaggio. Ogni corpus è il risultato di un’opera di selezione, basata su criteri che determinano la natura stessa del corpus e condizionano lo spettro dei suoi usi possibili; i parametri più rilevanti sono: -la Generalità riguarda la misura in cui i suoi testi sono stati selezionati in maniera trasversale rispetto a varietà diverse di una lingua: si distinguono corpora specialistici (verticali) orientati alla descrizione di una particolare varietà del linguaggio o a un ristretto dominio applicativo (giornalistico, infantile, giuridico, ecc.) e corpora generali orientati alla rappresentazione di tutti gli aspetti di un linguaggio L, plurifunzionali. -la Modalità riguarda il modo in cui i testi sono prodotti (scritto o orale): si distinguono corpus di scritto, corpus di parlato (trascrizioni), corpora misti (testi scritti e trascrizioni), speech database (campioni di linguaggio in forma di segnale acustico, più eventualmente la trascrizione) e corpora multimediali (testi scritti, video, parlato, ecc.) -la Cronologia riguarda il modo in cui i testi sono selezionati rispetto all’asse temporale: si distinguono corpora sincronici che descrivono un particolare stadio del linguaggio, e corpora diacronici che descrivono il mutamento linguistico di una lingua in diverse finestre temporali Il corpus come campione lOMoARcPSD|2650267 La codifica di livello 0 Questo tipo di codifica fornisce un file “plain text” (.txt), ovvero un file di solo testo composto da una sequenza di bytes associati a ciascun carattere del testo. Un carattere è definito come un’entità astratta distinta dalle sue possibili rappresentazioni grafiche (glifi= p, P, p, p). Un set di caratteri è una tabella di associazioni biunivoche tra gli elementi di un repertorio di caratteri e codici numerici (detti punti di codice). Ciascun punto di codice è rappresentato come una sequenza di bit, e la modalità di rappresentazione viene chiamata codifica di carattere. Le associazioni fra caratteri e codici sono del tutto convenzionali, ma la necessità di produrre testi in formato digitale ha portato alla definizione di set di caratteri standard. I vantaggi della codifica di livello 0 sono la massima portabilità e intercambiabilità dei testi, e il fatto che essi siano un formato “aperto”, indipendente dal sistema operativo e dal programma che lo ha creato. Dall’altro lato, però si ha solo una minima espressività, nel senso che il “plain text” non può da solo rappresentare aspetti relativi alla codifica di alto livello. Il più noto e diffuso set di caratteri è ASCII, che è il primo codice standard per la rappresentazione binaria dei caratteri sufficienti per rappresentare l’inglese, anche se mancano caratteri accentati e altri caratteri per rappresentare altri alfabeti occidentali. Esiste un’estensione standard di ASCII, chiamata ISO-Latin-1, che arriva a rappresentare 256 caratteri, ed è sufficiente per le lingue europee occidentali. Un altro e più recente standard per la codifica di caratteri è Unicode, che rappresenta la soluzione ai limiti di ASCII, essendo un set di caratteri universale, che permette di codificare testi contenenti caratteri praticamente di ogni sistema di scrittura conosciuta. La codifica di alto livello Questo tipo di codifica permette di esplicitare l’interpretazione del testo, specificando informazioni che caratterizzano la struttura, il contenuto, la natura linguistica, ecc. di un testo. I livelli di interpretazione, infatti, sono vari: tipografica, extratestuale, linguistica, ecc. In breve, la codifica di alto livello permette di rendere machine readable informazioni sul testo e tratti del testo, che altrimenti non sarebbero elaboratili dal computer. Il testo è quindi trasformato in una fonte di informazione linguistica, e da qui si delinea un’opposizione molto importante in linguistica computazionale: dato vs. informazione. I dati di per sé non hanno un significato intrinseco, a meno che non siano inseriti in uno schema che li organizza e li trasforma in informazione (il numero 56.100 costituisce un dato, e diventa informazione nel momento in cui viene inserito in un contesto interpretativo, ad esempio se è interpretato come il CAP di Pisa). Un dato si carica di significato nel momento in cui viene legato ad un contesto, inquadrandosi in uno schema di rapporti: informazione=dato+struttura. Il testo come flusso di caratteri è una fonte di dati linguistici che sono correlati secondo piani di organizzazione multipli: struttura del testo (sezioni, capitoli, paragrafi, ecc.), struttura del contesto (autore, data, finalità, ecc.) e struttura linguistica (morfologia, sintassi, semantica, ecc.) La codifica di alto livello avviene con linguaggi di mark-up (di marcatura), fra i quali vale la pena menzionare XML (eXtensible Mark-up Language). Dal punto di vista del formato, un testo codificato con un linguaggio di marcatura è ancora un file solo testo; l’informazione strutturale è rappresentata attraverso l’aggiunta al testo di etichette (o tag) di marcatura, immesse dentro il file per “marcare” i blocchi a cui viene assegnata una determinata interpretazione. Il vantaggio di questo tipo di codifica sta nell’abbinare alla portabilità e all’intercambiabilità anche un massimo grado di espressività. ASCII ISO-Latin-1 lOMoARcPSD|2650267 UNICODE lOMoARcPSD|2650267 Parte 2 - Metodi e Tecniche di Analisi Testuale 4. Dal Bit alla Parola Le parole sono unità linguistiche e di contenuto, che devono essere riconosciute a partire dalla sequenza di cifre binarie che le costituiscono. Per far sì che questo sia possibile, si deve dotare il computer di una serie di conoscenze sulla struttura e sulle convenzioni della lingua, in modo da appianare le differenze fra l’organizzazione fisica (come il computer vede il testo) e l’organizzazione logica, che non sono direttamente compatibili. La preparazione del testo è un processo che richiede varie fasi, perché i testi digitali possono contenere varie forme di rumore (errori di conversione, digitalizzazione, ecc.) e alcuni aspetti legati alla sua fruizione umana possono ostacolarne l’elaborazione computazionale (convenzioni ortografiche). Si opera una serie di elaborazioni preliminari attraverso le quali il testo viene preparato per l’analisi computazionale: -il Text Cleaning: i testi per le analisi computazionali sono sempre più scaricati dal Web, per cui contengono codici in formato testo che devono essere rimossi per isolare il contenuto testuale (tabelle, didascalie, intestazioni, materiale ripetuto, mark-up HTML, JavaScript, ecc.) -la Verifica dei Caratteri del Testo: si deve individuare il set di caratteri con cui è scritto il documento (ASCII, Unicode, ecc.), individuare il set di caratteri accettati dal programma con cui si deve elaborare il testo, verificare l’eventuale esistenza di caratteri non-standard e poi procedere alla conversione dei caratteri del testo per renderli compatibili con quelli richiesti dal software. -la Normalizzazione del Testo: l’elaborazione del testo è normalmente “case sensitive” (treno e Treno sono due parole diverse), e si va spesso incontro a delle ambiguità, come ad esempio nell’uso della maiuscola (nomi propri, inizio frase, titoli, enfasi, ecc.); trasformare le maiuscole in minuscole non è sempre la soluzione ottimale, perché ci sono casi in cui le maiuscole possono avere valore discriminativo e semantico (NATO vs. nato, USA vs. usa, ecc.) -la Tokenizzazione: è il passo preliminare di qualsiasi elaborazione computazionale, e consiste nel dividere le sequenze di caratteri in unità minime di analisi dette “token”. Quella dei token è una famiglia eterogenea che raggruppa oltre alle parole ortografiche tradizionali, anche numeri, sigle, punteggiatura, nomi propri, ecc. I token possono essere anche unità strutturalmente complesse (es. date), ma sono comunque assunte come unità di base per i successivi livelli di elaborazione. I criteri per la tokenizzazione La variabilità linguistica, che riguarda le diverse convenzioni ortografiche che vengono adottate a seconda del tipo di testo, incide enormemente sulla complessità della segmentazione del testo. Nelle lingue non segmentate (cinese, giapponese, ecc.) la tokenizzazione richiede l’analisi lessicale (word segmentation), ma porta a galla numerose ambiguità. Nelle lingue segmentate, la tokenizzazione si basa su un misto di criteri ortografici e linguistici (superficiali), che prescindono da qualsiasi forma di analisi morfologica o sintattica; anche in queste lingue non esiste un rapporto 1-1 fra token e sequenze di caratteri delimitate da spazi, è necessario invece tener conto delle convenzioni grafiche e dell’organizzazione lessicale della lingua. La tokenizzazione è un processo che va incontro a numerose ambiguità: i segni di punteggiatura compaiono attaccati alla parola che li precede o a quella che li segue, ma devono essere considerati come token indipendenti, e in fase di tokenizzazione devono essere separati dalla parola a cui si accompagnano; si incontrano complicazioni quando l’uso di un particolare segno può avere funzioni molteplici (l’apice ‘ come apostrofo, accento o virgoletta). Anche il punto presenta usi molteplici: punti di fine frase devono essere considerati come token a sé, mentre punti usati per abbreviazioni, acronimi, date, indirizzi Web, devono essere considerati come parte integrante dell’elemento che accompagnano. Esistono anche sequenze di caratteri separate da spazi che possono formare un solo token, come nomi propri composti (New York), espressioni polirematiche (al di là), date e ore, prezzi, ecc. Per riassumere, le fasi necessarie per una corretta tokenizzazione sono: stabilire i criteri di identificazione delle unità di analisi (Le date sono token? Gli indirizzi formano un token unico?), tenere in considerazione che il risultato dipenderà in gran misura dal linguaggio e dal sistema grafico del testo, ovvero da variazioni che si presentano fra più lingue o all’interno di una lingua stessa (modi di scrivere numeri: 123.345 o 123,345; diverse strategie nella creazione di composti lOMoARcPSD|2650267 e diversità nelle dinamiche linguistiche : l’uomo=l’+uomo, doesn’t=does+n’t, ecc), e fare attenzione allo spazio di variabilità delle convenzioni ortografiche (database, data-base, data base, ecc.) La tokenizzazione avviene tramite i cosiddetti tokenizzatori, ovvero moduli software per la preparazione e tokenizzazione del testo tramite mini-grammatiche che specificano le forme in cui possono comparire i token, i quali possono anche essere supportati da elenchi e glossari contenenti le espressioni più comuni (ad esempio per individuare acronimi, nomi propri, abbreviazioni, ecc.) I tokenizzatori si basano generalmente su espressioni regolari, implementate in Perl, Python, ecc. 5. Parole e Numeri lOMoARcPSD|2650267 L’approccio statistico allo studio del testo ha ottenuto risultati di rilievo in ambiti scientifici relativamente distanti come la sociolinguistica, la psicolinguistica e l’ingegneria del linguaggio. Questo tipo di approccio ci consente, ad esempio, di quantificare la ricchezza lessicale di un testo contando il numero di parole diverse che l’autore ha usato rispetto al numero totale di parole, oppure stabilire quali sono le parole d’uso più frequente e quanta informazione ci forniscono riguardo al contenuto del testo stesso. Una popolazione statistica di riferimento è l’insieme di individui o unità statistiche che rappresentano il dominio di interesse e di ricerca; queste unità possono presentare attributi o variabili, che non sempre assumono valori (modalità) quantitativi, ma anche qualitativi (Un esempio: Popolazione=l’Università, Unità Statistiche=gli studenti, attributi=età, reddito, provenienza, sesso, ecc.) Le variabili sono di tipo diverso a seconda del tipo di valore che ammettono: nominali (o categoriali) sono quelle che hanno un numero finito di valori che definiscono classi a cui appartengono le unità statistiche, che quindi sono prive di un qualsiasi ordinamento (sesso, provenienza, ecc.), ordinali sono quelle che hanno valori che permettono di confrontare le unità statistiche ordinandole lungo una scala (voti degli esami, ecc.), intervallo (o ratio) sono quelle che hanno valori che permettono di stabilire relazioni di ordinamento e di comparare differenze e rapporti fra valori (altezza, lunghezza, ecc.) Le unità statistiche differiscono per uno o più valori nelle variabili, e la rilevazione del valore delle variabili fornisce i dati a partire dai quali si cerca di acquisire conoscenza sulla popolazione; la selezione deve essere effettuata su un campione il più possibile rappresentativo della popolazione, che sia in grado di riprodurne, in scala, le caratteristiche più rilevanti. I dati raccolti vengono poi riassunti attraverso le distribuzioni di frequenza: per ogni modalità x viene specificato quante unità nel campione hanno x. FREQUENZA Per quanto riguarda la linguistica, una popolazione linguistica sarà il linguaggio oggetto di studio, il campione sarà un corpus di testi della popolazione linguistica, e le unità statistiche saranno le parole (ma anche altre unità come morfemi, sintagmi, frasi, ecc.) Ogni token rappresenta una distinta occorrenza di una parola (sottoinsieme dei token) nel testo, quindi le parole token sono le unità statistiche. Le parole unità sono caratterizzate da attributi (tipicamente di natura categoriale) come il tipo, il lemma, la categoria grammaticale, la lunghezza in caratteri ecc. Questi attributi formano le variabili statistiche da rilevare, e di essi si possono calcolare le varie frequenze: dato un attributo, si può contare quante parole unità ricorrono con un certo valore v dell’attributo, calcolando quindi la frequenza (assoluta) di v. Un attributo molto importante è il tipo, il quale introduce un livello di astrazione dai dati osservabili, che non vengono più analizzati come unità distinte, ma come classi di unità; con tipo si intende tutti i token che sono formalmente indistinguibili a prescindere dalla posizione che occupano nel testo (La porta è chiusa/La strada porta al mare). lOMoARcPSD|2650267 Distribuzione di frequenze Il comportamento di un insieme di unità osservabili può essere analizzato guardando come esse si distribuiscono rispetto ai valori di uno o più attributi specifici. La frequenza (assoluta) di una testo e per riuscire anche a prevedere la loro distribuzione finale a partire da un’osservazione parziale di dati. Studiamo quindi l’andamento della crescita lessicale all’aumentare del testo: come aumenta |VC| all’aumentare di |C|. E’ utile rappresentare il testo come flusso di parole v1, v2,...,vi,..,vT indicizzateperposizione;ipedicisonointerpretaticomeistantitemporali:vièla parola che troviamo leggendo sequenzialmente il testo all’istante i. Chiamiamo poi VC(i) il vocabolario delle prime i parole di C, e rappresenta la grandezza del vocabolario usato nelle prime i parole del testo; grazie a questo tipo di valore possiamo individuare il tasso di crescita del vocabolario all’aumentare del corpus. Osservando la curva si capisce che il vocabolario di un corpus cresce in maniera non lineare, questo succede perché esistono parole che devono ripetersi più o meno regolarmente, così l’analisi sequenziale del corpus continua, ma il vocabolario non accresce quando si incontrano quelle parole che si erano già incontrate in precedenza. Tuttavia la curva non smette mai di crescere e non ha un asintoto orizzontale, poiché il fattore di crescita del vocabolario non si annulla mai del tutto, ma aumenta sempre più lentamente al crescere delle dimensioni del corpus; inoltre, quando il lessico include la punteggiatura, la crescita è leggermente più lenta. 6. Probabilità ed Entropia lOMoARcPSD|2650267 Un evento che accade in maniera imprevedibile, o prevedibile solo con un margine di incertezza, è detto aleatorio; la probabilità di un evento aleatorio può essere definita come la misura del grado di incertezza del verificarsi dell’evento. La probabilità è dunque uno strumento quantitativo che ci consente di ragionare in una situazione di incertezza, facendo previsioni sul possibile verificarsi di un evento. I valori della probabilità possono variare tra 0 e 1. La definizione di probabilità passa attraverso la descrizione di un esperimento aleatorio (il cui esito non può essere previsto con certezza) e di tutti i suoi punti campione (esiti semplici mutuamente esclusivi); l’insieme dei punti campione è detto spazio campionario Ω. L’evento aleatorio è quindi un sottoinsieme dello spazio campione, ma esistono due tipi di eventi: eventi elementari definiti da un insieme che contiene un solo esito (es. probabilità che lanciando un dado esca 5), o eventi complessi definiti da un insieme che contiene più esiti (es. probabilità che lanciando un dado esca un num. pari). L’insieme di tutti gli eventi possibili a partire da uno spazio campionario Ω è detto spazio degli eventi di Ω. Dunque, la probabilità è una funzione P (distribuzione di probabilità) che assegna a ogni evento di Ω un numero reale compreso fra 0 e 1. Se tutti gli esiti semplici sono equamente probabili, allora la probabilità P(A) che si verifichi un evento A è definita come P(A)=|A|/|Ω|. Definizione frequentista Questo modo di definire la probabilità, però, è appropriato solo se gli esiti di Ω sono tutti equiprobabili; per quantificare la probabilità di un evento nel caso in ci non si possa assumere a priori che la distribuzione di probabilità sia uniforme, si deve introdurre una definizione frequentista di probabilità: possiamo approssimare la probabilità di un evento con la frequenza relativa del suo verificarsi in un certo numero di esperimenti. In questo caso la parola chiave è “approssimazione”: la definizione frequentista dice infatti che la probabilità di un evento A può essere stimata come il valore a cui tende la frequenza relativa di A al crescere del numero di esecuzioni dell’esperimento. La frequenza relativa ci fornisce una stima empirica della probabilità di A, per questo tale definizione di probabilità è detta a posteriori. Probabilità e linguaggio Interpretando i testi come il risultato di un processo o sistema probabilistico, il linguista può usare un corpus come campione di testi su cui analizzare la distribuzione delle parole e, a partire da questa evidenza, elaborare un modello probabilistico della lingua del corpus. Per stimare queste probabilità linguistiche, si devono integrare informazioni sul modo in cui si distribuiscono le strutture del linguaggio (es. distinguere fra parole esistenti o meno, sapere quando ricorrono determinate categorie morfosintattiche, capire le corrispondenze di ricorrenza fra determinate parole, ecc.) Un modello statistico (probabilistico) di un evento è un modello matematico che determina la probabilità del verificarsi di tale evento; le statistiche vengono estratte da un campione di dati, e vengono usate per stimare la probabilità di nuovi eventi. La stima dei parametri del modello probabilistico viene attuata su un training corpus ovvero un corpus di addestramento, con un approccio induttivo ed empirico, per essere poi eventualmente utilizzata su altri test corpus, ovvero corpora su cui si testano i modelli statistici. lOMoARcPSD|2650267 Per stimare la probabilità di estrarre una parola v a caso in un corpus C, ci si attiene alla definizione frequentista di probabilità: il corpus è usato come oggetto di un esperimento composto di n selezioni di parole, tali che il numero di esperimenti n è uguale a |C|. Per ogni token t del corpus, si verifica se t è di tipo v oppure no (calcoliamo la frequenza di v). Si conclude dicendo che la frequenza relativa di una parola v in C permette di stimare la sua probabilità: P(v) = fv/|C|. La stima frequentista della probabilità viene anche chiamata Maximum Likelihood Estimation dei parametri di un modello probabilistico; la MLE è la funzione di assegnazione di probabilità che assegna la probabilità più alta agli eventi osservati nel training corpus. I dati estratti da un corpus, però, non sono sufficienti per creare modelli probabilistici accurati del linguaggio: poiché un corpus non esaurisce tutto il vocabolario di una lingua, la MLE sovrastima la probabilità delle parole nel corpus, senza lasciare nessuna porzione di probabilità alle parole non viste (se una parola ha frequenza relativa 0, la sua probabilità è 0). Assiomi e somme di probabilità Ogni funzione di probabilità P, per essere tale deve soddisfare i seguenti assiomi: - P(A)≥0 per ogni A (la probabilità è sempre un numero positivo) - P(A∪B)=P(A)+P(B) se A∩B=∅ (regola della somma o unione) - P(Ω)=1 (certezza) Stimare una probabilità di un’unione di eventi disgiunti, equivale a sommare le probabilità di tali eventi: Più complicato è invece stimare la probabilità di eventi congiunti P(A∩B) o P(A,B) come prodotto delle probabilità dei due eventi, che possono essere indipendenti (il verificarsi di uno non condiziona il verificarsi dell’altro) o dipendenti (il verificarsi di uno condiziona il verificarsi dell’altro). ! Volendo applicare questa regola nell’estrazione di parole a caso in un corpus, bisogna assumere che la probabilità di estrarre una determinata parola sia indipendente dalla probabilità di estrarne un’altra (es. la probabilità di estrarre un nome viene considerata indipendente dalla probabilità di estrarre un articolo). lOMoARcPSD|2650267 Consideriamo di voler estrarre una sequenza di due parole consecutive da un testo, ovvero un bigramma (n-gramma = sequenza di n parole): la probabilità di estrarre un bigramma <Art, N>. La probabilità di estrarre una parola v2 (consecutiva a v1) non è indipendente dalla probabilità di estrarre v1, poiché nel linguaggio influiscono dipendenze sintattiche, semantiche, ecc. determinate dalla grammatica (gli articoli tendono ad essere seguiti da nomi). Il numero di bigrammi in un corpus è uguale al numero di token presenti in esso, se aggiungiamo dopo l’ultimo token un “segnaposto $” di fine testo. Probabilità condizionata La probabilità condizionata P(A|B) è la probabilità del verificarsi di A dato che sappiamo essere accaduto B; se i due eventi sono dipendenti, l’accadimento di B altera la probabilità da assegnare ad A. Supponendo di estrarre da un corpus un bigramma <v1, v2>, si deve calcolare la probabilità P (v1| v2), ovvero la probabilità di v1 dato che sappiamo essere accaduto v2: Notiamo che la probabilità di estrarre un nome dato che è stato estratto un articolo è molto più alta della probabilità di estrarre un nome indipendente nel corpus, perché il rapporto di dipendenza fra nome e articolo è molto forte. Dato che P(N|Art) = fArt, N/fArt, possiamo dividere numeratore e denominatore per |C|, esprimendo la probabilità condizionata come rapporto fra frequenze relative, ovvero fra probabilità di eventi: Notiamo che P(N|Art) è stato espresso come il rapporto fra la probabilità di eventi congiunti “estrarre un articolo e poi un nome” P(Art, N), e la probabilità dell’evento “estrarre un articolo” P(Art). lOMoARcPSD|2650267 Per stimare la probabilità congiunta di eventi dipendenti fra loro, bisogna passare attraverso la probabilità condizionata, con la regola del prodotto sopra citata: La probabilità congiunta di estrarre un articolo e un nome P(Art, N) è uguale alla probabilità di estrarre un articolo P(Art) moltiplicato per la probabilità dell’evento condizionato P(N|Art); in altre parole è uguale alla frequenza relativa degli articoli, moltiplicato la frequenza assoluta del bigramma Art, N fratto la frequenza assoluta degli articoli. Un altro processo di cui la LC si occupa è il Language modelling (word prediction), che si occupa di individuare sistemi di predizione di una determinata parola che segue una sequenza di parole: data una sequenza w1, w2, ..., wn-1, qual è la parola wn che segue la sequenza? Determinare quella parola equivale a trovare la parola w che massimizza la probabilità condizionata P(w| w1, w2, ..., wn-1), ovvero trovare la parola w per cui la probabilità acquisisce valore maggiore. Per fare ciò si utilizzano modelli a n-grammi, i quali assegnano una distribuzione di probabilità a sequenze di parole. La regola del prodotto può essere generalizzata per calcolare la probabilità di n eventi congiunti, tramite la regola della chain rule: Finchè ci si limita a stimare la probabilità di sequenze di caratteri, parole o frasi non troppo lunghe non si hanno grossi problemi, ma quando le stringhe iniziano ad aumentare in lunghezza, è difficile stimare probabilità condizionate; con stringhe molto ampie bisogna lavorare con trigrammi, quadrigrammi, ecc. Si deve anche fare i conti con la sparsità di dati in un testo, come ad esempio il numero elevatissimo di hapax presenti, che rischiano di assumere probabilità 0, il che implica che, se uno degli elementi della chain rule è 0, l’intera frase riceve probabilità 0; si deve quindi riuscire a distinguere fra frasi “rare” ma possibili, e frasi impossibili. Modelli di Markov La probabilità di generare una frase può essere espressa come una funzione della probabilità delle sue parole. I modelli markoviani o catene markoviane si distinguono proprio per il modo in cui è definita questa funzione: un modello di Markov di ordine n assume che ciascun evento Ei in una sequenza di eventi E1, ..., En dipenda solo da una finestra limitata di n eventi che lo precedono (gli n eventi che lo precedono rappresentano la sua storia). lOMoARcPSD|2650267 I modelli di Markov permettono di creare modelli probabilistici di sequenze linguistiche per le quali si assume che esista un particolare tipo di dipendenza fra gli elementi della sequenza; in un modello di Markov di ordine n la probabilità di una sequenza è calcolata come il prodotto di probabilità di n+1-grammi: Infine è importante menzionare la nozione di cross entropy, ovvero una misura che consente di valutare quanto bene un modello probabilistico approssima un certo processo stocastico. La cross entropy è il “costo” in bits di usare m come modello per descrivere un processo con distribuzione p. Più precisamente la cross entropy fra due distribuzioni di probabilità su uno stesso set di eventi misura la lunghezza media di bits necessari per identificare un evento estratto dal set se, invece della distribuzione di probabilità “reale” p, si utilizzasse una distribuzione di probabilità “innaturale” m. Siano m1,...,mn modelli stocastici di un linguaggio L, la cui distribuzione reale di probabilità è p, per stimare qual è il modello più corretto da utilizzare per L, si calcola H(L) approssimandola con l’entropia misurata su un corpus abbastanza ampio e rappresentativo di L, poi per ogni mi si calcola H(L, mi); il modello corretto mi è quello per il quale è minore lo scarto H(L, mi) - H(L). Generalmente non conosciamo la distribuzione “reale” p di un processo, dunque non possiamo calcolare direttamente H(L), ma possiamo approssimarla secondo il teorema di Shannon-McMillan-Breiman: ) lOMoARcPSD|2650267 7. Collocazioni e Misure Statistiche di Associazione Le parole hanno la capacità di combinarsi in espressioni sintatticamente complesse; tali capacità sono spesso determinate da tratti morfo-sintattici e semantici generali delle parole, in quanto membri di classi linguistiche astratte (nome, articolo, ecc.) L’analisi dei contesti linguistici (analisi distribuzionale) rivela le preferenze combinatorie delle parole. Esempio: Gianni ha visto un topolino grigio; un si combina a topolino in quanto la prima parola è un articolo e la seconda un nome. Questo tipo di legame è definito in termini di tratti generali condivisi da ampie classi di espressioni linguistiche che possono essere sostituite alle parole della frase per ottenere nuove frasi grammaticalmente e semanticamente coerenti: Gianni ha visto la mucca marrone. Esistono poi altri tipi di combinazioni lessicali che si basano su legami non riconducibili a classi linguistiche generali, che riguardano due o più forme lessicali specifiche (A notte fonda, in alta stagione, ecc.); queste sono note in letteratura come collocazioni, cioè sequenze di due o più parole caratterizzate da un forte legame di associazione reciproca, determinata dalla tendenza a ricorrere una accanto all’altra. All’interno di questa classe sono compresi argomenti o modificatori tipici (inseguire una macchina, mangiare un panino, ecc.), argomenti o modificatori idiosincratici (mangiare la polvere, sedare una rivolta, ecc.), costruzioni idiomatiche (tagliare la corda, voltare pagina, ecc.), costruzioni a verbo supporto (fare attenzione, prendere posto, ecc.), nomi propri composti (Stati Uniti d’America, ecc.) e termini tecnici (sistema operativo, regime alimentare, ecc.) Il concetto di collocazione come concetto empirico (senso ampio) riguarda combinazioni ricorrenti e predicibili di parole osservate nell’uso linguistico, ma in questo caso facciamo più attenzione al concetto teorico di collocazione (senso stretto), che riguarda espressioni polirematiche fortemente lessicalizzate, idiomatiche e idiosincratiche; “guidare una macchina” è una collocazione in senso ampio, ma non in senso stretto, mentre “tagliare la corda” è una collocazione che copre entrambi i sensi. I tratti peculiari delle collocazioni in senso stretto sono: elevata convenzionalità, perché le collocazioni sono tendenzialmente espressione di usi convenzionali e stereotipati, la ridotta composizionalità semantica, perché il significato di una collocazione non è sempre immediatamente ricavabile dalla composizione del significato delle parole che la compongono (gatta morta ≠ gatta+morta), e la forte rigidità strutturale, perché le collocazioni sono spesso resistenti a modificazioni aggettivali o avverbiali (Gianni ha tirato la corda/??La corda è stata tirata da Gianni). Le collocazioni, quindi, sono parole con un alto grado di associazione reciproca, ma la nozione di collocazione rimane vaga; il problema che si pone è come rendere più precisa la nozione di associazione fra parole, che sembra essere l’unico comune denominatore tra i membri della famiglia delle collocazioni. Le misure di associazione lessicale quantificano la forza del legame tra due o più parole, per cui la nozione di associazione viene trasformata in un indice quantitativo e misurabile; l’assunzione generale è che se due parole formano una collocazione in una certa varietà linguistica, è molto probabile che nei suoi testi esse ricorrano insieme in maniera statisticamente significativa. La ricerca di collocazioni in un testo segue uno schema preciso: lOMoARcPSD|2650267 Il corpus deve essere tokenizzato e annotato secondo determinati criteri, come la lemmatizzazione, l’annotazione morfosintattica e l’analisi sintattica. Si prosegue con una selezione delle coppie di parole (bigrammi) del corpus; il tipo di bigrammi selezionati dipende dal livello di annotazione linguistica. Si costruiscono le tabelle di contingenza dei bigrammi: La sola frequenza di una coppia <u, v> non è indicativa del suo grado di salienza, nel senso che la frequenza assoluta di un bigramma non quantifica il grado di associazione lessicale tra due parole. E’ plausibile ipotizzare che due parole siano tanto più fortemente associate quanto più spesso si presentano insieme rispetto alle volte in cui ricorrono l’una indipendentemente dall’altra. Per fare un esempio: nel corpus del libro di Pinocchio, la frequenza assoluta del bigramma “il burattino” è 110; il numero di volte in cui “il” ricorre con una parola diversa da burattino, però è molto più alto del numero di volte in cui “il” e “burattino” ricorrono insieme. Questa disparità suggerisce che non c’è un legame di associazione lessicale diretta fra le due parole. E’ necessario confrontare la frequenza osservata di una coppia <u, v> in un corpus con la sua frequenza attesa (frequenza ci aspetteremmo di trovare se u e v fossero statisticamente indipendenti): lOMoARcPSD|2650267 Tra le misure di associazione che sfruttano metodi statistici per quantificare il grado di associazione tra due parole, sulla base della tendenza che queste hanno a presentarsi insieme, la mutua informazione è certamente la più nota: date due parole u e v, la MI confronta la probabilità di osservare il bigramma tipo <u, v> con la probabilità di osservare u e v l’una indipendentemente dall’altra: La MI è estremamente sensibile agli eventi rari, perché i bigrammi con frequenza 1 formati da hapax avranno sempre valori massimi di MI (questo avviene perché il caso di associazione massima si ha quando u e v ricorrono sempre insieme nel corpus, e due hapax possono ricorrere sempre insieme in un corpus nel senso che ricorrono una sola volta). Inoltre la MI non è molto indicativa quando calcolata su bigrammi a bassa frequenza, e questo è un limite molto grave perché, ricordando la Legge di Zipf, in un testo i bigrammi hapax possono arrivare anche al 75%. Per ovviare a questo problema si fa ricorso a vari metodi, e uno dei più utilizzati è il calcolo della Local Mutual Information, ovvero la MI moltiplicata per la frequenza del bigramma, in modo da privilegiare i bigrammi più frequenti. 8. L’Annotazione Linguistica del Testo lOMoARcPSD|2650267 L’annotazione linguistica di un testo consiste nella codifica di informazione linguistica associata al dato testuale. Si tratta di aggiungere ad un corpus codici (markup) che rendono esplicita e machine readable l’informazione relativa alla struttura linguistica del testo, secondo vari livelli di annotazione. I corpora non annotati vengono detti “raw corpora”. L’annotazione permette di usare il computer per ricerche ed elaborazioni più avanzate dei dati linguistici, perché i codici possono essere immediatamente recuperati o usati per popolare un database. La codifica è parte integrante del lavoro di specifica dello schema di annotazione e interagisce con quest’ultimo su almeno quattro livelli fondamentali: il grado di copertura dello schema, ovvero la corrispondenza fra il novero di categorie e strutture che lo schema offre e la tipologia dei fenomeni stessi osservati; la riproducibilità dell’annotazione, cioè la possibilità di applicarla in maniera coerente a tutti i fenomeni d’interesse; l’interazione con altri livelli di descrizione linguistica nell’intento di evidenziare correlazioni fra livelli diversi; il grado di espressività dell’annotazione, ovvero la traduzione di uno schema in un linguaggio di marcatura che sia in grado di rispondere correttamente agli scopi del linguista. Uno schema di annotazione, quindi, contiene un repertorio di categorie linguistiche per l’annotazione, corrispondenti alla tipologia dei tratti da rappresentare nel testo (attributi e valori), contiene la definizione delle regole di compatibilità fra categorie (es. l’aggettivo non possiede un attributo di persona), e contiene la specifica accurata dei criteri di applicazione al testo delle categorie selezionate. I corpora annotati sono usati per addestrare modelli computazionali basati su algoritmi di apprendimento automatico supervisionato (training corpora annotati), ma allo stesso tempo sono usati per valutare sistemi di NLP (test corpora annotati). Esistono due metodi principali di annotazione linguistica: l’annotazione manuale è necessaria per alcuni tipi di annotazione, e anche se è più precisa, è altamente costosa e lenta, e si possono presentare incoerenze fra annotatori che utilizzano criteri diversi per annotare; l’annotazione semi-automatica, invece, permette una certa rapidità di sviluppo, ma è accompagnata da una buona percentuale di imprecisioni che devono essere revisionate manualmente dal linguista. Si presenta quindi un ciclo virtuoso tra annotazione di corpora e sviluppo di strumenti NLP attraverso l’uso di metodi machine learning: lOMoARcPSD|2650267 Livelli di annotazione linguistica: -L’annotazione morfo-sintattica rappresenta la forma basilare e più comune di annotazione linguistica. Lo scopo è l’assegnazione, a ogni parola o token, dell’informazione relativa alla categoria grammaticale che la parola ha nel contesto specifico (nome, verbo, aggettivo, ecc.) talvolta integrata da ulteriori informazioni morfologiche (persona, genere, numero, ecc.). Questo tipo di annotazione è spesso combinata con la lemmatizzazione, che consiste nel ricondurre ogni parola al relativo esponente lessicale o lemma (tipicamente l’infinito dei verbi, il singolare maschile -L’annotazione sintattica riguarda la codifica di informazione relativa all’analisi sintattica delle frasi di un testo, la quale risente fortemente dei diversi approcci teorici alla sintassi. I due approcci principali consistono in: una rappresentazione a costituenti (labelled bracketing) basata sull’identificazione di costituenti sintagmatici (sintagma verbale, nominale, ecc.) e delle loro relazioni; una rappresentazione a dipendenze (dependency structure) che fornisce una descrizione in termini di relazioni binarie di dipendenza fra parole (soggetto, oggetto, modificatore, ecc.) L’analisi sintattica delle frasi è detta “parse”, e può raggiungere altissimi livelli di complessità. I corpora annotati sintatticamente sono anche detti treebanks, poiché i primi corpora rappresentavano la struttura delle frasi come un albero a costituenti. lOMoARcPSD|2650267 -L’annotazione semantica riguarda la codifica esplicita del significato delle espressioni linguistiche di un testo; le forme che questa può assumere sono molteplici proprio in relazione alla complessità della nozione di significato. Si può trattare dell’annotazione con codici che descrivono categorie semantiche, con annotazione dei “sensi” ricavati da un lessico di riferimento. Decisivo in questo frangente è WordNet, un database semantico-lessicale per l’inglese americano che si propone di organizzare definire e descrivere i concetti espressi dai vocaboli; si avvale di raggruppamenti di termini con significato affine detti synet (un insieme di sinonimi che possono essere descritti da un’unica definizione, perché esprimono uno stesso senso, e una stessa parola può trovarsi in diversi synet se ha diversi sensi). Un altro metodo riguarda la Named Entity Recognition, ovvero l’assegnazione ai nomi propri di entità della loro categoria semantica in contesto (persona, luogo, organizzazione, tempo, evento, ecc.). Un altro processo di annotazione riguarda la marcatura dei ruoli semantici che descrivono la funzione semantica svolta da un certo costituente (agente, paziente, destinatario, ecc.) in un determinato frame semantico (schematizzazione di una situazione generalmente evocata da un verbo). In questo frangente è importante menzionare FrameNet, una parte del British National Corpus che è stata annotata con informazione relativa ai ruoli semantici con la finalità di fornire un inventario di situazioni ed eventi per facilitare l’associazione automatica di uno o più frame a ogni frase del testo, insieme ai corrispondenti ruoli semantici. In ogni caso, l’annotazione semantica consente di aumentare la Considerando la lingua italiana, diventa significativo il fatto che questa sia una lingua concatenativa: le parole sono costruite concatenando morfemi di vario tipo (radici, affissi, ecc.) Un riconoscitore morfologico ha il compito di determinare automaticamente le sequenze legittime di morfemi in una lingua; i metodi per compiere questo processo sono diversi. Con il full listing si utilizza una lista (o formario), ordinata alfabeticamente, di tutte le forme flesse e derivate della lingua; mettere insieme un formario di una lingua può essere estremamente complesso, inoltre un computer che ha a disposizione solo un formario non è in grado di estendere in modo autonomo le proprie conoscenze lessicali (ha un comportamento linguistico chiuso). Un altro metodo è il processing morfologico, per cui viene implementato un modello computazionale dell’organizzazione e della struttura morfologica di una lingua (ovvero delle regole di combinazione, e non l’intera lista delle combinazioni); questo può essere fatto tramite l’uso di automi a stati finiti: La struttura morfosintattica è governata da relazioni locali, per cui gli ASF permettono di realizzare modelli computazionali per le relazioni concatenati dei morfemi, analizzando le stringhe come risultato di un processo di concatenazione di simboli, in cui ogni passo dipende strettamente dal passo precedente. Anche le regole della morfotassi, per determinare le sequenze legittime di morfemi in una lingua, possono essere modellate con automi. Si possono modellare anche le classi di flessione (classi di parole che ammettono lo stesso paradigma flessivo), ma non le regole fonologiche che regolano i fenomeni di allomorfia che avvengono al confine di parola. Automa lessicale per le forme flessive della 1 coniugazione Regole Fonologiche Classi di flessione Sappiamo che un morfema è l’unità linguistica minima dotata di significato; l’analisi morfologica avviene proprio attraverso l’accesso a questo pacchetto di significato: le radici danno accesso al contenuto semantico di una parola e si collegano al relativo lemma, mentre gli affissi sono portatori di tratti morfologici che riguardano genere, numero, persona, ecc. Un parser morfologico analizza il contenuto di questi pacchetti, fuori dal contesto della frase intera; per questo l’output dell’analisi morfologica è potenzialmente ambiguo, poiché vengono prodotte tutte le possibili analisi morfologiche di una parola. Questo tipo di analisi viene modellata come l’associazione fra due livelli di simboli: livello superficiale (forma linguistica) e livello lessicale (simboli che rappresentano i tratti dei morfemi: gend, numb, ecc.). lOMoARcPSD|2650267 Altra risorse importantissima per l’analisi morfologica sono i trasduttori a stati finiti, ovvero macchine astratte che leggono in input un insieme di stringhe X e generano in output un insieme di stringhe Y. Con l’uso dei trasduttori si possono modellare tutti e tre gli aspetti della morfologia: classi di flessione, regole morfotattiche e regole fonologiche. Una volta che il trasduttore ha incontrato tutta la radice (vot-, am-, fax-, rem-) stampa sul nastro di output ARE (senza aver incontrato niente, vedi 𝜀), poi stampa $V$ per indicare che si tratta di un verbo (ancora senza aver incontrato niente). In seguito si passa al trasduttore concatenato che contiene le forme flessive: a seconda della forma flessiva incontrata (-ano, - iamo, -o, -i) stampa sul nastro di output la persona, il numero, il modo e il tempo (P3IP=terza persona indicativo presente). Il risultato sul nastro di output non sarà altro che l’analisi morfologica della parola nel nastro di input: amo = AMARE $V$ (verbo) S1IP (prima persona singolare indicativo presente). I trasduttori possono essere utilizzati anche per modellare le regole morfofonologiche, come ad esempio la formazione delle parole plurali, che in inglese ha varie forme: Nel nastro di input troviamo già una parola analizzata: una volta scorsa la stringa fino al simbolo che ci indica che si tratta di un nome, sul nastro di output avremo semplicemente stampato la radice (FOX$N $=fox). Successivamente P ci indica che il nome si trova nella forma plurale, quindi stampiamo un “+” e poi una “s” (ovvero la forma generale della formazione dei plurali in inglese). Nel secondo trasduttore abbiamo la regola fonologica che vige sulla formazione di tutti i plurali in inglese, che prende in input la stringa precedente e restituisce la forma corretta: verifica se l’ultimo simbolo della radice è una x, una s o una z, cancella il “+” e stampa “es”. Un altro metodo per l’analisi morfologica è fornito da un tipo di procedura automatica detta stemming: si tratta di una normalizzazione lessicale senza l’uso del lessico, non basata su criteri o regole linguistiche; lo stemmer ha a disposizione solo due tipi di informazione: le terminazioni di una lingua e l’ordine nel quale si possono disporre all’interno di una parola. L’algoritmo di Porter del 1980, implementato con espressioni regolari, rimuove prefissi, suffissi e desinenze, restituendo la radice delle parole. Da una parte questo metodo è semplice e generale, è sufficiente una lista chiusa di affissi e una serie di regole per la rimozione, dall’altra presenta numerosi limiti: non contiene un lessico delle radici legittime di una lingua, e questo porta a individuare radici sbagliate o false parentele (universo-università) o alla mancata individuazione di una radice nel caso questa subisca alterazioni nei processi di flessione o derivazione (espulsione-espellere, scelgo-scegliere). 11. Part-of-Speech Tagging lOMoARcPSD|2650267 Il POS tagging è un processo che ha il compito di assegnare ad ogni token della frase la giusta classe grammaticale (sostantivo, aggettivo, avverbio, ecc.); il sistema si complica quando alle classi grammaticali dobbiamo aggiungere anche i tratti morfologici, che generano un numero maggiore di classi (sostantivo-maschile-singolare, sostantivo-femminile-singolare, ecc.) Il problema principale di questo tipo di analisi è l’ambiguità che si presenta quando si incontrano le parole, che possono avere significati diversi (amo=verbo amare o oggetto amo?); per questo motivo il POS tagging si propone di risolvere queste ambiguità (disambiguazione), scegliendo il tag giusto in base al contesto nel quale una parola è utilizzata. Uno dei primi metodi per l’assegnazione automatica delle part-of-speech è il POS tagging a regole (pattern-action rules), secondo cui si raggiungono livelli di disambiguazione incrementale: la sintassi è <action> IF <pattern>, ovvero si compie una <action> (es. seleziona uno dei tag possibili, o elimina uno dei tag) solo se esiste nel testo la sequenza di tag specificata dal <pattern>. E’ possibile svolgere questo task con l’utilizzo di un algoritmo di apprendimento supervisionato: Fase di addestramento Si utilizza un training set, ovvero un corpus di esempi annotati come coppie x:y, dove l’input x è detto evento, mentre y è una classe tra le possibili classi di output ammesse; l’insieme delle possibili classi di output deve essere finito, mentre quasi mai gli eventi in input sono un insieme finito. Tramite l’algoritmo si estraggono le feature, ovvero le caratteristiche dell’evento in input da osservare per permettere al sistema di assegnare una classe; l’estrazione restituisce per ogni coppia input-output la lista delle feature attive in quel contesto per la classe output. La selezione delle feature è una delle parti cruciali nella realizzazione di un sistema di analisi. Esistono diversi tipi di feature: le feature locali riguardano solo il token analizzato (forma, lemma, affissi, ecc.), le feature contestuali riguardano il contesto nel quale il token si trova (parole adiacenti, POS adiacenti, ecc.), le feature globali sono estratte da contesti più ampi (dominio del documento, ecc.). In seguito si crea un modello statistico attraverso la distribuzione di frequenza fra i valori delle feature estratte dagli eventi presenti nel training corpus e gli output associati. Successivamente si elabora un modello della lingua, ovvero un insieme di coppie feature-peso, dove il peso è stato calcolato dall’algoritmo e indica la salienza della feature per operare una certa classificazione. I pesi indicano la “forza” delle feature nell’indicare una certa classe come possibile output, e dipendono dall’algoritmo di machine learning utilizzato (Maximum Entropy, Perceptron, ecc.) Lo scopo della fase di addestramento è l’apprendimento di una funzione obiettivo f(xi), tale che f(xi)=y, dove i è definito dalla distribuzione di frequenza tra i valori delle fratture estratte dagli eventi presenti nel corpus di addestramento e gli output associati. lOMoARcPSD|2650267 Fase di Analisi La funzione obiettivo calcola un punteggio per ogni possibile classe di output, calcolato sulla base delle feature estratte dal testo da analizzare, utilizzando però i pesi delle feature presenti nel modello della lingua creato nella fase di apprendimento. La classe a cui viene assegnato lo score più alto è la classe vincente. Valutazione Una volta completato il processo, si deve testare quanto il POS tagger sia preciso. Generalmente si prende un test corpus per la valutazione (diverso dal training corpus) e si compara il tagger con un Gold Standard, ovvero una porzione del test corpus annotata a mano, che rappresenta l’output “corretto” di riferimento. Quando i dati annotati sono limitati, si utilizza il metodo della N- fold crossvalidation, che consiste nel dividere il corpus annotato in n parti, per poi compiere n cicli di training-valutazione, utilizzando a turno ciascuna delle n parti come test corpus e le restanti come training corpus; la prestazione sarà poi la media delle prestazioni dei n esperimenti. Viene anche stabilita una Baseline, ovvero un valore che viene assunto come limite inferiore delle prestazioni rispetto cui valutare la significatività degli incrementi del sistema; la Baseline si ottiene assegnando ad ogni parola il tag più probabile. La metrica di valutazione più semplice è la Accuracy=output_corretti/test_corpus, utilizzata per sistemi che assegnano sempre un singolo output a ogni evento di input. Altre metriche sono la Precision (misura la correttezza delle risposte del sistema) e la Recall (misura la copertura del sistema); con queste due misure possiamo stabilire il numero di output corretti, errati o mancanti rispetto al gold standard, per capire dove il nostro sistema sta sbagliando, anche attraverso la costruzione di una matrice di confusione: Vediamo che nell’esempio il nostro sistema individua solo 70 dei 100 nomi (TP, veri Nomi), mentre etichetta 30 Nomi come non-Nomi (FN, falsi Nomi); poi individua 45 di 60 non-Nomi (TN, veri non- Nomi), mentre etichetta 15 non-Nomi come Nomi (FP, falsi non-Nomi). Se il sistema fosse perfetto, avremmo solamente TP e TN, per cui la precision e la recall equivarrebbero a 1. Solitamente le due metriche sono in competizione: più ampia è una regola, più aumenta la recall e diminuisce la precision; più ristretta è una regola, più aumenta la precision e diminuisce la recall. Per ottenere uno score globale si utilizza la F-Measure, ovvero la media armonica fra P e R: lOMoARcPSD|2650267 Algoritmi di ML possono essere utilizzati per la classificazione di entità nominate (NERC): il processo consiste nell’assegnare a ogni token all’interno della frase una delle possibili classi di output (PER, LOC, ORG, GPE, O). Alcune parole, però, identificano insieme un’unica entità nominata: per indicare questo si può utilizzare il formato standard BIO (Begin, Inside, Outside); in questo modo il numero di classi aumenta (B-PER, I-PER, B-LOC, ecc.) Come risolvere il problema dell’ambiguità? Stabilendo delle regole, fornendo informazioni aggiuntive oltre a quelle grammaticali: l’informazione lessicale permette di ridurre il numero di ambiguità nel parsing, ed è l’ingrediente necessario per estrarre dal testo il contenuto informativo. Per far ciò si utilizzano lessici computazionali, che codificano informazione lessicale sintattica e semantica in forma accessibile a programmi NLP. Un esempio: specifichiamo una regola per i verbi intransitivi, ovvero che un sintagma verbale non può essere formato da un verbo più un complemento oggetto. Le proprietà possono essere specificate tramite restrizioni di sottocategorizzazione che riguardano il contesto sintattico selezionato da un termine lessicale, ovvero: i tipi e il numero di complementi (NP, PP, ecc.) selezionati, l’obbligatorietà dei complementi o il caso grammaticale. Nei lessici computazionali l’informazione sintattico-lessicale è rappresentata in frames di sottocategorizzazione, che possono riguardare svariate caratteristiche: il numero degli argomenti selezionati dalla testa, i tratti lessicali degli argomenti (es. tipo di preposizione in un PP argomentale), la funzione grammaticale degli argomenti (Subj, Obj, ecc.), il controllo, l’ausiliare, ecc. lOMoARcPSD|2650267 E’ possibile trasformare un compito di analisi sintattica in un compito di classificazione, ovvero in un compito di predire l’azione che il parser deve fare per costruire l’albero sintattico della frase; un metodo per farlo è utilizzare uno Shift/Reduce parser: ad ogni passo dell’analisi il parser usa un classificatore addestrato su un training corpus, allo scopo di predire quale azione deve compiere, dato l’insieme delle feature estratte in quel determinato momento. Il parser costruisce l’albero a dipendenza analizzando la frase da sinistra verso destra, due parole alla volta, compiendo tre azioni: Alla fine del processo otteniamo l’albero sintattico non marcato, tutti i link sintattici sono stati creati. Gli archi non sono ancora stati marcati con relazioni di dipendenza (soggetto, oggetto, ecc.), per cui si procede a marcarli; esistono almeno due modi: attraverso un secondo passo di analisi nel quale si classifica ogni arco con la classe sintattica più probabile, oppure si aumenta semplicemente il numero di azioni del parser (Shift, Right_Soggetto, Right_Oggetto, Left_Comp, ecc.) In questo modo il compito di analisi sintattica diventa un compito di classificazione che può essere diviso in tre fasi: estrazione delle feature rispetto alle due parole analizzate, stima dell’azione da eseguire attraverso l’algoritmo di apprendimento supervisionato, esecuzione dell’azione e creazione dell’albero. Quest’ultimo è un metodo bottom-up parsing: il parser inizia con la parola in input e prova a costruire l’albero applicando le regole della grammatica una alla volta, a partire dall’assegnazione delle POS alle parole; l’albero finale è completo se la radice è S, e se questa copre tutta la stringa di input. L’altro metodo è detto top-down parsing: il parser inizia con la radice S e cerca di costruire l’albero fino alle foglie (parole in input), applicando le regole della grammatica una alla volta (Radice-Sintagmi-POS-Parole). Ciascuno di questi metodi ha i propri vantaggi e svantaggi: il top-down non spreca mai tempo nella creazione di alberi che non abbiano radice S, dal momento che genera solo quel tipo di alberi. D’altro canto, il top-down è costoso nella costruzione di tutti gli alberi possibili della grammatica, la stragrande maggioranza dei quali non può essere usato per fare il parsing della frase desiderata; questo succede perché i top-down parser iniziano a generare alberi prima di analizzare la frase, mentre i bottom-up parser non propongono alberi che non siano almeno localmente basati sull’input, ma perdono tempo nella produzione di alberi che non hanno radice S. Bottom-up parsing Top-down parsing 13. Lessici Computazionali Semantici lOMoARcPSD|2650267 Quando si parla di Semantica Computazionale, si parla di modelli formali per la rappresentazione del significato delle parole, oppure di metodi computazionali per l’acquisizione e l’estrazione di informazione semantica dai testi. Il rapporto fra significato e computer è reciproco: con l’uso di metodi logico-matematici, statistici e algoritmi si può indagare i problemi relativi al significato e alle strutture concettuali, dall’altro lato si possono costruire rappresentazioni del significato per dotare i computer di conoscenze semantiche. Gli ambiti di applicazione sono molteplici: Il significato di un lemma può variare enormemente in base al contesto, e la nozione stessa di significato è di difficile definizione; si rappresentano le variazioni contestuali di una parola dicendo che tale parola ha più sensi: un senso è una rappresentazione discreta di uno degli aspetti del significato di una parola. Grazie ai lessici computazionali semantici si possono rappresentare le componenti del significato in maniera comprensibile per i modelli computazionali per task di NLP (disambiguazione sintattica, traduzione, ecc.) I modelli per la rappresentazione del significato possono essere di tipo relazionale (WordNet) o a frame (FrameNet). Si pensa che la memoria semantica sia organizzata come una rete di nodi concettuali (i concetti) collegati tramite archi (relazioni concettuali); le reti semantiche sono principalmente basate su una struttura tassonomica, ovvero di inclusione gerarchica (IS-A). Il significato di una parola è determinato dalle sue relazioni con il significato di altre parole; le relazioni semantiche fondamentali sono: sinonimia (due parola che possono essere liberamente sostituite in una frase senza alterarne l’accettabilità), iper-/iponimia (X è iperonimo di Y se la classe di entità a cui si riferisce Y è un sottoinsieme della classe di entità a cui si riferisce X), meronimia (X è un meronimo di Y se l’entità a cui X si riferisce è una parte dell’entità a cui Y si riferisce). Decisivo in questo frangente è WordNet, un database semantico-lessicale per l’inglese americano che si propone di organizzare e descrivere i concetti espressi dai vocaboli; si avvale di raggruppamenti di termini con significato affine detti synet (un insieme di sinonimi che possono essere descritti da un’unica definizione, perché esprimono uno stesso senso, e una stessa parola può trovarsi in diversi synet se ha diversi sensi). Ciascun synet rappresenta un determinato concetto, ed è associato a una glossa con degli esempi; il synet a cui appartiene la parola X rappresenta il concetto espresso da quella parola. lOMoARcPSD|2650267 Come abbiamo detto, spesso una parola può avere molteplici significati: si tratta di ambiguità semantica se una parola ha più di un significato e questi sono irrelati e indipendenti (cane=animale o parte di una pistola); si tratta invece di polisemia se una parola ha più di un significato e questi sono connessi fra loro (giornale=oggetto, informazione, istituzione o gruppo). Una parola con n significati appartiene a n synets diversi, mentre un synet può anche contenere solo una parola (cane=animale o cane=parte di pistola). Il concetto espresso da un synet è pienamente caratterizzato solo dalla sua posizione all’interno della rete semantica, ovvero dalle sue relazioni con altri synets. Diventa chiaro quindi che WordNet svolge una funzione sia di dizionario che di thesaurus: si può avere un accesso lessicale per lemma (dato un lemma, descrivere i sensi) oppure un accesso concettuale per synet (dato un synet si possono trovare tutti i lemmi che appartengono alla stessa categoria concettuale). La relazione di iperonimia rappresenta la spina dorsale della rete nominale: i nomi si organizzano secondo una tassonomia che può raggiungere anche 16 livelli di profondità. Le tassonomie dei verbi sono invece molto più corte, con relazioni di tipo non gerarchico. Con WordNet è anche possibile misurare la similarità semantica fra due parole, data dalla distanza fra i loro concetti nella rete (numero di archi/nodi corrispondenti a relazioni semantiche che separano i synet corrispondenti). E’ possibile anche rappresentare le preferenze di selezione (tipi semantici) degli argomenti, ovvero le proprietà semantiche condivise dalle espressioni linguistiche che tipicamente ricorrono come argomenti di un predicato; si tratta prevalentemente di individuare il synet i cui iponimi contengono varianti che possono ricorrere come argomenti del predicato. Con il metodo dei tree-cuts si può individuare il sottoinsieme di nodi di WordNet che hanno la maggiore probabilità di rappresentare i tipi semantici degli argomenti di un predicato. Similarità Semantica Preferenze di selezione Tree-cuts per il verbo “fly” Distribuzione proibita | Scaricato da Maryna Kozlyuk (maryna_1992@hotmail.it) lOMoARcPSD|2650267 Un altro processo di annotazione riguarda la marcatura dei ruoli semantici che descrivono la funzione semantica svolta da un certo costituente (agente, paziente, destinatario, ecc.) in un determinato frame semantico (schematizzazione di una situazione generalmente evocata da un verbo). In questo frangente è importante menzionare FrameNet, una parte del British National Corpus che è stata annotata con informazione relativa ai frame semantici in termini dei suoi vari possibili partecipanti (frame elements). Ogni frame element è associato alle sue possibili realizzazioni sintattiche, e per ogni realizzazione è riportata una frase del corpus annotata in maniera corrispondente. FrameNet è formato da Lexical Units, ovvero coppie <parola, significato>, dove il significato è il frame evocato da una parola, che al suo interno contiene frame elements, ovvero i partecipanti al frame che possono suddividersi in “protagonisti” (core FE) e “comprimari” (peripheral FE). Frase: Mario ha acquistato dal negoziante un tappeto. Frame semantico: Compravendita. Ruoli semantici del frame: Compratore, venditore, bene.
Docsity logo


Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved