Costruisci la tua prima correzione automatica senza Machine Learning

Crea correzione automatica senza ML

Una guida passo-passo per creare il tuo correttore di errori di ortografia.

Foto di Markus Spiske su Unsplash

La correzione degli errori di ortografia è ovunque. Mentre scrivevo questo articolo, Grammarly mi sta aiutando in silenzio con gli errori di battitura. Quando inserisci una query su un sito di e-commerce, verrà prima corretta per ottenere una migliore corrispondenza con il titolo degli articoli desiderati.

La correzione degli errori di ortografia è senza dubbio essenziale per ogni comunicazione scritta. Migliora la nostra comunicazione, mantiene la nostra professionalità e aumenta la nostra produttività. Quando si considera la creazione di un correttore, potremmo pensare rapidamente alla soluzione “taglia unica”: il deep learning. Tuttavia, il deep learning è solo a volte la scelta ottimale.

In questo articolo, vorrei presentare “canale rumoroso”, una tecnica classica per la correzione degli errori di ortografia, e come è possibile creare il proprio modulo di correzione senza alcuna esperienza di deep learning.

Canale rumoroso

Possiamo pensare che ogni parola nei nostri documenti abbia attraversato un canale rumoroso che le ha “distorte” in qualche modo. Il nostro obiettivo è imparare il “canale decodificatore”, che può invertire quel processo di “distorsione”.

Per correggere una parola scritta in modo errato, raccogliamo tutti i possibili candidati di correzione e li facciamo passare attraverso il canale decodificatore per individuare il candidato con la probabilità più alta.

Canale rumoroso e Canale decodificatore (Immagine dell'autore)

Rispetto all’approccio del Machine Learning, penso che il canale rumoroso sia più favorevole per iniziare per i seguenti motivi:

  • Economico: Non è necessario costruire e mantenere modelli complessi. Sappiamo tutti che solo alcuni hanno le risorse per costruire, gestire e mantenere un modello di Deep Learning.
  • Scatola bianca: Il canale rumoroso è più interpretabile. Quando si verificano comportamenti imprevisti dal correttore di errori di ortografia, possiamo scomporre il punteggio in componenti più piccole e identificare da dove proviene il problema. Di conseguenza, possiamo ottimizzare di conseguenza (ad esempio, espandere il dizionario, regolare gli iperparametri, …).

Tuttavia, man mano che le risorse dell’applicazione crescono, modelli complessi come seq2seq diventano una scelta migliore perché:

  • Canale rumoroso manca di…