Solución al Ejercicio: Eliminar stop words
📋 Copiar código
def eliminar_stop_words(texto):
"""
Elimina las stop words comunes de una cadena de texto en español.
Args:
texto: La cadena de texto en español de entrada.
Returns:
Una nueva cadena con las stop words eliminadas.
"""
stop_words_es = ["el", "la", "los", "las", "un", "una", "unos", "unas",
"de", "del", "a", "ante", "bajo", "cabe", "con", "contra",
"desde", "durante", "en", "entre", "hacia", "hasta", "mediante",
"para", "por", "según", "sin", "so", "sobre", "tras", "versus",
"y", "e", "o", "u", "ni", "que", "quien", "quienes", "donde",
"como", "cuando", "cuanto", "cual", "cuales", "cuyo", "cuyos",
"cuya", "cuyas", "al", "lo", "le", "les", "me", "nos", "te",
"os", "se", "mi", "mis", "tu", "tus", "su", "sus", "nuestro",
"nuestros", "nuestra", "nuestras", "vuestro", "vuestros",
"vuestra", "vuestras", "este", "esta", "estos", "estas",
"aquel", "aquella", "aquellos", "aquellas", "esto", "eso",
"aquello", "hay", "ha", "he", "hemos", "habéis", "han", "ser",
"soy", "eres", "es", "somos", "sois", "son", "estar", "estoy",
"estás", "está", "estamos", "estáis", "están", "haber", "hube",
"hubiste", "hubo", "hubimos", "hubisteis", "hubieron", "tener",
"tengo", "tienes", "tiene", "tenemos", "tenéis", "tienen",
"hacer", "hago", "haces", "hace", "hacemos", "hacéis", "hacen",
"ir", "voy", "vas", "va", "vamos", "vais", "van", "poder",
"puedo", "puedes", "puede", "podemos", "podéis", "pueden",
"decir", "digo", "dices", "dice", "decimos", "decís", "dicen",
"ver", "veo", "ves", "ve", "vemos", "veis", "ven", "dar",
"doy", "das", "da", "damos", "dais", "dan", "saber", "sé",
"sabes", "sabe", "sabemos", "sabéis", "saben", "querer",
"quiero", "quieres", "quiere", "queremos", "queréis", "quieren",
"creer", "creo", "crees", "cree", "creemos", "creéis", "creen",
"hablar", "hablo", "hablas", "habla", "hablamos", "habláis",
"hablan", "vivir", "vivo", "vives", "vive", "vivimos", "vivís",
"viven", "sentir", "siento", "sientes", "siente", "sentimos",
"sentís", "sienten", "pensar", "pienso", "piensas", "piensa",
"pensamos", "pensáis", "piensan", "conocer", "conozco",
"conoces", "conoce", "conocemos", "conocéis", "conocen",
"parecer", "parezco", "pareces", "parece", "parecemos",
"parecéis", "parecen", "venir", "vengo", "vienes", "viene",
"venimos", "venís", "vienen", "deber", "debo", "debes", "debe",
"debemos", "debéis", "deben"]
palabras = texto.lower().split()
palabras_filtradas = [palabra for palabra in palabras if palabra not in stop_words_es]
return " ".join(palabras_filtradas)
# Ejemplos de uso
texto1 = "El perro grande y marrón corre rápidamente por el parque."
resultado1 = eliminar_stop_words(texto1)
print(f"'{texto1}' sin stop words: '{resultado1}'")
texto2 = "La casa de la esquina es muy bonita."
resultado2 = eliminar_stop_words(texto2)
print(f"'{texto2}' sin stop words: '{resultado2}'")
texto3 = "Un día maravilloso para pasear con los amigos."
resultado3 = eliminar_stop_words(texto3)
print(f"'{texto3}' sin stop words: '{resultado3}'")
texto4 = "Este es un ejemplo simple de eliminación de stop words."
resultado4 = eliminar_stop_words(texto4)
print(f"'{texto4}' sin stop words: '{resultado4}'")
texto5 = ""
resultado5 = eliminar_stop_words(texto5)
print(f"'' sin stop words: '{resultado5}'")
texto6 = "Yo quiero ir a la playa."
resultado6 = eliminar_stop_words(texto6)
print(f"'{texto6}' sin stop words: '{resultado6}'")
Explicación del Código:
- Función
eliminar_stop_words(texto)
:
- Define una lista
stop_words_es
que contiene una colección común de stop words en español. Esta lista
podría ser más extensa en aplicaciones reales.
- Convierte el
texto
de
entrada a minúsculas y lo divide en una lista de palabras
.
- Utiliza una comprensión de lista para
crear una nueva lista llamada
palabras_filtradas
. Itera a
través de cada palabra
en la lista original y la incluye en
la nueva lista solo si no se encuentra en la lista de
stop_words_es
.
- Une las palabras de la lista
palabras_filtradas
con un espacio en blanco para formar la cadena
resultante sin las stop words.
Ejemplos de Uso:
Los ejemplos muestran cómo la función elimina
las stop words comunes de diferentes frases en español. El resultado es un texto
más conciso que contiene principalmente las palabras con mayor significado
semántico.