Costruire un piccolo modello di linguaggio (SLM) con l’algoritmo Jaro-Winkler per migliorare e potenziare gli errori di ortografia

Creare un SLM con l'algoritmo Jaro-Winkler per correggere gli errori di ortografia

Gli errori di ortografia sono un problema comune per molte persone. Possono essere causati da una varietà di fattori, come errori di battitura, fraintendimenti delle parole o semplicemente non sapere come scrivere correttamente una parola. Sebbene gli errori di ortografia siano di solito minori, a volte possono essere imbarazzanti o addirittura portare a fraintendimenti.

L’algoritmo Jaro-Winkler è uno dei molti modi che aiutano a ottenere un risultato soddisfacente con una precisione media media (MAP) del 0,87 e misura la similarità tra due stringhe. È una misura più sofisticata rispetto alla semplice distanza di modifica, poiché tiene conto della trasposizione dei caratteri e della corrispondenza dei prefissi e dei suffissi.

Sia che sia piccolo, VoAGI, o grande, il modello linguistico è conosciuto come un metodo statistico che predice la prossima parola in una sequenza di parole che sono addestrate su dati diversi e apprende la distribuzione di probabilità delle parole nella lingua.

In questo articolo ti mostrerò come utilizzare l’algoritmo Jaro-Winkler per costruire un Piccolo Modello Linguistico (SLM) con un piccolo dataset definito in modo fisso che può migliorare i controlli ortografici del sistema.

Introduzione a J-W

L’algoritmo J-W è una variazione di Damerau-Levenshtein che misura la similarità tra due stringhe, dove la sostituzione di due caratteri simili è considerata meno critica della sostituzione di due caratteri lontani l’uno dall’altro.

Operazioni comuni in J-W

1. Sostituzione

  • Input: sent
  • Output atteso: send
  • Lettera sostituita: d
  • Posizione sostituita: 3

2. Cancellazione

  • Input: ssend
  • Output atteso: send
  • Lettera cancellata: s
  • Posizione cancellata: 0

3. Inserimento

  • Input: snd
  • Output atteso: send
  • Lettera inserita: e
  • Posizione inserita: 1

Componenti di J-W

  1. Scaling del prefisso comune: ciò assicura che i caratteri corrispondenti debbano essere entro la metà della lunghezza della stringa più corta.
  2. Calcolo della similarità: questo calcola un punteggio basato sul numero di caratteri comuni, il numero di trasposizioni e la lunghezza delle stringhe.
  3. Corrispondenza della distanza: questo determina se due stringhe sono abbastanza simili da essere considerate uguali.
  4. Valutazione delle trasposizioni: questa valuta il carattere di una stringa che è fuori ordine rispetto al corrispondente carattere comune dell’altra stringa.

Il valore del comparatore di stringhe è principalmente espresso come:

  • s1 e s2 = Le stringhe in questione
  • len s1 e len s2 = Lunghezza delle stringhe in questione
  • Nc = Numero di caratteri comuni tra le due stringhe dove la distanza per il comune è la metà della lunghezza minima di s1 e s2
  • Nt = Numero di trasposizioni

Esempi di Piccolo Modello Linguistico

Implementazione dell’Algoritmo del Piccolo Modello Linguistico

  • Passaggio 1: Verifica della similarità
  • Passaggio 2: Calcolo del punteggio di similarità con l’algoritmo J-W
  • Passaggio 3: Confronto dei seguenti:
    • punteggioSimilarità con punteggioSimilaritàAtteso
    • punteggioSimilarità e soglia
  • Passaggio 4: Valutazione delle lettere mancanti

Implementazione in Java

Output:

Conclusioni

Anche se questo è ancora un lavoro in corso, la creazione di SLM con l’algoritmo Jaro-Winkler e algoritmi correlati è un approccio interessante per migliorare l’ortografia ed è migliore dell’implementazione semplice della distanza di modifica.