The open-source machine learning module for dating apps you were looking for. 🤙🏻❤️
Za Matcher is the machine learning module powering OpenMeet's user recommendation system.
It is a machine learning model based on clustering and classification using Agglomerative Clustering and SVC Classification to recommend users. It has been built using Jupyter Notebook
and Python
.
If you want to know more about Za Matcher you can read the documentation in the docs
folder.
The repository is structured as follows:
interests.csv
: contains the set of all interests used in the project;us_cities.csv
: contains the set of all US cities used in the project along with their latitude and longitude coordinates;create_dataset.ipynb
: contains the script necessary to create the dataset on which the clusterizer will be trained;clustering.ipynb
: contains the implementations of the various clustering algoritms used to obtain the clusterier;clustered_datset.csv
: contains the initial dataset with the an additional feature indicating each row's cluster label;classifier.ipynb
: contains the implementations of the various classification algorithms used to obtain the classifier;model.sav
: it's the exported classifier model;user_predict.ipynb
: contains the script necessary to predict a new user and to retrain the model in case new features get added to the dataset;WebService
: contains the Flask app that is used to integrate the model with the mobile application;iOS_MobileApp
: contains the mobile app running on iOS used to deploy the model;
In order to install and use Za Matcher on your environment you will need:
Python 3.*
Jupyter Notebook
orJupyter Lab
Depending on your OS the process for installing python may be different from others. We recommed to follow the official Python guide.
In order to install jupyter it is mandatory to have Python installed on your machine, so if you do not have Python on your machine please go back to the previous step. To install JupyterLab open up your terminal and type:
pip install jupyterlab
If you want to install Jupyter Notebook just type:
pip install notebook
There are two ways to clone this repository:
- using
git
and yourterminal
- using the tools provided by the github web application
Before cloning this repository using git
, remember to navigate to the location where you want the repository to actually be saved on your machine.
In order to clone this repository using git
, open up your terminal and paste the following command:
git clone https://github.com/sl1mSha4dey/zaMatcher.git
If you don't feel confident with commands and stuff, you can use the web application to download the .zip
containing the repository by clicking on the <> Code
button on the top-right of the repository container, then in the small modal that appears go on and click on the Download zip
button.
Once you have done all the previous steps, all that's left to do is to start up juypter.
Open up your terminal app and paste the following command:
jupyter-lab
If you have installed jupyter-notebook, just type jupyter notebook
.
Once the jupter environment finishes loading, navigate to the folder where you have cloned the repository and have fun 😊!
If you are wondering about what dependecies we have used and what you have to install don't worry, we have included an installation script in the notebooks!
Since the mobile application is still under construction, once we have reached a sort of stable version a new section describing the installation process of the mobile application will be uploaded.
If you would like to contribute to the project, please follow the following guidelines Contributing.