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.
Table of contents
Open Table of contents
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