Un n-gram este o secvență contiguă de n elemente — cuvinte, caractere sau alte unități lingvistice — extrasă dintr-un text dat, folosită ca unitate de bază pentru numeroase tehnici statistice de procesare a limbajului natural.
De exemplu, pentru propoziția „inteligența artificială transformă afacerile”, bigramele (n=2, secvențe de câte două cuvinte consecutive) ar fi „inteligența artificială”, „artificială transformă” și „transformă afacerile”, în timp ce trigramele (n=3) ar include „inteligența artificială transformă” și „artificială transformă afacerile”. La n=1, avem simplu cuvinte individuale (unigrame).
Modelele de limbaj bazate pe n-grame, populare înainte de era rețelelor neuronale profunde, estimau probabilitatea următorului cuvânt dintr-o propoziție analizând doar frecvența cu care acel cuvânt urmează secvenței anterioare de n-1 cuvinte în corpusuri mari de text — o abordare simplă statistic, dar limitată, deoarece nu putea captura dependențe pe distanțe mai lungi decât dimensiunea n aleasă.
Deși modelele moderne de limbaj bazate pe transformer au depășit complet abordarea n-gramelor pentru generarea de text, conceptul rămâne util practic în multiple contexte: detectarea plagiatelor (compararea n-gramelor comune între documente), corectarea automată a greșelilor de tastare (sugerarea celor mai probabile secvențe corecte de caractere), analiza stilistică a textelor (identificarea tiparelor de scriere caracteristice unui autor) și ca metrică standard de evaluare a calității traducerilor automate (scorul BLEU, folosit pe scară largă, se bazează pe compararea n-gramelor dintre traducerea generată și una de referință).
