Percorso: "Rappresentazione e analisi del testo e dei documenti" UNITA' 3 - Scomposizione del testo in frasi e parole SINTESI La segmentazione come processo mentale e come processo artificiale. Frasi, parole e token. Segmentazione e allineamento: testi e corpora bi-lingue. ... 1. La segmentazione del testo La segmentazione del testo è il processo di dividere il testo scritto in unità significative, come parole, frasi o argomenti. Il termine si applica sia a - il processo mentale che una persona applica quando legge un testo (in silenzio o ad alta voce) - i processi artificiali realizzati nei computer, oggetto di studio della "Elaborazione del Linguaggio Naturale" (NLP). [Wikipedia] 2. Parole e token "Token" è il termine tecnico per una sequenza di caratteri come 'villoso', 'noi' o ':)', che vogliamo trattare come un gruppo. [1] Il termine "token" si distingue dal termine "parola" non solo perché può applicarsi a sequenze che non sono parole, ma anche perché si usa di solito per riferirsi ad una specifica occorrenza della sequenza di caratteri; invece, nella linguistica computazionale (CL), si preferisce usare "parola" per riferirsi ad una parola in astratto, come nell'espressione <>. 3. Segmentazione della frase in token Nel trattamento automatico dei testi, la segmentazione di una frase in token, chiamata tokenizzazione (EN: tokenization), è per lo più funzionale al processo di allineamento a livello di parola. Questo consiste nell'individuare i token corrispondenti in più versioni della stessa frase, tipicamente in una frase originale e nella sua traduzione in un'altra lingua. [2] La tokenizzazione è la prima operazione (o una delle prime) in una sequenza all'interno di molti processi di trattamento automatico dei testi. A prima vista la tokenizzazione sembra un'operazione molto semplice, almeno per le lingue come l'Italiano e l'Inglese che usano lo spazio per separare le parole. Tuttavia i token comprendono svariate categorie di parti del testo (parole, punteggiatura, numeri, ecc.) e possono anche essere delle unità più complesse, come le date. La punteggiatura, in particolare, introduce alcune ambiguità che si presentano anche nella segmentazione del testo in frasi. Per esempio, ... 4. Come tokenizzare una frase: regole e apprendimento automatico Come per numerosi altri compiti del NLP, vi sono essenzialmente due approcci per dividere una frase in token: - far interpretare ad un algoritmo un'insieme prefissato di regole; il problema di questo approccio è che può essere necessario "distillare" a mano un elevato numero di regole e che, ad un certo punto, bisognerà aggiungerne di nuove per gestire casi non previsti all'inizio - creare un algoritmo che impari a tokenizzare sulla base di un insieme di esempi corretti, chiamato "training set"; in questo caso è come se l'algoritmo "distillasse" dagli esempi le regole necessarie, che non sarebbero (facilmente) ispezionabili da un umano; anche in questo caso il tokenizzatore potrebbe fare degli errori e, per migliorarne le prestazioni, potrebbe essere necessario ampliare il training set. In entrambi i casi, se si applicasse l'algoritmo alle frasi di un certo documento prima e dopo aver raffinato l'algoritmo (aggiungendo qualche regola o ri-addestrandolo su un training set esteso), i risultati sarebbero ovviamente diversi: questo può essere un problema se l'algoritmo è inserito in un'applicazione o in un "pipeline" di operazioni in cui si fa affidamento sul fatto che ogni elemento si comporti in modo deterministico. 5. Tokenizzare con espressioni regolari L'espressione regolare qui sotto, compresa in una coppia di virgolette è in grado di tokenizzare un testo Italiano o Inglese che non contenga numeri decimali, date, abbreviazioni, ecc.: "[ |\.\,\;\:\'\"]*" ... 6. Segmentazione del documento in frasi La segmentazione in frasi è il problema di dividere nelle frasi componenti una stringa di caratteri che rappresenta un testo scritto. [Wikipedia] Nel trattamento automatico dei testi, la segmentazione di un testo in frasi è per lo più funzionale al processo di allineamento a livello di frase. Allineare le frasi consiste nell'individuare le porzioni di testo corrispondenti in più versioni dello stesso testo, per esempio in un documento e in una sua traduzione. [2] Per esempio, si può creare un corpus bi-lingue allineato mettendo in corrispondenza ogni documento in una lingua con un documento nell'altra lingua che ne rappresenta la traduzione. 7. Come segmentare un documento In Italiano, in Inglese e in altre lingue che usano la punteggiatura, considerare il carattere '.' (punto fermo) come separatore di frasi è un'approssimazione ragionevole. Tuttavia anche per queste lingue il problema non è banale perché il punto viene spesso usato all'interno delle abbreviazioni, come in "il sig. Rossi", e in questo caso (di solito) non separa le frasi. [Wikipedia] Esistono poi eccezioni all'eccezione, dato che una frase può terminare con "U.S.A.". The Unicode Consortium has published a Standard Annex on Text Segmentation,[1] exploring the issues of segmentation in multiscript texts. 7. La segmentazione dei testi nel contesto della traduzione ... ACRONIMI CL - Computational Linguistics NLP - Natural Language Processing RIFERIMENTI (webography) [1] Steven Bird, Ewan Klein, and Edward Loper, Natural Language Processing with Python, https://www.nltk.org/book/ [2] Robert Östling. Bayesian Models for Multilingual Word Alignment. 2016. Ph.D. thesis. https://www.diva-portal.org/smash/get/diva2:798117/FULLTEXT01.pdf DA WIKIPEDIA Text segmentation, https://en.wikipedia.org/wiki/Text_segmentation