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
Contenido del curso
Fundamentos con NLTK
- 4

Procesamiento de Lenguaje Natural con Python en Google Colab
11:08 min - 5

Expresiones Regulares en Python: Patrones de Búsqueda Avanzados
10:14 min - 6

Tokenización de Texto con Expresiones Regulares en Python
10:03 min - 7

Estadística para Procesamiento del Lenguaje: Riqueza Léxica y Métricas
13:03 min - 8

Cálculo de frecuencias con NLTK y diccionarios en Python
05:59 min - 9

Filtrado y Visualización de Frecuencias de Palabras con NLTK y NumPy
17:30 min - 10

Estadísticas de Ennegramas y Colocaciones en Textos
04:26 min - 11

Extracción de Ngramas y Bigramas con NLTK en Python
Viendo ahora - 12

Análisis de Colocaciones con NLTK y Pandas en Python
16:17 min - 13

Visualización de Colocaciones en Textos con Pandas y Plotly
09:19 min - 14

Identificación de Colocaciones en Textos con NLTK y PMI
09:09 min - 15

Recursos Léxicos: Uso y Aplicación en Procesamiento del Lenguaje
02:46 min - 16

Recursos Léxicos en Python: Vocabularios, Frecuencias y Stopwords
09:19 min - 17

Traducción de palabras con Swadesh en procesamiento de lenguaje natural
05:00 min - 18

Uso de WarNet para Procesamiento del Lenguaje Natural
04:50 min - 19

Análisis de Sinsets e Hipónimos con NLTK y WordNet en Google Colab
17:53 min - 20

Medición de Similitud Semántica con WordNet en Python
08:19 min - 21

Extracción y Procesamiento de Texto desde Páginas Web con NLTK
13:36 min - 22

Organización de Código en Google Colab con Funciones y Módulos
05:50 min - 23

Funciones y Buenas Prácticas en Google Colab y Python
12:57 min
Perspectivas de lo que viene
¿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!