Statistica versus Regole - WordPress.comho it” in ase agli elementi di maggior “peso” per...

12
1 Statistica versus Regole 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.

Transcript of Statistica versus Regole - WordPress.comho it” in ase agli elementi di maggior “peso” per...

Page 1: Statistica versus Regole - WordPress.comho it” in ase agli elementi di maggior “peso” per iasun apitolo, andando dunque ad eliminare quei types che possiamo dare per scontati

1

Statistica versus Regole 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.

Page 2: Statistica versus Regole - WordPress.comho it” in ase agli elementi di maggior “peso” per iasun apitolo, andando dunque ad eliminare quei types che possiamo dare per scontati

2

Nozioni di base Prima di andare a vedere quali sono le caratteristiche principali delle due filosofie viste sopra, è necessario

andare a conoscere quelli che sono alcuni dei concetti di base comuni ad entrambe le metodologie.

1. Token e Type

I concetti di Token e Type sono strettamente correlati e stanno alla base delle analisi linguistiche di ogni

tipo e livello. Pierce (1931-58, vol. 4, p. 423) ha introdotto la distinzione tra token e type specificando che in

una frase come “The dog eat the cat that ate the rat”, c’è un solo Type per la parola “the”, ma ci sono tre

Token relativi allo stesso type nella frase. La relazione tra un Type ed i suoi Token, secondo Pierce, è

dunque una instanziazione e può essere quantificata in termini di frequenza di token.

Dunque, se prendiamo la frase

“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.

2. Part-of-speech e Lemma

Per Part-of-Speech (POS), o parte del discorso, normalmente, si intende la Classe Grammaticale o Categoria

Lessicale alla quale appartiene una specifica parola. Se consideriamo ancora la frase precedente, il token

“il” appartiene alla POS “determinante” (abbreviato DET); “cane” appartiene alla categoria dei nomi (N) e

“uccidere” alla categoria dei verbi (V). Le POS che vengono normalmente considerate in linguistica

computazionale sono le seguenti:

POS Abbreviazione

Nomi N Verbi V Aggettivi A Avverbi AVV Determinanti DET Pronomi PRON Preposizioni PREP Congiunzioni CONG Interiezioni INTER

Ovviamente è possibile espandere questa lista in base alle esigenze dell’analisi linguistica che si va ad

effettuare, ed esempio è possibile introdurre una differenziazione tra pronomi relativi (PREL) e pronomi

personali (PPERS).

Strettamente legata alla Part-of-Speech è una delle operazioni basilari delle analisi linguistiche di ogni tipo,

il POS Tagging, che consiste, appunto, nell’attribuire ad ogni token la propria Parte del Discorso.

Il lemma, invece, rappresenta la forma canonica delle parole, cioè la forma in cui troviamo una determinata

parola nel dizionario. Per l’italiano, di norma, la forma canonica per Nomi e Aggettivi è il maschile singolare

(o il femminile singolare in caso di nomi femminili), e l’infinito per i verbi. Il task della linguistica

computazionale legato ai lemmi è la Lemmatizzazione, che consiste nel ridurre alla forma canonica tutti i

token che compongono un testo, in modo da poter ridurre il numero di type non considerando tutte le

Page 3: Statistica versus Regole - WordPress.comho it” in ase agli elementi di maggior “peso” per iasun apitolo, andando dunque ad eliminare quei types che possiamo dare per scontati

3

differenti forme flesse di una determinata parola (“essere”, “è”, “fu” e “siamo” vengono considerati come

un unico type “essere”).

3. Pre-Processing

Insieme alle due operazioni che abbiamo visto nel paragrafo precedente, il POS Tagging e la

Lemmatizzazione, ci sono alcune operazioni di pre-processamento dei testi che, in base alle esigenze

dell’analisi linguistica da effettuare, possono o non possono essere applicate. Tra queste operazioni

possiamo trovare:

Normalizzazione del testo, che consiste nel sostituire le maiuscole in modo da rendere uniforme il

testo, l’eliminazione della punteggiatura, la correzioni di errori di battitura o degli errori

grammaticali più comuni come ad esempio i casi in cui la “è” viene scritta “e’” etc.

Rimozione delle Stop Word, che consiste nella rimozione di tutti quei token semanticamente

“vuoti”, ad altissima frequenza.

La statistica Testuale La statistica testuale comprende una serie di operazioni che, quantificando in termini numerici o

matematici le parole che compongono un determinato testo, cercano di estrarre da questo le informazioni

necessarie a descriverlo, a delimitare i suoi elementi principali e a classificarlo. In questo paragrafo

andremo a vedere in cosa consistono alcune delle operazioni basiche di statistica testuale e che tipo di

informazioni riusciamo a ricavare da esse. Prendiamo ad esempio il seguente testo, estratto dal capitolo 1

della versione originale de “Lo Hobbit”, di Tolkien:

“In a hole in the ground there lived a hobbit. Not a nasty, dirty, wet hole,

filled with the ends of worms and an oozy smell, nor yet a dry, bare,

sandy hole with nothing in it to sit down on or to eat: it was a hobbit-

hole, and that means comfort.

It had a perfectly round door like a porthole, painted green, with a shiny

yellow brass knob in the exact middle. The door opened on to a tube-

shaped hall like a tunnel: a very comfortable tunnel without smoke, with

panelled walls, and floors tiled and carpeted, provided with polished

chairs, and lots and lots of pegs for hats and coats – the hobbit was fond

of visitors. The tunnel wound on and on, going fairly but not quite

straight into the side of the hill – The Hill, as all the people for many

miles round called it – and many little round doors opened out of it, first

on one side and then on another. No going upstairs for the hobbit:

bedrooms, bathrooms, cellars, pantries (lots of these), wardrobes (he

had whole rooms devoted to clothes), kitchens, dining-rooms, all were on

the same floor, and indeed on the same passage. The best rooms were

all on the left-hand side (going in), for these were the only ones to have

windows, deep-set round windows looking over his garden and meadows

beyond, sloping down to the river.”

Page 4: Statistica versus Regole - WordPress.comho it” in ase agli elementi di maggior “peso” per iasun apitolo, andando dunque ad eliminare quei types che possiamo dare per scontati

4

Una delle prime operazioni che è possibile effettuare su un testo di questo tipo, indifferentemente dalla

lingua in cui è scritto, dalle strutture grammaticali che lo compongono e dalla sua dimensione, è il calcolo

delle occorrenze. Dopo aver creato una lista dei type che compongono il testo, si contano i token presenti

relativi a ciascun type. Il risultato è il seguente:

Type Occorrenze

the 17

and 12

a 11

on 9

of 6

to 6

in 5

it 5

with 5

for 4

round 4

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

Page 5: Statistica versus Regole - WordPress.comho it” in ase agli elementi di maggior “peso” per iasun apitolo, andando dunque ad eliminare quei types che possiamo dare per scontati

5

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:

𝑤𝑑 = 𝑓𝑤,𝑑 ∗ log (|𝐷|

𝑓𝑤, 𝐷)

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:

Page 6: Statistica versus Regole - WordPress.comho it” in ase agli elementi di maggior “peso” per iasun apitolo, andando dunque ad eliminare quei types che possiamo dare per scontati

6

type Tf-Idf Score

plates 0,059822

gandalf 0,059115

map 0,053391

belladonna 0,047857

dungeons 0,04451

beautiful 0,043684

grandfather 0,040877

coffee 0,035893

glasses 0,035893

pantry 0,035893

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 rispondere a domande specifiche, ma semplicemente, nei limiti di margini di errori

“statisticamente tollerabili” offrono una visione generale e generica di un determinato testo.

Questo tipo di analisi, nonostante rimanga superficiale, presenta il vantaggio di essere completamente

indipendente dal linguaggio, di essere rapida, di non presupporre competenze linguistiche avanzate e di

essere computazionalmente molto vantaggiosa.

Page 7: Statistica versus Regole - WordPress.comho it” in ase agli elementi di maggior “peso” per iasun apitolo, andando dunque ad eliminare quei types che possiamo dare per scontati

7

L’analisi dei testi basata sulle Regole Prendiamo in esame il seguente type ranking basato sul TF-IDF:

type Tf-Idf Score

borsellino 6.7214961766849655

suo 3.4154876523731406

diressero 3.3607480883424827

scolando 3.3607480883424827

manina 3.3607480883424827

borsa 3.3607480883424827

estraeva 3.3607480883424827

coraggio 3.3607480883424827

somma 3.3607480883424827

lavoro 3.3607480883424827

appassionandosi 3.3607480883424827

boccale 2.882922698399655

raccolse 2.882922698399655

cautela 2.882922698399655

inizio 2.882922698399655

barile 2.882922698399655

nuovo 2.6034127633906374

Se proviamo ad estrarre informazioni riguardanti il testo da cui è stata calcolata la classifica, potremo

pensare ad una situazione da bar, che coinvolge delle imprecisate persone che prendono da bere e pagano

il conto. In realtà si tratta della seguente frase, il cui TF-IDF è stato calcolato sui paragrafi del capitolo 2 de

“Lo hobbit”:

“Berto e Maso si diressero verso il barile. Guglielmo stava

scolando un altro boccale. Allora Bilbo raccolse tutto il suo

coraggio e mise la manina nell’enorme tasca di Guglielmo. C’era

dentro un borsellino, grande quanto una borsa, per Bilbo. «

Eccoci qua! » pensò, appassionandosi al suo nuovo lavoro

mentre estraeva con somma cautela il borsellino. « Questo sì che

è un buon inizio! »”

Attraverso l’uso della statistica, dunque, non è possibile acquisire informazioni dettagliate su testi,

soprattutto se la loro dimensione non è adeguata. Per analizzare frasi o piccole porzioni di testo, in corpus

non abbastanza grandi, è necessario fare ricorso alle regole, cioè ad una formalizzazione delle strutture

sintattiche di una determinata lingua. Attraverso l’uso delle regole, ad esempio, è possibile rispondere a

domande precise riguardanti il testo sopra.

1. Dove si diressero Berto e Maso?

2. Che stava facendo Guglielmo?

3. Che azioni compie Bilbo?

Prendendo ad esempio la frase “Berto e Maso si diressero verso il barile” possiamo costruire un semplice

Parser sintattico in grado di rispondere alla domanda 1 della lista precedente. Un parser non è altro che un

Page 8: Statistica versus Regole - WordPress.comho it” in ase agli elementi di maggior “peso” per iasun apitolo, andando dunque ad eliminare quei types che possiamo dare per scontati

8

insieme di Regole sintattiche e di strumenti elettronici per il riconoscimento di determinate strutture

grammaticali.

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:

Page 9: Statistica versus Regole - WordPress.comho it” in ase agli elementi di maggior “peso” per iasun apitolo, andando dunque ad eliminare quei types che possiamo dare per scontati

9

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:

1. Le camere erano pulite quando ce le hanno consegnate, in alcune c’è il bagno privato.

2. Lo sconsiglio nella maniera più assoluta

3. Il film non è stato bruttissimo, ma Johnny Depp è fantastico.

4. 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:

𝑂𝑗, 𝑓𝑗𝑘 , 𝑜𝑜𝑖𝑗𝑘𝑙 , ℎ𝑖, 𝑡𝑙

Dove viene definito un Oggetto O e una serie di sue Features (o caratteristiche) f, un orientamento (che

può essere positivo o negativo) oo, un Opinion Holder h ed un tempo t.

Per quanto riguarda la Sentimen Analysis, in fase di costruzione del dizionario elettronico è necessario

inserire informazioni semantiche riguardo la polarità di ogni singola parola. In una prima fase iniziamo ad

aggiungere un valore di polarità compreso tra -3 e +3 agli aggettivi presenti nel dizionario:

Page 10: Statistica versus Regole - WordPress.comho it” in ase agli elementi di maggior “peso” per iasun apitolo, andando dunque ad eliminare quei types che possiamo dare per scontati

10

pulito: A, Positivo (+2)

bruttissimo: A, Negativo, Forte (-3)

fantastico: A, Positivo, Forte (+3)

accettabile: A, Positivo, Debole (+1)

aggiungendo a questo dizionario una semplice regola lessicale (non sintattica) che determina che in

presenza di un aggettivo polarizzato, il valore di polarità va aggiunto al valore totale della frase. Il risultato

sarebbe il seguente

1. Le camere erano [pulite,+2] quando ce le hanno consegnate, in alcune c’è il bagno privato.(+2)

2. Lo sconsiglio nella maniera più assoluta (0)

3. Il film non è stato [bruttissimo,-3], ma Johnny Depp è [fantastico,+3].(0)

4. Hotel [accettabile,+1], ma cortesia zero! (+1)

Ovviamente questo tipo di rappresentazione che non fa nessun affidamento alle strutture sintattiche

presenti all’interno delle frasi. Inoltre, considerare solo gli aggettivi è riduttivo, dato che, molto spesso la

polarità può essere data anche da altri elementi lessicali come i nomi o i verbi (ad esempio sconsigliare).

Aggiungiamo al dizionario gli elementi mancanti:

sconsigliare: Verbo, Negativo, Forte (-2)

In alcuni casi, come accade per la frase numero 3, è necessario andare a specificare delle regole sintattiche

per il riconoscimento della negazione. Importanti elementi portatori di polarità potrebbero, inoltre, essere

rappresentati dalle frasi idiomatiche.

Aggiungendo una regola che specifica che, un aggettivo di tipo negativo/positivo forte (+-3), preceduto da

un “non” o da un altro avverbio di negazione, vede modificare il valore di polarità apportato alla frase in un

Positivo/negativo debole. Nel caso in questione, se “bruttissimo” implicava un punteggio di -3, “non

bruttissimo” avrà un valore di +1. Andando ad aggiungere queste nuove regole il risultato si modificherà nel

seguente modo:

1. Le camere erano [pulite,+2] quando ce le hanno consegnate, in alcune c’è il bagno privato.(+2)

2. Lo [sconsiglio,-2] [nella maniera più assoluta,*3] (-6)

3. Il film [non è stato [bruttissimo,-3],+1], ma Johnny Depp è [fantastico,+3].(+4)

4. Hotel [accettabile,+1], ma [cortesia zero,-3]! (-2)

Com’è facile osservare, il secondo risultato è più verosimile.

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:

Page 11: Statistica versus Regole - WordPress.comho it” in ase agli elementi di maggior “peso” per iasun apitolo, andando dunque ad eliminare quei types che possiamo dare per scontati

11

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 <DATA>. 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 <E>, empty), metanodi,

indicati dal colore giallo, che consentono il collegamento con altri automi, e normali nodi che contengono

stringhe di testo.

Riepilogando, l’analisi linguistica basata sulle regole rende possibile ricerche molto più approfondite che

una semplice analisi statistica. Rende possibile, di volta in volta, l’estrazione dei diversi elementi che

caratterizzano un testo. Inoltre, le regole sintattiche sono costruite a partire dalle strutture sintattiche

definite da una determinata lingua.

Page 12: Statistica versus Regole - WordPress.comho it” in ase agli elementi di maggior “peso” per iasun apitolo, andando dunque ad eliminare quei types che possiamo dare per scontati

12

Ciononostante, oltre ad un costo in termini di tempo e di lavoro esponenziale al task da affrontare ed

all’inefficienza computazionale, un set di regole funziona esclusivamente per un determinato task, su una

serie di testi di una certa lingua, appartenenti ad un determinato dominio e per un determinato topic.