






Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
I metodi di analisi del testo in linguistica computazionale, confrontando i metodi basati sulle regole con quelli basati sulla statistica. Viene illustrato il processo di pos tagging e lemmatisation, nonché il calcolo della term frequency (tf) e del term frequency-inverse document frequency (tf-idf) per l'analisi della frequenza delle parole nei testi. Esempi pratici di applicazione di queste tecniche, analizzando capitoli di "lo hobbit" e "il signore degli anelli" di tolkien.
Tipologia: Schemi e mappe concettuali
1 / 11
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!







Alessandro Maisto La linguistica computazionale vive da sempre una dicotomia tra Linguisti e Informatici. I primi, forti di una conoscenza dei meccanismi della lingua, sono però poveri di competenze ingegneristiche. I secondi, invece, competenti nelle materie informatico-matematiche, non attribuiscono il corretto valore ai meccanismi e alle strutture fondamentali del linguaggio. Questa dicotomia, tra l’altro, si è accentuata soprattutto negli ultimi decenni, con l’aumento delle risorse computazionali e con la progressiva informatizzazione del mondo. Le tecnologie di Machine Learning, ad esempio, divenute imperanti nell’ambito dell’Intelligenza Artificiale, che permettono alle macchine di “imparare” a partire dagli esempi che manualmente gli vengono forniti, viene sempre più spesso applicato alla Linguistica proprio per superare lo scoglio rappresentato del linguaggio e dalla sua rappresentazione formale. Questa dicotomia ha comportato la nascita di due principali filoni interni alla Linguistica Computazionale che prediligono rispettivamente: I metodi basati sulle regole, che cercano di imitare il modo in cui l’uomo utilizza e comprende il linguaggio, riproducendo le strutture sintattiche che sono alla base di questo processo di comprensione, costruendo risorse lessicali come i dizionari elettronici, le tassonomie, le ontologie; I metodi basati sulla statistica che, al contrario, trattano la lingua come un insieme di parole, quantificando queste in modo matematico e cercando di estrarre informazioni senza la necessità di individuare le strutture sintattiche o, addirittura, cercando di rendere capace la macchina stessa di imparare la sintassi. Il problema principale è l’incomunicabilità tra i due mondi dovuta alle differenze sostanziali che li caratterizzano. Da un lato il funzionamento del linguaggio e le sue caratteristiche sono guardate con rispetto e con interesse, con l’abitudine ad un lavoro di analisi, a volte manuale, lento ma approfondito. Dall’altro lato, una mentalità ingegneristica che vede nel linguaggio un ostacolo al raggiungimento di uno scopo, che cerca nell’algoritmo la maniera più efficace e più veloce per evitare di affrontare questo problema o per affidarlo completamente al calcolo ed al ragionamento della macchina. Tuttavia, questa incomunicabilità non è una inconciliabilità, e, dunque, come accadeva agli inizi della linguistica computazionale, in particolare con Harris, il panorama più auspicabile e quello che ad oggi offre i risultati migliori è quello di una unione delle differenti metodologie. Nozioni di base
“il cane che uccise il gatto che uccise il topo” Possiamo contare 6 diversi types (“il”, “cane”, “che”, “uccise”, “gatto”, “topo”) e ben 10 tokens, cioè tutte le parole che compongono la frase.
all 3 going 3 hobbit 3 hole 3 I primi elementi di una lista di questo tipo, calcolata su un testo contenente ancora le Stop Words, sono nella quasi totalità dei casi, articoli e preposizioni. Se volessimo calcolare le occorrenze sull’intero libro, la lista, per quanto riguarda le prime posizioni del ranking, sarebbe poco dissimile, ma con valori estremamente più alti. Avremo, ad esempio, il type “the” con una occorrenza di 6040, “and” 4406 e così via. Così come nella tabella sopra, la prima parola semanticamente piena è “hobbit”, che appare al 14º posto, per la classifica delle occorrenze dei type dell’intero libro, la prima parola semanticamente piena appare in 25ª posizione ed è “said”, con 583 occorrenze. Già eliminando anticipatamente le Stop Words, riusciamo ad ottenere classifiche più significative ed informative, cioè, che ci offrono maggiori informazioni riguardo il testo che stiamo analizzando. Provando ad effettuare lo stesso calcolo sul capitolo 9 de “la compagnia dell’anello” libro primo della trilogia de “il signore degli anelli” ed il capitolo 7 de “le due torri”, libro secondo della stessa trilogia, privati delle stop words, estraiamo come parole che occorrono un numero maggiore di volte: Type Cap. 9 libro 1 Cap 7 libro 2 Said 51 34 Frodo 42 30 night 28 11 Confrontando i due capitoli in base al numero di occorrenze dei types, è possibile effettuare alcune inferenze che, però, potrebbero risultare sbagliate. Senza considerare la dimensione del testo analizzato, si potrebbe desumere che il primo testo sia un testo più incentrato sui dialoghi (assumendo che il type “said” introduce un discorso diretto) e sul personaggio di Frodo. Va però considerato il fatto che, mentre il primo capitolo ha una dimensione in token di 8243, il secondo misura poco più della metà, con 4946 tokens. Per tenere conto di questa differenza è necessario introdurre il concetto di Frequenza, o meglio di Frequenza Relativa dei type nel testo. La formula per il calcolo della frequenza è la seguente:
dove la Term Frequency è uguale al rapporto tra il numero di occorrenze della parola i nel testo j e la dimensione del testo j. Calcolando le frequenze, il valore ottenuto per la parola “said” nel primo caso è di 0,006187, inferiore al valore dello stesso type per il secondo testo (0.006874). Lo stesso accade per la parola “frodo” che ottiene, rispettivamente 0,005095 e 0,006066, con una netta prevalenza relativa del type nel capitolo 7 del libro 2 che, come potremo scoprire dalla lettura del libro, è molto più focalizzato sulla figura del protagonista. La Term Frequency, tuttavia, non basta a descrivere efficacemente un testo nel caso volessimo confrontarlo con una collezione di numerosi altri testi. Se ad esempio volessimo descrivere ogni capitolo del libro “Lo hobbit” in base agli elementi di maggior “peso” per ciascun capitolo, andando dunque ad eliminare quei types che possiamo dare per scontati (come ad esempio il nome del protagonista, che descrive il libro nella sua interezza ma ci dice ben poco sul singolo capitolo) dovremo introdurre un nuovo misuratore, il Term Frequency – Inverse Document Frequency (TF- IDF), la cui formula è la seguente:
| D |
dove il peso di un type w per un documento d è uguale alla frequenza di w in d per il logaritmo del rapporto tra il numero di documenti in analisi e il numero f di documenti in cui w è presente. Il risultato del calcolo del TF-IDF per il capitolo 1 de “Lo Hobbit” non riporta più i type “said”, “bilbo”, “dwarves” e “baggins” come per la classifica della Term Frequency, ma riporta valori che ci danno informazioni più dettagliate su ciò che viene descritto nel capitolo: abbiamo in prima posizione la parola “plates” molto utilizzata nel capitolo per descrivere la cena che il protagonista tiene con il mago Gandalf ed i 13 nani (e che difficilmente apparirà in altri capitoli), la parola “gandalf” e la parola “map”, che descrivono efficacemente il tema principale del testo, in cui il mago studia con tutta la comitiva la mappa della montagna solitaria. La lista dei 10 type con il valore TF-IDF più alto è presentata nella seguente tabella: type Tf-Idf Score plates 0, gandalf 0, map 0, belladonna 0, dungeons 0, beautiful 0, grandfather 0, coffee 0, glasses 0, pantry 0, Inoltre, è possibile rappresentare in che modo il peso di un type vari di capitolo in capitolo con una semplice rappresentazione grafica come la seguente, dove, oltre all’andamento è possibile osservare lo spessore della linea che sta ad indicare il valore di TF della parola per ogni capitolo. In conclusione, l’analisi statistica dei testi è un tipo di analisi particolarmente adatta a chi abbia bisogno di estrarre rapidamente informazioni poco precise dai testi. Informazioni che non ci dicono di cosa si parla nel testo, né possono
Per la costruzione del Parser abbiamo bisogno, innanzitutto, di un Dizionario Elettronico. I dizionari elettronici sono dei database lessicali che contengono informazioni sintattiche e semantiche circa le parole in uso in una determinata lingua. È possibile costruire dizionari di diversi tipi ed includere in essi quante più informazioni possibili. Ad esempio possiamo inserire informazioni sul corrispettivo Inglese di un termine in modo da poter utilizzare il dizionario per un eventuale task di traduzione automatica. Per quanto riguarda la frase che stiamo cercando di analizzare abbiamo bisogno di un dizionario elettronico di dimensioni ridotte, che contenga informazioni specifiche: Berto,Berto,N+Npr+m+Anim+Um; Maso,Maso,N+Npr+m+Anim+Um; e,e,CONG; si diressero,dirigersi,V+rif+Mov+PR+3+p+Sogg:Anim+Comp:DEST; verso,verso,PREP; il,il,DET+m+s; barile,barile,N+s+m+Ogg+Contenitore; Un dizionario elettronico presenta alcune differenze rispetto ad un dizionario tradizionale in quanto le informazioni in esso presenti non sono destinate ad un utente umano, ma ad una macchina. Pertanto, non è necessario che le informazioni siano rese esplicitamente, ma basta che rispettino un codice standard comprensibile da un interprete virtuale. Inoltre, le informazioni normalmente presenti in un dizionario cartaceo come le glosse descrittive, saranno sostituite, eventualmente, da informazioni di tipo semantico finalizzate al raggiungimento di un determinato obiettivo. Nell’esempio sopra, abbiamo un dizionario elettronico composto da appena 7 entrate. Il primo elemento di ogni entrata rappresenta il token, cioè la parola nella sua forma flessa, così come è presente nel testo. Il secondo elemento è il Lemma, cioè la forma canonica del token. Successivamente abbiamo la descrizione della Part-of-Speech, espressa in forma abbreviata. In alcuni casi, come per le congiunzioni e le preposizioni, non abbiamo bisogno di altri elementi dato che la parola non ha un contenuto semantico pieno né forme flesse. Successivamente è possibile trovare alcune informazioni che vanno a specificare semanticamente o sintatticamente il tipo di POS: per i Nomi, ad esempio, abbiamo la dicitura “Npr” che indica la presenza di un Nome Proprio, per il verbo, invece, troviamo “rif” che indica la forma riflessiva del verbo. Altre informazioni sintattiche come il genere o il numero sono espressi dalle lettere minuscole “m”, “f”, “p” o “s”. Le informazioni semantiche aggiuntive, vengono aggiunte in base all’analisi che si sta effettuando. In questo caso abbiamo informazioni come “MOV” che indica che il Verbo è un verbo di movimento, “Sogg:ANIM” che specifica il tag semantico che il soggetto del verbo debba avere, “ANIM” che indica, ad esempio, che il nome è di qualcosa di Animato. Successivamente vanno definite una serie di istruzioni o Regole per il riconoscimento dei pattern linguistici presenti nel testo. Vediamo, di seguito, un esempio di regole in grado di rispondere alla domanda 1:
R1 : Se F contiene ‘Dirigersi’ , cerca $Soggetto$ Animato’ e $Destinazione’ $ introdotta da preposizione; R2 : Se V 3ª pers. Plurale cerca $Soggetto$ al plurale o più soggetti coordinati; R3 : Scrivi: Agente = $Soggetto$; R4 : Scrivi: Azione = Movimento; R5 : Scrivi: Destinazione = $Destinazione$ Nell’esempio sono riportate 5 semplici regole, due delle quali sono regole di lettura, che scorrono il testo in cerca del pattern che specificano, e tre sono regole di Scrittura, che invece producono l’output specificato nelle prime due regole. La regola R1 scorre il testo fino a trovare il verbo “dirigersi” e, se lo trova, cerca un Nome etichettato come Animato da inserire all’interno di una variabile $Soggetto$. I due simboli Dollaro che racchiudono la parola “Soggetto” stanno ad indicare che si tratta di una variabile, cioè di un costrutto virtuale di tipo “Stringa” (cioè alfanumerico) che assume, di volta in volta, un valore diverso. La regola R2 specifica che se il verbo è alla terza persona, allora il soggetto dovrà essere plurale o dovrà contenere più soggetti in relazione di coordinazione. Le regole di scrittura, invece, permettono di andare ad inserire in una struttura dati già pronta, il contenuto di determinate variabili. Nel caso in questione, l’output generato sarebbe il seguente: Output: Agente = Berto e Maso; Azione = Movimento; Destinazione = Barile. Un esempio pratico di applicazione delle regole è quello della Sentiment Analysis. Prediamo ad esempio le seguenti frasi: Le camere erano pulite quando ce le hanno consegnate, in alcune c’è il bagno privato. Lo sconsiglio nella maniera più assoluta Il film non è stato bruttissimo, ma Johnny Depp è fantastico. Hotel accettabile, ma cortesia zero! Le quattro frasi sopra rappresentano delle opinioni espresse da utenti di diverse piattaforme web circa diversi prodotti. Un’opinione è definita come segue:
In alcuni tipi di Sentiment Analysis è possibile andare ad estrarre le Features, in modo da poter attribuire determinati valori di polarità solo ad una specifica caratteristica dell’oggetto dell’opinione. È il caso della frase 3, dove l’aggettivo “fantastico” è riferito esclusivamente ad un attore del film, della frase 1, dove viene specificato che “le camere” sono pulite o della frase 4 che indica che la “cortesia” del personale era nulla. Introducendo i relativi Tag semantici al dizionario, è possibile andare a recuperare questi elementi all’interno delle frasi e attribuire la polarità dell’aggettivo a loro riferito, solo alla specifica feature. Un esempio di Tagset per le frasi in questione è il seguente: Nomi di cibi, bevande Tag FOODSERVICE ‘cibo’, ‘pranzo’, ‘cena’, ‘cucina’, ‘ristorazione’, ‘ristorante’ Tag FOODSERVICE ‘cortesia’, ecc… Tag ACCOGLIENZA ‘camere’, ‘stanze’, ‘suite’ Tag STRUTTURA ‘Johnny Depp’ Tag CAST Ovviamente, le regole presentate in questo documento sono un esempio estremamente semplificato di ciò che può rappresentare un parser sintattico. Normalmente, per la definizione di questo tipo di regola viene utilizzato un formalismo matematico come le Catene di Markov, chiamate, in questo caso, Automi a Stati Finiti o Grammatiche a Stati Finiti. Una grammatica a stati finiti per il semplice tag delle espressioni che indicano una data, se vuole comprendere tutte le possibili strutture sintattiche possibili, assume forme complesse come quelle nell’esempio seguente: In questa grammatica la regola di scrittura è rappresentata dai caratteri in neretto posti al di sotto dei nodi, in particolare, l’intera sequenza riconosciuta verrà taggata come . Successivamente l’automa scorre il testo
cercando in esso le informazioni riportate all’interno dei nodi che lo compongono. Questi nodi possono essere nodi vuoti (indicati dalle sole frecce o dalla presenza del codice