Filologia, linguistica ed informatica
Oggi il termine “filologia” viene usato per indicare o la somma di due discipline, la linguistica (o glottologia) e la letteratura; oppure la loro zona di sovrapposizione, e cioè: gli aspetti di rilevanza linguistica delle manifestazioni letterarie (intese queste come tutte le produzioni scritte, non solo quelle di rilevanza artistica). Un terzo significato, più specifico, ma anche molto restrittivo, di filologia è quello di studio dei testi e delle tecniche utilizzate per la loro edizione. In generale, possiamo dire che filologia viene dal greco, e vuol dire “amore della parola”.
La linguistica, invece, è la disciplina che studia il linguaggio umano. La manifestazione primaria della lingua è quella orale, e cioè precisamente articolatorio-percettiva (il primo termine si riferisce all’emissione del messaggio, il secondo alla sua ricezione). L’oggetto primo della linguistica è perciò la lingua parlata, che costituisce un aspetto essenziale della natura dell’uomo.
Il termine “informatica”, infine, deriva dal francese “informatique”, neologismo coniato negli anni ’60 da Philippe Dreyfus il quale, mediante la contrazione dei termini information e “automatique”, volle così battezzare la disciplina tecnico-scientifica che si occupa della progettazione e della costruzione di macchine in grado di trattare, o elaborare, in modo automatico l’informazione.
La linguistica computazionale
La linguistica computazionale (da computare, che significa semplicemente “calcolare” in senso generale, dal latino COMPUTARE, composto di CUM- “assieme, con” e PUTARE “stimare, misurare”, e computazione, ossia “elaborazione elettronica di dati”) è un’area di ricerca che si pone al confine di numerosi settori disciplinari: informatica, linguistica, scienze cognitive e intelligenza artificiale. L’informatica in particolare, occupandosi del trattamento delle informazioni mediante calcolatori elettronici, ha sempre costituito il nucleo tecnologico di questa disciplina. L’incontro tra linguistica e informatica si può far risalire grossomodo agli anni Cinquanta del Novecento.
La nascita ufficiale della linguistica computazionale si fa coincidere solitamente con la fondazione dell’Association for Computational Linguistics (ACL) nel 1962. I suoi presupposti, se non i suoi fondamenti, erano maturati già da un paio di decenni, con i primi sviluppi dell’intelligenza artificiale e della traduzione automatica. Rispetto a discipline quali la sociolinguistica, la psicolinguistica o la neurolinguistica, la linguistica computazionale si è configurata come immediatamente caratterizzata da una più accentuata ed evidente pluralità di programmi di ricerca e metodologie. Tale pluralità è un effetto del necessario incontro che si realizza tra linguistica teorica (e applicata) e tecnologie informatiche. L’aspetto in comune ai diversi programmi che si raggruppano in questa disciplina è il fatto di congiungere problemi teorici e/o applicativi relativi al linguaggio con problemi teorici e/o applicativi relativi all’informatica e ai computer. La linguistica computazionale è dunque radicalmente interdisciplinare e multidisciplinare.
Un pioniere della linguistica computazionale
Un pioniere della linguistica computazionale è padre Roberto Busa, con il suo monumentale Index Thomisticus.
L'idea della traduzione automatica
Il primo impulso per la nascita della linguistica computazionale è associato alla prospettiva, indicata da Warren Weaver, di poter costruire un programma che, implementato su una macchina, permettesse di tradurre automaticamente i testi da una lingua a un’altra. Si tratta di quel settore della linguistica computazionale che oggi chiamiamo traduzione automatica. Le prime applicazioni in questo settore, per l’evidente ricaduta economica, richiamarono numerosi finanziamenti e stimolarono l’idea che anche altri aspetti del linguaggio potessero essere utilmente trattati con strumenti informatici; ciò ha permesso la nascita di progetti di interesse e scopo più generali.
La teoria dell'informazione
La teoria matematica della comunicazione, detta anche «teoria dell’informazione», affermatasi con la pubblicazione dell’omonimo saggio di Claude Shannon e Warren Weaver (1949), ha posto le basi non solo per la nascita dell’informatica in senso stretto, ma anche per l’osservazione di alcuni aspetti sino ad allora trascurati delle lingue, come l’importanza della prevedibilità dei messaggi e dunque delle caratteristiche statistiche dei testi.
Il problema da cui il matematico Shannon parte per l’elaborazione della teoria dell’informazione è di natura essenzialmente pratica e applicativa, ossia la trasmissione fisica di informazioni su un canale. In particolare, Shannon intende determinare e misurare la capacità di un canale, inteso come mezzo fisico nel quale si trasmette un segnale, e, in relazione a tale capacità, stabilire quale sia il miglior sistema di codifica dei messaggi per garantirne la ricezione da parte del destinatario. La trasmissione di un’informazione consiste, per Shannon, nel fare in modo che una qualunque variazione di uno stato fisico (onde sonore, variazioni spettrali di tipo visivo, ma anche, in linea di principio, qualunque variazione possa essere percepita da sensi quali il tatto, l’olfatto o il gusto) passi su un canale e venga ricevuta correttamente da un destinatario. A Shannon poco interessa capire quale tipo di contenuti passi sul canale. Il centro della sua preoccupazione è la garanzia che le variazioni fisiche, quali che siano, corrispondenti a qualunque possibile contenuto, vengano trasmesse e ricevute senza errori. Non è dunque il sistema di conoscenze e contenuti semantici codificati a essere indagato, ma il sistema astratto che ne esprime le probabilità di occorrenza di segnali.
Dopo la «teoria dell’informazione», dunque, sono arrivati il «sovraccarico di informazioni» (information overload), l’«eccesso di informazione» (information glut), l’«ansia da informazione» (information anxiety) e la «fatica da informazione» (information fatigue), quest’ultima accettata come tempestiva sindrome: apatia, indifferenza o esaurimento mentale derivante dall’esposizione a troppa informazione, in particolare. [...] stress indotto dal tentativo di assimilare quantità eccessive di informazioni dai media, da internet o al lavoro.
Un modo, non l’unico, per rappresentare la quantità dell’informazione trasmessa è la sua codifica binaria, ossia il numero di scelte tra due possibilità equiprobabiliche si devono realizzare per giungere univocamente a quella particolare informazione. La quantità di informazione si misura in bit (binary digit), che indica appunto il numero di scelte binarie necessarie. L’informazione è così legata all’incertezza dello stato iniziale. Maggiore è il numero delle possibilità iniziali, maggiore è l’incertezza dello stato iniziale. Se devo estrarre a sorte un numero tra 1 e 5, l’incertezza iniziale è molto inferiore a quella che avrei se dovessi estrarre un numero tra 1 e 100. L’informazione consiste proprio nella rimozione dell’incertezza della situazione iniziale. L’uscita del numero 3 ha una «informazione» enormemente maggiore se esso viene estratto tra 100 di quella che avrebbe se estratto tra 5.
Un secondo aspetto che gioca un ruolo centrale nella trasmissione di informazione è il grado di prevedibilità dell’evento, che può essere fatto corrispondere inversamente al grado di sorpresa che ottengo al momento in cui ricevo effettivamente l’informazione. È facile intuire che, se tra gli eventi possibili ve ne è uno molto più probabile degli altri, la mia sorpresa se tale evento accade sarà molto ridotta, e dunque la quantità di informazione sarà anch’essa ridotta. Più mi aspetto che si verifichi un evento, minore è l’informazione che acquisisco se proprio quell’evento si verifica.
Se consideriamo un alfabeto estremamente ridotto, che contiene soltanto i simboli 0 e 1, un bit, contrazione di binary digit (cifra binaria), è un simbolo scelto su tale alfabeto. [...] Nei calcolatori ogni informazione (numerica, testuale, grafica, audio, video…) è rappresentata esclusivamente con l’impiego di sequenze di bit. [...] Se un bit può assumere due configurazioni possibili, 0 e 1, quando si considerino tutte le sequenze diverse che è possibile realizzare con due o più bit si ottiene:
- 1 bit: 2 (= 21) possibilità: 0 oppure 1;
- 2 bit: 4 (= 22) sequenze possibili: 00, 01, 10, 11;
- 3 bit: 8 (= 23) sequenze possibili: 000, 001, 010, 011, 100, 101, 110, 111;
- 8 bit: (= 28) sequenze possibili: 00000000, 00000001, 00000010… 11111100, 11111101, 11111110, 11111111;
- n bit: (= 2n) sequenze possibili»
Il modello di trasmissione elaborato da Shannon
Il modello di trasmissione e ricezione proposto dalla teoria dell’informazione prevede: un produttore, o emittente, dispositivo che produce la variazione di stato fisico; uno o più riceventi, o destinatari, dispositivo che rileva le variazioni di stato fisico; il messaggio, l’insieme delle variazioni di stato fisico emesse dal produttore (collegabili a una serie di contenuti anche complessi che però non entrano nel processo di trasmissione); il canale, mezzo fisico su cui viene trasmesso il messaggio; la codifica, processo attraverso il quale sono formati i messaggi, e la decodifica, processo di ricostruzione del messaggio da parte del ricevente; il rumore, disturbo che può intervenire sul canale.
Sulla base di questo modello e di una serie di considerazioni di tipo matematico e ingegneristico, Shannon arriva a definire il cosiddetto «teorema fondamentale per un canale discreto con disturbo», secondo cui è sempre possibile una codifica che permetta la garanzia della ricezione, senza il costo di un rallentamento troppo forte della velocità di trasmissione. Nelle comunicazioni, dice Shannon, «vi sono, comunque, dei modi di trasmettere le informazioni i quali sono ottimali nel combattere il disturbo». Esistono sempre sistemi appropriati di ridondanza che garantiscano una buona trasmissione al di là di ogni possibile rumore. La ridondanza, infatti, è una codificazione del messaggio che, ripetendo alcune porzioni oppure variando le probabilità di occorrenza delle unità, permette di assicurare la corretta ricezione del messaggio.
Con il termine rumore facciamo più genericamente riferimento a qualche segnale indesiderato che interferisca con quello trasmesso, cosicché il segnale ricevuto presenta differenze più o meno consistenti rispetto a quello trasmesso, determinando differenze anche sostanziali tra il messaggio inviato dalla sorgente e quello giunto al destinatario. Per evitare o ridurre al minimo effetti dovuti al rumore, in genere trasmettitore e ricevitore concordano l’utilizzo di tecniche di codifica con ridondanza: oltre ai simboli del messaggio, nel segnale vengono codificati simboli aggiuntivi che consentono al ricevitore di verificare la corrispondenza del messaggio ricevuto con quello trasmesso.
La ridondanza rappresenta quella frazione della struttura del messaggio che non è possibile scegliere liberamente, ma che rimane determinata dalle regole statistiche (strutturali) che vigono nell’insieme e governano gli accostamenti dei simboli nei messaggi. Tale frazione, statisticamente parlando, non risulta necessaria per la composizione del messaggio, il quale sarebbe, perciò, riconoscibile o ricomponibile anche in sua assenza.
La lingua e il computer
- Le applicazioni informatiche che svolgono compiti di tipo linguistico;
- Le conoscenze linguistiche per l’elaborazione di applicazioni informatiche di interesse generale.
La codifica binaria
Per la rappresentazione dei dati all’interno di un calcolatore, viene in genere adottata una codifica binaria. Per i numeri, in particolare, si ricorre quindi alla notazione binaria posizionale: le cifre binarie 0 e 1 (bit) sono moltiplicate per le diverse potenze di 2.
Il modello
La possibilità di costruire macchine che producano comportamenti linguistici è fondata sulla presenza di un modello, un quadro astratto e formale, che contempli in dettaglio tutte le possibilità dell’interazione. La linguistica computazionale ha dunque, tra i suoi compiti principali, quello di definire i modelli che rendano possibile una performance adeguata da parte della macchina.
Quello che ci interessa è dunque poter fornire un modello che descriva il comportamento che la macchina dovrà assumere nel caso della specifica pratica che le viene richiesta (analizzare un sintagma, trovare un traducente in una lingua straniera, attribuire a una parola la sua categoria grammaticale, riconoscere la parola pronunciata da un parlante, ecc.). Non è quindi necessario che il modello che usiamo per «far fare» alla macchina una determinata cosa in determinate circostanze sia lo stesso che spinge noi a un comportamento simile nell’interazione con altri esseri umani. In altri termini, è necessario un modello linguistico, ma questo modello può discostarsi dal modello linguistico usato dagli esseri umani. Allo stesso tempo è anche possibile che l’evoluzione dei modelli linguistici computazionali getti luce e fornisca suggerimenti per modelli della produzione e ricezione linguistica nelle comunità umane.
Definiamo il comportamento di una macchina in base all’output che fornisce a un dato input. L’input è pensabile come lo stimolo (sensoriale, linguistico, ecc.), o il dato, che viene fornito alla macchina per essere trattato. L’output è il comportamento che la macchina esibisce dopo aver ricevuto l’input: produzione di una risposta, un suono, un’azione, un movimento, ecc. Il percorso che la macchina deve fare per associare a un input uno specifico output consiste nell’uso di un sistema di mediazione astratto, un modello. Il modello filtra l’input, lo analizza e vi associa, a seconda delle sue caratteristiche, mediante una serie di algoritmi, un output.
Algoritmi e linguaggi formali
Un algoritmo è una serie finita di procedimenti e operazioni che servono per risolvere un problema. Un algoritmo deve prevedere tutti i passi necessari per risolvere il problema e deve inoltre contemplare tutti i possibili input di dati.
- Atomicità;
- Univocità;
- Finitezza;
- Terminazione;
- Effettività.
Il linguaggio formale è un codice che definisce in modo astratto e univoco classi e relazioni tra classi di elementi estratti da un inventario (o alfabeto). Si può dire, sinteticamente, che un linguaggio formale (L) contiene tutte le possibili sequenze di elementi (stringhe) estratti da un inventario finito (I, insieme di elementi di base) e formate seguendo un insieme finito di regole (R). L’insieme dell’inventario I e delle regole R forma la cosiddetta grammatica del linguaggio formale. L’insieme delle regole R è spesso detto sintassi del linguaggio formale.
Se, per esempio, l’inventario è fatto di tre elementi I{a,b,c,} e vi è una regola che dice che è possibile costruire una stringa, formando una combinazione di due elementi ripetibili dell’inventario, nei quali la posizione degli elementi è rilevante (cioè genera stringhe diverse), allora avremo che aa, ab, ecc. sono stringhe di L{aa,ab,ac,ba,bb,bc,ca,cb,cc}, mentre *a, *b, *c, *aaa, *aab, ecc. non sono stringhe di L. Le stringhe di un linguaggio formale devono essere sequenze finite dei simboli dell’inventario.
Un linguaggio di programmazione è un linguaggio formale impiegato per descrivere algoritmi che devono essere eseguiti da un calcolatore e un programma è un algoritmo espresso in un linguaggio di programmazione (normalmente si presenta come un file di testo). Un programmatore è una persona che, ben conoscendo uno o più linguaggi di programmazione, insegna algoritmi ai calcolatori scrivendo programmi. Il linguaggio macchina, costituito dalla codifica in binario di istruzioni che corrispondono alle operazioni elementari eseguibili, è un linguaggio di programmazione.
Parametri per la valutazione delle applicazioni computazionali
I parametri per la valutazione delle applicazioni computazionali sono:
- Robustezza: possiamo usare una serie di parametri per definire e circoscrivere le caratteristiche di un’applicazione computazionale in relazione alla sua prestazione, al suo rendimento e al suo potenziale teorico. La robustezza di un sistema computazionale indica la capacità dell’applicazione di gestire materiale linguistico in input contenente rumore, ossia dati linguistici naturali contenenti errori e aberrazioni, di gestire situazioni linguistiche impreviste in maniera duttile, e di accettare e analizzare anche input parziali o incompleti (come sono spesso quelli che caratterizzano la testualità orale e conversazionale);
- Potenza: la potenza di un sistema computazionale, legata alla nozione di robustezza, descrive la capacità di copertura della lingua dell’applicazione, il suo raggio di azione. Poiché le lingue mostrano tendenze centrali, ma anche fenomeni periferici e locali (strutture sintattiche idiosincratiche, lessemi complessi, ecc.), la valutazione di un sistema computazionale non può non considerare «quanta» della lingua viene...
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.