Linguistica Computazionale 22 settembre 2014 Obiettivi del corso l Introduzione ai principali metodi di linguistica computazionale e di “Natural Language Processing” (NLP) l Docenti l l Alessandro Lenci (Dip. di Filologia, Letteratura e Linguistica) Felice Dell’Orletta (ILC-CNR) 2 Modalità d’esame l Prove scritte agli appelli di esame + progetto l l l Le prove scritte possono essere sostenute come prove in itinere l l la prova scritta è divisa in 2 parti (per esame da 12 CFU), che possono essere date simultaneamente o in appelli diversi il progetto deve essere svolto INDIVIDUALMENTE NB: SOLO PER FREQUENTANTI Per superare l’esame è necessario conseguire almeno 18/30 in ciascuna delle prove scritte + idoneità sul progetto l il voto d’esame è dato dalla media dei voti delle prove scritte + bonus per il progetto (1 o 2 punti) 3 Esercitazioni di laboratorio l Giovedì 8.30 – 10.00 l Laboratorio H - Polo Fibonacci l l l chi non possiede un account deve farne richiesta al Centro di Calcolo presso il Polo Fibonacci Inizio: Giovedì 25 settembre Temi delle esercitazioni l l l l l l introduzione a Natural Language Toolkit (NLTK) XML e annotazione linguistica espressioni regolari estrazione ed analisi di dati linguistici da corpora esercizi di statistica del testo annotazione linguistica automatica del testo con NLTK4 Informazioni e contatti l Ricevimento l Prof. Alessandro Lenci l giovedì 15.00-17.00 Dipartimento di Filologia, Letteratura e Linguistica, Via Santa Maria 36 e-mail: [email protected] tel.: 050-2215638 oppure 050-3152837 www: http://www.humnet.unipi.it/linguistica/Docenti/Lenci/index.htm l Dott. Felice Dell’Orletta l venerdì16.00-18.00 Istituto di Linguistica Computazionale CNR, Via Moruzzi 1 (stanza 21) e-mail: [email protected] tel.: 050-3152847 l E-learning l Moodle: http://moodle.humnet.unipi.it/ l l informazioni sul corso, materiale didattico, avvisi, prove di esame, ecc. NB: tutti gli studenti del corso devono registrarsi 5 Testi di esame l A. Lenci, S. Montemagni, V. Pirrelli (2005), Testo e Computer. Elementi di linguistica computazionale, Roma, Carocci l D. Jurafsky e J.H. Martin (2000), Speech and Language Processing, Prentice Hall l capp. 1, 2, 3, 5.1-5.6, 6.1-6.2, 6.7, 8.1-8.4, 8.6, 9, 10.1-10.3, 16 l l Biblioteca ILC-CNR e SNS S. Bird, E. Klein, E. Loper (2009), Natural Language Processing with Python, O’Reilly (liberamente scaricabile da http://www.nltk.org/book_1ed/) l capp. 1, 2, 3, 7, 8 6 Crediti e programmi l 12 CFU l l l tutte le lezioni ed esercitazioni due prove in itinere progetto finale l l testi di esame l l l creazione di un corpus ed analisi computazionale con NLTK Testo e Computer Speech and Language Processing 6 CFU l l lezioni ed esercitazioni fino alla I prova in itinere progetto finale l l creazione di un corpus ed annotazione linguistica in XML testi di esame l Testo e Computer 7 Cosa è la linguistica computazionale? linguaggio naturale l La linguistica computazionale è un settore di ricerca che vede coinvolti linguisti, informatici e scienziati cognitivi per raggiungere due obiettivi principali: l l applicare la matematica e l'informatica allo studio del linguaggio umano e dei testi dotare i computer della capacità di usare il linguaggio come noi 8 Big (linguistic) data Cosa può fare il computer per lo studio del linguaggio? l Come studiare … l l l l l la distribuzione della parole in un autore letterario i mutamenti semantici delle parole le differenze linguistiche tra vari registri (es. linguaggio scritto e parlato) il lessico e le costruzioni grammaticali di una lingua Digital humanities l l l quantità crescenti di testi sono disponibili in formato digitale per la ricerca linguistica i testi digitali sono fonti di dati per la ricerca linguistica e filologica è necessario disporre di metodologie per la rappresentazione, ricerca e analisi dei dati testuali digitali 10 Analisi computazionale dei dati linguistici l La linguistica computazionale permette di affrontare queste ricerche attraverso l l metodi e strumenti informatici per la rappresentazione e gestione di grandi quantità di dati linguistici l rappresentazione digitale del testo l codifica e annotazione di informazione linguistica ricerche ed esplorazioni avanzate del testo l l l metodi matematici e statistici l l ricerche di informazioni testuali e dati linguistici visualizzazione dell’informazione nel testo analisi quantitative dei dati linguistici Le potenzialità “standard” del computer possono essere usate per la gestione e l’analisi dei dati linguistici… ma non bastano! 11 Analisi computazionale dei dati linguistici Il computer non conosce il linguaggio naturale ovvero non ha alcuna conoscenza riguardo alla sua struttura l forme superficiali vs. lessemi: l l ambiguità morfosintattiche l l NAVIGARE {navigo, navighi, … , navigava, … , navigato …} stato {stato, m.s. -> STATO, N} {stato, part. pass -> ESSERE, V} {stato, part. pass -> STARE, V} ambiguità semantiche l navigare {andare per mare} {visitare pagine web su Internet} 12 Cosa può fare il linguaggio per il computer? l Il Natural Language Processing (NLP) o Trattamento Automatico del Linguaggio (TAL) cerca di dotare il computer di conoscenze linguistiche allo scopo di: l progettare programmi e sistemi informatici che assistano l’uomo in “compiti linguistici” l l l l traduzione gestione dei testi, ecc. interazione con essere umani in maniera “naturale” estrazione automatica di informazioni da testi o da altri media 13 La linguistica computazionale ieri e oggi 1957 Anni ’60-’80 Nasce la Grammatica Generativa Modelli simbolici (Chomsky) Logica & Intelligenza Artificiale Natural Language Understanding (Minsky, Schank, Winograd, et al.) Anni ’90-Oggi Empirical NLP NLP statistico Machine Learning Anni ’50 Metà anni ’60 Anni ’60-’80 Prime applicazioni del computer ai testi letterari I primi corpora elettronici Sviluppo della Corpus Linguistics e della statistica linguistica (Padre Busa, Pisa) (Francis & Kucera) (Charniak, Church, et al.) (Leech, Sinclair, Herdan, et al.) 14 La linguistica computazionale a Pisa l Pisa è stata la culla della linguistica computazionale italiana ed è tuttora uno dei maggiori centri di ricerca in questo settore 15 Natural Language Processing (NLP) l Quali conoscenze linguistiche deve possedere il computer? l articolare e decodificare i suoni di una lingua l l conoscere le parole di una lingua, la loro struttura e la loro organizzazione l l sintassi assegnare significati alle espressioni linguistiche semplici e complesse l l lessico e morfologia comporre le parole in espressioni linguistiche complesse (sintagmi, frasi, ecc.) l l fonetica articolatoria e acustica, fonologia, prosodia, ecc. semantica (lessicale e composizionale) usare le frasi nei contesti, situazioni e modi appropriati agli scopi comunicativi l pragmatica 16 Natural Language Processing (NLP) Alcune applicazioni l l Correttori ortografici, grammaticali, ecc. Recupero “intelligente” di documenti l l Riconoscimento automatico del parlato l l Question Answering (QA) Traduzione (semi)-automatica di testi l l Information Extraction (IE) Interrogare documenti attraverso domande in linguaggio naturale l l Text-To-Speech (TTS) Estrazione automatica di informazione da testi l l Automatic Speech Recognition (ASR) Sintesi automatica della voce l l Information Retrieval Machine translation Interazione (conversazione) uomo-macchina multimodale 17 Computer che parlano rispondere a domande riconoscere la voce e dialogare tradurre 18 NLP - traduzione automatica Google traduzione automatica 19 NLP - traduzione automatica Tratto da Google FAQ http://translate.google.com/about/intl/it_ALL/ 20 Computer che parlano, non troppo bene… … ma si (ci) fanno capire NLP - question-answering Watson, sistema di QuestionAnswering dell’IBM Nel febbraio 2011 ha sconfitto i campioni di Jeopardy! Watson ha accesso a centinaia di milioni di documenti da cui estrae le informazioni per rispondere alle domande attraverso tecniche di NLP 23 HAL 9000 è ancora lontano, ma … l Molti applicativi di NLP sono ormai disponibili (anche commercialmente): l l l crescente impatto sociale notevole impatto tecnologico ed economico (Ingegneria del Linguaggio) nuovi strumenti dotati di “capacità linguistiche” a disposizione per l’analisi dei dati linguistici e per l’ausilio nella gestione e nel trattamento dell’informazione 24 Modelli computazionali della facoltà del linguaggio l Simulazioni computazionali dell’acquisizione del linguaggio l l l reti neurali Modelli computazionali del mutamento e dell’uso linguistico Simulazione dei processi linguistici mentali (anche in soggetti patologici) l l organizzazione e rappresentazione della conoscenza linguistica “processing” linguistico 25 Cosa è la linguistica computazionale? Acquisizione, conoscenza e uso del linguaggio linguistica computazionale • Analisi computazionali dei dati linguistici • Natural Language Processing • Ingegneria del Linguaggio Simulazioni computazionali della facoltà del linguaggio 26 Cosa è la linguistica computazionale? linguistica computazionale scienze cognitive linguistica teorica psicologia linguistica applicata Digital Humanities informatica Intelligenza artificiale 27 Temi principali del corso l Analisi computazionale del testo l l l l l l l corpora – tipologia e criteri di progettazione preparazione del testo per analisi computazionali – testo e computer, tokenizzazione, ecc. statistica descrittiva del testo cenni di calcolo delle probabilità applicato al linguaggio metodi qualitativi e quantitativi di esplorazione del testo annotazione linguistica e XML Natural Language Processing l l l l l l Automi a Stati Finiti – definizione e applicazioni al riconoscimento morfologico analisi morfologica automatica con Trasduttori a Stati Finiti part of speech tagging – algoritmi a regole e di “machine learning” grammatiche “context free” parsing – parsing “context free”, “shallow parsing” lessici computazionali semantici 28