(crosspost from https://softwarerecs.stackexchange.com/questions/62491/python-recommender-framework-with-array-input, this meta post seems to justify doing this. I really really need answers to this, and even after putting a bounty onto the question of softwarerecs, I still haven't gotten any suggestions.)
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.
I'd greatly appreciate if anyone can suggest any library I could use to do this, even more so if you've got some experience using it. If you've ever done anything similar to this, even if it's without a pre-made library, I'd love a link to a Github repo, because I haven't the slightest clue on how to get started with this.