Giter VIP home page Giter VIP logo

zamatcher's Introduction

OpenMeet logo

ZaMatcher

The open-source machine learning module for dating apps you were looking for. ๐Ÿค™๐Ÿปโค๏ธ

Contributors last commit

PRs Welcome Languages


ZaMatcher

ZaMatcher 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 ZaMatcher you can read the documentation in the docs folder.

Table of Contents

Repository Contents

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;

Installation Guide

In order to install and use ZaMatcher on your environment you will need:

  • Python 3.*
  • Jupyter Notebook or Jupyter Lab

Installing Python

Depending on your OS the process for installing python may be different from others. We recommed to follow the official Python guide.

Installing Jupyter

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

Clone the Repo

There are two ways to clone this repository:

  • using git and your terminal
  • 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.

Start up Jupyter

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 ๐Ÿ˜Š!

What about dependecies?

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!

What about the mobile app?

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.

Contributing

If you would like to contribute to the project, please follow the following guidelines Contributing.

zamatcher's People

Contributors

angelonazzaro avatar robertodr01 avatar francesco-granozio avatar yuribrandi avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.