N-gram es una secuencia de N elementos consecutivos.
Palabras, caracteres, o cualquier unidad de análisis.
En un corpus de texto o datos lingüísticos.
Es un concepto fundamental en el procesamiento del lenguaje natural (NLP).
Se utiliza en modelos estadísticos de lenguaje.
Para predecir o generar texto entre otras aplicaciones.
Definición
Elementos básicos
Un N-gram de tamaño N consiste en una subsecuencia de N elementos extraídos.
De una secuencia más grande.
Ejemplo: En la frase «El gato negro»:
Unigrama (N=1): [El], [gato], [negro]
Bigramas (N=2): [El gato], [gato negro]
Trigramas (N=3): [El gato negro]
Formalización:
Si tenemos una secuencia de palabras w1, w2 ,…, wm
Un N-gram será una subsecuencia de longitud N.
Modelos de lenguaje basados en N-grams
Un modelo de lenguaje basado en N-grams estima la probabilidad.
De una secuencia de palabras.
Utilizando el principio de la cadena de Markov
La probabilidad de una palabra depende únicamente.
De las N − 1 palabras anteriores.
La probabilidad de una secuencia de palabras w1, w2, …, wm se calcula como:
Unigrama
La probabilidad depende únicamente de la frecuencia de cada palabra individual
Bigramas
Se toma en cuenta la probabilidad condicional.
De una palabra dado su predecesor
Trigramas y superiores
Aumenta la ventana de contexto para capturar dependencias más largas.
Ventajas de los modelos N-gram
Simplicidad
Los N-grams son fáciles de implementar y calcular.
Con bigramas y trigramas.
Eficiencia computacional
Su bajo costo computacional los hace ideales.
Para tareas rápidas como corrección ortográfica.
Predicción de palabras.
Contexto limitado
Permiten modelar relaciones locales entre palabras.
Sin necesidad de procesar toda la oración.
Desventajas y Limitaciones
Explosión combinatoria
Para valores altos de N.
El número de N-grams posibles crece exponencialmente.
Requiriendo grandes cantidades de datos.
Para calcular probabilidades confiables.
Dependencias largas
Los N-grams no capturan relaciones de largo alcance entre palabras.
Limita su capacidad para entender contextos complejos.
Problema de suavizado
En textos pequeños es común encontrar N-grams.
No aparecen en los datos de entrenamiento-
Resultando en probabilidades de cero.
Métodos como Laplace smoothing
Kneser-Ney smoothing son necesarios para abordar este problema.
Aplicaciones de los N-grams en IA
Modelos de corrección y predicción de texto
Autocompletado en teclados virtuales o sistemas de búsqueda.
Reconocimiento de voz
Predicción de palabras para mejorar la transcripción en sistemas de dictado.
Clasificación de texto
Los N-grams se utilizan como características en modelos de clasificación.
Para tareas como detección de spam.
Análisis de sentimiento.
Generación de texto
En generación de texto estadístico.
Los N-grams guían la construcción de frases.
Basadas en patrones lingüísticos aprendidos.
Análisis de secuencias biológicas
En bioinformática.
Los N-grams se aplican para analizar patrones.
En secuencias de ADN o proteínas.
Ejemplo Práctico
Supongamos que queremos calcular la probabilidad de la oración;
«El gato come pescado» usando un modelo de bigramas.
Datos de entrenamiento;
Frecuencias
Probabilidad de la oración:
P («Elgatocomepescado») = P (El ∣ ST ART) ⋅ P (gato ∣ El) ⋅ P (come ∣ gato) ⋅ P (pescado ∣ come) ⋅ P (EN D ∣ pescado)
Sustituyendo:
P («Elgatocomepescado») = 0.4 ⋅ 0.5 ⋅ 0.3 ⋅ 0.6 ⋅ 1.0 = 0.036
Impacto en modelos de lenguaje
Si bien los N-grams fueron la base de muchos modelos tradicionales de lenguaje.
Su relevancia ha disminuido con la llegada de técnicas modernas.
Transformers y redes neuronales profundas.
Pueden modelar relaciones complejas y de largo alcance.
Los N-grams aún se utilizan como referencias rápidas.
Herramientas explicativas en contextos de bajo recurso.
En sistemas híbridos.
Los N-gramas son un pilar fundamental del procesamiento del lenguaje natural.
Proporcionando una base simple pero efectiva.
Para modelar texto y secuencias.
Aunque sus limitaciones han llevado a la adopción de técnicas más avanzadas.
Su utilidad y claridad conceptual.
Siguen siendo altamente valoradas en IA y NLP.
Te puede interesar;