juancamval commited on
Commit
7a165ee
·
verified ·
1 Parent(s): e41c514

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +106 -1
README.md CHANGED
@@ -9,4 +9,109 @@ app_file: app.py
9
  pinned: false
10
  ---
11
 
12
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  pinned: false
10
  ---
11
 
12
+ # Mini Traductor Inglés a Español con Gradio
13
+
14
+ Esta aplicación web utiliza la librería Gradio y modelos de Hugging Face Transformers para proporcionar una interfaz sencilla para traducir texto del inglés al español.
15
+
16
+ ## Funcionalidades
17
+
18
+ * **Entrada de texto en inglés:** Un cuadro de texto grande para que los usuarios peguen o escriban el texto que desean traducir.
19
+ * **Detección de idioma:** Antes de la traducción, se intenta detectar si el texto ingresado es inglés. Si no lo es, se muestra un mensaje de advertencia.
20
+ * **Traducción automática:** Utiliza un modelo preentrenado de Hugging Face Transformers para traducir el texto del inglés al español.
21
+ * **Salida de texto traducido:** Un cuadro de texto grande donde se muestra la traducción al español. Este cuadro es de solo lectura.
22
+ * **Botón "Borrar todo":** Permite limpiar fácilmente el cuadro de texto de entrada.
23
+ * **Instrucciones para copiar:** Se incluye un texto informativo indicando cómo copiar el texto traducido utilizando los atajos estándar del sistema operativo (Ctrl+C / Cmd+C).
24
+
25
+ ## Cómo usar
26
+
27
+ Esta aplicación está diseñada para ser desplegada en [Hugging Face Spaces](https://huggingface.co/spaces). Una vez que la aplicación esté corriendo:
28
+
29
+ 1. Ingresa el texto que deseas traducir al inglés en el cuadro de texto etiquetado como "Texto en inglés".
30
+ 2. La traducción al español aparecerá automáticamente en el cuadro de texto etiquetado como "Traducción al español".
31
+ 3. Si necesitas borrar el texto de entrada, haz clic en el botón "Borrar todo".
32
+ 4. Para copiar el texto traducido, selecciónalo en el cuadro de "Traducción al español" y utiliza los atajos de teclado estándar (Ctrl+C en Windows/Linux, Cmd+C en macOS) o el menú contextual del navegador.
33
+
34
+ ## Código
35
+
36
+ Aquí está el código Python de la aplicación (puedes copiar y pegar esto en tu archivo `app.py`):
37
+
38
+ ```python
39
+ from transformers import pipeline
40
+ import gradio as gr
41
+
42
+ # Define el modelo de traducción inglés-español
43
+ modelo_traduccion = pipeline("translation", model="Helsinki-NLP/opus-mt-en-es")
44
+
45
+ # Define el modelo de clasificación de idiomas
46
+ modelo_idioma = pipeline("text-classification", model="joosbu/roberta-small-langdet")
47
+
48
+ def detectar_idioma(texto):
49
+ """
50
+ Detecta el idioma del texto utilizando el modelo roberta-small-langdet.
51
+
52
+ Args:
53
+ texto (str): El texto del cual se quiere detectar el idioma.
54
+
55
+ Returns:
56
+ str: El código del idioma detectado (ej: 'en', 'es').
57
+ """
58
+ try:
59
+ resultado = modelo_idioma(texto, top_k=1)[0]
60
+ return resultado['label']
61
+ except Exception as e:
62
+ print(f"Error en la detección de idioma: {e}")
63
+ return None
64
+
65
+ def traducir_texto(texto_en):
66
+ """
67
+ Traduce el texto de entrada del inglés al español, previa verificación del idioma.
68
+
69
+ Args:
70
+ texto_en (str): El texto en inglés que se va a traducir.
71
+
72
+ Returns:
73
+ str: El texto traducido al español o un mensaje de error si el idioma no es inglés.
74
+ """
75
+ if not texto_en.strip():
76
+ return ""
77
+
78
+ idioma_detectado = detectar_idioma(texto_en)
79
+
80
+ if idioma_detectado == 'en':
81
+ try:
82
+ resultado = modelo_traduccion(texto_en)
83
+ return resultado[0]['translation_text']
84
+ except Exception as e:
85
+ return f"Error en la traducción: {e}"
86
+ else:
87
+ return "Por favor, introduce texto en inglés para traducir."
88
+
89
+ def borrar_entrada(texto_entrada):
90
+ """
91
+ Borra el texto del cuadro de texto de entrada.
92
+
93
+ Args:
94
+ texto_entrada (str): El texto actual en el cuadro de texto de entrada.
95
+
96
+ Returns:
97
+ str: Una cadena vacía.
98
+ """
99
+ return ""
100
+
101
+ with gr.Blocks() as interfaz_traductor:
102
+ """
103
+ Define la interfaz gráfica de la aplicación de traducción de inglés a español con detección de idioma (roberta-small-langdet).
104
+ """
105
+ gr.Markdown("# Traductor Inglés a Español")
106
+ with gr.Row():
107
+ with gr.Column():
108
+ texto_entrada_en = gr.Textbox(label="Texto en inglés", placeholder="Pega aquí el texto en inglés", lines=10)
109
+ boton_borrar = gr.Button("Borrar todo")
110
+ with gr.Column():
111
+ texto_salida_es = gr.Textbox(label="Traducción al español", placeholder="La traducción aparecerá aquí", interactive=False, lines=10)
112
+ gr.Markdown("*Puedes copiar el texto traducido seleccionándolo y usando Ctrl+C (o Cmd+C en macOS).*")
113
+
114
+ texto_entrada_en.change(traducir_texto, inputs=texto_entrada_en, outputs=texto_salida_es)
115
+ boton_borrar.click(borrar_entrada, inputs=texto_entrada_en, outputs=texto_entrada_en)
116
+
117
+ interfaz_traductor.launch()