Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

66
computazionale: come accedere all’informazione codificata nel linguaggio naturale Cristina Bosco 2014 Informatica applicata alla comunicazione multimediale

description

Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale. Cristina Bosco 2014 Informatica applicata alla comunicazione multimediale. Alcune domande. - Che cosa sono la linguistica computazionale e il NLP? - A cosa serve il NLP? - PowerPoint PPT Presentation

Transcript of Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Page 1: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Linguistica computazionale:come accedere all’informazione codificata nel linguaggio naturale

Cristina Bosco

2014

Informatica applicata alla comunicazione multimediale

Page 2: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

- Che cosa sono la linguistica computazionale e il NLP?

- A cosa serve il NLP?

- Cosa si riesce a fare con il NLP?

- Quali sono le risorse per il NLP?

Alcune domande

Page 3: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Che cosa sono la linguistica computazionale

e il NLPNLP (Natural Language Processing) = elaborazione automatica del linguaggio umano tramite computer

È l’area dell’Intelligenza Artificiale (IA) che si occupa del linguaggio umano

Page 4: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Il trattamento del linguaggio naturaleè storicamente

uno dei primi compiti affrontati dall’IA, ma inizialmente la sua difficoltà fu

ampiamente sottovalutata.

Per questo motivo l’IA continua ad affrontarlo provando soluzioni sempre nuove.

Page 5: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Oggi il NLP affronta anche nuove sfide dovute a:

- l’aumento della quantità di comunicazione

- la presenza di nuovi tipi e mezzi di comunicazione, come quella che avviene

in Internet, nei social media, negli sms o nelle mail

Page 6: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Che cosa è il NLP

Il NLP ha due scopi pratici:- applicazioni- ricerche linguistiche

Un solo scopo fondamentale:la comprensione del significato del testo linguistico (HLU - Human Language Understanding) che rende poi possibile qualunque elaborazione del linguaggio.

Page 7: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Cosa significa comprendere il linguaggio naturale?

Comprendere un linguaggio naturale significa essere in grado di

associare UNA interpretazione ad ogni espressione di tale linguaggio.

Page 8: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Human Language Understanding

• Si basa su una complessa conoscenza grammaticale

• È supportata da una almeno altrettanto ampia conoscenza del mondo

• Insomma ... comprendere l’informazione codificata nel linguaggio richiede una quantità di conoscenza e competenza

Page 9: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Livelli di struttura linguistica

La complessità del linguaggio umano è tale che si è soliti assumere diversi livelli di astrazione per descriverlo ed analizzarlo.

Questa assunzione è fondamentale per il NLP e per qualunque elaborazione automatica del inguaggio.

Page 10: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Livelli di struttura linguistica• fonetico: suoni del parlato, come vengono

prodotti, come vengono percepiti• fonologico: la struttura grammaticale dei suoni e del sistema sonoro

Ogni lingua ha delle convenzioni in base alla quali certi suoni e certe composizioni di lettere sono accettabili ed altri no:ca / tcha / çataogt / gatto

Page 11: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Livelli di struttura linguistica

• morfologico: come le sotto-unità delle parole si combinano per formare la parola

* remangia vs mangiare

* silavare vs lavarsi

Page 12: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Livelli di struttura linguistica

• sintattico: come le parole si combinano per formare la frase

In italiano:* bianco Giorgio il vuole pane* Vuole bianco Giorgio pane ilGiorgio vuole il pane biancoMa in toba batak:Manjaha buku guru ilegge libro maestro il

Page 13: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Livelli di struttura linguistica

• semantico (lessicale e proposizionale): che cosa significa ogni parola e come i significati delle parole si combinano per formare il significato della frase

* la macchia invisibile crede nel cielo* idee verdi senza colore sognano furiosamente

Page 14: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Livelli di struttura linguistica

• pragmatico: in che modo i significati delle frasi sono utilizzati per manifestare gli scopi comunicativi degli esseri umani all’interno del contesto e della situazione di enunciazione

La casa è la prima che trovi svoltando a destra dopo il teatroLa prima notte di San Silvestro del nuovo millennioQuesto è bello

Page 15: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

ProblemiOltre alla molta conoscenza che il NLU richiede, il principale problema del NLP è la pervasiva ambiguità del linguaggio a tutti i livelli di analisi.

Noi vedremo in modo specifico i livelli morfologico e sintattico, che sono quelli maggiormente interessanti dal punto di vista della traduzione.

Page 16: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Cosa è l’ambiguità?

Quando una frase contiene una ambiguità non è possibile darne una

(SOLA) interpretazione.

Page 17: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Perchè ci interessa l’ambiguità?

Gli esseri umani hanno una quantità di conoscenza grazie alla quale

non percepisconomolte delle ambiguità che invece una

macchina trova nel linguaggio.

Page 18: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Ambiguità morfologica

Trans-categoriale:

- “Tutti hanno un TELEFONINO e a chi TELEFONINO non si capisce”

- PESCA nome (il frutto, lo sport)

verbo (lo sport, l’estrazione, ...)

aggettivo (il colore)

Page 19: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Ambiguità semantica

brucia (bruciare, 3a persona, ind. pres., intr.):

La carta brucia (“è un combustibile”)

La casa di Mario brucia (“ha preso fuoco”)

Il peperoncino brucia (“è piccante”)

La minestra brucia (“è troppo calda”)

La gola brucia (“causa dolore fisico”)

La condanna brucia (“causa dolore mentale”)

Page 20: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Ambiguità sintattica

Può essere indipendente dall’ambiguità morfologica: “Giorgio vide un uomo nel parco con il telescopio”

Può causare ambiguità semantica: “Giorgio vide un uomo con un telescopio”

Può essere relativa alle relazioni grammaticali: “Chi uccise il poliziotto?”

Page 21: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Ambiguità sintattica

Può essere locale, nel senso che una parte della frase ammette diverse analisi, ma solo una di queste analisi è valida per la frase intera:

“I soldati, avvertiti del pericolo ...

..., condussero il raid di mezzanotte.”

“I soldati, avvertiti del pericolo ...

... i cittadini, condussero il raid di mezzanotte.”

Page 22: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Ambiguità sintattica

Può essere globale ed anche irrisolvibile se la frase completa ammette più analisi tutte valide:

“La vecchia porta la sbarra”

Page 23: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Ambiguità semantica

Può essere determinata dall’ambiguità presente ad altri livelli, e può dipendere dai quantificatori:

“Ogni uomo ama una donna”

= per ogni singolo uomo, esiste una

singola donna che egli ama

= esiste una sola singola donna che ognuno

degli uomini (preso singolarmente) ama

Page 24: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

E sottoproblemi

Per gestire le difficoltà che il NLU comporta, si scompone il compito (task) del NLP in vari sottoproblemi (subtasks) relativamente indipendenti e consistenti con i livelli di analisi identificati a livello teorico.

Page 25: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Analisi morfologica

Riguarda le informazioni sulle singole parole

Problemi:

- segmentazione del testo in parole (tokenization)

-identificazione delle categorie delle parole (Part of Speech tagging) e ricerca delle radici (lemmatizzazione)

Page 26: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Analisi morfologicaUn esempio di analisi morfologica di una frase

1. la (IL ART DEF F SING)

2. storia (STORIA NOUN COMMON F SING)

3. non (NON ADV NEG)

4. educa (EDUCARE VERB MAIN IND PRES

3 SING)

5. a (A PREP MONO)

6. nulla (NULLA NOUN COMMON M SING)

Page 27: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Analisi morfologicaE se la frase contiene ambiguità

morfologiche?1. la (IL ART DEF F SING)

2. pesca (PESCA NOUN COMMON F SING)

pesca (PESCARE VERB MAIN IND PRES 3 SING)

pesca (PESCARE VERB MAIN IMP PRES 2 SING)

3. non (NON ADV NEG)

4. è (ESSERE VERB MAIN IND PRES 3 SING)

5. un (UN ART INDEF M SING)

6. frutto (FRUTTO NOUN COMMON M SING)

Page 28: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Analisi sintattica

Riguarda le informazioni a livello dell’intera frase

Problemi:

- riconoscimento della struttura sintattica della frase, cioè dei sintagmi

- riconoscimento delle relazioni grammaticali che legano i sintagmi e le parole

Page 29: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Analisi sintattica

Page 30: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

E se la frase contiene ambiguità sintattiche? Una frase ambigua permette più di una analisi sintattica, quindi verranno costruite più strutture per la stessa frase.

Esempio: “Giorgio vide l’uomo dentro il parco con il telescopio”

Analisi sintattica

Page 31: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Analisi sintattica

Page 32: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

L’albero di derivazione corrisponde alla seguente interpretazione della frase ambigua:

Giorgio vide l’uomo, Giorgio lo vide dentro il parco, Giorgio lo vide utilizzando il telescopio

Analisi sintattica

Page 33: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Analisi sintattica

Page 34: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

L’albero di derivazione corrisponde alla seguente interpretazione della frase ambigua:

Giorgio vide l’uomo, Giorgio lo vide dentro il parco, il parco che ha il telescopio

Analisi sintattica

Page 35: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Analisi sintattica

Page 36: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

L’albero di derivazione corrisponde alla seguente interpretazione della frase ambigua:

Giorgio vide l’uomo, l’uomo che stava dentro il parco, e Giorgio lo vide utilizzando il telescopio

Analisi sintattica

Page 37: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Analisi sintattica

Page 38: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

L’albero di derivazione corrisponde alla seguente interpretazione della frase ambigua:

Giorgio vide l’uomo, l’uomo che stava dentro il parco, il parco che ha il telescopio

Analisi sintattica

Page 39: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

I quattro alberi di derivazione non esauriscono tutte le possibili strutture che si possono costruire per la frase.

In questo esempio l’ambiguità è determinata dalla presenza di sintagmi preposizionali che possono essere agganciati praticamente a qualunque altro sintagma.

Analisi sintattica

Page 40: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Molto sovente le ambiguità del linguaggio naturale non sono percepite

dagli esseri umani.

Questo ha indotto gli studiosi di IA a credere che trattare il linguaggio

naturale fosse molto più semplice di quello che si è poi rivelato.

Page 41: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Un esempio concreto di come l’ambiguità sintattica non viene percepita?

Io mangio le fragole con la panna.

Quante diverse strutture sintattiche posso costruire?

Page 42: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

mangio

le fragole

con la panna

Io

mangio

le fragole con la pannaIo

?

A)

B)

Page 43: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Io mangio le fragole con la panna.

Nessun essere umano sceglierebbe la B ed aggancerebbe il sintagma preposizionale

con la panna al sintagma verbale mangio, invece che al sintagma nominale le fragole.

Eppure la struttura B è assolutamente sensata dal punto di vista sintattico se si prescinde da qualunque considerazione

semantica.

Page 44: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Infatti, in altri casi, come Io mangio le fragole con il cucchiaino.

la struttura B verrebbe naturalmente scelta, agganciando il sintagma preposizionale con il cucchiaino al sintagma verbale

mangio, invece che al sintagma nominale le fragole.

Page 45: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

mangio

le fragole

con il cucchiaino

Io

mangio

le fragole con il cucchiainoIo

?

A)

B)

Page 46: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Inoltre, la presenza di ambiguità é proporzionale alla lunghezza della frase.

3 (7): List the sales of products in 1973

10 (8): List the sales of products produced in 1973

28 (13): List the sales of products produced

in 1973 with the products in 1972

455 (14): List the sales of products produced

in 1973 with the products produced in 1972

Page 47: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

NLP e subtask

Il NLP è rivolto a risolvere il problema della comprensione del significato del testo.

Ma a causa della complessità di questo problema, nell’ambito del NLP si ragiona sempre su sottoproblemi: analisi morfologica, analisi sintattica, analisi semantica, ...

Page 48: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

NLP e subtaskOggi le tecniche di NLP si devono confrontare con la crescente quantità di testi in formati digitali, garantendo l’accesso alle informazioni sovente non strutturate e in lingue potenzialmente diverse, per i più diversi scopi commerciali.

Ma nella maggior parte dei casi non si richiede una completa comprensione

del contenuto del testo.

Page 49: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

NLP e subtask

In generale, riconoscendo che in molti casi non è realmente necessaria una comprensione completa del testo (come quella che ogni parlante umano ha spontaneamente di fronte ad un testo), si fanno elaborazioni parziali e finalizzate a determinati obiettivi.

Page 50: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

NLP e subtask• Estrazione di informazione non strutturata (Information Retrieval, IR)

• Estrazione di informazione strutturata (Information Extraction, IE)

• Risposta a domande (Question Answering, Q&A)

• Riconoscimento di entità nominate (Named Entity Recognition, NER)

Page 51: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

NLP e subtask

• Classificazione di Documenti

• Traduzione automatica (Machine Translation, MT)

• Sentiment Analysis and Opinion Mining

• ...

Page 52: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Information Retrieval

Estrazione di informazione NON strutturata

L’input è un insieme di documenti piuttosto ampio, mentre l’output è un insieme di documenti più piccolo

È il lavoro che fanno i motori di ricerca su Internet

Page 53: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Information RetrievalIn cosa consiste:

dato l’input (insieme di documenti) ed una query dell’utente (una o più parole),

restituisce come output un sottoinsieme dei documenti di input che comprende solo i documenti pertinenti alla query

Page 54: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Information RetrievalApproccio base:

Documento e query sono visti come vettori di parole (bag of words o sintagmi)

Valutazione della similarità tra documenti e ordinamento in base alla similarità; in questa valutazione si cerca di eliminare il “rumore” (= raffinamento) e di “pesare” i termini (= weighting)

Page 55: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Information RetrievalRaffinamento dell’approccio:

Riconoscimento di categorie di paroleRimozione di stop wordsRiconoscimento di radici (stemming)PhrasingPesatura dei termini (term weighting)Query expansion

Page 56: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Information RetrievalCome si valuta il risultato?

Recall = numero documenti rilevanti trovati

/ numero documenti rilevanti esistenti

Precision = numero documenti rilevanti trovati

/ numero documenti trovati

Page 57: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

(Valutazione?)Per qualunque task di NLP la valutazione è

un aspetto fondamentale.Si tratta di un processo complesso e sempre

soggetto a revisione … le misure proposte oggi potrebbero essere criticate e sostituite domani.

Il metodo più diffuso consiste nel confronto tra le prestazioni di un sistema e quelle di un essere umano.

Page 58: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

(Valutazione?)L’idea di basare la valutazione sul confronto tra macchina ed essere umano è storicamente il primo metodo proposto per l’IA, da Alan Turing nel 1950.

Turing era convinto che entro l’anno 2000 sarebbero state create macchine in grado di replicare la mente umana e superare il “test di Turing”, a cui sottoporre una macchina per scoprire se può pensare.

Page 59: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

(Valutazione?)L’entusiasmo di Turing è condiviso e continua ad esserlo nei decenni.Nel 1968, Stanley Kubrik, nel film “2001 Odissea nello spazio”, immagina che nel 2001 lo sviluppo dell’IA sia stato tale da poter costruire macchine pensanti e parlanti.Nel 1982, Ridley Scott ambienta nel 2019 il film “Blade Runner”, in cui macchine che sono in grado di superare il test di Turing sono realtà.

Page 60: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Information Retrieval

Come si valuta il risultato?supponiamo che la nostra query sia “gatto” e

che nel nostro insieme di 100 documenti ce ne siano 10 che parlano di gatti; vorremmo che il sistema di IR trovasse questi 10.

La recall è una misura di completezza che ci dice se tutti i documenti rilevanti sono stati trovati dal sistema.

Page 61: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Information RetrievalCome si valuta il risultato?supponiamo che la nostra query sia “gatto” e

che nel nostro insieme di 100 documenti ce ne siano 10 che parlano di gatti; vorremmo che il sistema di IR trovasse questi 10.

Se il sistema trova 10 documenti rilevanti sui 10 rilevanti esistenti, la recall vale 10/10 = 1.

Se il sistema trova 5 documenti rilevanti sui 10 rilevanti esitenti, la recall vale 5/10 = 0,5.

Page 62: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Information Retrieval

Come si valuta il risultato?supponiamo che la nostra query sia “gatto” e

che nel nostro insieme di 100 documenti ce ne siano 10 che parlano di gatti; vorremmo che il sistema di IR trovasse questi 10.

La precision è una misura di esattezza che ci quanti dei documenti che il sistema trova sono rilevanti.

Page 63: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Information RetrievalCome si valuta il risultato?supponiamo che la nostra query sia “gatto” e

che nel nostro insieme di 100 documenti ce ne siano 10 che parlano di gatti; vorremmo che il sistema di IR trovasse questi 10.

Se il sistema trova 10 documenti e tutti e 10 sono rilevanti, la precision vale 10/10 = 1.

Se il sistema trova 20 documenti di cui 5 rilevanti e 15 non rilevanti, la precision vale 5/20 = 0,25.

Page 64: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Sentiment Analysis e opinion mining

I social media (Facebook, Twitter, siti di recensione...) sono luoghi in cui le persone esprimono opinioni e sentimenti.Le tecniche di NLP consentono l’estrazione di sentimenti ed opinioni dai testi, per scoprire il gradimento di un prodotto, o ricerche socio-economiche, per verificare l’orientamento verso personaggi pubblici e fare previsioni ad es. sulle elezioni politiche.

Page 65: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Sentiment Analysis e opinion mining

L’estrazione di sentimenti e opinioni si basa sul rilevamento di parole dotate di polarità (positiva, negativa ad es.).Vengono utilizzati lessici appositi dove sono classificate le parole dotate di polarità.La polarità di un post dipende dalle parole che esso contiene, ma anche da emoticon ed emoji, e dipende dal modo in cui le parole sono associate.

Page 66: Linguistica computazionale: come accedere all’informazione codificata nel linguaggio naturale

Sentiment Analysis e opinion mining

Cosa fa un sistema di sentiment analysis?Dato un insieme di post deve dire per ognuno se esprime un sentimento positivo o negativo.

Come si valuta la prestazione di un sistema di sentiment analysis?Si costruisce un corpus di post con annotata la polarità e si confronta con il risultato restituito dal sistema.