Extracción de Ngramas y Bigramas con NLTK en Python
Clase 11 de 24 • Curso de Fundamentos de Procesamiento de Lenguaje Natural con Python y NLTK
Resumen
¿Qué son los ngramas y las colocaciones?
Los ngramas y las colocaciones son conceptos fundamentales en el procesamiento del lenguaje natural. Un ngrama es una secuencia de palabras consecutivas en un texto. Puede ser un bigrama (dos palabras), un trigrama (tres palabras) o más. Las colocaciones, por otro lado, son conjuntos de palabras que tienden a aparecer juntas debido a factores culturales o de uso en el lenguaje, como "tomar una decisión" o "romper el hielo". Estas secuencias nos permiten analizar textos de manera profunda, identificando patrones y relaciones significativas entre palabras.
¿Cómo extraer bigramas usando NLTK?
Para trabajar con bigramas en NLTK, es importante seguir ciertos pasos para obtener un análisis significativo. Empezamos importando las librerías necesarias como NLTK, Pandas, Matplotlib y Plotly. Estas herramientas nos permiten manejar textos y realizar visualizaciones interactivas.
import nltk
from nltk import bigrams
from nltk.book import text1
# Cargar libro
nltk.download('book')
# Generar bigramas
md_bigrams = list(bigrams(text1))
¿Cómo calcular la frecuencia de bigramas?
Una vez extraídos los bigramas de un texto, podemos calcular su frecuencia utilizando la función FreqDist
de NLTK. Esto nos proporciona una distribución de apariencia de los bigramas en el texto.
from nltk import FreqDist
# Calcular la frecuencia de bigramas
f_dist = FreqDist(md_bigrams)
# Obtener los 10 bigramas más comunes
common_bigrams = f_dist.most_common(10)
¿Cómo filtrar bigramas de forma efectiva?
Podemos aplicar filtros a nuestros bigramas para eliminar palabras irrelevantes o caracteres especiales. Esto se puede hacer utilizando listas y condiciones dentro de bucles for
.
threshold = 2
filtered_bigrams = [bigram for bigram in md_bigrams if len(bigram[0]) > threshold and len(bigram[1]) > threshold]
¿Cómo trabajar con trigramas y engramas en general?
El análisis de trigramas sigue una lógica similar a la de los bigramas. La función ngrams
de NLTK permite calcular secuencias de cualquier longitud.
from nltk.util import ngrams
# Definir trigramas
md_trigrams = list(ngrams(text1, 3))
# Calcular frecuencia de trigramas
trigram_dist = FreqDist(md_trigrams)
¿Cuál es la importancia de los engramas en la PNL?
Los engramas juegan un papel crucial en muchas aplicaciones del procesamiento del lenguaje natural. Son la base para:
- La clasificación de texto
- La traducción automática
- El aprendizaje de embeddings para vectores de palabras
- El desarrollo de algoritmos avanzados en deep learning
Además, si estás en redes sociales analizando comentarios sobre una marca, usar engramas te facilitará la creación de nubes de palabras o frases, ayudándote a entender mejor el contexto y sentimiento asociado a un tema específico.
Recomendaciones para seguir aprendiendo
Entender y aplicar correctamente el análisis de ngramas y colocaciones te abrirá puertas a una amplia gama de posibilidades en el procesamiento del lenguaje natural. Te animo a seguir explorando y practicando con diferentes textos y herramientas, ¡el campo de la PNL está lleno de oportunidades emocionantes!