MovieNetR is an interactive movie-recommendation network built from
r/MovieSuggestions discussions and IMDb title data. The Python pipeline
extracts movie entities, normalizes title names, and connects films that occur
in the same recommendation threads.
The resulting network is displayed as a WebGL graph using Graphology and Sigma.js. Node positions are loaded from the included GEXF graph rather than being calculated in the browser.
The frontend is static and loads its JavaScript dependencies from esm.sh.
Start a local HTTP server from the repository root:
python -m http.server 8000Open http://localhost:8000.
Opening index.html directly will not work because the frontend uses JavaScript
modules and fetches the graph as a separate file.
The explorer loads network/movie_graph.gexf and provides controls to:
- Zoom in and out.
- Reset the camera.
- Show or hide all graph edges.
- Change the node-label rendering threshold.
- Pan and zoom around the network using the mouse.
The GEXF file is approximately 34 MB, so its initial download and parsing can take a moment.
Python dependencies are listed in requirements.txt. The pipeline stages are
located in pipeline/:
01_store_submissions.pyimports Reddit submissions into SQLite.02_store_comments.pyimports Reddit comments.03_get_anchors.pyextracts anchor movies from submission titles.04_get_suggestions.pyextracts suggested movies from qualifying comments.05_clean_movie_titles.pymatches extracted names against IMDb titles.06_build_graph.pybuilds and exports the movie network.07_get_ego.pycreates a focused ego-network visualization for one movie.
Run pipeline modules from the repository root so local packages resolve correctly. For example:
python -m pipeline.01_store_submissionsThe raw Reddit and IMDb inputs belong in input/, while SQLite databases are
written under db/. Both directories are intentionally excluded from Git
because they contain large local datasets.
index.htmlcontains the graph viewer interface.main.jsloads the GEXF network and configures Sigma.js.network/movie_graph.gexfis the graph currently shown by the frontend.network/contains other generated or preserved graph artifacts.core/,models/, andpipeline/contain the Python data-processing code.