ToonSuggest is a simple, lightweight, and interactive movie recommender system designed for animation and cartoon titles using IMDb datasets. Built using Python and Tkinter, it allows you to train a recommendation model and get suggestions for similar titles based on textual similarity and user ratings.
Actions
-
Download
🗃️ Windows EXE File
and🗃️ Model PKL File
~v1.0
📌 Features
- GUI-based interface with file selection, training, and recommendation
- Uses TF-IDF vectorization for content-based filtering
- Compatible with IMDb
.tsv.gz
data files - One-click
.exe
build available (see Releases) - No external API or internet access required
📌 Getting Started
1. Clone the Repository
git clone https://github.com/s-m-quadri/toon-suggest.git
cd toon-suggest
2. Install Dependencies
Install the required Python libraries using:
pip install -r requirements.txt
3. Run the App
python main.py
Or download the pre-built .exe
from the Releases section to run without Python.
📌 How It Works
-
Train the Model
-
Launch the training window and select:
title.basics.tsv.gz
title.ratings.tsv.gz
-
Click “Start Training” to preprocess and vectorize the data.
-
A trained
model.pkl
file is generated and saved.
-
-
Get Recommendations
- Launch the main window.
- Load the trained model.
- Enter the name of a movie and click “Get Recommendations”.
📌 Project Structure
ToonSuggest/
├── main.py # Entry point for the GUI application
├── model.pkl # Sample trained model (for demo/testing)
├── setup.spec # PyInstaller config for .exe build
├── requirements.txt # Python dependencies
└── src/
├── gui_home.py # Main recommendation GUI
├── gui_train.py # Model training GUI
├── recommend.py # TF-IDF recommendation logic
└── train.py # Data loading, training, and saving logic
📌 Executable Build
To create a standalone .exe
:
pyinstaller --onefile --noconsole setup.spec
Or use the ready-built binary available in Releases .
📌 IMDb Dataset Download
ToonSuggest requires two official IMDb dataset files:
- title.basics.tsv.gz – Contains title names, genres, and years
- title.ratings.tsv.gz – Contains user ratings and number of votes
Download both from the official IMDb dataset portal:
👉 https://datasets.imdbws.com/
Steps:
- Visit the link above
- Download:
title.basics.tsv.gz
title.ratings.tsv.gz
- Keep both files easily accessible for selection during model training
Note: IMDb datasets are periodically updated, so you may retrain your model when new data becomes available.
📌 Walkthrough: How to Use the App
Home Window (main.py
→ gui_home.py
)
This is the main user interface for movie recommendations.
- Title Input Field: Start typing an animated movie title to search
- Train Model: Opens the training window to build or rebuild the model
- Refresh Model: Reloads an already trained model from
model.pkl
- Get Recommendations: Fetches similar movies to the selected title
The Get Recommendations button is only enabled when a valid model is loaded.
Training Window (gui_train.py
)
Accessed via the “Train Model” button on the Home screen.
- Choose IMDb Files:
Choose title.basics.tsv.gz
Choose title.ratings.tsv.gz
- Reset: Clears selected files and allows re-selection
- Start Training:
- Enabled only when both files are selected
- Builds the model using TF-IDF vectorization and saves it as
model.pkl
- Automatically closes and updates the Home screen once training completes
During training, all inputs are disabled to avoid interruptions.
📌 License
This project is licensed under the GNU General Public License.
📌 Contact
For bug reports or feature requests, please contact: dev.smq@gmail.com