N-gramy to zestaw ciągów znaków, zwykle składających się ze słów lub znaków, które razem tworzą większą jednostkę tekstu. Znajdują zastosowanie w przetwarzaniu języka naturalnego (NLP) i programowaniu komputerowym, a także w cyberbezpieczeństwie. N-gramy są przydatne do odkrywania wzorców i trendów w dokumentach, a także mogą być używane do porównywania źródeł tekstowych.
N-gramy zostały po raz pierwszy zaproponowane jako teoria w latach pięćdziesiątych XX wieku przez lingwistów, którzy chcieli zbadać strukturę języka i od tego czasu są szeroko stosowane w wielu różnych dziedzinach. W NLP n-gramy służą do badania języka i wykrywania subtelnych różnic między nimi. Model wykorzystujący n-gramy może rozpoznać, które słowa najprawdopodobniej następują po sobie w sekwencji i jak często pojawiają się razem.
W dziedzinie programowania n-gramy służą do analizy kodu źródłowego i innych pisanych fragmentów tekstu. Służy do różnych celów, takich jak wykrywanie problemów prawnych lub plagiatów, a także wykrywanie wzorców i trendów w kodzie. W cyberbezpieczeństwie n-gramy służą do skanowania w poszukiwaniu złośliwego kodu i identyfikowania podejrzanych zachowań, a także do wykrywania zagrożeń cyberbezpieczeństwa.
N-gramy składają się ze słów lub sekwencji słów, ale można również używać znaków. Na przykład n-gram znaków może reprezentować litery, cyfry, znaki interpunkcyjne i/lub symbole. N-gramy mogą mieć wagę od 1 grama (pojedyncze słowa lub znaki) do 5 gramów (pięć znaków lub słów). Im większy n-gram, tym skuteczniejsze i dokładniejsze jest wykrywanie wzorców.
N-gramy to potężne narzędzie do analizy dużych zbiorów tekstu. Wykrywając wzorce i trendy, są przydatne w szeregu zadań, od NLP, przez analizę kodu źródłowego, po cyberbezpieczeństwo.