Taller2 / README.md
Lukeds14's picture
Update README.md
5661330 verified

A newer version of the Streamlit SDK is available: 1.41.1

Upgrade
metadata
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:
          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

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