Linguistica Computazionale - elearning.humnet.unipi.it · Tre requisiti per la linguistica...
Transcript of Linguistica Computazionale - elearning.humnet.unipi.it · Tre requisiti per la linguistica...
5 ottobre 2016
Linguistica Computazionale
Google Books Corpus Michel et al. (2011) l Corpus di ca. 5,2 milioni di libri
l sottoinsieme dei ca. 15 milioni di libri digitalizzati da Google l corpus multilingue con testi dal 1500 ai giorni nostri
l più di 361 miliardi di parole inglesi, 45 miliardi francesi, 45 miliardi spagnole, ecc.
l risorsa di dati per la “culturomics” l studio di mutamenti culturali attraverso l’analisi computazionale di
corpora testuali l “The corpus cannot be read by a human. If you tried to read only
English-language entries from the year 2000 alone, at the reasonable pace of 200 words/min, without interruptions for food or sleep, it would take 80 years. The sequence of letters is 1000 times longer than the human genome: If you wrote it out in a straight line, it would reach to the Moon and back 10 times over” (Michel et al. 2011: 176)
l consultabile con Google Ngram Viewer: http://books.google.com/ngrams
3
Google Books Corpus Michel et al. (2011)
l Corpus di ca. 5,2 milioni di libri l sottoinsieme dei ca. 15 milioni di libri digitalizzati da Google l corpus multilingue con testi dal 1500 ai giorni nostri
l più di 361 miliardi di parole inglesi, 45 miliardi francesi, 45 miliardi spagnole, ecc.
l risorsa di dati per la “culturomics” l studio di mutamenti culturali attraverso l’analisi computazionale di corpora
testuali l “The corpus cannot be read by a human. If you tried to read only English-
language entries from the year 2000 alone, at the reasonable pace of 200 words/min, without interruptions for food or sleep, it would take 80 years. The sequence of letters is 1000 times longer than the human genome: If you wrote it out in a straight line, it would reach to the Moon and back 10 times over” (Michel et al. 2011: 176)
l consultabile con Google Ngram Viewer: http://books.google.com/ngrams
4
Qualche conclusione l I corpora offrono al linguista computazionale l’opportunità di
sviluppare modelli e applicazioni sulla base di dati linguistici “ecologici” direttamente estratti dal loro “habitat” naturale, il testo
l La qualità e la quantità dei materiali raccolti determinano la fisionomia del corpus
l La valutazione del grado di rappresentatività del corpus deve essere comunque l’orizzonte di riferimento l è sempre necessario valutare in che misura i risultati di un
analisi o esperimento possano dipendere dalla scelta e dalla natura dei dati a disposizione
5
Tre requisiti per la linguistica computazionale e NLP l dati linguistici
corpora di testi digitali l metodi e strumenti formali
logica , matematica, statistica, algoritmica l software
linguaggi di programmazione, strumenti e ambienti di sviluppo
Strumenti e risorse per la linguistica computazionale
l Il recupero di quantità significative di dati linguistici è la precondizione di ogni indagine linguistico-computazionale l uso di corpora generali esistenti
l Brown Corpus, Wall Street Journal, ecc. l BNC l PAROLE, ecc.
l costruzione di un corpus specializzato per il task in oggetto
6
Rappresentazione del testo su supporto digitale in un formato “leggibile” da un computer
Machine Readable Form (MRF)
La codifica digitale del testo
l Ogni tipo di informazione deve essere codificata in cifre binarie l codificare informazione = associare a ciascuna unità di
informazione un codice (sequenza di cifre binarie) che la identifica in maniera univoca
l I testi per essere elaborati o trasmessi da un programma devono avere una rappresentazione (codifica) binaria
7
La codifica di alto livello permette di rendere esplicita qualsiasi interpretazione, anche di tipo linguistico, si voglia associare al testo
La codifica digitale del testo l Due livelli di codifica del testo digitale
l codifica di basso livello (codifica di livello 0) l riguarda la rappresentazione binaria della sequenza
ordinata dei caratteri l codifica di alto livello
l arricchisce il testo codificato al livello zero con informazione relativa a dimensioni linguistiche e strutturali § organizzazione del testo in strutture macrotestuali § articolazione del testo in strutture linguistiche
8
Codifica di livello 0 - Plain text Il testo digitale per le analisi computazionali
l Plain text (o txt) l un file solo testo è costituito da una sequenza di bytes dove ciascun
byte rappresenta un carattere secondo un particolare codice l gli editori di testo sono programmi in grado di creare e leggere files di
tipo solo testo l Emacs, Blocco Note, Word Pad, ecc.
§ quando un editore di testo legge un file cerca di associare ogni sequenza di bits a un carattere secondo un particolare codice
l Vantaggi l formato “aperto”, indipendente dal sistema operativo e dal programma
che lo ha creato l massima portabilità e interscambiabilità dei testi
l Svantaggi l non può rappresentare aspetti relativi alla codifica di alto livello (es.
formattazione del testo, informazione llinguistica, ecc.) § minima espressività
9
Le avventure di Pinocchio Capitolo I Come andò che Maestro Ciliegia, falegname, trovò un pezzo di legno, che piangeva e rideva come un bambino. C'era una volta... - Un re! - diranno subito i miei piccoli lettori. - No, ragazzi, avete sbagliato. C'era una volta un pezzo di legno. Non era un legno di lusso, ma un semplice pezzo da catasta, di quelli che d'inverno si mettono nelle stufe e nei caminetti per accendere il fuoco e per riscaldare le stanze. Non so come andasse, ma il fatto gli è che un bel giorno questo pezzo di legno capitò nella bottega di un vecchio falegname, il quale aveva nome mastr'Antonio, se non che tutti lo chiamavano maestro Ciliegia, per via della punta del suo naso, che era sempre lustra e paonazza, come una ciliegia matura.
Il testo come sequenza di caratteri Ciascun carattere alfanumerico, di punteggiatura o di controllo che
compone il testo deve essere rappresentato nei termini di un codice binario
Codifica di livello 0 - Plain text
10
Codifica di alto livello Interpretazione e codifica l Interpretazione del testo
l informazioni che caratterizzano la struttura, contenuto, presentazione, natura linguistica, ecc. di un testo e del suo contenuto informativo
l esistono vari livelli e gradi di interpretazione l tipografica, extratestuale, linguistica, ecc.
l metadati l “informazione sull’informazione”
l Codifica di alto livello l processo attraverso cui viene resa esplicita un’interpretazione del
testo l la codifica permette di rendere machine readable informazioni sul
testo e tratti del testo che altrimenti non sarebbero elaborabili dal computer
11
La codifica digitale del testo Il testo e la sua organizzazione
titolo
capitolo
testo
intestazione
12
La codifica digitale del testo Il testo e la sua struttura linguistica
frase relativa
tutti = soggetto
sintagma nominale
articolo indefinito femminile singolare
stanza come luogo
V andare
pass. rem. 3 sing.
13
dati linguistici
informazione linguistica
conoscenza linguistica
le parole di un testo
l’organizzazione strutturale e linguistica di un testo
la conoscenza della lingua
modelli della lingua
La codifica di alto livello permette di rendere espliciti e accessibili al computer i livelli di organizzazione strutturale di un testo e lo trasforma in
una fonte di informazione linguistica
Perché codificare? La gerarchia dell’informazione linguistica
14
Come codificare? i linguaggi di marcatura l Codifica di alto livello con linguaggi di mark-up (linguaggi di
marcatura) come XML l dal punto di vista del formato digitale un testo codificato in XML è in
formato solo testo l l’informazione strutturale è rappresentata attraverso l’aggiunta al testo di
etichette (o tag) di marcatura l sequenze di caratteri visibili secondo una convenzione standard, intercalati
nel testo seguendo precise regole di combinazione l “marcano” blocchi di testo a cui viene assegnata una determinata
interpretazione l codici in formato testo vengono usati per specificare informazioni sul testo
l il testo e i suoi metadati sono entrambi in formato “plain text”
l Vantaggi l portabilità e interscambiabilità dei testi codificati l massimo grado di espressività
§ è possibile esprimere tutti gli aspetti della codifica di alto livello, compresa l’informazione linguistica
15
<libro> <titolo>Le avventure di Pinocchio <sottotitolo>Storia di un burattino</sottotitolo> </titolo> <autore>Carlo Collodi</autore> <parte p_id=”1”> <titolo>Parte prima</titolo> <capitolo c_id=”I”> <titolo> Come andò che maestro Ciliegia, falegname, trovò un pezzo di legno, che piangeva e rideva come un bambino.</titolo> <capoverso num=”p1c1c1”>C'era una volta...</capoverso> <capoverso num=”p1c1c2”>- Un re! - diranno subito i miei piccoli lettori.</capoverso> <capoverso num=”p1c1c3”>No, ragazzi, avete sbagliato. C'era una volta un pezzo di legno.</capoverso> <capoverso num=”p1c1c4”>Non era un legno di lusso, ma un semplice pezzo da catasta, di quelli che d'inverno si mettono nelle stufe e nei caminetti per accendere il fuoco e per riscaldare le stanze.</capoverso> </capitolo></parte> </libro>
mark-up per la codifica di informazione strutturale
Come codificare? i linguaggi di marcatura
16
<libro> … <parte> <capitolo c_id=”I”> <titolo>Come <parola cat=“V” tempo=“passRem”>andò</parola> che <parola cat=“N” genere=“m” num=“s”>maestro</parola> Ciliegia, falegname, trovò <sintagma tipo=”nominale”><parola cat=“artInd” genere=m” num=“s”>un</parola> pezzo di legno</sintagma>, che piangeva e rideva come un bambino.</titolo> </capitolo></parte> </libro>
mark-up per la codifica di informazione strutturale
mark-up per la codifica di informazione linguistica
+
Come codificare? I linguaggi di marcatura
17
Preparazione del testo l I testi digitali possono contenere varie forme di
“rumore” l errori di conversione
l caratteri spuri, ecc. l errori nella digitalizzazione (OCR) l codici di markup
l Vari aspetti del testo legati alla sua fruizione umana, possono ostacolarne l’elaborazione computazionale l convenzioni ortografiche l diversi sistemi di scrittura
18
Preparazione del testo
l Preparazione del testo l serie di elaborazioni preliminari attraverso le quali
il testo viene preparato per l’analisi con strumenti computazionali
l Fasi principali l text cleaning l verifica dei caratteri del testo l normalizzazione del testo l tokenizzazione
19
Text cleaning l I testi per le analisi computazionali sono sempre più
di frequente scaricati dal Web l contengono codici in formato testo che devono essere
rimossi per isolare il contenuto testuale l In generale, i documenti digitalizzati devono essere
ripuliti da tutti gli elementi che possono alterare le successive elaborazioni computazionali l tabelle, didascalie delle figure, intestazioni delle pagine e in
generale di materiale ripetuto per ragioni tipografiche l rimozione del mark-up html l eliminazione dei titoli per la barra di navigazione, frammenti
di codice JavaScript, links, ecc. l cf. iniziativa internazionale CLEANEVAL
20
Text cleaning
21
Text cleaning <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/ DTD/xhtml1-
transitional.dtd"> <html lang="en" dir="ltr" class="client-nojs” xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Human rights - Wikipedia, the free encyclopedia</title> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <meta http-equiv="Content-Style-Type”
content="text/css" /> <meta name="generator" content="MediaWiki 1.18wmf1" /> [...] <p><b>Human rights</b> are "basic <a href="/wiki/Rights” title="Rights">rights</a> and <a href="/wiki/Freedoms”
title="Freedoms" class="mw-redirect">freedoms</a> that all people are entitled to regardless of nationality, sex, age, national or ethnic origin, race, religion, language, or other status."<sup id="cite_ref-amnestydefinition_0-0” class="reference"><a href="#cite_note-amnestydefinition-0"> <span>[</span>1<span>] </span></a></sup> Human rights are conceived as <a href="/wiki/Universality_(philosophy)” title="Universality (philosophy)"> universal</a> and <a href="/wiki/Egalitarian" title="Egalitarian" class="mw-redirect"> egalitarian</a>, with all people having equal rights by virtue of being human.<sup id="cite_ref-amnestydefinition_0-1” class="reference"><a href="#cite_note-amnestydefinition-0"><span
Human rights are "basic rights and freedoms that all people are entitled to regardless of nationality, sex, age, national or ethnic origin, race, religion, language, or other status." Human rights are conceived as universal and egalitarian, with all people having equal rights by virtue of being human. These rights may exist as natural rights or as legal rights, in both national and international law. The doctrine of human rights in international practice, within international law, global and regional institutions, in the policies of states and the activities of non-governmental organisations has been a cornerstone of public policy around the world.
22
a carattere
97 codice (decimale) del carattere
0 1 1 0 0 0 0 1 codifica binaria del codice del carattere
I computer elaborano internamente solo sequenze di bits (0,1)
Maestro Ciliegia
Caratteri e computer
23
Come sono rappresentati i caratteri nel computer? l Repertorio di caratteri
l un insieme di caratteri (es. “A”, “a”, “!”, “à”, “P”, ecc.) l i caratteri sono entità astratte, da non confondersi con il modo in cui
sono realizzati graficamente (gliphs) l “a”, “a”, “a”, “a” sono tutti lo stesso carattere “a” l la stessa realizzazione grafica può corrispondere a caratteri diversi (es.
“A” latino e “A” cirillico e “A” greco) l Set di carattere (codice)
l una tabella che definisce una corrispondenza biunivoca (1-a-1) tra un repertorio di caratteri e un insieme di numeri interi non negativi l a ogni carattere è assegnato un codice numerico (punto di codice o code
position) l Codifica di carattere
l algoritmo che determina come i codici dei caratteri sono rappresentati in sequenze di bits (bytes)
24
Il codice ASCII l Primo standard per l’assegnazione di codici a caratteri (dal
1963) l set di caratteri riconosciuto da tutti i computer l conosciuto come “ASCII Standard” o ISO-646
l Codifica l 7 bits
l ciascun punto di codice è rappresentato con il numero binario corrispondente di 7 bits
l in realtà 1 byte = 8 bits di cui un bit non è usato per la codifica (bit di parità)
l 7 bits = 27 punti di codice = 128 caratteri rappresentati l Sufficiente per rappresentare l’inglese
l mancano i caratteri accentati, umlauts, ecc. per rappresentare altri alfabeti occidentali
25
ASCII Standard decimale ed esadecimale
26
ASCII Standard Caratteri di controllo
0-32
128-159
Il set di caratteri ISO-Latin-1 l ISO-Latin-1 (ISO-8859-1 o ASCII esteso)
l unica estensione standard di ASCII l 1 byte = 8 bits = 28 punti di codice = 256 caratteri rappresentati l sufficiente per lingue europee occidentali (italiano, francese, ecc.)
27
La famiglia di caratteri ISO-8859 l 14 set di caratteri standardizzati da ISO (International Standard
Organization) l Codifica
l 1 byte = 256 caratteri rappresentati da ciascun set l Soprainsiemi dei caratteri ASCII Standard
l punti di codice 0 - 127 (parte comune) ASCII l punti di codice 128 - 159 codici di controllo (non corrispondono a
caratteri grafici) l punti di codice 160 - 255 (parte variabile) caratteri aggiuntivi per
greco, cirillico, lingue slave, arabo, ecc.
l I set di ISO-8859 sono tutti reciprocamente incompatibili l Punto di codice 232
l ISO-8859-1 (Latin-1) = “è” l ISO-8859-6 (Cyrillic) = “ш”
l ISO-8859 non copre lingue come giapponese, cinese, ecc.
28
ISO-Latin-1
La famiglia di caratteri ISO-8859
29
The Universal Character Set UNICODE (ISO-10646) l Standard internazionale che permette di rappresentare
qualsiasi tipo di carattere appartenente ai sistemi grafici esistenti l lingue europee, asiatiche, arabo, ebraico, cirillico, ugaritico, ecc. l permette la composizione dinamica dei caratteri
l caratteri pre-composti (ç) equivalenti a caratteri composti dinamicamente (c + ¸)
l Assegna un numero di codice univoco ad ogni carattere l “è” = 232 l “ш” = 1096
l Risolve i problemi di incompatibilità dei sistemi ISO-8859 l estende l’insieme dei caratteri supportati l permette la realizzazione di documenti multilingue l http://www.unicode.org
30
The Universal Character Set UNICODE (ISO-10646) l Più di 100.000 caratteri grafici rappresentati (Unicode v. 6.2.0)
l … ma i punti di codice disponibili sono più di 1 milione !! l Molteplici tipi di codifica:
l UCS-2, UCS-4, UTF-8, UTF-16, ecc. l Codifica comune UTF-8
l codifica di Unicode a lunghezza variabile che usa da 1 a 4 “ottetti” (blocchi di 8 bits = 1byte) per ogni carattere
l UTF-8 usa 1 byte per la codifica dei caratteri corrispondenti al set ASCII l totale compatibilità con la codifica ASCII (…ma non con ISO-latin –1!!!)
31
The Universal Character Set UNICODE (ISO-10646)
32
Caratteri e computer
Ab bkйd من٦و
ds kjdks kdsk
sybco oθδjpjp
Unicode ISO-Latin-1
1010011101
1000100100
1001010010
0110010100
Ab bkƛd ƛƛƛƛ
ds kjdks kdsk
sybco oƛƛjpjp
1010011101
1000100100
1001010010
0110010100
33
Caratteri e computer Risoluzione dei problemi l Analisi dei caratteri nel testo
l individuare il set di caratteri con cui è scritto il documento l ASCII Standard, Unicode, ISO-8859, ecc. l cf. comando file nella shell di Linux
l individuare il set di caratteri accettati dal programma con cui si deve elaborare il testo
l verificare l’eventuale esistenza di caratteri non-standard l editor esadecimale
l Conversione dei caratteri del testo per renderli compatibili con quelli richiesti dal software l cf. comando iconv nella shell di Linux l NB: attenzione al differente “fine linea” in DOS/Windows (\r\n) e
Linux/Unix (\n)
34
Normalizzazione del testo maiuscole e minuscole l L’elaborazione computazionale del testo è normalmente “case
sensitive” l “treno” e “Treno” sono considerate due parole diverse
l Ambiguità nell’uso della maiuscola: l nomi propri
l Carlo Azeglio Ciampi l inizio frase
l La macchina non partiva. l enfasi e titoli
l … ma ATTENZIONE … l NUOVA STRAGE DEL TERRORE
l Trasformare le maiuscole in minuscole (case-folding) non è sempre la soluzione ottimale l le maiuscole possono avere valore discriminativo e semantico
l cf. NATO vs. nato, USA vs. usa, Agnelli vs. agnelli