Percorso: "Rappresentazione e analisi del testo e dei documenti" UNITA' 7 - I corpora e il web 1. Che cosa sono i corpora I corpora sono grandi raccolte di dati linguistici. Più precisamente, "sono collezioni, per lo più di grandi dimensioni, di testi orali o scritti prodotti in contesti comunicativi reali (per es., registrazioni di discorsi o articoli di giornale), conservati in formato elettronico e spesso corredati di strumenti di consultazione informatici." [1] Un corpus è una collezione di testi selezionati e organizzati per facilitare le analisi linguistiche ... Servendosi di strumenti di analisi quantitativa e statistica, [la linguistica dei corpora] esplora le regolarità linguistiche che emergono dai testi e che costituiscono la base per la descrizione della struttura del linguaggio (e delle lingue). [Wikipedia] I corpora possono essere monolingua, o multilingua. Un corpus multilingua può contenere testi in diverse lingue non correlati tra di loro. Ma, per certi scopi sono molto utili i corpora "paralleli", che consistono di coppie di documenti e/o frasi bi-lingue, come risultato di un'operazione di "allineamento" (si veda più avanti). Una situazione intermedia è quella dei corpora "comparabili", che contengono documenti con contenuto simile in più lingue; nel caso di Wikipedia, per esempio, sono disponibili oltre 40 milioni di articoli bilingue sugli stessi soggetti, per 253 coppie di lingue. 2. Caratteristiche dei corpora Formato digitale Ai nostri giorni, quando si parla di corpora, li si considera quasi sempre come fonti di dati stabili, disponibili in formato digitale, che possono essere sfruttati mediante i computer: sottoposti a ricerca, a filtraggio, più in generale a elaborazione. Normalizzazione Quando si costruiscono dei corpora, un importante obbiettivo è poterli condividere con altri, sia per ammortizzarne il costo, sia per poter confrontare con altri i risultati delle tecniche di elaborazione applicate su di essi. La normalizzazione può riguardare numerosi aspetti e diversi stadi di lavorazione di un corpus; per esempio: - la granularità: dimensione tipica dei documenti e criteri per individuarli all'interno del tutto - la codifica dei caratteri; tipicamente dovrebbe essere Unicode, più pecisamente UTF-8 - modalità di annotazione, ai diversi livelli di elaborazione a cui questa può riferirsi. Un'importante iniziativa di normalizzazione è la Text Encoding Initiative (TEI), lanciata nel 1987, che ha definito uno standard per la rappresentazione dei testi in formato digitale, a partire da XML. A differenza da HTML, esso è fortemente orientato semanticamente. Le linee guida che lo accompagnano vengono incontro alle esigenze di diverse comunità scientifiche e professionali: il formato TEI include "tag" riferibili a 500 differenti componenti e concetti (parola, frase, carattere, glifo, persona, ecc.), ciascuno dei quali è radicato in una o più discipline scientifiche. [Wikipedia] Annotazione È sempre più comune la pratica di annotare i corpora, rendendo esplicite varie informazioni in essi contenute in modo da permettere ricerche più sofisticate [1]. Annotare un corpus significa associare al corpus considerato come un tutto, a ciascun dei documenti che lo compongono, e al testo dei singoli documenti informazione che riassuma il risultato di elaborazioni già eseguite su di essi. Per esempio, in linguistica, un "treebank" è un corpus di testo analizzato che contiene l'annotazione sintattica o semantica delle frasi. [Wikipedia] Laddove un testo o un intero corpus è stato sottoposto ad un "pipeline" di operazioni (una sequenza in cui il risultato di un'operazione è passato in ingresso all'operazione successiva), alla fine l'annotazione risultante potrà consistere nell'insieme delle annotazioni aggiunte ad ogni stadio; questo per esempio è il caso del pipeline standard implementato dall'ambiente spaCY (si veda il cap. 8). I testi dei singoli documenti possono essere annotati in diverse modalità. La principale distinzione è tra annotazione "in linea" e "fuori linea". Un esempio di annotazione in linea è la marcatura HTML, nella quale i tag HTML di apertura e di chiusura racchiudono frammenti di testo per suggerirne il ruolo (strutturale, semantico, ecc.) o il modo di visualizzarli; come formalismo più generale e potente viene di solito usato il linguaggio XML, di cui HTML è una derivazione. Si ha invece l'annotazione fuori linea quando l'informazione che arricchisce o interpreta il testo viene riportata a parte e posta in correlazione con i frammenti del testo (quali singoli token, sequenze di token o intere frasi) mediante "puntatori", per esempio individuando ciascun frammento con gli indici di carattere iniziale e finale, espressi come distanze in caratteri dall'inizio del testo. Allineamento Allineare due corpora significa porre in corrispondenza, ordinatamente, gli elementi di un corpus con quelli dell'altro. Ad un livello superiore si possono mettere in corripondenza, uno a uno, i documenti costituenti. Considerati poi due documenti, si possono mettere in corrispondenza, ordinatamente, sequenze di frasi del primo con sequenze di frasi del secondo; ovviamente per poter fare questo è necessario aver segmentato il testo dei documenti stessi. Un caso di uso tipico dell'allineamento tra corpora è quello di corpora "paralleli" in lingue diverse; ciascun documento in Inglese del primo corpus potrebbe corrispondere ad un documento in Italiano nel secondo corpus. Corpora paralleli multi-lingue possono essere molto utili per studiare le differenze tra due lingue, per costruire vocabolari, per estrarre terminologie multilingue. Nel caso di corpora allineati multilingue, date due frasi corrispondenti nell'allineamento tra due documenti, si possono ancora mettere in corrispondenza sottoinsiemi di token della prima con sottoinsiemi di token della seconda; in questo caso in generale non si tratterà di sequenze, perché di solito frasi corrispondenti in lingue diverse (...) non hanno lo stesso numero di token, e anche se si può individuare una corrispondenza parziale tra i token delle frasi nelle due lingue, in generale il loro ordine è diverso. Abbiamo qui parlato di allineamento come di un concetto a parte, ma va notato che l'allineamento di due corpora non è altro che un caso particolare di annotazione coordinata dei corpora stessi. Infine, riferendoci ai corpora paralleli multilingue, possiamo pensare di estendere l'allineamento da 2 corpora a N corpora, in N lingue diverse. In tal caso, allineare i corpora a livello di documenti può non essere complesso; ma una serie di problemi che qui non approfondiamo nascono nell'allineare le frasi e, soprattutto, nell'allineare i token. 3. Usi dei corpora I corpora ci forniscono la materia prima per esemplificare la maggior parte dei concetti relativi all'analisi dei testi e per testarne gli algoritmi. Studio dell'uso di una lingua I corpora permettono di osservare l’uso effettivo di una lingua e di verificarne tendenze generali su base statistica. Quasi tutte le operazioni elementari o complesse sui testi, a diversi livelli di granularità (caratteri, token, frasi, sintagmi, ecc.), possono essere viste come strumenti per costruire "modelli" di un linguaggio, sia questo inteso come una "lingua" in generale, o un linguaggio settoriale, o il "linguaggio" di un particolare autore. Uso in lessicografia e terminologia I corpora rivestono un’importanza fondamentale nella lessicografia contemporanea, all’interno della quale sono utilizzati tra l’altro per selezionare lemmi in base alla loro frequenza d’uso, per identificare le costruzioni tipiche in cui una parola occorre (concordanze) e per coglierne le sfumature di senso in base ai contesti [1]. Inoltre, come si è visto nel Cap. 5, estrarre i termini da un corpus di documenti prodotti dai membri di una certa comunità (scientifica, professionale, ecc.) può essere il primo passo nella costruzione di una terminologia di settore. Uso nella traduzione automatica In termini tecnici, un modello statistico è "una distribuzione di probabilità su sequenze di parola" [Wikipedia]. In parole povere, esso riguarda sia la frequenza assoluta delle singole parole o lemmi di una lingua, sia la loro probabilità di occorrenza in specifici contesti lessicali e o sintattici (si veda il Cap.4). I modelli statistici delle singole lingue possono evolvere in modelli statistici di allineamento tra lingue diverse, usati nella traduzione automatica. Una ricerca pionieristica iniziata negli anni '80 da un gruppo di ricercatori dell'IBM portò a uno schema di classificazione di tali modelli. Gli "IBM alignment models" sono una sequenza di modelli di complessità crescente usati nella traduzione automatica per addestrare algoritmi di allineamento e traduzione [Wikipedia]. I corpora si possono usare in modo simile anche nel riconoscimento del parlato. Insegnamento delle lingue "I corpora sono utilizzati anche nell’insegnamento delle lingue, dove possono essere un sussidio per la costruzione di materiali didattici e permettono, soprattutto agli apprendenti avanzati, di inferire proprietà di parole e costruzioni osservandone i contesti d’uso". [1] 4. Origine dei corpora Criteri di composizione Semplificando, possiamo dire che esistono tipologie di corpora del tutto diverse come criterio di composizione. Da una parte abbiamo collezioni preesistenti o comunque ben definite di documenti che sono stati prodotti nel tempo o vengono prodotti regolarmente da istituzioni di diverso tipo; per esempio la collezione storica di una rivista o di un giornale quotidiano. Abbiamo poi corpora i cui criteri di composizione riguardano la lingua, l'intervallo temporale, il genere, il settore, ecc. ma escludono forme di campionamento pseudo-casuali non replicabili; per esempio il corpus di tutte le opere letterarie (narrativa, poesia, saggistica, ecc.) scritte in lingua Italiana nel XIII secolo e a noi pervenute. Infine abbiamo i corpora creati con criteri simili (lingua, genere, periodo, ..) ma a partire da una base di dimensioni troppo ampie; in tal caso "un corpus di riferimento si propone come campione rappresentativo" [1] del più ampio corpus definito in termini astratti. Se disponiamo di un corpus preesistente in forma cartacea, ovviamente sarà necessaria un'attività di digitalizzazione per averlo in forma utile per l'elaborazione automatica. Il web come corpus "Per studiare il “comportamento linguistico mirato”, la linguistica dei corpora richiede raccolte di testi autentici (parlati o scritti). Non deve sorprendere quindi che molti linguisti (dei corpora) si siano di recente rivolti al Web come alla più ricca e accessibile fonte di materiale linguistico disponibile." Gli autori di [6] ritengono che il web venga pensato e usato come un corpus con approcci abbastanza diversi: - il web come surrogato di un corpus; questo è l'approccio più ingenuo, in cui l'utente non ha idee chiare sul corpus di cui ha bisogno e/o non è consapevole della visione distorta che i motori di ricerca (e i loro algoritmi di indicizzazione) gli forniscono del reale contenuto del web - il web come supermercato; il ricercatore costruisce un corpus in senso tradizionale, servendosi del web e filtrandone i contenuti in modo consapevole con gli strumenti più adatti - il web come corpus in senso proprio; qui il ricercatore fa coincidere il corpus di interesse con il web - un mini-web usato come mega-corpus; il ricercatore cerca un equilibrio tra l'ingestibile estensione del web e le caratteristiche auspicabili di un corpus (stabilità, annotazione, ecc.) e costruisce per proprio uso una copia di una versione ridotta ma rappresentativa del web, che può annotare come vuole. 5. Creazione di corpora dal web Creare un corpus a partire dal web è sopratturto una questione di campionamento. L''identificazione di un corpus virtuale che soddisfi in modo equilibrato i criteri definiti in astratto presenta numerosi problemi teorici e pratici. Nell'implementare i criteri di campionamento definiti per estrarre i contenuti dal web, si opera tipicamente in più passi: [] 1. selezione degli URL che fungono da "semi", cioè da punti di partenza per la navigazione tramite "spider"; di solito i semi vengono ottenuti dai motori di ricerca con interrogazioni mirate, contenenti termini specifici del dominio di interesse e/o termini presi con criteri vari da lessici generali 2. reperimento delle pagine target mediante il "link following"; a partire dai link trovati in ciascuna pagina, non solo si eviterà di tornare su pagine già visitate, ma si cercherà un equilibrio tra link interni allo stesso sito e link esterni, si limiterà il numero di pagine prese da un medesimo sito, eventualmente si eviterà di fare una navigazione troppo "profonda" (allontanandosi troppo dai semi), ecc. 3. pulizia dei dati; questa comprende numerose azioni, tra le quali estrare il testo rimuovendo l'annotazione HTML, scartare i testi non significativi presenti in quasi tutte le pagine (menu, pannelli laterali, inserzioni da altri siti) e scartare i contenuti "quasi duplicati", cioè documenti che differiscono solo per piccoli dettagli 4. annotazione dei dati; si tratta di applicare un "pipeline" standard di operazioni sul testo: tokenizzazione, POS-tagging, eventualmente estrazione di termini; nel caso del web, idealmente la tokenizzazione dovrebbe tener conto di tipi di token non convenzionali, quali le parole contratte e gli smiley; anche i POS-tagger dovrebbero essere ri-addestrati sul web; inoltre la metadatazione delle pagine (autore, data, genere) potrebbe essere non facile se non impossibile. 6. Corpora importanti Il Progetto Gutemberg Un corpus molto interessante, dal punto di vista culturale in generale, più che linguistico, è quello realizzato dal Progetto Gutemberg; esso include attualmente circa 57.000 libri, che sono stati digitalizzati da migliaia di volontari e che è possibile leggere e scaricare gratuitamente come testo semplice dall'archivio o in diversi formati e-book. Si tratta nella maggior parte di libri classici, per cui sono scaduti i diritti d'autore [12]. La popolare libreria software NLTK (Cap. ..) include tra i suoi dati una piccola selezione dei testi estratti dall'archvio Gutemberg, insieme con qualche esempio di uso scritto in Python [2]; ma essa mostra anche come con poche righe di programma si possono scaricare i testi direttamente dall'archivio originale [3]. L'archivio Gutemberg include oltre 850 libri in Italiano. Wikipedia Escludendo di considerare l'intero web come un corpus, il corpus più esteso di pubblico dominio è probabilmente Wikipedia. Wikipedia è una vasta fonte di dati testuali ben organizzati; anche se non è un vero corpus annotato, da ogni pagina è possibile estrarre un ricco insieme di metadati. Inoltre il corpo di una pagina ha una struttura semplice e standardizzata, che rende relativamente facile l'operazione di pulizia necessaria se si vuole estrarre il testo, segmentarlo in frasi ed effettuare qualche tipo di analisi del contenuto. A partire da Wikipedia, e grazie alle sue caratteristiche, è nato oltre dieci anni fa il progetto DBpedia "per l'estrazione di informazioni strutturate da Wikipedia e per la pubblicazione di queste informazioni sul Web come Linked Open Data in formato RDF". Il prefisso "DB" di DBpedia sta per "database"; "i linked data o dati collegati sono una modalità di pubblicazione di dati strutturati atti ad essere collegati fra loro e quindi utilizzabili attraverso interrogazioni semantiche" [Wikipedia]; RDF è un'applicazione (dialetto) di XML che consente di esprimere complesse relazioni logiche. The Penn Treebank Un corpus annotato molto noto a livello internazionale è The Penn Treebank. Un campione del Penn Treebank, corrispondente a circa il 10% del totale, è incluso nella distribuzione della sezione dati della libreria NLTK. [10] WaCky WaCky (Web-As-Corpus Kool Yinitiative), una raccolta di ampi corpora costruiti, con un approccio omogeneo, scaricando automaticamente testi dal web. Tale progetto ha reso disponibili corpora in Inglese, Francese, Tedesco e Italiano. [] 7. Alcuni corpora per l'Italiano La Repubblica corpus La Repubblica è un corpus con i testi dell'omonimo quotidiano italiano pubblicati tra il 1985 e il 2000 (circa 380 milioni di token). [] itWac itWaC è un corpus da 2 miliardi di parole costruito a partire dal web, limitando la navigazione a pagine con il dominio .it e usando come "semi" parole di media frequenza estratte dal corpus Repubblica e da liste di vocaboli del lessico di base dell'Italiano. Il corpus è stato POS-tagged con l'applicazione TreeTagger [9] e lemmatizzato usando il lessico morfologico Morph-it! [] (ulteriori informazioni in []). itWaC è stato costruito all'interno del progetto WaCky 8. Strumenti per lavorare con i corpora Costruzione e raffinamento A fronte delle metodologie e delle tecniche per la costruzione dei corpora, sono stati sviluppati numerosi tipi di strumenti di supporto: per il reperimento dei testi, la loro organizzazione, la normalizzazione, la manutenzione, ecc. ... Strumenti per l'analisi e la valorizzazione dei corpora I corpora si caratterizzano di solito per una notevole dimensione, cioè per la quantità degli elementi (documenti, parole, caratteri, ...) che essi includono. E' tipico degli strumenti di analisi dei corpora di essere fortemente orientati all'elaborazione statistica, dato che la statistica è una disciplina di elezione per affrontare la ricerca basata sui grandi numeri. ... 9. Corpora e traduzione ACRONIMI RIFERIMENTI (webography) [1] Marco Baroni, Corpora di italiano, in Enciclopedia dell'Italiano, 2010, http://www.treccani.it/enciclopedia/corpora-di-italiano_%28Enciclopedia-dell%27Italiano%29/ [2] Steven Bird, Ewan Klein, and Edward Loper, Natural Language Processing with Python, Chapter 2 - Accessing Text Corpora and Lexical Resources, http://www.nltk.org/book/ch02.html [3] Steven Bird, Ewan Klein, and Edward Loper, Natural Language Processing with Python, Chapter 3 - Processing Raw Text, http://www.nltk.org/book/ch02.html [4] Accademia della Crusca, Banche dati, corpora e archivi testuali, http://www.accademiadellacrusca.it/it/link-utili/banche-dati-dellitaliano-scritto-parlato [5] Corpora and tools, Department of Interpreting and Translation - Forlì Campus, https://corpora.dipintra.it/ [6] Wacky! Working papers on the Web as Corpus, http://wackybook.sslmit.unibo.it/ Marco Baroni and Silvia Bernardini (curatori), WaCky! Working Papers on the Web as Corpus, http://wackybook.sslmit.unibo.it/pdfs/wackybook.zip [7] WaCKy Corpora, http://wacky.sslmit.unibo.it/doku.php?id=corpora [8] Marco Baroni et alii, The WaCky wide web: a collection of very large linguistically processed web-crawled corpora, http://clic.cimec.unitn.it/marco/publications/wacky-lrej.pdf, 2009 [9] NLTK Corpus Readers, http://www.nltk.org/howto/corpus.html [10] Marco Baroni and Stefan Evert, Chapter 38: Statistical methods for corpus exploitation, http://clic.cimec.unitn.it/marco/publications/chapter38.pdf [11] Kristin Berberich and Ingo Kleiber (curatori), Tools for Corpus Linguistics, A comprehensive list of 168 tools used in corpus analysis. https://corpus-analysis.com/ [12] Free ebooks - Project Gutenberg, http://www.gutenberg.org/ [13] Robert Östling, Bayesian Models for Multilingual Word Alignment, 2015, https://www.diva-portal.org/smash/get/diva2:798117/FULLTEXT01.pdf DA WIKIPEDIA Corpus, https://it.wikipedia.org/wiki/Corpus Text corpus, https://en.wikipedia.org/wiki/Text_corpus Text Encoding Initiative, https://it.wikipedia.org/wiki/Text_Encoding_Initiative Text Encoding Initiative, https://en.wikipedia.org/wiki/Text_Encoding_Initiative Text mining, https://en.wikipedia.org/wiki/Text_mining List of text corpora, https://en.wikipedia.org/wiki/List_of_text_corpora DBpedia, https://it.wikipedia.org/wiki/DBpedia DBpedia, https://en.wikipedia.org/wiki/DBpedia Linked data, https://it.wikipedia.org/wiki/Linked_data Linked data, https://en.wikipedia.org/wiki/Linked_data Language model, https://en.wikipedia.org/wiki/Language_model IBM alignment models, https://en.wikipedia.org/wiki/IBM_alignment_models