Una guía práctica para la derivación y la lematización en el procesamiento del lenguaje natural con la implementación de Python
En un flujo de trabajo típico de un proyecto de PNL, estas son las etapas involucradas:
En el último post hemos visto cómo limpiar los datos de texto (el enlace es aquí) y cómo puede tokenizar los datos de texto (el enlace es aquí).
En este artículo entenderemos
Comencemos entonces
¿Qué es Stemming?
La derivación es el proceso de reducir una palabra a su forma base o raíz, llamada raíz, eliminando cualquier afijo o sufijo. La raíz resultante puede no ser una palabra válida, pero representa el significado base de la palabra.
Por ejemplo, la raíz de las palabras «running», «runner» y «runs» es «run».
¿Qué es la Lematización?
La lematización es un proceso similar a la lematización, pero implica convertir una palabra a su forma base, llamada lema, utilizando un análisis de diccionario.
Por ejemplo, el lema de las palabras “running”, “runner” y “runs” es “run”.
¿Cuál es la diferencia entre los dos?
Si bien ambas técnicas tienen como objetivo reducir una palabra a su forma base o raíz, existen algunas diferencias importantes entre ellas.
En resumen, la lematización es más precisa pero más lenta, mientras que la lematización es más rápida pero menos precisa.
¿Por qué es importante en las tareas de PNL?
Implementación de código Python para Stemming
# Stemming (using PorterStemmer)
from nltk.stem import PorterStemmer# create an instance of the PorterStemmer
stemmer = PorterStemmer()
# example words to stem
words = ['playing', 'played', 'plays', 'playful']
# stem the words using the PorterStemmer
stemmed_words = [stemmer.stem(word) for word in words]
# print the original words and the stemmed words
print('Original Words: ', words)
print('Stemmed Words: ', stemmed_words)
Output:
Original Words: ['playing', 'played', 'plays', 'playful']
Stemmed Words: ['play', 'play', 'play', 'play']
Implementación de código Python para lematización
# Lemmatization (using textblob)
from textblob import Word# example sentence to lemmatize
sentence = "The cats were playing with each other and having fun."
# tokenize the sentence
words = sentence.split()
# lemmatize the words using the TextBlob lemmatizer
lemmatized_words = [Word(word).lemmatize('v') for word in words]
# print the original sentence and the lemmatized words
print('Original Sentence: ', sentence)
print('Lemmatized Words: ', lemmatized_words)
Output:
Original Sentence: The cats were playing with each other and having fun.
Lemmatized Words: ['The', 'cat', 'be', 'play', 'with', 'each', 'other', 'and', 'have', 'fun.']
Enlace de GitHub para la implementación del código python
En la próxima publicación, veremos cómo se realiza el etiquetado de POS en el preprocesamiento de datos con algún código python relevante.