Palabras Vacías en Español (stop words) ft Python

Mauricio Matias C.
4 min readMay 15, 2021
Python Stop Words

A pesar de ser más un desarrollador Frontend, me di cuenta que el área en el que llevo más tiempo es la recolección y procesamiento de la información, como dicen “la información es poder”, mucho más hoy en día que prácticamente es pública y la intercambiamos por servicios “gratuitos”, no obstante, ya habrá un post sobre lo que creo de las RRSS y otros servicios (no las odio, pero tienen más contras que pros). En ese sentido, haré a un lado la parte de recolección de la información, por lo que me centrare más en el pre-procesamiento de la información y en ella el manejo de texto.

La mayor parte de la información recolectada a través del internet tiene que ver con un portal web, un servicio web o una API, etc… donde la gran parte del contenido es texto (en algún lenguaje, en este caso español), el texto a obtener dependerá del enfoque que se le de al proceso de recolección de la información, es muy común, darle un enfoque humano, es decir, ¿Qué es lo que ese texto representa para un conjunto objetivo de personas? es texto que se entiende, tiene un sentido, es digerible y de alguna forma se alinea con las concepciones de dichas personas, es más si estuviese representada de otra forma no se entendería con facilidad, varias de las palabras que usamos realmente no tienen mucho peso a la hora de analizar y enfocarlas a un determinado estudio.

A continuación un ejemplo demostrará lo importante que es hacer la limpieza de las palabras en el pre-procesamiento de texto.

“Es relativamente fácil ponerse de acuerdo en que solo Homo sapiens puede hablar sobre cosas que no existen realmente, y creerse seis cosas imposibles antes del desayuno. En cambio, nunca convenceremos a un mono para que nos dé un plátano con la promesa de que después de morir tendrá un número ilimitado de bananas a su disposición en el cielo de los monos” Sapiens: De animales a dioses de Yuval Noah Harari.

Si de la frase anterior se quisiera hacer un estudio o análisis para detectar la idea central, seguramente tendríamos problemas, la siguiente lista es el número de repeticiones por palabra ordenados de mayor a menor.

de:5
que:4
un:3
en:3
a:2
cosas:2
homo:1
para:1
disposición:1
tendrá:1
promesa:1
puede:1
convenceremos:1
los:1
con:1
fácil:1
solo:1
seis:1
cambio:1
realmente:1
número:1
la:1
nunca:1
imposibles:1
creerse:1
plátano:1
desayuno:1
relativamente:1
hablar:1
monos:1
cielo:1
es:1
del:1
sobre:1
ilimitado:1
después:1
acuerdo:1
su:1
no:1
mono:1
ponerse:1
el:1
antes:1
nos:1
dé:1
bananas:1
sapiens:1
y:1
existen:1
morir:1
Representación en “Tag Cloud”

Las palabras que más repeticiones tienen son: de, que, un, en… ¿sugieren algo?, son palabras sin valor, claro que es importante a la hora de leer, pero no permite asignarle un valor cuantificable a palabras que contextualizan mejor el concepto que trata de reflejar la frase. Como esas palabras existen muchas otras; esta es una lista con 608 palabras vacías en español, la mayoría recopilada de sitios web, hice un PR al repositorio de una biblioteca de palabras vacías stop-words en Python para agregar varias que faltaban, seguramente te servirán, adicionalmente, el proyecto NLKT también las tiene aunque solo son 325.

Lista de palabras vacías en español

Eliminando las palabras vacías del texto queda así:

homo:1
sapiens:1
desayuno:1
número:1
fácil:1
ilimitado:1
relativamente:1
monos:1
hablar:1
bananas:1
ponerse:1
imposibles:1
promesa:1
plátano:1
convenceremos:1
mono:1
disposición:1
morir:1
cielo:1
realmente:1
acuerdo:1
creerse:1
cambio:1

En realidad, no se necesita una biblioteca para reemplazar o eliminar las palabras vacías de un texto. Este es un código ejemplo escrito en Python:

Script para la limpieza de palabras vacías, añade la lista de palabras vacías para que funcione ;)

En otro post hablaremos sobre Tokenization, Stemming, Lemmatization y Normalization que son algunas de las otras técnicas/pasos usadas en el pre-procesamiento de texto, adentrándonos más en lo que se denomina como NLP (Natural Language Processing).

En fin, espero les sirva para el pre-procesamiento de texto en español, ésta entre otras técnicas son empleadas por los search engines para asignar una relevancia justa a las palabras del contenido de una pagina web en concreto, muchas gracias se despide cr0wg4n regalándoles un bonito poema😆.

Había vez un gatito canijo que en sus ojos una pretensión ocultaba,

no tardo si no hasta la siguiente mañana en percatarse que de su casa se alejaba

PD: El gatito es PHP :V

--

--