Los N-gramas son un conjunto de cadenas, normalmente compuestas por palabras o caracteres, que juntas forman una unidad de texto mayor. Se utilizan en los campos del Procesamiento del Lenguaje Natural (PLN) y la programación informática, así como en ciberseguridad. Los N-gramas son útiles para descubrir patrones y tendencias en los documentos, y también pueden utilizarse para comparar fuentes de texto.
Los n-gramas fueron propuestos por primera vez como teoría en los años 50 por lingüistas que querían investigar la estructura del lenguaje, y desde entonces se han utilizado ampliamente en muchos ámbitos diferentes. En PNL, los n-gramas se utilizan para estudiar el lenguaje y detectar variaciones sutiles entre ellos. Un modelo que emplee n-gramas puede reconocer qué palabras es más probable que se sucedan en una secuencia y con qué frecuencia aparecen juntas.
En el campo de la programación informática, los n-gramas se utilizan para analizar código fuente y otros fragmentos de texto escrito. Esto se utiliza con diversos fines, como detectar problemas legales o plagios, así como detectar patrones y tendencias en el código. En ciberseguridad, los n-gramas se utilizan para buscar código malicioso e identificar comportamientos sospechosos, así como para detectar amenazas a la ciberseguridad.
Los n-gramas se componen de palabras o secuencias de palabras, pero también pueden utilizarse caracteres. Por ejemplo, un n-grama de caracteres puede representar letras, números, signos de puntuación y/o símbolos. Los n-gramas pueden ir desde 1-gramo (una sola palabra o carácter) hasta 5-gramas (cinco caracteres o palabras). Cuanto mayor sea el n-grama, más potente y preciso será a la hora de detectar patrones.
Los N-gramas son una potente herramienta para analizar grandes volúmenes de texto. Al detectar patrones y tendencias, resultan útiles para diversas tareas, desde la PLN al análisis de código fuente o la ciberseguridad.