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