Stemming y lematización en el procesamiento del lenguaje natural

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

Foto de Pro Church Media en Unsplash

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

También te puede interesarCiencia de datos: la distribución multinomial.

¿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”.

También te puede interesarData Science Foundations

¿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()

También te puede interesarDescifrando SAM (Modelo de segmento de cualquier cosa)

# 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']

También te puede interesar“El futuro de la tecnología: cómo podemos prepararnos para lo que está por venir”

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.

Scroll al inicio