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
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’
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!