• Home
  • Cos’è il CSPL
  • Il Comitato Scientifico
  • Risorse utili
  • Privacy policy

Patrimoni Linguistici

Difendiamo le lingue e i dialetti d'Italia

Ti trovi qui: Home » Traduzione automatica: una analisi tecnica

Traduzione automatica: una analisi tecnica

by Brian Sciretti 1 Comment

Come funziona la traduzione automatica dei testi da una lingua all’altra? Quali sono i problemi? Quali le opportunità? Troverai le risposte in questo articolo. 

La linguistica, nella sua esistenza come scienza, incontra varie discipline, alcune umanistiche altre tecnico-scientifiche.

Nel nuovo millennio una di queste discipline è l’informatica, che è legata a doppio filo alla linguistica perché anch’essa si basa sullo studio del linguaggio.

Ma il linguaggio informatico è differente da quello che usiamo noi esseri umani tutti i giorni… ed è per questo motivo che la traduzione automatica… non è così automatica.

Indice

  • Linguaggi naturali e linguaggi di programmazione
    • Elementi in comune tra linguaggi di programmazione e naturali 
      • 1. Non tutte le combinazioni alfabetiche sono valide
      • 2. Hanno una grammatica
    • La grande differenza
      • 1. La grammatica delle lingue naturali non è vincolante per la trasmissione del messaggio
      • 2. Le lingue naturali possono essere ambigue
  • Traduzione automatica: cosa cambia?
    • Tradurre linguaggi formali
    • Tradurre linguaggi naturali
      • 1. L’italiano è un linguaggio non decidibile.
      • 2. L’italiano è un linguaggio ambiguo, quindi non traducibile in automatico
  • Tecniche di traduzione automatica
    • Una tecnica che non funziona: la sostituzione
    • Apprendimento automatico, una quadra funzionante
    • Il machine learning
  • Alcuni strumenti di traduzione automatica
      • 1. Google Translate.
      • 2. Bing traduttore
      • 3. Word Reference
      • 4. Traduttore italiano-sardo open source

Linguaggi naturali e linguaggi di programmazione

Che differenza c’è, ad esempio, tra un programma in C e un discorso in lingua italiana? Sono entrambi linguaggi, dato che veicolano messaggi. Di conseguenza, sono entrambi oggetto di studio della scienza linguistica. Tuttavia, hanno anche caratteristiche che li differenziano.

Vediamoli insieme, prendendo a riferimento i casi che ti ho illustrato prima (con il C a rappresentare i linguaggi informatici e l’italiano a rappresentare i linguaggi naturali).

Elementi in comune tra linguaggi di programmazione e naturali 

1. Non tutte le combinazioni alfabetiche sono valide

Per prima cosa, non esiste un generatore, né per l’italiano né per il C. Ciò vuol dire che, partendo dall’alfabeto adoperato dall’italiano (a-z,A-Z,1-9) e da quello del C (come quello italiano con aggiunti alcuni caratteri di controllo) non è sempre possibile generare parole dotate di senso.

Non è chiaro? Eccoti servito un bell’esempio.

Se prendiamo le lettere dell’alfabeto italiano, possiamo comporre la parola “arantigello”. In teoria è una parola valida secondo le regole alfabetiche e sintattiche dell’italiano. Infatti ad un italofono non suona strana… ma è priva di significato. L’ho appena inventata io.

Ciò pone la necessità di avere un vocabolario, ossia un elenco di parole dotate di significato. Nel linguaggio C include ciò che un compilatore C dev’essere in grado di capire per eseguire un’istruzione, nell’italiano include le parole che fanno parte della lingua italiana.

2. Hanno una grammatica

C’è, ovviamente, anche la necessità di una grammatica, ossia una serie di regole che indicano come dev’essere strutturato il linguaggio.

Ad esempio in C le parole “for”, “i=0″,”i<5″,”i++” sono perfettamente valide, ma se scrivo i=0 for i<5 i++ in questa sequenza, il compilatore non saprà che pesci pigliare, dato che non segue la grammatica del “for”.

Allo stesso modo, in italiano “Mi”, “chiamo”, “Giovanni” sono parole valide, ma hanno senso solo se unite secondo lo schema Pronome, Verbo, Complemento.

La grande differenza

Tutto chiaro. Potresti pensare che le lingue naturali e i linguaggi di programmazione siano tutto sommato simili.

Ma… c’è un grande ma!

In genere, le lingue naturali sono molto più flessibili dei linguaggi informatici.

1. La grammatica delle lingue naturali non è vincolante per la trasmissione del messaggio

Questo significa che la grammatica è sì importante per le lingue naturali, ma non è necessario rispettarla alla perfezione per farsi capire dall’interlocutore.

In italiano, ad esempio, è pienamente comprensibile anche la frase “Giovanni mi chiamo”, pur non essendo grammaticalmente corretta.

I linguaggi di programmazione invece richiedono una correttezza grammaticale al 100%. In caso contrario il computer non è in grado di comprendere l’istruzione e restituisce un messaggio di errore.

2. Le lingue naturali possono essere ambigue

Ciò significa che una frase in una lingua naturale può essere interpretata in modi diversi.

Per esempio, la frase “Mario è dietro a mangiare” può avere almeno due significati:

  • Mario sta compiendo l’azione di mangiare, (secondo il costrutto regionale settentrionale)
  • Mario è in un posto identificato come dietro e compie l’azione di mangiare

Una persona, in base alla sua esperienza, potrà capire cosa intende un parlante.

Anzi, ti dirò di più: l’ambiguità del linguaggio umano può essere presente non solo nel costrutto della frase (e quindi a livello di grammatica), ma addirittura nella singola parola.

Quindi, se scrivo “pesca”, un italofono potrebbe pensare a due cose differenti:

  • Il frutto estivo dalla buccia vellutata
  • L’attività in cui si catturano i pesci

L’interlocutore umano può capire il significato della parola in base al contesto.

Tutto ciò non è possibile nei linguaggi di programmazione. I computer sono macchine estremamente stupide, quindi il linguaggio di programmazione non può essere ambiguo.

Il computer non può, infatti, capire se il programmatore intende questo o quello mentre programma in C. Dunque il linguaggio dev’essere privo di ambiguità: niente sinonimi, niente costrutti strani.

Traduzione automatica: cosa cambia?

Tradurre linguaggi formali

Possiamo dunque dire che il C è un linguaggio formale: data la sua grammatica e il suo dizionario, è possibile decidere senza ombra di dubbio se un’asserzione è parte o no del linguaggio C.

Tradurre questi linguaggi è, ovviamente, abbastanza semplice, tant’è che è ciò che avviene durante la compilazione, ossia quando il codice di un linguaggio di programmazione di medio/alto livello viene tradotto in linguaggio macchina. In parole povere, il linguaggio di programmazione (che serve all’uomo per comunicare con il computer) viene tradotto in una serie di istruzioni in logica booleana che il computer deve eseguire.

Se si sa che, ad esempio, in linguaggio C un’istruzione di somma è sempre del tipo <variabile> = <variabile> + <variabile>, eventualmente raccoglibili, e in linguaggio macchina tale istruzione è 0001 <registro> <registro> <modalità di somma> <registro o costante>, giusto per fare un esempio con il didattico LC-3.

Effettuare una traduzione di questo tipo è ovviamente molto semplice.

Tradurre linguaggi naturali

Tradurre linguaggi naturali, invece, è difficile.

1. L’italiano è un linguaggio non decidibile.

Non esiste un algoritmo che data un’asserzione A ci dica se A appartiene inequivocabilmente all’italiano.

Possono esistere vari sistemi per dire se è probabile che una frase appartenga alla lingua italiana.

Si potrebbe escludere tale appartenenza (ad esempio “by!djeL&+” non è certamente una parola della lingua italiana, ed è facile intuirlo anche per un calcolatore elettronico!).

Confermare l’appartenenza in modo automatico e matematicamente certo però è impossibile.

2. L’italiano è un linguaggio ambiguo, quindi non traducibile in automatico

E’ soprattutto il fatto che sia ambiguo a rendere ardua la traduzione automatica.

Un computer non avrebbe modo di discernere, nell’esempio fatto prima, tra i due usi della forma “essere dietro a”, il che in una traduzione è un problema non da poco!

Le differenze tra grammatiche e le ambiguità sono dunque un enorme ostacolo allo sviluppo di un sistema perfettamente affidabile di traduzione automatica.

Tecniche di traduzione automatica

Una tecnica che non funziona: la sostituzione

Un sistema spesso pensato dagli inesperti è semplice: sostituisco le parole una ad una per ottenere una nuova stringa di testo.

Ammetto che in alcuni momenti, quando ancora facevo il biennio dell’ITIS, per me era una soluzione valida, ma basta pensare alle differenze semantiche per capire che la cosa è folle!

Ad esempio la frase italiana “Con la presente le invio i documenti” verrebbe, in inglese, sostituita e adattata con “With the present I send you the documents”.

La traduzione inversa?

“Con il regalo ti invio i documenti”

E’ chiaro che non si può tradurre così un intero testo senza stravolgerne il significato. Infatti la valutazione linguistica va effettuata molto più ad ampio spettro.

In ciò l’intelligenza artificiale ci può aiutare.

Apprendimento automatico, una quadra funzionante

Con l’intelligenza artificiale è possibile ottenere traduzioni molto più affidabili, ma chiaramente non perfette.

Ad esempio Google Translate, pur con le sue gaffes, è spesso utile per tradurre piccoli spezzoni di testo in lingue sconosciute.

Il machine learning

Un possibile uso dell’intelligenza artificiale è quello del machine Learning: in questo modo il software viene messo a lavorare sul medesimo testo tradotto nelle due lingue da confrontare, e ne ricava le regole corrispondenti.

Questo approccio può avere problemi. Possiamo citare tre esempi reali:

  1. Si può manipolare: se in una lingua si usa spesso un soprannome per qualcosa può essere scambiato per la parola reale, come accadde alla Russia, in ucraino Mordor, per Google Translate.
  2. Lingue simili vengono identificate come la medesima: spesso Google confonde il siciliano e lo identifica come corso, Bing ha la tendenza a dire che il lombardo è catalano.
  3. Se non esiste una letteratura bilingue consistente tra due lingue (ad esempio tra italiano e svedese) verrà usata la lingua comune, quasi sempre l’inglese, come tramite.

Il grande pregio è, tuttavia, che si tratta di un approccio principalmente statistico, che ha dunque buone probabilità di riuscire anche ad identificare il contesto della conversazione e a tradurre di conseguenza.

Si tratta, in ogni caso, di software molto complessi e la cui scrittura non è alla portata di tutti e che, in ogni caso, non garantiscono una traduzione sicura al 100%.

Bisogna sempre ricordare che il computer, per quanto sofisticato, è e rimane una calcolatrice. Con una serie di accorgimenti può avvicinarsi molto al linguaggio naturale, ma per sua natura non è in grado di ragionare come un essere umano.

Alcuni strumenti di traduzione automatica

Da anni esistono svariati software online e offline che permettono la traduzione automatica di testi (con le opportunità e le problematiche che ti ho descritto fin qui). Te ne mostrerò alcuni tra i più interessanti.

1. Google Translate.

Chi non ha mai usato questo utilissimo strumento di Google? E’ diventato popolarissimo non solo perché integrato nel motore di ricerca Google, ma anche per la sua semplicità. Infatti, basta copiare e incollare un testo nel campo a sinistra e scegliere la lingua nel campo a destra.

Ad oggi Google Translate è disponibile in un centinaio di lingue. Purtroppo, per ora, nessuna lingua minoritaria italiana è presente (a parte il catalano).

In realtà, per usare Google traduttore non è strettamente necessario entrare in Google. Basta navigare un sito internet con Google Chrome, cliccare col tasto destro del mouse e selezionare l’opzione “traduci questa pagina”. In questo modo puoi navigare in siti con lingue a te sconosciute.

Pochi sanno che c’è anche la versione di google translate traduttore simultaneo per smartphone.

2. Bing traduttore

E’ simile al precedente dal punto di vista funzionale, con la differenza che è sviluppato da Microsoft e ci sono un po’ meno lingue.

Ma in casa Microsoft si stanno attrezzando…

3. Word Reference

Se sei terrorizzato dall’ambiguità del linguaggio e non vuoi fare figuracce come tradurre “presente” con “gift” in una lettera formale in inglese, ti consiglio di dare un’occhiata a questo vocabolario online.

Non traduce frasi intere, ma singole parole. Però ha un focus importante sulle ambiguità del linguaggio e ti aiuta ad affinare le traduzioni automatiche.

4. Traduttore italiano-sardo open source

Concludo questa breve rassegna con una nota interessante che riguarda le lingue minoritarie. E’ una notizia che viene dalla Sardegna, che è all’avanguardia sul fronte dello sviluppo web in lingua regionale.

Gianfranco Fronteddu, neolaureato dell’università di Cagliari, ha descritto un traduttore automatico italiano-sardo open source nella sua tesi di laurea.

Per ora l’articolo dà poche informazioni tecniche. Rimaniamo in attesa di sviluppi (e speriamo che questa iniziativa si possa estendere anche ad altre lingue d’Italia).

Se conosci qualche altro tool di traduzione automatica, o qualche progetto per tradurre automaticamente lingue minoritarie, segnalamelo nei commenti!

Filed Under: Riflessioni Tagged With: Parole della scienza linguistica, Tecnologia e linguistica

Comments

  1. Michele says

    Dicembre 5, 2018 at 1:49 pm

    Articolo molto interessante. Aggiungo che la sempre più grande diffusione dei traduttori automatici ha portato i traduttori umani ad applicare due nuove tecniche ai testi per velocizzare traduzioni di qualità: il “pre-editing” ovvero un controllo preventivo sul testo di partenza, al fine di anticipare e valutare i possibili problemi che il sistema di traduzione automatica potrebbe incontrare durante la fase di traduzione e il “post-editing” ovvero una revisione del risultato della traduzione automatica al fine di minimizzare gli eventuali errori commessi dal sistema di traduzione automatica. Alla seguente pagina si può scaricare un elenco di regole di pre-editing da applicare a testi in italiano;

    https://tinyurl.com/ybwxztv2

    Alcune di queste regole sono abbastanza semplici: “Evitare frasi troppo lunghe che contengano più di due soggetti o più di due verbi” e “Evitare i pronomi e inserire sempre il soggetto della frase, se possibile al primo posto”. La regola “Preferire frasi coordinate a frasi subordinate” è consigliata spesso anche per il buon scrivere generale.

    Ai traduttori già segnalati nell’articolo io aggiungo il traduttore di Facebook e soprattutto il traduttore automatico DeepL

    https://www.deepl.com/translator

    che spesso ha risultati migliori di Google, sebbene abbia il difetto che finora supporti solo nove lingue (il russo e il portoghese sono le ultime lingue aggiunte).

    Saluti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

* Questa casella GDPR è richiesta

*

Accetto

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Ti interessa la Linguistica?

Lettera di Natale

Di Pietro Cociancich

E se l’italiano fosse un dialetto?

Di Brian Sciretti

cartelli in dialetto

A cosa servono i cartelli bilingui?

Di Pietro Cociancich

Categorie

Argomenti

Biografie Bufale linguistiche Canzone dialettale Comitato Scientifico Dialetti del nord italia Dialetti del sud italia Dialetto a scuola Dialetto e italiano dialetto emiliano Dialetto gallo-italico di Sicilia Dialetto greco di Calabria Dialetto ligure Dialetto piemontese Dialetto siciliano Dialetto valdostano Dialetto veneto Etimologia Eventi Glottofobia Glottologia Guide Imparare le lingue Interviste Isole linguistiche Lessico dialettale Letteratura dialettale Lingua catalana lingua francese Lingua italiana Lingua lombarda Lingue d'Italia all'estero Lingue del mondo Lingue e business Lingue gallo-italiche Lingue germaniche in Italia Lingue retoromanze Linguistica italiana Parole della scienza linguistica Politica linguistica salvaguardia dei dialetti Scrivere in dialetto Sociolinguistica Tecnologia e linguistica Tipologia linguistica Toponomastica

Disclaimer

Le pagine, gli articoli e i commenti agli articoli di questo sito rispecchiano le opinioni dei rispettivi autori. I componenti del Comitato Scientifico non revisionano né editano i contenuti di questo sito, salvo diversa dicitura all’interno dei singoli articoli. Le immagini, i testi e i contenuti multimediali presenti in questo sito sono utilizzati nel rispetto delle norme nazionali e internazionali vigenti sui diritti di copyright. Se nel sito è presente un contenuto utilizzato in modo improprio, per favore segnalalo mandandoci un messaggio. Provvederemo a rimuoverlo il prima possibile.

Cerca nel sito

Articoli recenti

  • Non scrivere mai più queste cinque cose in milanese se non vuoi sembrare un giargiana
  • Estinzione linguistica: perché le lingue scompaiono?
  • 5 parole che credevi fossero in milanese ma non lo sono
  • Trimone: cosa vuol dire in pugliese?
  • Dialetto “neolingua fascista”? Una risposta motivata
  • Se la lingua esclude, il problema è chi la esclude
  • Parlumm Piasintein!

Privacy

Privacy Policy

 © Michele Ghilardelli - Tutti i diritti riservati

Contatti webmaster: patrimonilinguistici[at]gmail.com