Shakti28/Entertainment-Recommendation-System
๐ฌ Entertainment Recommendation System
Welcome to the Entertainment Recommendation System โ a personalized content discovery tool that suggests Anime, Movies, and Web Series based on your preferences. Built with Streamlit, Sentence-BERT, and FAISS, this system provides fast and accurate recommendations through a clean and intuitive UI.
๐ Features
- ๐ Content-based Recommendations for anime, movies, and web series.
- โก Real-time Suggestions with semantic search using Sentence-BERT.
- ๐ง Efficient similarity search via FAISS.
- ๐จ Custom tab bar UI with category-specific background and icons.
- ๐งพ Error logging and clean modular codebase for easy debugging and scaling.
๐ Project Structure
Entertainment-Recommendation-System/
โ
โโโ app.py # Main Streamlit app
โโโ Dockerfile # Docker build configuration
โโโ requirements.txt # Python dependencies
โโโ .env # (Optional) Environment variables
โ
โโโ config/
| โโโ global_paths.py # Global path management
|
โโโ data/
โ โโโ raw_data/
โ โ โโโ anime/
โ โ โโโ movie/
โ โ โโโ web_series/
โ โโโ processed_data/
โ โโโ anime/
โ โโโ movie/
โ โโโ web_series/
โ
โโโ artifacts/
โ โโโ anime/
โ โโโ movie/
โ โโโ web_series/
โ
โโโ icon/ # Icons for tab bar
โโโ image/ # Background images
โโโ notebook/
โ โโโ *.ipynb # Preprocessing notebooks
โ
โโโ src/
โโโ recommender/
โ โโโ base.py # Recommendation logic
โโโ utils/
โโโ logger.py # Logging utility๐ฅ Datasets Used
- Anime & Web Series: Collected from Kaggle public datasets.
- Movie: MovieLens 32M Dataset
Organized into raw_data/ and processed into processed_data/ for each content type.
๐งช Preprocessing
To prepare your data and generate the model artifacts:
- Use your own script or notebook to clean and combine metadata into a
tagscolumn. - Generate Sentence-BERT embeddings and FAISS index.
- Save the following files in each
artifacts/{content_type}folder: data.pklsbert_model.pklfaiss_index.index
๐ง Setup Instructions
1. Clone the Repository
git clone https://github.com/shakti-sarada/Entertainment-Recommendation-System.git
cd Entertainment-Recommendation-System2. Install Dependencies
pip install -r requirements.txt3. Run the App
streamlit run app.pyVisit http://localhost:8501 in your browser.
๐ณ Docker Support
You can also run this project inside a Docker container:
docker build -t recommender-app .
docker run -p 8501:8501 recommender-app๐ Logging
All user actions, errors, and recommendations are logged in the logs/recommender.log file for monitoring and debugging purposes.
โ Troubleshooting
- Ensure all
.pkland.indexfiles are placed correctly inside theartifactsfolder. - Python โฅ 3.8 is recommended.
- Check that
streamlitandsentence-transformersare installed properly.
๐ License
This project is licensed under the MIT License.
๐ Acknowledgments
- Kaggle Datasets for anime and web series metadata.
- GroupLens for the MovieLens 32M dataset.
- Streamlit, FAISS, and SentenceTransformers libraries.
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
