Python: eliminar palabras vacías
Las palabras vacías son las palabras en inglés que no agregan mucho significado a una oración. Pueden ignorarse con seguridad sin sacrificar el significado de la oración. Por ejemplo, las palabras como the, he, have, etc. Tales palabras ya están capturadas en este corpus llamado corpus. Primero lo descargamos a nuestro entorno de Python.
import nltk
nltk.download('stopwords')
Descargará un archivo con palabras vacías en inglés.
Verificación de las palabras vacías
from nltk.corpus import stopwords
stopwords.words('english')
print stopwords.words() [620:680]
Cuando ejecutamos el programa anterior, obtenemos el siguiente resultado:
[u'your', u'yours', u'yourself', u'yourselves', u'he', u'him', u'his', u'himself', u'she',
u"she's", u'her', u'hers', u'herself', u'it', u"it's", u'its', u'itself', u'they', u'them',
u'their', u'theirs', u'themselves', u'what', u'which', u'who', u'whom', u'this',
u'that', u"that'll", u'these', u'those', u'am', u'is', u'are', u'was', u'were', u'be',
u'been', u'being', u'have', u'has', u'had', u'having', u'do', u'does', u'did', u'doing',
u'a', u'an', u'the', u'and', u'but', u'if', u'or', u'because', u'as', u'until',
u'while', u'of', u'at']
Los distintos idiomas además del inglés que tienen estas palabras vacías son los siguientes.
from nltk.corpus import stopwords
print stopwords.fileids()
Cuando ejecutamos el programa anterior, obtenemos el siguiente resultado:
[u'arabic', u'azerbaijani', u'danish', u'dutch', u'english', u'finnish',
u'french', u'german', u'greek', u'hungarian', u'indonesian', u'italian',
u'kazakh', u'nepali', u'norwegian', u'portuguese', u'romanian', u'russian',
u'spanish', u'swedish', u'turkish']
Ejemplo
Usamos el siguiente ejemplo para mostrar cómo se eliminan las palabras vacías de la lista de palabras.
from nltk.corpus import stopwords
en_stops = set(stopwords.words('english'))
all_words = ['There', 'is', 'a', 'tree','near','the','river']
for word in all_words:
if word not in en_stops:
print(word)
Cuando ejecutamos el programa anterior, obtenemos el siguiente resultado:
There
tree
near
river