Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

108
Views
¿Cómo puedo corregir las vocales que fueron reemplazadas por un carácter especial en una cadena?

Entonces tengo una cadena, y dentro de esa cadena, ciertos caracteres en ciertas palabras se reemplazan con otros ( typo_text ). Por ejemplo: "EE. UU., Alemania, la Comisión Europea, Japón y Canadá para financiar el desarrollo y la implementación equitativa de las pruebas". Este sería el formato correcto, pero en su lugar me dan, "XSX, Gxrmxny, la Comisión Europea, Jxpxn y Cxnxdx para financiar el desarrollo y la implementación equitativa de las pruebas, tratamientos y vacunas necesarias para terminar la fase aguda de la COVID". -19 pandemia He estado creando un script que necesita bucles for corregir los errores tipográficos:

 def corrected_text(text): newstring="" for i in text: if i not in "aeiouAEIOU": newstring=newstring+i text=newstring return text

Sé que cuando ejecuto esto, solo elimina todas las vocales del texto. Sin embargo, parece ser un paso en la dirección correcta para ayudar a corregir los errores tipográficos y tener una idea de un enfoque basado en bucles for .

Tengo dos listas de palabras que tienen este problema:

 name_G7_countries = ['Canada', 'France', 'Germany', 'Italy', 'Japan', 'UK', 'USA'] mistake = ['Cxnxdx', 'Frxncx', 'Gxrmxny', 'Xtxly', 'Jxpxn','XK', 'XSX']

Sé que usar algo como 'Jxpxn'.replace('x', 'a') puede funcionar; sin embargo, para otras frases, puede que no, así que no estoy seguro de cómo proceder desde aquí.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Puedes intentar hacerlo usando expresiones regulares.
Queremos ejecutar en las dos listas, y luego reemplazar cada x con ^[aeiou] y X con ^[AEIOU] (que significa "coincidir con cualquiera de aeiou, o en el caso de la X mayúscula, AEIOU") para la expresión regular, y luego reemplazamos todas las palabras que coinciden con ese patrón, con las palabras originales.

 import re name_G7_countries = ['Canada', 'France', 'Germany', 'Italy', 'Japan', 'UK', 'USA'] mistake = ['Cxnxdx', 'Frxncx', 'Gxrmxny', 'Xtxly', 'Jxpxn','XK', 'XSX'] def corrected_text(text): for original, m in zip(name_G7_countries, mistake): m = m.replace('x', '[aeiou]').replace('X', '[AEIOU]') text = re.sub(m, original, text) return text

Entonces, por ejemplo, convertimos 'Xtxly' en '[AEIOU]t[aeiou]ly', por lo que hacemos coincidir cada palabra que comienza con una vocal mayúscula, una 't' después, una vocal minúscula y después 'ly'. y reemplácelo con 'Italia'.

over 4 years ago · Santiago Trujillo Report

0

Cree una tabla de búsqueda, donde las claves son los nombres de los países a los que se les quitaron las vocales y los valores son los nombres reales de los países.

Luego, puede buscar países en esta tabla eliminando las X en los datos corruptos.

 name_G7_countries = ['Canada', 'France', 'Germany', 'Italy', 'Japan', 'UK', 'USA'] mistake = ['Cxnxdx', 'Frxncx', 'Gxrmxny', 'Xtxly', 'Jxpxn','XK', 'XSX'] def remove_letters(s, letters_to_remove): return ''.join(filter(lambda x: x not in letters_to_remove, s)) country_lookup_table = {remove_letters(s, "AEIOUaeiou"): s for s in name_G7_countries} result = [country_lookup_table[remove_letters(mistake_country, 'Xx')] for mistake_country in mistake] # Prints ['Canada', 'France', 'Germany', 'Italy', 'Japan', 'UK', 'USA'] print(result)

Tenga en cuenta que usamos ''.join() en lugar de la concatenación repetida para la función remove_letters() por razones de eficiencia .

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!