Lematización
Desliza para mostrar el menú
Comprensión de la lematizació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.
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.
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.
1234567891011from 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)
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.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla