Spero di scrivere un correttore ortografico per le query di ricerca in un'applicazione web, non diversamente da Google "Intendevi?" L'algoritmo sarà liberamente basato su questo: link
In breve, genera candidati per la correzione e li classifica sulla frequenza con cui appaiono (insieme alle parole adiacenti nella query di ricerca) in un enorme insieme di noti n-grammi - Google Web 1T - che contiene oltre 1 miliardo e mezzo grammi.
Non sto usando il set di dati Web 1T, ma sto costruendo i miei set n-gram dai miei documenti - circa 200k doc, e sto stimando decine o centinaia di milioni di n-grammi saranno generati.
Questo tipo di processo sta spingendo i limiti della mia comprensione delle prestazioni di base del computing: posso semplicemente caricare i miei n-grammi in memoria in un hashtable o dizionario quando l'app inizia? L'unico fattore limitante è la quantità di memoria sulla macchina?
O sto abbaiando dall'albero sbagliato? Forse mettendo tutti i miei n-grammi in un database grafico con una sorta di ottimizzazione delle query sugli alberi? Potrebbe mai essere abbastanza veloce?