Io ve la racconto così.
La linguistica computazionale analizza le lingue naturali per estrarne un modello che possa essere capito da una macchina. E per far capire una cosa ad una macchina occorre che questa sia espressa secondo un formalismo rigido e concluso.
I software di linguistica computazionale, dunque, si aspettano in ingresso una lingua e ne forniscono in uscita una rappresentazione formale; con questo modello si è in grado di analizzare testi diversi da quelli precedentemente usati per “l’addestramento” e generare quindi output che possiedano nuovamente una forma linguistica (traduzione di un testo, correzione delle forme grammaticali, categorizzazione di un documento…)
Questa disciplina è dunque caratterizzata da un approccio accademico:
- prima di poter generare (oppure interpretare) un testo occorre possedere un modello completo e soddisfacente della lingua in cui questo è da esprimere (oppure espresso);
- per poter disporre di tale modello occorre analizzare un numero statisticamente significativo di espressioni di quella lingua. Ovvero, un lavoro di anni.
Dividiamo il problema in sotto-problemi:
Innanzitutto al posto di un’intera lingua potremmo voler modellare solamente uno specifico slang (italiano scritto giornalistico, italiano orale radiofonico, italiano orale televisivo…) e/o un dominio di conoscenza (argomento musicale, argomento economico…).
In ogni caso l’insieme dei testi che rappresentano il linguaggio di riferimento è detto “Corpus” (al plurale, “Corpora”).
In secondo luogo il famoso modello può tenere conto di tutti gli aspetti di una lingua oppure rappresentare solamente
- il lessico e/o la sintassi (la forma di una data espressione linguistica)
- la semantica (lo scopo di una data espressione linguistica)
- la funzione pragmatica della comunicazione (gli obiettivi del parante / scrivente)
1. Da un punto di vista computazionale, le informazioni del primo tipo possono essere conservate in un normale DataBase relazionale (i vari MySQL, Oracle o SQLServer, per intenderci): si tratta di parole e di relazioni tra parole. Le si indicizza, le si confronta, le si raggruppa in insiemi; se le relazioni si fanno complesse è possibile utilizzare strumenti di Knowledge Management o motori di ricerca enterprise (tipo SolR).
2. Le informazioni semantiche sono invece conservate e rappresentate mediante strumenti di Knowledge Representation (RDF, OWL, SPARQL…). A questo proposito si parla di Web 3.0. Nel mondo opensource esistono framework e strumenti quali Jena e Sesame.
3. Le informazioni sugli scopi degli utenti sono ricavate mediante strumenti di intelligenza artificiale e sono rappresentate mediante modelli che dipendono dallo strumento (decision-tree, neural network, problem solving plan…).
E se questi tre punti vi ricordano qualche cosa, vuol dire che avete letto con attenzione il mio articolo sugli atti linguistici. Bravi!
Posted in facetiae Tagged: linguistica computazionale, risorse online