Volver a la página principal
viernes 20 septiembre 2024
50

Cómo lematizar en Python

La lematización en Python es un proceso que reduce las palabras a su forma base o "lema". Es útil en procesamiento de lenguaje natural (NLP) para normalizar palabras, mejorando la precisión en tareas como análisis de texto o clasificación.

Lematización en Python con NLTK

Una de las bibliotecas más populares para realizar lematización en Python es NLTK (Natural Language Toolkit). Esta herramienta cuenta con un lematizador basado en WordNet, que permite reducir las palabras a su forma base teniendo en cuenta su parte de discurso (sustantivo, verbo, etc.).

Ejemplo básico de lematización con NLTK

1. Instala la biblioteca NLTK si no la tienes:

pip install nltk

2. Código para lematizar palabras usando NLTK:

import nltk
   from nltk.stem import WordNetLemmatizer
   from nltk.corpus import wordnet

   # Descarga recursos necesarios
   nltk.download('wordnet')
   nltk.download('omw-1.4')

   # Inicializar el lematizador
   lemmatizer = WordNetLemmatizer()

   # Ejemplo de lematización
   palabras = ["amigos", "corriendo", "mejor", "pies"]
   for palabra in palabras:
       lema = lemmatizer.lemmatize(palabra)
       print(f'Palabra: {palabra} -> Lema: {lema}')

En este ejemplo, el lematizador transformará palabras como "corriendo" a "correr". Sin embargo, NLTK usa "sustantivo" como categoría por defecto. Para mejores resultados, es recomendable especificar la parte de discurso (POS).

Especificar parte de discurso

Para obtener mejores resultados, podemos incluir el tipo de palabra:

# Especificar que "corriendo" es un verbo
print(lemmatizer.lemmatize("corriendo", pos='v'))  # Salida: 'correr'

NLTK utiliza las siguientes etiquetas para partes del discurso:

  • n: sustantivo
  • v: verbo
  • a: adjetivo
  • r: adverbio

Otros ejemplos de lematización en Python

Spacy

Otra opción es usar Spacy, una biblioteca avanzada de NLP. Spacy ofrece un enfoque más rápido y preciso, aunque es más pesado que NLTK. Para usarlo, sigue estos pasos:

1. Instala Spacy:

pip install spacy
   python -m spacy download es_core_news_sm  # Modelo para español

2. Código para lematizar con Spacy:

import spacy

   nlp = spacy.load("es_core_news_sm")
   doc = nlp("Los niños están jugando en el parque.")

   # Extraer lemas
   lemas = [token.lemma_ for token in doc]
   print(lemas)

Referencia

Para más información sobre NLTK y la lematización, visita la documentación oficial de NLTK.

Etiquetas:
python
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer