1 / 86

Elaborazione del linguaggio naturale

Elaborazione del linguaggio naturale. Maria Teresa PAZIENZA a.a. 2007-08. Intelligenza artificiale. Una macchina sarà considerata veramente intelligente solo quando sarà in grado di elaborare il linguaggio naturale come fa un umano. Elaborazione del linguaggio naturale.

jerzy
Download Presentation

Elaborazione del linguaggio naturale

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Elaborazione del linguaggio naturale Maria Teresa PAZIENZA a.a. 2007-08

  2. Intelligenza artificiale Una macchina sarà considerata veramente intelligente solo quando sarà in grado di elaborare il linguaggio naturale come fa un umano

  3. Elaborazione del linguaggio naturale I metodi, le tecniche, i tools, e le applicazioni relativamente alla modellizzazione dell’uso del linguaggio naturale costituiscono le tecnologie del linguaggio naturale (ingegneria del linguaggio naturale)

  4. Elaborazione del linguaggio naturale Il linguaggio è un meccanismo di comunicazione il cui tramite è il testo o il discorso. L’ingegneria è interessata, oltre che alla creazione di nuova conoscenza, anche alla creazione di sistemi per ottenere gli obiettivi desiderati. I sistemi ingegnerizzati devono essere conformi a specifici criteri di adeguatezza (es. criteri legati all’esecuzione di processi in un certo tempo ed in un certo spazio)

  5. Elaborazione del linguaggio naturale Sistemi per l’elaborazione del linguaggio naturale • Sviluppo di algoritmi per il parsing, la generazione, e la acquisizione di conoscenza linguistica • Indagine sulla complessità spaziale e temporale di tali algoritmi • Progettazione dei linguaggi formali computazionalmente utili (es. grammatiche e formalismi lessicali) per codificare conoscenza linguistica • Indagine su architetture software appropriate • Considerazioni sui tipi di conoscenza non linguistica che vengono a contatto • Problematiche di integrazione in sistemi applicativi più ampi

  6. Elaborazione del linguaggio naturale Un programma conta il numero di bits, bytes e linee in un file testo: quando conta le “parole” dello stesso file di testo, allora è necessario che abbia conoscenza di ciò che significa essere una “parola”. Sono richieste varie tipologie di conoscenza linguistica per elaborare un testo

  7. Elaborazione del linguaggio naturalemorfologia La morfologia fornisce informazioni su le forme possibili per ogni parola del linguaggio ed il loro comportamento. Inoltre riconosce le variazioni delle parole singole. di, del, della, delle,… casa, case, casetta, … capostazione, capistazione, … la, le, lo, gli, … la, lo, li, …

  8. Elaborazione del linguaggio naturalesintassi La sintassi contiene la conoscenza necessaria per spiegare come sequenze di parole possono non aver alcune senso a dispetto di altre sequenze che contengono invece esattamente, e nell’ordine corretto, le stesse parole. La FIAT produce autovetture La autovetture produce FIAT

  9. Elaborazione del linguaggio naturalesemantica Per capire il significato di una frase, oltre alla conoscenza delle parole e della struttura sintattica, è necessario avere conoscenza del significato di ogni parola componente la frase (semantica lessicale) e conoscenza di come queste componenti si combinino per formare significati più larghi (semantica composizionale)

  10. Elaborazione del linguaggio naturalepragmatica L’uso appropriato di espressioni di cortesia, o di stile a sottolineare la volontà di essere cortese (amareggiato, contrariato, affabile, benaugurale, volitivo, …) sono descritte dalla pragmatica. La strutturazione corretta dei termini in risposta ad una domanda all’interno di una conversazione richiede conoscenza della struttura del discorso.

  11. Elaborazione del linguaggio naturale In sintesi la conoscenza del linguaggio necessaria per la comprensione dei testi si articola in 5 distinte categorie: Morfologia: scomposizione delle parole in unità minime di significato (dogs=dog+s) Sintassi: definizione delle relazioni strutturali tra le parole Semantica: attribuzione del significato delle espressioni Pragmatica: studio di come il linguaggio è usato per raggiungere un obiettivo (usi/convenzioni linguistiche) Analisi del discorso: identificazione delle relazioni tra unità linguistiche più ampie della singola frase

  12. Elaborazione del linguaggio naturale L’elaborazione di un testo prevede l’attivazione di tool con conoscenza linguistica per l’analisi delle singole componenti e la risoluzione di possibili interpretazioni ambigue in ciascuna delle singole fasi. Un testo è ambiguo se esistono più strutture linguistiche alternative che possono essere generate durante le fasi di analisi (non-determinismo) L’ambiguità è il motivo per cui le macchine non riescono ad elaborare completamente il linguaggio naturale.

  13. Elaborazione del linguaggio naturale Problema dell’ambiguità La vecchia porta la sbarra Esistono più interpretazioni di questa frase • una vecchia signora trasporta una sbarra • una vecchia porta sbarra una signora

  14. Ambiguità Una vecchia porta la sbarra 1-una articolo 2-vecchia aggettivo/sostantivo 3-porta sostantivo/verbo 4-la articolo/pronome 5-sbarra sostantivo/verbo Proliferazione degli alberi sintattici Assegnazione di più di un significato alla frase

  15. Ambiguità Fare un piano Fare verbo Un articolo Piano sostantivo/avverbio/aggettivo Assegnazione di più di un significato alla frase Fare costruire, progettare, ideare Piano pianoforte, progetto, piano d’azione, piano dell’edificio Word-sense disambiguation (lexical disambiguation) , Context analysis Fare un piano (di corsa)

  16. Ambiguità La palla di Maria era arrivata davanti ai piedi di Mario. Lui le diede un calcio. Assegnazione di più di un significato alla frase • risoluzione dell’anafora (il riferirsi di una parola, solitamente un pronome, a una o più parole precedenti diz. De Mauro) • conoscenza di dominio • senso comune

  17. Ambiguità Il fiume scorre veloce nel suo alveo Il traffico scorre veloce nella strada principale Giovanni ama Maria Giovanni ama i racconti d’avventura Assegnazione di più di un significato alla frase metafora (figura retorica che consiste nel trasferire il significato di una parola o di un’espressione dal senso proprio a un altro figurato che abbia con il primo un rapporto di somiglianza – diz. De Mauro)

  18. Ambiguità L’auto verde è arrivata sul tavolo della Presidenza del Consiglio C’è acqua in frigo? Assegnazione di più di un significato alla frase • metafora • nomi propri • terminologia • modello del mondo • senso comune

  19. Ambiguità Mario guardò la ragazza con la minigonna Mario guardò la ragazza con la cartella Mario guardò la ragazza con il binocolo Mario guardò la ragazza con il collega Mario guardò la ragazza con sospetto • strutture argomentali dei verbi • contesto • senso comune

  20. Ambiguità Il significato di una frase non è dato solo dal significato delle parole Si richiede la conoscenza delle regole che governano: • il significato con cui le parole sono combinate, • l’ordine con cui compaiono, • i legami che le legano ad altri termini all’interno ed all’esterno della frase. E’ spesso necessario fare delle inferenze ed avere una conoscenza del mondo.

  21. Perché l’ambiguità è un problema? Lo spazio di ricerca: esplosione combinatoriale Sostanzialmente l’ambiguità aumenta il numero delle possibili interpretazioni delle espressioni in ling. nat. da controllare. L’esplosione combinatoriale deriva dal dover moltiplicare le analisi per ciascuna diversa interpretazione. Es. Supponiamo che ciascuna parola di una frase di 10 parole possa avere 3 interpretazioni: il numero totale delle interpretazioni della frase sarebbe 3*3*3*3*3*3*3*3*3*3= 59049

  22. Perché l’ambiguità è un problema? Ambiguità locale - globale Ambiguità globale: “Giovanni conosce molte più ragazze di Mario” Ambiguità locale: “anche se lui ne conosce molte” Ambiguità locale significa che una parte della frase può avere più di una interpretazione Ambiguità globale significa che l’intera frase può avere più di una interpretazione

  23. Perché l’ambiguità è un problema? Ambiguità locale - globale L’ambiguità locale si può talvolta risolvere con l’analisi sintattica es. The old trains … …the young (1) …left the station (2) La sintassi permette di disambiguare che train nella frase 1 è verbo e nella frase 2 è sostantivo

  24. Perché l’ambiguità è un problema? Ambiguità locale - globale L’ambiguità globale richiede un’analisi semantica e pragmatica es. Vidi il Gran Canyon volare a New York (1) Vidi il Boeing 747 volare a New York (2) Il significato delle due frasi viene disambiguato perché sappiamo cosa può volare e cosa no (semantica). In particolari circostanze le interpretazioni possono cambiare (pragmatica)

  25. Tipi di ambiguità Ambiguità categoriale (1)Time is money (sostantivo) (2)Time me on the last lap (verbo) L’analisi sintattica aiuta ad identificare la categoria corretta (3) Time flies like an arrow Esistono 5 possibili analisi sint. per questa frase dove time può essere sostantivo, verbo, aggettivo

  26. Tipi di ambiguità Word-sense ambiguity Una parola ha diversi significati (sensi) (1) The battery was charged with jump leads (2) Thief was charged by PC Smith (3) The lecturer was charged with students recruitment L’analisi sintattica aiuta a disambiguare: charged with, charged by L’analisi semantica aiuta a disambiguare jump leads , student recruitment

  27. Tipi di ambiguità Ambiguità strutturale “Metti la scatola sul tavolo dalla finestra nella cucina” Possibili interpretazioni (1)Metti la scatola (una scatola specifica, quella sul tavolo ) dalla finestra nella cucina (2)Metti la scatola sul tavolo (un tavolo specifico) dalla finestra nella cucina Problema della ambiguità proposizionale (in assenza di punteggiatura)

  28. Tipi di ambiguità Ambiguità referenziale “Dopo che ebbero finito l’esame gli studenti e i professori lasciarono l’aula” Possibili interpretazioni (1) gli studenti finirono l’esame (2) gli studenti ed i professori finirono l’esame (3) gli studenti ed i professori lasciarono l’aula Situazioni attese (usando i frame) (1) Giovanni diede a Marco un regalo e lui ringraziò

  29. Tipi di ambiguità Ellissi Frasi incomplete dove non è chiaro il termine mancante. “Giovanni aveva studiato molto e superò l’esame. Anche Mario” (1)Mario aveva studiato molto (2)Mario superò l’esame (3)Mario aveva studiato molto e superò l’esame

  30. Elaborazione del linguaggio naturale L’elaborazione del linguaggio naturale richiede la descrizione di un modello del mondo. Gran parte del significato non risiede all’interno delle parole, per cui il sistema di nlp deve avere la conoscenza del senso comune, o un modello del mondo usato da chi ha scritto il testo!

  31. E’ sempre necessario capire tutto? Giovanni ha comprato una Punto dal concessionario. Chi ha venduto una Punto? Il concessionario Giovanni ha regalato un anello alla sua fidanzata. Cosa ha avuto in dono la fidanzata di Giovanni? Un anello.

  32. Applicazioni possibili Fornire spiegazioni a chi le chieda, anche per telefono (call center) Capire il testo di una pagina web e decidere a chi possa interessare (semantic web) Tradurre la pagina di un quotidiano Capire il testo di un giornale/libro e costruire un sistema esperto a partire da questa conoscenza Generare risposte o testo libero per documentazione ……

  33. Ruolo della sintassi La sintassi: • identifica il ruolo delle parole in una frase • descrive come le parole sono raggruppate in classi dette POS (part-of-speech) • mostra come le parole sono collegate tra loro all’interno di una frase • spiega come le parole sono collegate ad altre all’interno di più frasi.

  34. POS / tag lessicali Sono riconosciute almeno 8 classi principali: noun, verb, adverb, pronoun, article, preposition, conjunction, participle che permettono di associare un significato alla parola cui si riferiscono. Sapere se una parola è un pronome o un nome ci permette di riconoscere la tipologia di altre parole vicine alla prima. Sono utili anche per le applicazioni (es. IR)

  35. POS / tag lessicali Le POS si dividono in due categorie: open class (con un numero imprecisato, ed in continua evoluzione, di elementi) closed class (con un numero fisso di elementi) function words (parole corte e usate frequentemente che assumono un ruolo importante in una grammatica)

  36. Come rappresentiamo la sintassi? Lista “Sue hit John” [s, [np, [proper_noun, Sue] ], [vp, [v,hit] , [np, [proper_noun, John]] Parse tree Un modo di mostrare la struttura di un frammento di linguaggio (slide successiva)

  37. Grammatica Una grammatica descrive quali sono le strutture ammesse in un linguaggio e divide una frase in simboli terminali Regole di riscrittura sentence -> noun phrase, verb phrase noun phrase -> noun noun phrase -> determiner, noun verb phrase -> verb, noun phrase

  38. Grammatica Transition network (come attraversare una frase con strutture idonee)

  39. They are cooking apples parse tree

  40. They are cooking apples parse tree

  41. Mario ama il calcio top-down strategy • S • S -> np, vp • S ->prpn, vp • S ->Mario, v, np • S ->Mario, ama, np • S ->Mario, ama, det, n • S ->Mario, ama, il, n • S ->Mario, ama, il, calcio Va bene se esistono simboli terminale alternativi per ciascuna parola Va male se esistono regole alternative per una frase

  42. Mario ama il calcio bottom-up strategy • Mario ama il calcio • Prpn, ama , il, calcio • Prpn, v, il, calcio • Prpn, v, det, calcio • Prpn, v, det, n, • Np, v, det, n • Np, v, np • Np, vp • S Va bene se esistono regole alternative per una frase Va male se esistono simboli terminale alternativi per ciascuna parola

  43. Strategie di ricerca • Depth first Attiva le regole una per volta e torna indietro se fallisce (facile da programmare, richiede poca memoria, va bene se il parse tree è profondo) • Breadth first Attiva tutte le regole insieme (può essere più veloce, l’ordine con cui appaiono le regole non è rilevante, va bene se il parse tree è piatto)

  44. Prolog per scrivere grammatiche Una semplice grammatica s --> np vp np --> det n np --> det adj n vp --> v np dove s sentence “the cat ate the big fish” np noun phrase “the cat” vp verb phrase “ate the big fish” det determiner “the” n noun “cat” v verb “ate” adj adjective “big”

  45. Prolog per scrivere grammatiche Si può usare il Prolog per esprimere grammatiche facendo corrispondere una regola Prolog a ciascuna regola della grammatica; es: sentence (S) :- noun_phrase (NP), verb_phrase (VP), append (NP,VP,S). noun_phrase (NP) :- determiner (D), noun(N), append (D,N,NP). noun_phrase (NP) :- determiner (D), adj(A), noun (N), append (D,A,AP), append (AP,N,NP). verb_phrase (VP) :- verb (V), noun_phrase (NP), append (V,NP,VP). …….

  46. Prolog per scrivere grammatiche … determiner ([D]) :- member (D,[the,a,an]). noun ([N]) :- member (N,[cat, dog, mat, meat, fish]). adj ([A]) :- member (A,[big, fat, red]). verb ([V]) :- member (V,[ate, saw, killed, pushed]).

  47. Parser Il parser è un algoritmo che usa una grammatica e un lessico per riconoscere la struttura di una frase. L’input è la frase da analizzare, l’output è una qualche rappresentazione della struttura della frase. Lessico Il lessico mostra a quale simbolo terminale (simbolo che non può essere ulteriormente suddiviso) appartiene una parola del linguaggio (es.: Eat= verbo Duck=noun Duck=verbo

  48. Prolog per analizzare frasi parser s( sentence(NP,VP)) --> np(NP), vp(VP). np(noun_phrase(NP)) -->prpn(PN) np(noun_phrase (D,N) -->det (D), n(N). np(noun_phrase (D,A,N)--> det(D),adjs(A),n(N). adjs(adjective_phrase(A)-->adj(A). adjs(adjective_phrase(A,AJ))--> adj(A),adjs(AJ). …

  49. Prolog per analizzare frasi parser … vp(verb_phrase (V)) --> v(V). vp(verb_phrase(V,NP))--> v(V),np(NP). det(determiner(X)) --> [X],{member(X,[a,an,the])}. n(noun(X)) --> [X],{member(X,[woman, food])}. prpn(proper_noun(X)) --> [X],{member(X,[john,sue,bill])}. adj(adjective(X)) --> [X],{member(X,[red,fat,new])}. v(verb(X)) --> [X],{member(X,[eats,likes,works])}.

More Related