Estadística para Procesamiento del Lenguaje: Riqueza Léxica y Métricas
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
Viendo ahora - 8

Cálculo de frecuencias con NLTK y diccionarios en Python
05:58 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:25 min - 11

Extracción de Ngramas y Bigramas con NLTK en Python
11:25 min - 12

Análisis de Colocaciones con NLTK y Pandas en Python
16:16 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:52 min - 20

Medición de Similitud Semántica con WordNet en Python
08:18 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
Estadística para Procesamiento del Lenguaje: Riqueza Léxica y Métricas
Resumen
Comprender cómo se comportan las palabras dentro de un texto es fundamental para cualquier proyecto de procesamiento de lenguaje natural. Medir la riqueza léxica, contar la frecuencia de aparición de términos y construir funciones reutilizables en Python son habilidades que permiten extraer información valiosa de cualquier corpus. A continuación se explican estas técnicas paso a paso, usando el libro Moby Dick como caso práctico.
¿Cómo preparar el entorno y cargar un corpus en NLTK?
El punto de partida es importar las librerías necesarias. Además del clásico nltk, se descarga un dataset llamado book mediante nltk.download('book') [0:40]. Este dataset contiene varios libros en inglés ya tokenizados, listos para trabajar directamente con NLTK.
- Se importa todo el contenido del módulo con
from nltk.book import *. - Se incorpora matplotlib, la librería de visualización de datos más común en Python.
- Se importa numpy con el acrónimo habitual
np, una librería esencial para operaciones de álgebra lineal, matrices y vectores [1:22].
Una vez ejecutadas las importaciones, el dataset descarga varios archivos. El texto que se utiliza como ejemplo es text1, que corresponde a la novela Moby Dick de Herman Melville [2:20].
¿Qué estructura tienen los tokens de este corpus?
Al inspeccionar los primeros diez tokens con text1.tokens[:10] [2:40], se observa que el tokenizador incluye elementos como corchetes, comas y puntos como tokens independientes. Es un comportamiento diferente al de tokenizadores más simples y refleja que el texto fue preprocesado de forma específica para NLTK.
La longitud total del corpus se obtiene con len(text1), arrojando 260,819 tokens [3:20]. Es un corpus de tamaño moderado que se procesa con rapidez.
¿Qué es la riqueza léxica y cómo se calcula en Python?
La riqueza léxica es una métrica que relaciona el total de palabras únicas con el total de palabras del texto [3:45]. Se define así:
- Riqueza léxica = palabras únicas / total de palabras.
- Un valor alto indica que el autor empleó una mayor variedad de vocabulario o que las palabras se repiten menos.
Para obtener las palabras únicas se construye un vocabulario. En Python, esto se logra con la función set(), que elimina elementos duplicados de una lista [4:30]. Sin embargo, el objeto set no admite slicing (acceso por índices), lo que genera un error común. La solución es envolver el resultado con sorted(), que convierte el conjunto en una lista ordenada alfabéticamente [5:30].
python vocabulario = sorted(set(text1)) print(vocabulario[1000:1050])
Con el vocabulario listo, la riqueza léxica se calcula dividiendo len(vocabulario) entre len(text1). Para Moby Dick, el resultado es 0.074, es decir, aproximadamente un 7.4 % de los tokens son únicos [6:30].
¿Cómo convertir este cálculo en una función reutilizable?
Definir funciones en Python permite reutilizar lógica sin repetir código. La estructura es def nombre_funcion(argumento): seguida de un bloque con return [7:00].
python def riqueza_lexica(texto): vocabulario = sorted(set(texto)) return len(vocabulario) / len(texto)
Al llamar riqueza_lexica(text1) se obtiene el mismo 0.074 [8:00]. Es importante notar que la variable vocabulario dentro de la función es una definición interna: solo existe en el alcance de la función.
¿Cómo medir el porcentaje de aparición de una palabra?
Otra métrica útil es el porcentaje de consumo de una palabra dentro del texto [8:30]. Se construye una función que recibe una palabra y un texto, cuenta cuántas veces aparece y divide ese conteo entre la longitud total, multiplicando por cien.
python def porcentaje_palabra(palabra, texto): return 100 * texto.count(palabra) / len(texto)
Probando con la palabra monster —relevante porque en la novela la ballena es descrita frecuentemente como un monstruo— el resultado es apenas 0.01 % [9:20]. Si se consulta directamente text1.count('monster'), la palabra aparece 49 veces en un corpus de más de 260,000 tokens [9:50].
Estas métricas, aunque sencillas, constituyen la base del análisis estadístico de texto. Permiten comparar corpus, identificar patrones de uso del lenguaje y preparar el terreno para técnicas más avanzadas como las distribuciones de frecuencia, que se abordan de forma gráfica en la siguiente sesión.
¿Has calculado la riqueza léxica de otros textos del dataset book? Comparte tus resultados y comparaciones en los comentarios.