Un n-grama es una secuencia contigua de n elementos de una muestra determinada de texto o habla. Los elementos pueden ser caracteres, sílabas, palabras, fonemas, o incluso secuencias biológicas como pares de bases en un genoma. Los n-gramas se recopilan de un corpus de texto o de habla y son fundamentales para el procesamiento estadístico del lenguaje natural, ya que permiten a los modelos capturar patrones locales y dependencias en datos secuenciales.
El término deriva de los prefijos numéricos latinos: un unigrama es una secuencia de un elemento, un bigrama (o digrama) de dos, un trigrama de tres, y así sucesivamente. Para tamaños mayores, se usan los números cardinales en inglés, como four-gram o five-gram. En biología computacional, secuencias similares se denominan k-meros, usando prefijos griegos como monómero, dímero, trímero, o formas inglesas como one-mer, two-mer. Cuando los elementos son palabras, los n-gramas a veces se denominan shingles.
Desarrollo Histórico
El concepto de modelos de n-gramas en el lenguaje se remonta a 1951, cuando Claude Shannon los discutió en el contexto de la teoría de la información. Shannon demostró cómo los modelos de n-gramas a nivel de caracteres y de palabras podían generar texto inglés plausible mediante el muestreo de distribuciones de probabilidad de secuencias observadas. Por ejemplo, un modelo de 3-gramas de caracteres podría producir texto como "in no ist lat whey cratict froure birs grocid pondenome", mientras que un modelo de 2-gramas de palabras podría generar "the head and in frontal attack on an english writer". Estos primeros experimentos establecieron los n-gramas como una herramienta práctica para modelar el lenguaje estadísticamente.
Aplicaciones en el Procesamiento del Lenguaje Natural
En el procesamiento del lenguaje natural, los n-gramas permiten que los modelos de bolsa de palabras capturen información sobre el orden de las palabras que de otro modo se perdería. Una representación tradicional de bolsa de palabras trata un documento como un conjunto desordenado de palabras, pero las características de n-gramas preservan el contexto local. Esta capacidad es esencial para tareas como el modelado del lenguaje, la corrección ortográfica, la traducción automática y la clasificación de textos. Los modelos de lenguaje basados en n-gramas estiman la probabilidad de una palabra dado los n-1 palabras precedentes, formando la base de muchos enfoques estadísticos antes del auge de las redes neuronales.
Los grandes modelos de lenguaje modernos basados en arquitecturas transformer han superado en gran medida a los modelos explícitos de n-gramas en muchas tareas, pero los n-gramas siguen siendo relevantes en áreas como la atribución de autoría, la estilometría y la bioinformática. El Google Books Ngram Viewer, que grafica la frecuencia de n-gramas en millones de libros digitalizados, demuestra su utilidad continua para el análisis cultural y lingüístico.
Biología Computacional
En genómica, los k-meros (el equivalente biológico de los n-gramas) se utilizan para analizar secuencias de ADN y ARN. Un k-mero es una subsecuencia contigua de longitud k, y el análisis de frecuencia de k-meros es una técnica estándar para el ensamblaje de genomas, la alineación de secuencias y el control de calidad. Por ejemplo, los algoritmos para proyectos de secuenciación de ADN a menudo usan distribuciones de k-meros para detectar errores o estimar el tamaño del genoma. La elección de k afecta la sensibilidad y la especificidad: los k-meros más pequeños son más abundantes pero menos específicos, mientras que los k-meros más grandes proporcionan coincidencias más únicas pero pueden estar ausentes debido a errores de secuenciación.
Propiedades Estadísticas y Variantes
Los modelos de n-gramas pueden suavizarse para manejar secuencias no vistas, usando técnicas como el suavizado de add-one o métodos más avanzados como el suavizado de Kneser-Ney. También pueden ponderarse por frecuencia, como se observa en el corpus de n-gramas de Google, que proporciona recuentos para frases como "serve as the independent" (794 ocurrencias) o "ceramics collectables fine" (130 ocurrencias). Estas distribuciones de frecuencia permiten predicciones probabilísticas y se utilizan en aplicaciones que van desde la entrada de texto predictiva hasta el reconocimiento de voz.
Limitaciones y Extensiones
Una limitación clave de los n-gramas es su incapacidad para capturar dependencias de largo alcance más allá del tamaño fijo de la ventana. Aumentar n mejora el contexto pero conduce a una escasez de datos, ya que muchas secuencias posibles nunca aparecen en los datos de entrenamiento. Para abordar esto, los investigadores han desarrollado modelos de retroceso, interpolación y modelos de lenguaje neuronales que aprenden representaciones distribuidas. No obstante, los n-gramas siguen siendo una línea base simple e interpretable y a menudo se usan en sistemas híbridos junto con métodos de aprendizaje automático.
Además del texto y el habla, los n-gramas se han aplicado al análisis musical, donde las secuencias de notas o acordes se tratan como elementos, y a la seguridad de redes para detectar anomalías en secuencias de paquetes. Su generalidad los convierte en una herramienta versátil en disciplinas que tratan con datos secuenciales.
Véase También
- inteligencia artificial
- aprendizaje automático
- procesamiento del lenguaje natural
- modelo estadístico
- Google Books Ngram Viewer