All Projects → kasravnd → Rexy

kasravnd / Rexy

Licence: mit
Flexible and extendable recommender system based on an abstract User-Product-Tag schema

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Rexy

Missionplanner
Mission Planner Ground Control Station (c# .net)
Stars: ✭ 1,059 (+1757.89%)
Mutual labels:  open-source
Bpmn Elements
Executable workflow elements based on BPMN 2.0
Stars: ✭ 54 (-5.26%)
Mutual labels:  open-source
Ml Surveys
📋 Survey papers summarizing advances in deep learning, NLP, CV, graphs, reinforcement learning, recommendations, graphs, etc.
Stars: ✭ 1,063 (+1764.91%)
Mutual labels:  recommender-system
Devops Docker Images
A collection of Dockerfiles for images that can be used to implement Continuous Delivery pipelines for SAP development projects with project "Piper" or any other CD tool.
Stars: ✭ 52 (-8.77%)
Mutual labels:  open-source
Tus Resumable Upload Protocol
Open Protocol for Resumable File Uploads
Stars: ✭ 1,070 (+1777.19%)
Mutual labels:  open-source
Kibble 1
Apache Kibble - a tool to collect, aggregate and visualize data about any software project
Stars: ✭ 54 (-5.26%)
Mutual labels:  open-source
Yetiforcecrm
Our team created for you one of the most innovative CRM systems that supports mainly business processes and allows for customization according to your needs. Be ahead of your competition and implement YetiForce!
Stars: ✭ 1,056 (+1752.63%)
Mutual labels:  open-source
Postman
1.12.2 anarchy client :)
Stars: ✭ 54 (-5.26%)
Mutual labels:  open-source
Hacktoberfest 2020
Learn how to Open your First PR (Pull Request) and contribute towards Open Source
Stars: ✭ 54 (-5.26%)
Mutual labels:  open-source
Datahike
A durable datalog implementation adaptable for distribution.
Stars: ✭ 1,073 (+1782.46%)
Mutual labels:  open-source
Coronavirus Countries
COVID-19 interactive dashboard for the whole world
Stars: ✭ 53 (-7.02%)
Mutual labels:  open-source
Ember Simple Auth Auth0
Auth0 + lock.js, built on ember-simple-auth
Stars: ✭ 53 (-7.02%)
Mutual labels:  open-source
Consimilo
A Clojure library for querying large data-sets on similarity
Stars: ✭ 54 (-5.26%)
Mutual labels:  recommender-system
Amazing Android Apps
Amazing open source Android apps written in Java.
Stars: ✭ 1,063 (+1764.91%)
Mutual labels:  open-source
Cargo Contribute
Cargo subcommand for contributing to your dependencies
Stars: ✭ 56 (-1.75%)
Mutual labels:  open-source
Navi
Open Source Project for Grow with Google Udacity Scholarship Challenge - Navigation app using offline first strategy and google maps api - To get started please refer to the README.md - CONTRIBUTING.md and the project Wiki
Stars: ✭ 51 (-10.53%)
Mutual labels:  open-source
Electrophysiologysoftware
A list of openly available software tools for (mostly human) electrophysiology.
Stars: ✭ 54 (-5.26%)
Mutual labels:  open-source
Open Source
🎉 A list of GitHub issues to help beginners make their first pull request.
Stars: ✭ 57 (+0%)
Mutual labels:  open-source
Sustainable Oss Attributes
👛 What does a sustainable open source project look like?
Stars: ✭ 56 (-1.75%)
Mutual labels:  open-source
Hexon
Astral Arcade
Stars: ✭ 55 (-3.51%)
Mutual labels:  open-source

Preamble

Rexy (rec-sy) is an open-source recommendation system based on a general User-Product-Tag concept and a flexible structure that has been designed to be adaptable with variant data-schema. There are a lot of methods and ways that Rexy has used to recommend the products to users. This is consist of general recommendations like Top products, event based recommendations and Novel products that the user might be interested in. There are other recommendations that are directly related to the user's activities or other users that have a similar behavior to the given user.

Alongside the recommendations that are related to the user's interests, there are also some modules designed to find the most proper products based on other factors like advertisement, social factors, gamification, etc. and don't have the side effects of a commercial advertisement system. Email and Search modules are designed to support such goals.

The underlying codes are entirely written in Python-3.5 in a highly optimized, Pythonic and comprehensive way that makes it so flexible against the changes. It also used Aerospike as the database engine which is a high speed, scalable, and reliable NoSQL database.


tyran nosaurus_rex_t-rex_ 86


Structure and Features

Rexy is consist of following major modules:

#c5f015 Administration

This module is supposed to handle the administration tasks. But what are administration tasks? In general, these tasks are those that we need for management of the users and products. This can be consist of visualizing the features, extracting a specific information about a user or product, demonstrating the long or short term changes regard a special feature of a given entity or other activities as such.

This module is contain the following submodules:

  • Analyzer

Retrieving and managing the information regard the entities. Such informations, may be used in variant ways such as giving a report to the providers regard their products, finding the popularity of a given product among the users (which can be used in a lot of ways too), estimating the popularity of a new products in our platform, and other purposes as such.

  • Visualizer

Using this module we can do the Analyzer's tasks in a visualized manner. Sometimes we just need to take a glance and figure out a specific information about a particular entity or group of them. In that case Visualizer module it what you want.

#c5f015 Core

The Core is contain those modules that handle the core operations and might be used in most of the other modules.

#c5f015 Email

This module is designed to handle the recommendations through the Email. Emails are basically sent on a weekly/monthly basis, which means that the users have a fewer interaction with. This makes it a proper place for advertisements and going a little bit further than the customized recommendation’s restrictions. Therefore, this module tends to use more diverse and unpopular products in its periodic recommendations.

Also, in addition to the aforementioned features, in Emails we have more options and space for our recommendations (compare to a profile page which is almost filled with other informations), which makes it possible to involve the new types of recommendations in the future. Hence, this module has been designed in a way to be as flexible as possible against such new changes.

#c5f015 General

There are also some kind of recommendations that are not specifically personalized for users or products. These are consist of Novel, Top and Event recommendations. The results of these modules, regardless of the subject of the page that we're planning to show them, can be used for general or personal recommendations. For example, within a home page for everyone or even for not logged-in users on welcome page.

  • Novel

This module is supposed to find the most popular products within a newly certain amount of time. For example, the last month.

  • Top

Alongside the Novel products we also need to find the all-time popular products among the users. That's exactly what this module stands for.

  • Event

Sometimes we need to go further than regular and common recommendation types, that's where the modules like Event come in. This module finds the most relevant products specially for users and in general, based on the events on a specific calendar. This module has used Wipazuka a multilingual calendar-based WordNet to find the intended products based on events.

#c5f015 Logging

The logging module that keeps track of the errors and exceptions that are happened within the whole application.

#c5f015 Profile

Profile is almost the widest module in Rexy. It's responsible for every profile in your platform, include User Profile, Product Profile, Provider Profile, etc.

For a given profile we can show a diverse set of recommendations which are as follows:

  • Top Products

Top products of all time, based on user's interest and other purposes.

  • Novel Products

Favorite products during the latest N month/week, based on the user's interest and other purposes.

  • Event-based recommendations

Products related to the current events, based on user's interest and other purposes.

  • Recommendations For You

In this part we suggest the products that are based on user's activities or the user's that have similar activities to the given user. Both of these recommendations fall under two accurate and similar categories.

The accurate recommendations are basically based on the common tags among the products. Finding the intersected tags can be done in two level the first one is related to the products that are directly related to the user's products and second one is related to the products that are similar to the similar products of our products.

The similar recommendations are based on the similarities between the common products and similar users in which these similarities are calculated based on the tag densities, common tags, different tags, and some other influential factors.

  • Top N Picks For You

At this section, we find the top N products from all the aforementioned parts.

#c5f015 Search

The search module is responsible for recommendations during the search process by user. Based on user's in case that the searched products are exist in database, we can show the related products based on some manual policies. In case the word doesn't exist in our database, we can use a prepared list of product names which are tagged properly in order to find the related products and show them to the user. This prepared list of products can be a scraped file or something similar. Another way around this is to ask the users to enter/select some related tags to the searched product and find the similar products based on them.

If the user is a logged in user with a history of activity, in case that the searched word doesn't exist in our database, we can recommend a list of products related to the latest users activities top products the most recently searched product, top popular product among the similar users to the user or other different methods.

Rexy is large and powerful enough, but can we make it stronger?

Indeed, using Python's state-of-the-art scientific programming tools, such as Numpy, Pandas, scikit-learn in order to harness the power of machine learning algorithms in the most optimized way. Also the structure can be expanded to be able to satisfy the further needs of your system. That's what we call XTRex (Xenomorph Tyrannosaurus Rex).

Construction is in progress. Contributions on this direction are welcomed.

image

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].