Note: The app is currently not live but can be run by cloning the repository, installing the requirements in
requirements.txtand runningstreamlit run NSRecommender_app.py
End-to-end project involving web scraping, clustering analysis and web app development.
This is an end-to-end project where I built a web app that, given an input Nintendo Switch game, gives you a set of recommended video games using unsupervised learning techniques and natural language processing on the games' gameplay or plot.
The app is accessible from the following link: https://hectoramirez.github.io/Recommender-app.html
-
Switch_games.ipynb: Web scraping Wikipedia articles using Beutiful Soup. The full dataset is generated using the code in this notebook.First, I scrap the tables in
where I select only the games with links to their wiki pages. Then, for each game, I access their pages and scrap the paragraphs contained in the Gameplay or Plot sections or both if exist.
Finally, I clean the text and drop null entries.
-
Game_similarity.ipynb: Here the texts are processed by tokenizing and stemming them, and are vectorized using NLTK's TF-IDF vectorizer.From the TF-IDF matrix, the similarity distances between the texts are computed by substracting the cosine of vectors from 1.
Finally, recommendations are queried using the matrix: once a game is selected, the top 5 closest games are returned.
-
NSRecommender_app.py: Streamlit web app. The app is hosted in an Amazon Web Services EC2 instance, accessible fromhere.
For comments or questions, drop me a message at vanhramirez@gmail.com.
