Algunas características de NLTK: stopwords, stemmas y lematización

Autor: | Última modificación: 12 de abril de 2024 | Tiempo de Lectura: 3 minutos
Temas en este post: ,

Algunos de nuestros reconocimientos:

Premios KeepCoding

En este artículo veremos algunas características de NLTK, entre ellas, las stopwords, los stemmas y la lematización.

Recordemos que NLTK son las siglas para designar el kit de herramientas de lenguaje natural, y este hace referencia a la plataforma utilizada para crear programas de Python que funcionan con datos de lenguaje humano para aplicar en el procesamiento estadístico de lenguaje natural o NLP.

Algunas características de NLTK

Algunas características de NLTK

Al igual que spaCy, esta aplicación tiene integrados los módulos que nos permitirán visualizar algunas características de NLTK.

Stopwords

Lo que haremos entonces es descargar las stopwords e importarlas como corpus.

#Algunas características de NLTK
nltk.download ('stopwords')
from nltk.corpus import stopwords

En este caso, utilizaremos las palabras del español. No sabemos si las palabras de NLTK son las mismas que las de spaCy o si difieren un poco:

#Algunas características de NLTK
nltk_sw_list = stopwords.words ('spanish')

‘somos’,

‘sois’,

‘son’,

‘sea’,

‘seas’,

‘seamos’,

‘seáis’,

‘sean’,

‘seré’,

‘serás’,

‘será’,

‘seremos’,

‘seréis’,

‘serán’,

‘sería’,

‘serías’,

‘seríamos’,

‘seríais’,

‘serían’,

‘era’,

‘eras’,

‘éramos’,

‘erais’,

‘eran’,

‘fui’,

‘fuiste’,

‘fue’,

‘fuimos’,

‘fuisteis’,

‘fueron’,

‘fuera’,

‘fueras’,

‘fuéramos’,

‘fuerais’,

‘fueran’,

‘fuese’,

‘fueses’,

‘fuesen’,

‘fuésemos’,

‘fueseis’,

‘sintiendo’,

‘sentido’,

‘sentida’,

‘sentidos’,

‘sentidas’,

‘siente’,

‘sentid’,

‘tengo’,

‘tienes’,

‘tiene’,

‘tenemos’,

‘tenéis’,

‘tienen’,

‘tenga’,

‘tengas’,

‘tengamos’,

‘tengáis’,

‘tengan’,

‘tendré’,

‘tendrás’,

‘tendrá’,

‘tendremos’,

‘tendréis’,

‘tendrán’,

‘tendría’,

‘tendrías’,

‘tendríamos’,

‘tendríais’,

‘tendrían’,

‘tenía’,

Stemming

Para hacer el stemming tenemos el módulo snowball. Dentro del snowball también tenemos el spanish stemmer, al cual le diremos que la cualidad de ignorar las stopwords es true.

Así, podemos aplicar el stemming para cada palabra:

#Algunas características de NLTK
from nltk.stem.snowball import SpanishStemmer
#Algunas características de NLTK
stemmer = SpanisStemmer (ignore_stopwords = True)
#Algunas características de NLTK
print ('{0 : 15} {1 : 10}'.format ('Token', 'Stem'))
for word in words:
      print ('{0 : 15} {1 : 10}'.format (word, stemmer.stem (word)))

es es

que que

pagasemos pagas

la la

entrada entrad

por por

eso eso

creo cree

que que

va va

a a

ir ir

al al

cine cin

su su

prima prim

a a

partir par

de de

ahora ahor

me me

lo lo

bajare bajar

todo todo

de de

internet internet

que que

por por

lo lo

que que

se se

ve ve

la la

calidad calid

de de

las las

pelis pelis

es es

aceptable aceptable

y y

puedo pued

pasarla pas

palante palant

Hoy hoy

en en

día día

no no

tener ten

un un

mando mand

con con

el el

forward forward

en en

la la

mano man

es es

morir mor

Lematización

NLTK implementa el WordNetLemmatizer, que hace uso de WordNet para la búsqueda (lookup) de lemmas, que es lo que hacíamos en otros módulos de forma manual.

Es necesario descargar previamente WordNet. Después de descargarlo, importamos el lematizador.

#Algunas características de NLTK
nltk.download ('wordnet')
from nltk.stem import WordNetLemmatizer
#Algunas características de NLTK
lemmatizer = WordNetLemmatizer ()
#Algunas características de NLTK
print ('{0 : 15} {1 : 10}'.format ('Token', 'Lemma'))
for word in words:
      print ('{0 : 15} {1 : 10}'.format (word, lemmatizer.lemmatize (word)))

es → e

que → que

pagasemos → pagasemos

la → la

entrada → entrada

por → por

eso → eso

creo → creo

que → que

va → va

a → a

ir → ir

al → al

cine → cine

su → su

prima → prima

a → a

partir → partir

de → de

ahora → ahora

me → me

lo → lo

bajare → bajare

todo → todo

de → de

internet → internet

que → que

por → por

lo → lo

que → que

se → se

ve → ve

la → la

calidad → calidad

de → de

las → la

pelis → pelis

es → e

aceptable → aceptable

y → y

puedo → puedo

pasarla → pasarla

palante → palante

Hoy → Hoy

en → en

dia → dia

no → no

tener → tener

un → un

mando → mando

con → con

el → el

forward → forward

en → en

la → la

mano → mano

es → e

morir → morir

Luego, si ejecutamos esto, obtenemos los resultados de lematizar las palabras:

#Algunas características de NLTK
lemmatizer.lemmatize ('casas')

‘casas’

#Algunas características de NLTK
lemmatizer.lemmatize ('houses')

‘house’

¿Quieres seguir avanzando?

Ahora que hemos visto algunas de las características de NLTK, cómo funcionan las stopwords, los stemmas y la lematización en esta plataforma, podemos seguir avanzando en nuestro proceso formativo. Para poder acceder a las opciones laborales del Big Data, una de las áreas con mejores salarios y mayor demanda, tenemos para ti el Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp. Con esta formación intensiva adquirirás los conocimientos teóricos y prácticos imprescindibles para abrirte paso en el mundillo en pocos meses. ¡Da el paso definitivo para impulsar tu carrera y entra ahora para pedir más información!

¡CONVOCATORIA ABIERTA!

Big Data, IA & Machine Learning

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado