1 usuario conectado

Eliminar stop words. Ejercicio en Python

Comparte esto

 

Escribe una función en Python llamada eliminar_stop_words que tome una cadena de texto en español como entrada y devuelva una nueva cadena con las stop words comunes eliminadas.


Más ejercicios




Mostrar/Ocultar ejercicio resuelto


  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:

  1. 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.