File size: 5,281 Bytes
0189905
 
58007ec
0189905
58007ec
0189905
 
 
 
 
 
2be6b15
c764d4b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
eee9d87
 
c764d4b
b1237fd
 
0fa6ef5
6fa2551
 
eee9d87
 
b1237fd
 
 
 
 
 
02d1344
 
 
 
2cf483f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
02d1344
beeec37
eee9d87
beeec37
 
 
 
 
 
 
 
 
 
 
 
2be6b15
 
994194d
5661330
2be6b15
 
 
994194d
 
2be6b15
eee9d87
beeec37
 
 
 
 
 
 
 
 
b1237fd
beeec37
 
c764d4b
beeec37
 
0189905
2be6b15
 
 
 
 
58007ec
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
---
title: Taller2
emoji: 📚
colorFrom: gray
colorTo: blue
sdk: streamlit
sdk_version: 1.41.0
app_file: app.py
pinned: false
short_description: Taller 2
---
## Traductor Instantáneo: Inglés - Español y Español - Inglés

## Autores:
- Javier Alejandro Valencia Estrada
- Diego Alejandro Rodriguez Garcia
- Cristhian Alexander Torres Polanco
- Luis Eduardo Solarte Riascos

Este proyecto es una aplicación web que permite traducir texto entre inglés y español utilizando modelos de traducción automática. La aplicación está construida con Streamlit y utiliza la biblioteca Transformers de Hugging Face para acceder a modelos preentrenados.

## Características

- Traducción de texto desde inglés a español.
- Traducción de texto desde español a inglés.
- Interfaz de usuario intuitiva y fácil de usar.

## Requisitos

Para ejecutar este proyecto, necesitarás tener instalado lo siguiente:

- Python 3.7 o superior
- Las siguientes bibliotecas de Python:
    ```bash
          pip install streamlit transformers torch sentencepiece

## Estructura del Proyecto

El proyecto consta de un archivo principal llamado app.py, que contiene todo el código necesario para ejecutar la aplicación.

Y un archivo requeriment.txt donde se encunetran las librerias necesaria para ejecuar el proyecto.

# Código del Proyecto

A continuación, se detalla cada parte del código en app.py.

    import streamlit as st
    from transformers import pipeline

Importaciones: Se importan las bibliotecas necesarias. streamlit se utiliza para crear la interfaz web, mientras que pipeline de transformers
se utiliza para cargar los modelos de traducción.

    # Título de la aplicación
                st.markdown(
                    """
                    <style>
                        .title {
                            text-align: center;
                            color: #4CAF50;  /* Color del título */
                            font-size: 36px; /* Tamaño del texto */
                            margin-bottom: 20px; /* Espacio debajo del título */
                        }
                        .text-area {
                            margin-bottom: 20px; /* Espacio debajo del área de texto */
                        }
                        .selectbox {
                            margin-bottom: 20px; /* Espacio debajo del selectbox */
                        }
                    </style>
                    """,
                    unsafe_allow_html=True
                )
                
                st.markdown('<h1 class="title">Traducción Instantánea: Inglés - Español y Español - Inglés</h1>', unsafe_allow_html=True)

Estilo CSS y Título: Se define un estilo CSS para personalizar la apariencia de la aplicación. El título se centra y se le da un color y tamaño específicos.    

              # Cargar los modelos de traducción
                modelo_en_es = 'Helsinki-NLP/opus-mt-en-es'  # Modelo para traducir de inglés a español
                modelo_es_en = 'Helsinki-NLP/opus-mt-es-en'  # Modelo para traducir de español a inglés
                
                traductor_en_es = pipeline('translation', model=modelo_en_es)
                traductor_es_en = pipeline('translation', model=modelo_es_en)

Carga de Modelos: Se cargan dos modelos preentrenados:

  - Helsinki-NLP/opus-mt-en-es: Modelo que traduce texto del inglés al español.
  - Helsinki-NLP/opus-mt-es-en: Modelo que traduce texto del español al inglés.

Descripción:

  - Estos modelos hacen parte de la suite OPUS-MT y están diseñados para traducir texto del inglés al español y español al ingles.
    Utiliza una arquitectura basada en transformers, que es eficiente para tareas de traducción automática.

Preprocesamiento: 

  - Los modelos utilizan técnicas de normalización y tokenización mediante SentencePiece, lo que ayuda a manejar mejor
    las variaciones en el lenguaje y a reducir la complejidad del vocabulario.
    

                # Entrada de texto del usuario
                  texto_a_traducir = st.text_area("Introduce el texto que deseas traducir:", "", key="text_area", height=150)
                  
                  # Espaciado entre el área de texto y el selectbox
                  st.write("")  # Espacio vacío
                  
                  # Selección del modo de traducción
                  modo_traduccion = st.selectbox("Selecciona el modo de traducción:", 
                                                   ["Inglés a Español", "Español a Inglés"], key="selectbox")

Entrada del Usuario: Se crea un área de texto donde el usuario puede ingresar el texto que desea traducir. También se incluye un menú 
desplegable (selectbox) para seleccionar el modo de traducción (inglés a español o español a inglés).

Botón de Traducción: Al presionar el botón "Traducir", se verifica si hay texto ingresado. Según el modo seleccionado, se realiza la 
traducción utilizando el modelo correspondiente y se muestra el resultado en la interfaz.

## Referencias

- https://www.aimodels.fyi/models/huggingFace/opus-mt-es-en-helsinki-nlp
- https://www.youtube.com/watch?v=pty-2iHn-WM

Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference