“Colorless green ideas sleep furiously.” Dall’Intelligenza Artificiale al Natural Language Processing Matteo Conci Clara Craffonara Martina Delladio www.pinobruno.it Talk to ELIZA I'm unhappy. Do you believe it is normal to be unhappy? Yes, sometimes, but not always. I am always unhappy. Did you come to me because you are always unhappy? Yes. I want to be happy again. What would it mean to you if you got to be happy again? It would be great. I would live my life with a new motivation. Can you elaborate on that? I would go out with my friends and I maybe find a boyfriend. You don't seem quite certain. My father doesn't believe that I find a boyfriend. I'm not sure I understand you fully. ELIZA è una macchina o una persona? ELIZA è un chatterbot, cioè un programma che simula una conversazione con una persona programma creato nel 1966 da J. Weizenbaum simula una seduta da una psicoterapeuta, dove l’utente è il paziente http://www.planet-source-code.com Test di Turing test di intelligenza per macchine ideato da Alan Turing e pubblicato la prima volta nel 1950 l’elaborazione del linguaggio naturale non è condizione sufficiente e nemmeno necessaria per l’intelligenza http://en.wikipedia.org/ Natural Language Processing (NLP) settore di ricerca integrato all'Intelligenza Artificiale e alla linguistica computazionale si occupa del trattamento automatico del linguaggio naturale scopo: implementare strumenti informatici per analizzare, comprendere e generare testi nel linguaggio naturale Natural Language Understanding (NLU) problema dell’Intelligenza Artificiale completo richiede una conoscenza estesa del mondo e una grande capacità di manipolarlo differenza profonda tra linguaggio formale di programmazione e linguaggio naturale Un po’ di Linguistica Morfologia: parte della Grammatica che studia le forme linguistiche, le norme che regolano la struttura, la flessione, la composizione e la derivazione delle parole Sintassi: studia l'insieme delle relazioni grammaticali tra le parole che costituiscono una frase o, in generale, un'espressione linguistica di più elementi Semantica: studia il linguaggio dal punto di vista del significato Pragmatica: studia il linguaggio in rapporto all’uso che ne fa il parlante Esempio: “Sai che ore sono?” Trasformazione dell’input scritto e orale in una rappresentazione macchina interna Analisi lessicale Nome: DELIMITATORE DI FRASE Compito: suddividere un testo in singole frasi Osservazioni: non sempre i segni d’interpunzione indicano la fine di una frase Esempio: “Geom. Rossi” Nome: TOKENIZER Compito: segmentare un flusso di caratteri in unità minime lessicali significative (=parole) Osservazioni: una parola non può essere sempre vista come la sequenza di caratteri fra due spazi bianchi Esempio: “Città del Vaticano” Analisi grammaticale Nome: STEMMER Compito: ridurre la forma flessa di una parola al suo lemma (=parola scelta per convenzione per rappresentare tutte le forme di una flessione) Esempio: riduzione di “dormirò” a “dormire” Osservazioni: spesso vengono usati dei cosiddetti stemmer euristici che eliminano gli elementi lessicali di superficie (prefissi e suffissi) al fine di scoprire il tema della parola (=parte della parola composta di radice del tema più vocale tematica, a esclusione dei suffissi) Esempio: riduzione di “donazione” a “dona” Analisi grammaticale Nome: PART OF SPEECH TAGGER Compito: etichettare ogni parola con la corretta parte del discorso Osservazioni: frequenti problemi di ambiguità Esempio: “Visiting aunts can be a nuisance.” “Visiting” deve essere etichettato come verbo o come aggettivo? Risoluzione dell’ambiguità con regole sintattiche o facendo riferimento ad un corpus (=collezione di testi) taggato manualmente Analisi sintattica Nome: PARSER Compito: costruire la struttura sintattica di una frase per verificarne la correttezza; indicare quali combinazioni di parti del discorso generano strutture sintatticamente corrette “Colorless green ideas sleep furiously.” usata nel 1957 dal linguista statunitense Noam Chomsky, fondatore della grammatica generativo-trasformazionale evidenzia la necessità di distinguere sintassi e semantica frase sintatticamente corretta, ma priva di significato Rappresentazioni di strutture sintattiche Struttura inscatolata (S: (NP: (ADJ: Colorless) (ADJ: green) (N: ideas)) (VP: (V: sleep) (ADV: furiously)) Parse tree SHRDLU programma sviluppato da T. Winograd alla fine degli anni ’60 il nome deriva dalla sequenza ETAOIN SHRDLU, la disposizione dei tasti su una macchina Linotype l’utente interagisce con un braccio robot all’interno del piccolo “blocks world” scrivendo dei comandi la comprensione del linguaggio naturale da parte del programma risulta credibile grazie alla semplicità del mondo in cui opera http://www.uv.es Il correttore ortografico L’utente inserisce una parola Vindiamo Il software verifica se essa è Si Il software non presente nel dizionario segnala errori No Il software esegue lo stemming (Vind) Il software verifica se il tema è Si presente nel dizionario No Il software cerca nel dizionario le parole con distanza di Levenshtein minore e le suggerisce all’utente Il correttore ortografico La distanza di Levenshtein misura il numero di caratteri che devo modificare per trasformare una stringa in un’altra. Dist. Levenshtein (CANE, PANE) = 1 Dist. Levenshtein (CANE, GATTO) = 4 Limiti e problematiche dei correttori ortografici Quante e quali parole devo inserire nel dizionario? In che ordine presentare i suggerimenti? Come riconoscere errori ortografici di parole singolarmente corrette? (Es. I’m going too sleep.) La semantica È la branca della linguistica che si occupa di studiare il significato delle frasi. Ad esempio Mangio una pesca e una pera La pesca del tonno è in crisi Si riferiscono a due ambiti semantici differenti. Come facciamo a far capire automaticamente il campo semantico ad un PC? La classificazione semantica delle parole Ad ogni parola viene associato un certo numero di etichette che ne identificano la semantica. Es: Espresso {Colazione, Treno, Caffè, Pasto, ... } Il software analizza le parole contenute in un documento e cerca l’area semantica d’appartenenza per intersezione. Colazione Trasporti Treno Cappuccino Espresso Brioches Ritardo Problemi legati a questo tipo di trattazione È sufficiente un approccio meramente statistico, che non tenga in considerazione la grammatica? (Es: Dopo una sana ed abbondante colazione ho preso l’espresso delle 8. Semantica dell’espresso: colazione) È possibile catalogare tutte le parole? Come possiamo trovare una classificazione universale? Ogni termine usato come “etichetta” è a sua volta classificabile? Il filtro web: DansGuardian L’utente chiede una pagina al server (www.repubblica.it) Il proxy la carica al suo interno DansGuardian la legge Se al suo interno ci sono troppe parole vietate, la pagina non viene mostrata Se non trova troppe parole sospette, la pagina viene trasmessa all’utente Dimmi chi? e ti rispondo Servizio della Provincia Autonoma di Trento. Esegue l’analisi delle domande allo stesso modo di un chatterbots e fornisce informazioni sull’anagrafe della pubblica amministrazione trentina (indirizzi, numeri di telefono, orari). Basta inviare un sms al 338 8888 188 con la domanda e il sistema invia la risposta. Es: DOMANDA: “A che ora parte un Bus da Trento per Arco domani?” RISPOSTA: PART Trento (autostaz.)Ore 6.23 ARR Arco (autostaz.) ore: 7.25 Tipo: Bus Extraurbano – INFO TEL 0461 821000 Il web semantico Attraverso dei formati standard l’utente etichetta tutte le informazioni contenute nel suo sito manualmente e crea un’ONTOLOGIA, ovvero una serie di regole che leggano queste etichette e le possano tradurre in testo completo, secondo una gramamtica semplice e strutturata. E’ in questo modo possibile che da frasi come: Giorgio Napolitano, Presidente della Repubblica, vive a Roma Si estraggano informazioni in linguaggio naturale: Giorgio Napolitano è il Presidente della Repubblica Il presidente della repubblica vive a Roma Talk to ELIZA asdjas maybe djskal djsakd Can't you be more positive? no. thfd dfladf dark and negative You are being a bit negative. dnaskd you djaksdj djaskfjhvd You're not really talking about me, are you? the color of dkas is green That is quite interesting. I want to be fdskafa again What if you never got to be fdskafa again? all the adhfakdf are dkfsfe What does that suggest to you? Conclusioni ELIZA non capisce il linguaggio naturale anche i chatterbots di ultima generazione non sono in grado di capire il linguaggio naturale non esistono per il momento applicazioni che riescano a trattare in modo completo un testo qualsiasi sono stati fatti grandi passi avanti nel delineare i vari problemi che ci sono nel trattamento automatico del linguaggio naturale Conclusioni la ricerca nel settore del NLP diventa sempre più importante – – – traduzione automatica di testi di vario genere riassunto di articoli e altri testi ricerca più veloce ed efficace di informazioni nel web sono stati finanziati grandi progetti “We can only see a short distance ahead, but we can see plenty there that needs to be done." A. Turing Riferimenti bibliografici Jackson P., I. Moulinier, Natural Language Processing for Online Applications, John Benjamins Publishing Company, Amsterdam/Philadelphia, 2002 http://www.mondodigitale.net http://en.wikipedia.org/wiki/ http://dizionari.corriere.it/dizionario_italiano http://www.manifestation.com/neurotoys/eliza.php3