I am working on a product which requires a recommender system to suggest items to users. I am looking for a system with item/memory-based (but not collaborative filtering!), content-based recommendation, which I can easily adapt/use in Python 3+. I have found a few on Github which support the above specification, but I'm struggling to find something which also is able to support array-class item definitions.

The way that content-based recommendation systems work (if I'm not mistaken) is using a set of metadata arguments. A few frameworks I've found support using strings, integers and floats, but I'm looking for something that also supports non-ordered arrays (e.g a list of tags, which are in no particular order, but are connected to each other), plus one that obviously allows for using as many inputs per item as I like. The arrays would be of type string, float or integer - all the same in any given array (e.g an array of just strings, or an array of just integers), but I want to have multiple arrays, one for strings, one for floats, etc.

Some other notes:

  • Overall speed is not a massive issue, although lower O(n) time complexity is preferred.
  • If there are multiple which match this classification that you know of (I have struggled to find them mostly due to a lack of documentation on them, but I'm sure people with experience in the field are going to shout at me for not looking hard enough), I'd have a preference for the one which is the easiest to use/quickest to easily write code for - this includes good documentation/preferably a quick-start guide with examples.
  • I'm using Python 3.6.7, running on Ubuntu 16.04 LTS, 4-core Intel E5 CPU, no extra GPU. This means I can't use anything with special CPU requirements (some Tensorflow frameworks require fancy/very old/very new types of processor to work), or anything that only works with GPU training.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.