2.4 Multilanguage Text
Processing
2.4.1 Comprensione del linguaggio
La prima funzione che un sistema di Multilanguage Text Processing, M.T.P., deve aver implementata consiste nella capacità di comprensione del linguaggio del documento esaminato, e tali strutture sono state sviluppate seguendo diversi approcci comunque in genere capaci di riconoscere all’interno delle stringhe particolari sequenze di caratteri significative di determinati linguaggi, così come quei sistemi che cercano all’interno del testo esaminato la presenza delle stopwords specifiche di ciascun linguaggio che sono, per natura sintattica, le parole più facili e ricorrenti da incontrare all’interno di un testo.
La codifica di un linguaggio, comunque, dipende da una precedente capacità del sistema analizzante, di riconoscimento e codifica del set di caratteri corrispondente all’alfabeto nella sua rappresentazione binaria.
Questo schema di corrispondenza fra alfabeto scritto e la sua rappresentazione varia strutturalmente per i diversi linguaggi: ad esempio i caratteri cinesi, ideografici, richiedono un sistema di codifica double-byte, mentre altre lingue si basano su soluzioni ad un byte singolo.[1]
Nell’analisi testuale, se il processo di codifica è necessario, un sistema si appoggia allo standard UNICODE per convertire le singole codifiche locali dei caratteri del linguaggio in un formato standard costituito da una rappresentazione univoca.
2.4.2 Tokenizzazione
Una volta eseguita, se necessaria, la codifica dei caratteri, e riconosciuta la lingua in cui il testo è redatto, un sistema di M.T.P. deve essere in grado di identificare le singole parole all’interno delle stringhe di testo.
Per molte lingue questo è facilmente implementabile poiché esse usano, in linea di massima, il carattere “_blank”, spazio, come separatore, ma altrettante sono caratterizzate da maggiori difficoltà perché le parole sono concatenate fra loro per la composizione di termini particolari, o addirittura non presentano il carattere di spazio come separatore (ad esempio il Giapponese, il Cinese, ecc…), e dunque il processo di tokenizzazione deve essere capace di riconoscere i limiti di ciascuna parola: in questo caso sara necessario ricorrere ad un sistema di dizionari.
2.4.3
Eliminazione
delle Stopwords
Nell’ordine di ridurre al minimo la quantità di testo indicizzato vengono cercate ed eliminate le parole che hanno un valore minimo o nullo nella rappresentazione del testo originale (stopwords).
Il processo di eliminazione delle stopwords è estremamente proficuo, e riesce ad eliminare dai testi a cui viene sottoposto dal 30% al 50% delle parole: esso si basa su un archivio che raccoglie tutte le possibili stopwords (detto stoplist) come articoli, preposizioni semplici e composte, ecc…, e gli elementi di ogni stoplist possono variare e dipendere anche dal dominio dei corpora di testi analizzati.[2]
2.4.4 Normalizzazione
e Stemming
L’ultimo stadio del processo di indicizzazione dei testi per I.R.S. consiste nella normalizzazione delle parole del testo rimanenti dopo la tokenizzazione e la rimozione delle stopwords.
La forma di normalizzazione più comune consiste nella rimozione dei suffissi e delle flessioni, riportando così le varie parole alla loro forma di radice (detta stem, da cui prende nome il processo, definito, di stemming).
Nel caso più semplice vi è un algoritmo che rimuove i suffissi standard, e la sua implementazione dipende dal linguaggio per il quale è stato costruito il processo di stemming, ad esempio per l’Inglese il processo individuerà ed eliminerà con un processo iterativo i suffissi e le flessioni del plurale “s, es, ecc...”, fino a quando il termine non sia portato alla sua unità minima di radice.[3]
La maggior parte degli algoritmi di stemming sono stati prodotti per la normalizzazione su documenti di lingua inglese, e quindi la loro applicazione ad un contesto di lingue europee ha provocato una serie di problemi relativi alle flessioni morfologiche più ricche di quanto abbia la lingua inglese.
La realizzazione delle strutture necessarie ad una adeguata indicizzazione di testi multilingue è naturalmente applicabile anche ai testi delle queries, ed è quindi la base per un il reperimento di informazioni multilingue, detta Cross-Language Information Retrival, o C.L.I.R..
[1] In attesa di un solo schema di codifica per la mappatura di tutte le lingue mondiali, il consorzio UNICODE ha prodotto lo standard UNICODE per provvedere ad un sistema di codifica dei caratteri designato al supporto dell’interscambio, dell’analisi e della visualizzazione di testi scritti in lingue diverse, moderne e antiche (per la visualizzazione di testi classici e storici). Nella sua versione più recente lo standard UNICODE è costituito da 38.887 codifiche di carattere, riuscendo così a coprire le principali lingue scritte americane, europee, del Medio Oriente, africane, indiane asiatiche e del Pacifico.
[2] ad esempio nel caso specifico, un corpus di testi egittologici, dedicato al tema delle piste carovaniere del deserto occidentale potrebbe annoverare all’interno delle proprie stoplist le parole egittologia, Egitto, egiziano, occidentale, ecc...
[3] L’algoritmo di stemming non è sempre così “banale”: solo in alcuni casi è possibile ridurre un termine alla propria stem con un’operazione cruda (ad esempio organico – sic = organi), e quindi deve procedere a soluzioni alternative, come utilizzare una analisi morfologica del testo, e tramite essa ridurre le parole alla loro radice lessicale, come se queste apparissero in un dizionario standard.