E-Movie es un sistema de recomendación de películas que utiliza un mapeo de géneros a emociones para sugerir contenido relevante a los usuarios. Al aprovechar técnicas de aprendizaje profundo (deep learning), E-Movie ofrece recomendaciones personalizadas basadas en las emociones que los géneros de las películas pueden evocar. Las emociones se definen mediante un mapeo de géneros a emociones.
El objetivo de E-Movie es mejorar la experiencia de los usuarios al recomendarles películas que coincidan con su estado emocional actual o deseado. Este sistema busca:
-
Proporcionar recomendaciones precisas basadas en un modelo de red neuronal profunda.
-
Ofrecer una plataforma intuitiva y fácil de usar para explorar nuevas películas.
-
Mejorar continuamente el algoritmo de recomendación mediante la incorporación de retroalimentación de los usuarios.
El proyecto E-Movie está organizado de la siguiente manera:
Emovie/
│
├── Data/
│ ├── Processed/
│ │ └── processed_movies.csv
│ ├── Raw/
│ │ ├── movie.csv
│ │ └── rating.csv
│
├── Models/
│ ├── mlb.joblib
│ ├── movie_recommender_model_2.keras
│ ├── movie_recommender_model_3.keras
│ ├── movie_recommender_model_4.keras
│ └── movie_recommender_model.keras
│
├── Notebooks/
│ ├── data_preprocessing.ipynb
│ ├── model_training_1.ipynb
│ ├── model_training_2.ipynb
│ ├── model_training_3.ipynb
│ └── model_training_final.ipynb
│
├── src/
│ ├── data_processing.py
│ ├── train_model.py
│
├── .gitignore
├── app.py
└── requirements.txt
- Python 3.9.7
Para instalar y ejecutar el proyecto eMovie, sigue estos pasos:
-
Clona el repositorio:
git clone https://github.com/Cabrera07/Emovie.git
-
Crea un entorno virtual y actívalo:
python -m venv env env\Scripts\activate # En Windows usa `source env/bin/activate `
-
Instala las dependencias:
pip install -r requirements.txt
Debido al tamaño de los archivos rating.csv y movie.csv, no se incluyen directamente en el repositorio. Puedes descargar los archivos desde los siguientes enlaces y colocarlos en la carpeta Data/Raw/:
-
Procesamiento de datos:
python src/data_processing.py
-
Entrenamiento del modelo:
python src/train_model.py
-
Ejecución de la aplicación Streamlit:
streamlit run app.py
En el proyecto eMovie, utilizamos un flujo de trabajo basado en ramas para asegurar una colaboración efectiva y organizada. A continuación, se describe el flujo de trabajo:
-
main: La rama
maincontiene el código estable y listo para producción. Todos los cambios en esta rama deben ser revisados y aprobados a través de Pull Requests. -
develop: La rama
developes donde se integran las características que están listas para ser probadas antes de pasar amain. Es la rama base para cualquier desarrollo. -
feature/*: Para cada nueva funcionalidad o mejora, se debe crear una rama feature a partir de
develop. Una vez completada la funcionalidad, se realiza un Pull Request para integrar los cambios endevelop.
-
Haz un fork del repositorio.
-
Crea una nueva rama a partir de develop:
git switch -c feature/new-functionality develop
-
Realiza tus cambios y haz commit:
git add . git commit -am 'feat: add new functionality'
-
Sube los cambios a tu rama:
git push origin feature/new-functionality
-
Crea un Pull Request hacia la rama
developy describe los cambios realizados.
Si deseas contribuir a eMovie, por favor sigue los pasos mencionados en la sección "Flujo de Trabajo con Ramas".