Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Lematización | Stemming y Lematización
Introducción al NLP con Python

Lematización

Desliza para mostrar el menú

Comprensión de la lematización

Note
Definición

Lematización es una técnica de normalización de texto utilizada en PLN para reducir las palabras a su forma de diccionario, conocida como lema.

A diferencia del stemming, que elimina afijos de manera rudimentaria, la lematización considera el contexto y convierte la palabra a su forma de diccionario. Por ejemplo, 'am', 'are' e 'is' se lematizan como 'be'. Este enfoque puede reducir significativamente el tamaño del vocabulario (el número de palabras únicas) en grandes corpus de texto, aumentando así la eficiencia al entrenar modelos.

Por otro lado, aunque la lematización es más precisa, también es más costosa computacionalmente y puede requerir mucho tiempo con conjuntos de datos grandes. Además, para lograr una mayor precisión, se recomienda realizar un análisis morfológico y etiquetado de partes del discurso antes de la lematización.

Note
Nota

No te preocupes por el etiquetado de partes del discurso por ahora, ya que esto es lo siguiente que aprenderás.

Lematización con NLTK

El lematizador WordNet, proporcionado por la biblioteca NLTK, utiliza el corpus WordNet para realizar la lematización.

Note
Estudiar más

WordNet es una base de datos léxica semánticamente rica para el inglés que va mucho más allá de un simple corpus. Agrupa palabras en conjuntos de sinónimos, o synsets, cada uno de los cuales representa un concepto distinto y está acompañado de definiciones y ejemplos de uso. Además, WordNet codifica relaciones significativas entre estos synsets — como hiperónimos (términos más amplios y generales) y hipónimos (términos más específicos y concretos) — ofreciendo un marco potente para explorar y desambiguar significados de palabras.

Cuando se utiliza el WordNet Lemmatizer, este busca la palabra objetivo en la base de datos WordNet para encontrar el lema más apropiado de la palabra.

Como se mencionó anteriormente, debido a que las palabras pueden tener diferentes significados según el contexto (por ejemplo, "running" como verbo frente a "running" como sustantivo), el lematizador puede requerir que se especifique la categoría gramatical (por ejemplo, verbo, sustantivo, adjetivo). Esto le ayuda a seleccionar el lema correcto según la función de la palabra en la oración.

1234567891011
from nltk.stem import WordNetLemmatizer import nltk # Download the WordNet corpus nltk.download('wordnet') # Initialize the WordNet lemmatizer lemmatizer = WordNetLemmatizer() # Parts of speech, 'v' for verb and 'n' for noun parts_of_speech = ['v', 'n'] # Lemmatize words lemmatized_words = [lemmatizer.lemmatize("running", pos) for pos in parts_of_speech] print("Lemmatized words:", lemmatized_words)
Descripción del código
expand arrow
from nltk.stem import WordNetLemmatizer

Esta línea importa la clase WordNetLemmatizer.

nltk.download('wordnet')

Esta línea descarga el corpus WordNet y así asegura que todas las funcionalidades relacionadas con WordNet, como la lematización, puedan ser utilizadas.

lemmatizer = WordNetLemmatizer()

Esta línea crea una instancia de la clase WordNetLemmatizer utilizada para realizar la lematización.

parts_of_speech = ['v', 'n']

Esta línea crea una lista de categorías gramaticales que se utilizarán en la lematización.

lemmatized_words = [lemmatizer.lemmatize("running", pos) for pos in parts_of_speech]

Esta línea crea una lista de palabras lematizadas utilizando comprensión de listas. El proceso de lematización se realiza mediante el método lemmatize() del objeto lemmatizer. La cadena que representa una palabra debe ser su primer argumento y la categoría gramatical deseada como el segundo argumento opcional ('v' para verbo, 'a' para adjetivo, 'n' para sustantivo, etc.).

Se podría omitir la especificación de la categoría gramatical llamando a lemmatizer.lemmatize("running"), pero como se puede observar, diferentes categorías gramaticales producen resultados distintos. Por eso, lo más recomendable es realizar etiquetado de categorías gramaticales previamente.

question mark

¿Cuál es el principal beneficio de utilizar la lematización en comparación con el stemming?

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 3

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Sección 2. Capítulo 3
some-alt