Linguistica computazionale: differenze tra le versioni
Nessun oggetto della modifica |
|||
| Riga 3: | Riga 3: | ||
== Storia == | == Storia == | ||
=== I primi passi: gli anni Cinquanta e Sessanta === | === I primi passi: gli anni Cinquanta e Sessanta === | ||
Le radici della linguistica computazionale risalgono agli anni Cinquanta del Novecento, durante la Guerra Fredda, quando i governi iniziarono a investire massicciamente nella ricerca e nella traduzione automatica per esigenze militari e di intelligence. La dimostrazione Georgetown-IBM | Le radici della linguistica computazionale risalgono agli anni Cinquanta del Novecento, durante la Guerra Fredda, quando i governi iniziarono a investire massicciamente nella ricerca e nella traduzione automatica per esigenze militari e di intelligence. La dimostrazione Georgetown-IBM del 1954, che utilizzava un calcolatore (computer) commerciale noto come Defense Calculator IBM-701 per tradurre frasi dal russo all'inglese, rappresentò uno dei primi esperimenti significativi nel campo. Nonostante i risultati fossero primitivi/elementari, il progetto dimostrò che la traduzione automatica era una possibilità concreta. | ||
In questi anni, i pionieri che contribuirono a gettare le basi teoriche della linguistica computazionale, furono tre: Warren Weaver, Alan Turing, Noam Chomsky. Nello specifico, Weaver propose l'idea di tradurre automaticamente i testi tra lingue diverse, ispirato dai progressi nella teoria dell'informazione e nella cibernetica. Turing e Chomsky, con i loro lavori sulla teoria delle computabilità e sui linguaggi formali, fornirono le fondamenta matematiche e teoriche per lo sviluppo della linguistica computazionale.<ref> https://creative-words.com/storia-della-machine-translation/ </ref> | |||
In questi anni, i pionieri che contribuirono a gettare le basi teoriche della linguistica computazionale, furono tre: Warren Weaver, Alan Turing, Noam Chomsky. Nello specifico, Weaver propose l'idea di tradurre automaticamente i testi tra lingue diverse, ispirato dai progressi nella teoria dell'informazione e nella cibernetica. Turing e Chomsky, con i loro lavori sulla teoria delle computabilità e sui linguaggi formali, fornirono le fondamenta matematiche e teoriche per lo sviluppo della linguistica computazionale. | |||
=== La crisi: gli anni Sessanta === | === La crisi: gli anni Sessanta === | ||
Negli anni Sessanta, il campo della traduzione automatica affrontò una crisi significativa. Il rapporto ALPAC <ref> https:// | Negli anni Sessanta, il campo della traduzione automatica affrontò una crisi significativa. Il rapporto ALPAC <ref> https://creative-words.com/storia-della-machine-translation/ </ref> del 1966, commissionato dal governo degli Stati Uniti, valutò negativamente i progressi nella traduzione automatica, portando a una significativa riduzione dei fondi e a un rallentamento della ricerca in questo ambito. Tuttavia, questi anni furono cruciali per altre aree della linguistica computazionale. La formalizzazione della grammatica, in particolare con la grammatica generativa trasformazionale di Chomsky, fornì un quadro teorico che poteva essere tradotto in modelli computazionali. La creazione dei primi modelli grammaticali formali durante questo periodo rappresentò una svolta importante per la comprensione automatica del linguaggio. | ||
=== L’ascesa dell’IA: gli anni Ottanta=== | === L’ascesa dell’IA: gli anni Ottanta=== | ||
Negli anni Ottanta, la linguistica computazionale conobbe una rinascita grazie ai progressi dell’intelligenza artificiale (IA), che si concentrava sullo sviluppo di sistemi simulativi delle capacità cognitive, e all’ apprendimento automatico (ML o machine learning) che si focalizzava sull’utilizzo di algoritmi che consentissero l’apprendimento automatico dei dati. L’introduzione di algoritmi statistici e metodi basati su corpora segnò un cambiamento di paradigma rispetto ai modelli basati su regole formali. L’approccio si rivelò particolarmente efficiente, utilizzando grandi quantità di dati per insegnare ai sistemi informatici a riconoscere e generare linguaggio. In questo periodo si svilupparono gli algoritmi di parsing ma anche le grammatiche formali <ref> Lenci, Montemagni, Pirrelli, Testo e computer, p. 106 </ref>. | Negli anni Ottanta, la linguistica computazionale conobbe una rinascita grazie ai progressi dell’intelligenza artificiale (IA), che si concentrava sullo sviluppo di sistemi simulativi delle capacità cognitive, e all’ apprendimento automatico (ML o machine learning) che si focalizzava sull’utilizzo di algoritmi che consentissero l’apprendimento automatico dei dati. L’introduzione di algoritmi statistici e metodi basati su corpora segnò un cambiamento di paradigma rispetto ai modelli basati su regole formali. L’approccio si rivelò particolarmente efficiente, utilizzando grandi quantità di dati per insegnare ai sistemi informatici a riconoscere e generare linguaggio. In questo periodo si svilupparono gli algoritmi di parsing ma anche le grammatiche formali <ref> Lenci, Montemagni, Pirrelli, Testo e computer, p. 106 </ref>. | ||
| Riga 70: | Riga 69: | ||
== Bibliografia == | == Bibliografia == | ||
* Alessandro Lenci, Simonetta Montemagni Vito Pirrelli, "Testo e computer. Elementi di linguistica computazionale", Roma, Carocci, 2016. | * Alessandro Lenci, Simonetta Montemagni Vito Pirrelli, "Testo e computer. Elementi di linguistica computazionale", Roma, Carocci, 2016. | ||
* https://www.ilc.cnr.it/linguistica-computazionale/ | * https://www.ilc.cnr.it/linguistica-computazionale/ | ||
Versione delle 12:37, 20 gen 2025
La linguistica computazionale (LC) è una disciplina che coinvolge ricercatori di informatica e di linguistica, nell'applicazione di metodi matematici e informatici allo studio del linguaggio umano, anche con l'obiettivo di dotare i sistemi informatici della capacità di comprendere e utilizzare il linguaggio naturale.
Storia
I primi passi: gli anni Cinquanta e Sessanta
Le radici della linguistica computazionale risalgono agli anni Cinquanta del Novecento, durante la Guerra Fredda, quando i governi iniziarono a investire massicciamente nella ricerca e nella traduzione automatica per esigenze militari e di intelligence. La dimostrazione Georgetown-IBM del 1954, che utilizzava un calcolatore (computer) commerciale noto come Defense Calculator IBM-701 per tradurre frasi dal russo all'inglese, rappresentò uno dei primi esperimenti significativi nel campo. Nonostante i risultati fossero primitivi/elementari, il progetto dimostrò che la traduzione automatica era una possibilità concreta. In questi anni, i pionieri che contribuirono a gettare le basi teoriche della linguistica computazionale, furono tre: Warren Weaver, Alan Turing, Noam Chomsky. Nello specifico, Weaver propose l'idea di tradurre automaticamente i testi tra lingue diverse, ispirato dai progressi nella teoria dell'informazione e nella cibernetica. Turing e Chomsky, con i loro lavori sulla teoria delle computabilità e sui linguaggi formali, fornirono le fondamenta matematiche e teoriche per lo sviluppo della linguistica computazionale.[1]
La crisi: gli anni Sessanta
Negli anni Sessanta, il campo della traduzione automatica affrontò una crisi significativa. Il rapporto ALPAC [2] del 1966, commissionato dal governo degli Stati Uniti, valutò negativamente i progressi nella traduzione automatica, portando a una significativa riduzione dei fondi e a un rallentamento della ricerca in questo ambito. Tuttavia, questi anni furono cruciali per altre aree della linguistica computazionale. La formalizzazione della grammatica, in particolare con la grammatica generativa trasformazionale di Chomsky, fornì un quadro teorico che poteva essere tradotto in modelli computazionali. La creazione dei primi modelli grammaticali formali durante questo periodo rappresentò una svolta importante per la comprensione automatica del linguaggio.
L’ascesa dell’IA: gli anni Ottanta
Negli anni Ottanta, la linguistica computazionale conobbe una rinascita grazie ai progressi dell’intelligenza artificiale (IA), che si concentrava sullo sviluppo di sistemi simulativi delle capacità cognitive, e all’ apprendimento automatico (ML o machine learning) che si focalizzava sull’utilizzo di algoritmi che consentissero l’apprendimento automatico dei dati. L’introduzione di algoritmi statistici e metodi basati su corpora segnò un cambiamento di paradigma rispetto ai modelli basati su regole formali. L’approccio si rivelò particolarmente efficiente, utilizzando grandi quantità di dati per insegnare ai sistemi informatici a riconoscere e generare linguaggio. In questo periodo si svilupparono gli algoritmi di parsing ma anche le grammatiche formali [3].
Il boom di Internet: gli anni Novanta
Negli anni Novanta, grazie al precedente avvento dei computer personali e l'accesso crescente a grandi corpora di testo, la linguistica computazionale ha visto un notevole sviluppo. I modelli statistici [4] e l'apprendimento automatico sono diventati strumenti centrali, con applicazioni che vanno dalla traduzione automatica ai sistemi di riconoscimento vocale.
Rivoluzione del deep learning: dal Duemila ad oggi
A partire dal Duemila, il campo della linguistica computazionale ha visto una rivoluzione grazie all’espansione dei dati e ai progressi del deep learning. In particolare, con l’introduzione di architetture complesse, come le reti neurali profonde, è stata migliorata la qualità dei sistemi di traduzione automatica e di gestione del contesto linguistico. I modelli di grandi dimensioni (LLM), seppur non basati su strutture neurali, hanno consentito una notevole miglioria dei sistemi di elaborazione del linguaggio in particolare nella comprensione della semantica. Nel 2017, con i modelli Transformer, le prestazioni di generazione del testo sono state migliorate soprattutto in termini di accuratezza e fluidità delle frasi.
Dati della lingua
Nella linguistica computazione, i dati della lingua rappresentano l'elemento centrale da analizzare e manipolare. È compito del linguista computazionale avere la capacità di selezionare e raccogliere i dati linguistici, saperli analizzare attraverso dei metodi formali e avere una buona padronanza di tecniche informatiche per condurre in modo autonomo le proprie analisi. [5]
Dato linguistico: parole, frasi, enunciati
Per dato linguistico si intende il prodotto del linguaggio che è oggetto del processo di analisi della linguistica computazionale. I dati linguistici possono assumere forme diverse ed essere utilizzati per finalità differenti:
- ”Le parole” vengono utilizzate come unità per le analisi morfologiche (dove è richiesto di identificare suffissi, prefissi o radici) oppure per rappresentare il contenuto semantico di un testo.
- ”Le frasi” vengono utilizzate per identificare la struttura sintattica e quindi le relazioni grammaticali che intercorrono tra le parole che la compongono.
- ”Gli enunciati” vengono studiati per riconoscere la funzione comunicativa.
Uno dei principali problemi del linguista è quello di individuare le fonti da analizzare: il primo tipo di fonti sono i testi dei parlanti di una lingua, intesi come qualsiasi prodotto dell'attività linguistica dei parlanti elaborato o trascritto come sequenza di caratteri, il secondo tipo sono i parlanti stessi. I dati linguistici possono essere ecologici oppure controllati. I dati controllati sono ricavati dallo studio di un particolare fenomeno; sostanzialmente, il linguista somministra test preparati ad hoc a un gruppo selezionato di parlanti, e le risposte dei parlanti costituiscono i dati oggetto dell'indagine. I dati ecologici, invece, sono quelli estratti da testi osservati nel loro ambiente naturale, e dunque conservano tutta la loro naturalezza. Le parole sono le unità di base del testo su cui si lavora in linguistica, e sono spesso trattate come token. Le frasi sono una sequenza di parole che esprime un’idea completa e grammaticalmente corretta. Nella LC, l’analisi delle parole è cruciale per la creazione di alberi sintattici che rappresentano la struttura grammaticale della frase. Gli enunciati sono unità di significato che vanno oltre le singole frasi e possono comprendere interi discorsi o conversazioni. [6]
Corpora: specialistici e di addestramento
I corpora testuali rappresentano collezioni di testi che svolgono un ruolo cruciale nella linguistica computazionale. Sono selezionati e organizzati in maniera da soddisfare dei criteri che li rendono funzionali per le analisi linguistiche e la loro creazione è il risultato di un'opera di selezione attenta, che richiede di valutare se il loro contenuto e la loro organizzazione sono adeguati per gli scopi di ricerca. In altre parole, bisogna determinare se il corpus preso in analisi è in grado di fornire il tipo e la quantità di informazioni necessarie per l'analisi. I tipi di corpora vengono definiti sulla base di diversi parametri [7]:
- Generalità: misura la trasversalità nella scelta dei testi rispetto alle diverse varietà linguistiche.
- Modalità: distingue i corpora in base alla modalità di produzione dei testi. Questo parametro suddivide i corpora in:
- corpora di lingua scritta: composti di testi che nascono in forma scritta,
- corpora di lingua parlata: composti di testi che vengono prodotti in modalità orale e successivamente trascritti
- corpora misti: composti sia di testi nati in forma scritta sia di testi prodotti in modalità orale.
- Cronologia: indica l'asse temporale a cui appartengono i testi, distinguendo corpora sincronici (appartenenti ad una stessa finestra temporale) o diacronici (appartenenti a periodi diversi con lo scopo di monitorare il mutamento linguistico).
- Lingua: classifica i corpora monolingue, bilingue o paralleli, in base alle lingue coinvolte.
- Integrità: specifica la porzione di testi che viene usata, in quanto i corpora possono contenere testi interi oppure porzioni di testi di una lunghezza definita.
- Codifica: descrive il formato in cui i testi sono rappresentati digitalmente.
Una distinzione importante da considerare, dal punto di vista applicativo dei corpora, è quella tra:
- Corpora specialistici: utilizzati per approfondire la comprensione delle peculiarità linguistiche di determinati settori. Questi corpora sono composti da testi mirati che si concentrano su ambiti linguistici specifici, come il linguaggio medico, giuridico o tecnico.
- Corpora di addestramento: utilizzati principalmente per addestrare modelli di machine learning o di linguistica computazionale. Consentono ai modelli di apprendere e generalizzare dai dati per compiti specifici come il riconoscimento del linguaggio, la traduzione automatica o la classificazione dei testi.
Analizzare il testo
La linguistica computazionale prevede l'individuazione delle unità minime di analisi. Per fare questo è richiesta la conoscenza di criteri di identificazione differenti che riguardano aspetti grafici, morfosintattici e semantici. Il problema è che per un computer un testo è semplicemente un insieme di righe, ciascuna formata da una sequenza di caratteri che termina con un ritorno a capo. Quindi non esiste nessuna corrispondenza diretta tra una sequenza di caratteri e una parola e le righe di un file non coincidono necessariamente né con una frase né con un capoverso. Le parole sono prima di tutto unità linguistiche e di contenuto che devono essere quindi ricostruite a partire dalla sequenza di cifre binarie che costituiscono la materia del testo. La ricostruzione è realizzabile solo dopo aver dotato il computer di una serie di conoscenze sulla struttura e sulle convenzioni della lingua che permettono di eliminare oppure ridurre le differenze tra l'organizzazione fisica e l'organizzazione logica del testo. [8]
Token
I token sono le unità minime di analisi del testo in linguistica computazionale. Rappresentano una famiglia eterogenea che oltre a parole ortografiche tradizionali comprende numeri, sigle segni di punteggiatura e nomi propri. Sebbene questa definizione sembri molto vicina alla definizione di parola, ovvero un'unità ben definita linguisticamente all'interno del lessico di una lingua, occorre distinguere i token in quanto non rappresentano necessariamente parole ortografiche tradizionali. Il processo che segmenta il testo in token è chiamato appunto tokenizzazione ed è spesso realizzato automaticamente da programmi chiamati tokenizzatori. Il processo di tokenizzazione è abbastanza semplice per le lingue che utilizzano lo spazio per delimitare le parole; è invece molto complesso nelle lingue a sistema ortografico continuo. Lo scopo è quello di rendere il testo più gestibile per le operazioni successive come l’analisi sintattica, la classificazione e la ricerca [9]. I problemi principali della tokenizzazione sono:
- Gestire correttamente la punteggiatura;
- Riconoscere parole composte, acronimi o abbreviazioni;
- Implementare correttamente gli spazi bianchi;
- Distinguere le lettere maiuscole e minuscole.
Stringhe
Le stringhe sono sequenze di caratteri che possono rappresentare frasi o altri segmenti di testo la cui manipolazione è una parte fondamentale dell’analisi testuale. Sono importanti per la linguistica computazionale in quanto rappresentano la forma di comunicazione grezza, con cui il computer interagisce con il linguaggio. Le operazioni comuni sulle stringhe includono la ricerca di specifiche sottostringhe, la sostituzione di parti del testo e la divisione di una stringa in sottostringhe. Un aspetto molto importante è dato dal case sensitivity ovvero la necessità di differenziare maiuscole e minuscole affinché non compromettano l’identificazione delle parole, cosa che risulterà molto importante nelle espressioni regolari. L’analisi delle stringhe necessita di una fase di codifica, ovvero associare ad ogni carattere un numero specifico che viene convertito in bit. La codifica più comune è l’UTF-8. [10]
Espressioni regolari
Uno strumento utile per l’identificazione, all’interno di un testo, di stringhe che corrispondono a determinate caratteristiche, sono le espressioni regolati (ER o regex) [11]. Sono espressioni algebriche che permettono di definire in maniera formale e rigorosa un pattern (schema o modello di stringhe che specifica i criteri che le stringhe devono soddisfare) di stringhe. Sono anche usate per fare ricerche avanzate su documenti testuali; la ER più elementare è quella costituita da un solo carattere.
Vocabolario
Il vocabolario, in linguistica computazionale, è l’insieme delle parole che compaiono in un dato corpus di testo, ovvero l’insieme finito di parole estratte dal testo stesso. Il vocabolario rappresenta un sottoinsieme del lessico in quanto è legato strettamente al testo e contiene solo le parole presenti nel corpus. Il vocabolario svolge un ruolo cruciale nei compiti di elaborazione del linguaggio naturale (NLP) come la tokenizzazione, l’indicizzazione e la costruzione di modelli di linguaggio per compiti come la traduzione automatica e la classificazione dei testi [12].
Applicazioni
La LC trova applicazione in una vasta gamma di settori, i suoi sviluppi tecnologici e teorici hanno portato a innovazioni significative in molte aree. [13]
- Traduzione Automatica: Sistemi come Google Translate e DeepL utilizzano modelli di traduzione basati su apprendimento automatico per tradurre testi tra diverse lingue migliorando la precisione e la fluidità delle traduzioni.
- Riconoscimento Vocale: Tecnologie come Siri, Alexa e Google Assistant impiegano modelli di riconoscimento vocale per comprendere e rispondere ai comandi vocali degli utenti.
- Elaborazione del Linguaggio Naturale (NLP): Include attività come il riconoscimento delle entità nominate, l'analisi del sentiment e la sintesi del testo
- Generazione di Testo: I modelli generativi, come GPT, sono utilizzati per creare testi coerenti e rilevanti su una vasta gamma di argomenti.
- Assistenti Virtuali e Chatbot: Sistemi che rispondono automaticamente alle richieste degli utenti in un'interazione conversazionale fornendo supporto in tempo reale.
Lo scopo che si vuole raggiungere è quello di sviluppare programmai capaci di comprendere e interpretare il linguaggio umano in modo automatico, quindi lo sviluppo di strumenti informatici capaci di gestire e trattare i dati della lingua. Ha scopo, di impatto significativo, anche nel settore della ricerca accademica dove viene utilizzata per indagare le proprietà del linguaggio naturale attraverso modelli statistici e formali. Questi studi possono fornire nuove prospettive sulla comprensione del linguaggio, contribuendo anche alla psicologia cognitiva e alle scienze cognitive, che esplorano il rapporto tra linguaggio e pensiero.
Note
- ↑ https://creative-words.com/storia-della-machine-translation/
- ↑ https://creative-words.com/storia-della-machine-translation/
- ↑ Lenci, Montemagni, Pirrelli, Testo e computer, p. 106
- ↑ Lenci, Montemagni, Pirrelli, Testo e computer, p. 17
- ↑ Lenci, Montemagni, Pirrelli, Testo e computer, p. 23
- ↑ Lenci, Montemagni, Pirrelli, Testo e computer, p. 24
- ↑ Lenci, Montemagni, Pirrelli, Testo e computer, p. 27-34
- ↑ Lenci, Montemagni, Pirrelli, Testo e computer, p. 101-122
- ↑ Lenci, Montemagni, Pirrelli, Testo e computer, p. 101-102
- ↑ Lenci, Montemagni, Pirrelli, Testo e computer, p. 61
- ↑ https://www.html.it/articoli/espressioni-regolari/
- ↑ Lenci, Montemagni, Pirrelli, Testo e computer, p. 133
- ↑ Lenci, Montemagni, Pirrelli, Testo e computer, p. 14,19,162
Bibliografia
- Alessandro Lenci, Simonetta Montemagni Vito Pirrelli, "Testo e computer. Elementi di linguistica computazionale", Roma, Carocci, 2016.
- https://www.ilc.cnr.it/linguistica-computazionale/