Este repositorio contiene los materiales y código del taller de Procesamiento de Lenguaje Natural (NLP) donde implementamos una aplicación web de traducción utilizando el modelo NLLB (No Language Left Behind) de Meta y Flask.
Esta aplicación permite traducir texto entre inglés y español utilizando el modelo NLLB de Meta, uno de los modelos de traducción de código abierto más avanzados. La interfaz web está construida con Flask, permitiendo a los usuarios interactuar fácilmente con el modelo.
- Traducción bidireccional entre inglés y español
- Interfaz web simple y accesible
- Cambio de dirección de traducción con un solo clic
- Basado en el modelo NLLB-200 de Meta (versión ligera de 600M parámetros)
- Soporte para textos largos (hasta 400 tokens)
- Python 3.12+
- Flask: Framework web ligero
- Flask-CORS: Para manejo de Cross-Origin Resource Sharing
- Transformers (Hugging Face): Para acceder al modelo NLLB
- PyTorch: Como backend para el modelo
- Jupyter Notebook: Para desarrollo y demostración
-
Clona este repositorio:
git clone https://github.com/tu-usuario/taller-nlp-traductor.git cd taller-nlp-traductor
-
Crea un entorno virtual:
python -m venv flask_venv source flask_venv/bin/activate # En Windows: flask_venv\Scripts\activate
-
Instala las dependencias:
pip install flask flask-cors transformers torch # Tambien puede ser: pip install -r requirements.txt
-
Asegúrate de crear la carpeta "templates" y añadir el archivo HTML:
mkdir templates # Crea el archivo templates/page.html con tu interfaz
-
Inicia la aplicación desde Jupyter Notebook:
# Ejecuta el notebook flask_translate.ipynb
-
Abre tu navegador y accede a:
http://localhost:5555
-
Escribe el texto a traducir y haz clic en el botón de traducción.
-
Para cambiar la dirección de traducción (español→inglés o inglés→español), utiliza el botón correspondiente.
- El usuario ingresa texto en el idioma de origen
- La aplicación envía el texto al servidor Flask
- El modelo NLLB procesa la traducción
- El resultado se muestra en la interfaz web
Puedes modificar el modelo utilizado cambiando la variable model_name
:
# Versión compacta (predeterminada)
model_name = "facebook/nllb-200-distilled-600M"
# Para mejor calidad (requiere más recursos)
# model_name = "facebook/nllb-200-3.3B"
- Esta es una aplicación de desarrollo, no está optimizada para producción
- El primer uso de traducción puede tardar unos segundos mientras se carga el modelo
- Para un despliegue en producción, considera usar un servidor WSGI como Gunicorn o uWSGI
Este proyecto forma parte de un taller de NLP para demostrar:
- Cómo implementar modelos de transformers en aplicaciones web
- La integración de Flask con modelos de ML
- El uso de la biblioteca transformers de Hugging Face
- Ejemplos prácticos de aplicaciones NLP
Las contribuciones son bienvenidas. Si encuentras algún error o tienes una mejora, no dudes en abrir un issue o enviar un pull request.