# Controllo ortografico

Nell'informatica, il controllo ortografico è un'applicazione che contrassegna le parole di un documento scritte non correttamente. I controllori ortografici possono, in effetti, essere programmi autonomi (standalone, in inglese) in grado di operare su un blocco di testo, oppure essere incorporati in applicazioni "maggiori", come un elaboratore di testi, un client di posta, un dizionario elettronico o un motore di ricerca.

## Funzionamento

I correttori ortografici base operano sulle singole parole, controllando se ciascuna di esse è presente nel dizionario interno del programma, eventualmente eseguendo la "tematizzazione" (stemming) della parola vagliata. Se quest'ultima non si trova nel dizionario, viene considerata errata, e di conseguenza il programma suggerisce una correzione sulle presunte intenzioni dello scrivente. Un algoritmo di suggerimento di questo tipo consiste nel raggruppare logicamente quelle parole del dizionario che presentino una distanza di Levenshtein ragionevolmente breve rispetto a quella digitata, ossia formata con l'uso della tastiera dall'utente assistito dal programma di correzione.
Quando viene rilevata una parola non presente nel dizionario, la maggior parte dei controllori ortografici dà la possibilità di aggiungerla alla lista delle parole corrette, che in quanto tali non vengono evidenziate; inserendo la parola "sbagliata" nell'elenco di cui al testo principale, si otterrà coerentemente che il correttore ignori in prosieguo tale supposto errore, ampliando di fatto il vocabolario della macchina con cui si sta scrivendo.

## Elementi di architettura logico-programmatoria

Di norma, un controllo ortografico consta di due parti:
* un set di routine (scanning routine) per analizzare sequenzialmente il testo estraendo le parole non riconosciute;
* un algoritmo per confrontare le parole estratte con una lista nota di parole dalla grafia corretta (ossia, il più volte nominato dizionario).
Le scanning routines a volte comprendono algoritmi dipendenti dal linguaggio per trattare la morfologia. Anche in una lingua dalla modesta flessione come l'inglese, le routine di estrazione debbono tener conto di fenomeni quali le contrazioni (es. don't, isn't) e il possessivo (es. tomorrow's meeting). È controverso se l'analisi morfologica arrechi un vantaggio significativo.
La lista di parole può contenere soltanto un elenco di vocaboli, oppure anche informazioni aggiuntive, come punti di sillabazione o attributi grammaticali o lessicali.
Oltre a queste due componenti, l'interfaccia utente permetterà agli utilizzatori di approvare le sostituzioni, e anche di modificare, all'occorrenza, il funzionamento del programma.
Un'eccezione al paradigma che abbiamo testé delineato è dato da quei particolari correttori il cui uso si basa esclusivamente su informazioni statistiche, per esempio ricorrendo agli n-gram. Questo approccio di solito esige un ragguardevole sforzo per ottenere informazioni statistiche sufficienti, e può richiedere una quantità ancor più grande di runtime storage. Attualmente questi metodi non sono di uso generale. In alcuni casi i correttori usano una lista fissa di refusi con i relativi suggerimenti; questo approccio meno flessibile è più caratteristico di quel surrogato del controllo ortografico che nelle enciclopedie cartacee è rappresentato dai richiami vedi anche.

## Storia

I primi controllori ortografici erano largamente disponibili sui mainframes dei primi anni settanta. Un gruppo di sei linguisti della Georgetown University sviluppò il primo sistema di controllo ortografico per la IBM. I primi correttori per personal computer comparvero nel 1980 per gli elaboratori CP/M e TRS-80, seguiti da pacchetti applicativi per PC IBM al debutto di quest'ultimo (l'anno successivo). Sviluppatori quali Maria Mariani, Soft-Art, Microlytics, Proximity, Circle Noetics, and Reference Software immisero rapidamente sul mercato (in celere espansione) pacchetti OEM o prodotti per l'utente finale, soprattutto per piattaforma PC, ma non mancarono le versioni Apple Macintosh, VAX, e Unix. Sui PC, questi controllori ortografici erano programmi a sé, e molti potevano essere avviati nella modalità Terminate and Stay Resident dall'interno dei pacchetti di videoscrittura sulle macchine dotate di sufficiente memoria.
Tuttavia, il mercato dei pacchetti standalone ebbe vita breve, poiché dalla metà degli anni ottanta gli sviluppatori di pacchetti di word processing di successo — quali WordStar e WordPerfect — avevano incorporato i controllori nei loro pacchetti, in gran parte licenziati dalle compagnie omonime, che presto avrebbero esteso la capacità di analisi e correzione dal solo inglese alle altre lingue europee, e poi perfino alle lingue afro-asiatiche. Questo però richiese una sempre maggior sofisticazione nelle routine morfologiche del software, segnatamente per le lingue dalla flessione complessa come l'ungherese ed il finlandese. Sebbene le dimensioni del mercato word processing di un paese come l'Islanda non giustificassero, in termini puramente economici, l'investimento necessario ad implementare la localizzazione dello specifico correttore, nondimeno compagnie quali WordPerfect tentarono di proporre il massimo numero di localizzazioni per ciascun idioma, soprattutto in omaggio alla propria strategia di marketing globale.
Successivamente, il controllo ortografico ha cessato di essere una prerogativa degli elaboratori di testo, visto che il browser Firefox (a partire dalla versione 2.0) fornisce assistenza ortografica per i contenuti web "autoprodotti", come nella scrittura di Wikitext, di molti siti di webmail, e di social networking. I browser Konqueror e Opera, il client di posta elettronica Kmail ed il client di instant messaging Pidgin offrono supporto ortografico, dichiaratamente adoperando GNU Aspell quale "motore". macOS ha ora il controllo ortografico praticamente in ogni applicazione fornita in bundle, e anche molte terze parti ne traggono profitto. In particolare, Safari, Mail, ed iChat (per nominare solo le applicazioni più famose della piattaforma di Apple) godono del controllo ortografico.

## Aspetti ergonomici

I primi controllori ortografici erano "verificatori" piuttosto che "correttori". Non proponevano alcun suggerimento su come correggere gli errori di scrittura. Andavano bene per i refusi in senso stretto, ma non altrettanto per gli errori logici o fonetici (nella lingua inglese, considerata la sua netta divaricazione tra ortografia e pronuncia, gli omofoni sono un fenomeno particolarmente insidioso). La sfida che gli sviluppatori dovevano affrontare era proprio nella difficoltà di offrire suggerimenti utili per gli errori di scrittura. Il percorso passava attraverso la riduzione delle parole ad una forma scheletrica e l'impiego di algoritmi pattern-matching.
Potrebbe sembrare logico che, qualora i dizionari per il controllo ortografico fossero costruiti con la massima del "più roba c'è, meglio è", le parole esatte non venissero inopinatamente segnate come errate. In pratica, però, una misura ideale per l'inglese sembra aggirarsi sulle 90 000 voci. Se si supera questa soglia, gli errori di battitura verranno più facilmente ignorati, perché confusi con vocaboli esistenti ma di uso improbabile, nel contesto statisticamente più prevedibile. Per esempio, un linguista può determinare con l'ausilio della linguistica dei corpora che la parola "baht" è più comunemente un refuso per bath (bagno) o bat (mazza, o anche pipistrello), invece che un riferimento intenzionale alla valuta thailandese. Tanto premesso, è generalmente preferibile che siano un po' svantaggiate le poche persone che scrivono della valuta thailandese, invece che permettere che siano ignorati gli errori di battitura (frequentissimi) di chi fa riferimento ai due ricorrenti vocaboli ut supra.
I primi correttori ortografici per MS-DOS erano utilizzati soprattutto nella modalità "correttore di bozze" dall'interno di pacchetti di videoscrittura. Dopo aver preparato un documento, l'utente faceva scorrere dal controllore ortografico il testo, alla ricerca di refusi. Più tardi, comunque, il batch processing fu offerto da pacchetti come l'effimero CoAuthor di Oracle. Questo permetteva all'utente di esaminare i risultati dopo che l'elaborazione del documento, e correggere solo le parole che detto utente riconosceva errate. Quando le risorse di memoria ed elaborazione divennero abbondanti, il controllo ortografico poté essere eseguito in background e in modo interattivo, come nel caso di Sector Software con il suo Spellbound del 1987, e di Microsoft Word a partire dalla versione Word 95.
Negli anni più recenti, i correttori sono divenuti sempre più sofisticati; alcuni sono in grado di riconoscere semplici errori grammaticali. Ad ogni modo, anche nella più favorevole delle ipotesi, raramente riescono a "catturare" tutti gli errori in un testo (come nelle ipotesi di omonimia, ad esempio) e per giunta marchiano invece come errori neologismi e certe parole straniere.

## Controllo ortografico in lingue diverse dall'inglese

Una particolarità dell'inglese consiste nel fatto che le parole usate nella scrittura formale hanno per lo più un'ortografia sola, che può essere reperita in un tipico dizionario, tranne alcune parole di gergo, o modificate. In molte lingue, però, è normale combinare le parole in modi nuovi. In tedesco, si coniano spesso parole composte unendo nomi esistenti. Alcuni scripts non separano in modo esatto una parola dall'altra, richiedendo specifici algoritmi. Ogni lingua di questo genere presenta ardue sfide ai correttori per le lingue non-inglesi.

## Correttori sensibili al contesto

Per superare i limiti del controllo ortografico tradizionale sono stati condotti studi tendenti a sviluppare algoritmi in grado di riconoscere una parola errata, anche se presente nel vocabolario, mediante l'analisi del contesto rappresentato dalle parole circostanti. Oltre a limitare la possibilità che vi siano malintesi, questi meccanismi informatici dovrebbero contenere l'aspetto svantaggioso (già precisato) che accompagna tendenzialmente l'ampliamento dei dizionari, consentendo però un generale riconoscimento delle parole errate in virtù della riscontrata coerenza (o incoerenza) con il contesto. L'esempio più comune degli errori scoperti con gli accorgimenti in questione è dato dagli omofoni, quali le parole formattate in grassetto nella frase che segue:
    Their coming too sea if its reel.
La frase, scritta in quel modo, non ha senso. La grafia corretta sarebbe stata: They're coming to see if it's real. ("[Essi] stanno venendo a vedere se è vero"). Le due frasi si pronunciano allo stesso modo in inglese, ma solo la seconda ha senso, anche se tutti i vocaboli omofoni della prima sono esistenti e corretti, ma inadatti allo specifico contesto.
Un esempio di tali algoritmi è opera di Andrew Golding e Dan Roth, ossia il Winnow-based spelling correction algorithm, pubblicato nel 1999, in grado di riconoscere circa il 96% degli errori "sensibili al contesto", oltre ai normali errori ortografici.
Le ricerche teoriche hanno già trovato applicazioni commerciali: un correttore sensibile al contesto appare in Microsoft Office 2007 in Google Wave, nel Ginger Software e in Ghotit Dyslexia Software un correttore sensibile al contesto ottimizzato per assistere persone dislessiche.

## Critiche

Alcuni detrattori della tecnologia e dei computer hanno ipotizzato un nesso tra l'uso dei correttori ortografici e la tendenza a un calo generalizzato della competenza nello scrivere, nel leggere e nell'espressione verbale. Essi assumono che la comodità offerta dagli elaboratori elettronici abbia indotto la massa a divenire pigra, al punto che molti avrebbero abdicato alla rilettura dei loro scritti, rimpiazzata da una semplice "passata" con il correttore ortografico. I fautori dell'informatica ribattono, invece, che dette innovazioni possano principalmente giovare alla società, visto che rendono più semplici al grande pubblico la scrittura e l'apprendimento di nuove lingue. I "tecnofili" affermano che le abilità perdute a causa dell'introduzione di correttori automatici siano state compensate da attitudini ancor migliori, come ad esempio strumenti di ricerca superiori in efficacia e velocità. Altri sostenitori della tecnologia sostengono che le competenze indicate sopra non sono state perdute da chi ne fa uso con regolarità, come autori, critici e professionisti della lingua.
Un buon esempio dei problemi che possono essere sorgere da un cieco e completo affidamento alle abilità dei correttori automatici è il componimento Spell Checker Poem, originariamente creato da Jerrold H. Zar nel 1991, con l'aiuto di Mark Eckman. La poesia originale constava di 225 parole, di cui 123 usate scorrettamente di proposito. Si tratta di un testo ineccepibile per la maggior parte dei correttori ortografici, anche se la maggior parte degli anglofoni potrebbe dire a colpo d'occhio che si tratta di un testo zeppo di errori.