database design - What frameworks/db offer a good solution for content-based filtering? -


let's have 700 000 observations of products have attributes, lets call them tags.

and lets have userx. want implement simple content-based filtering method: rank products based tag count / relevance. lets userx has preference for: - yellow - price (0-15) - brandname

to recommendation, 1 need go on 700.000 observations (can done in nosql database normalization setting through tags, still can lot observations when there multiple tags involved), , count number of tags present in product.

what framework or method use quickly? i.e. outcome within couple of seconds?

some things thought were:

  • pure nodejs server
  • pure python server
  • neo4j graph database, not sure how relations implemented in setting?

do product "observations" include user purchases/interactions? if so, in graph database neo4j model data this:

enter image description here

here have user purchased product, product has 1 or more tag attributes. generate content based recommendation use cypher query this:

match (u:user {name: "bob"})-[:purchased]->(p:product) match (p)-[:tagged]->(t:tag) match (t)<-[:tagged]-(rec:product) not (u)-[:purchased]->(rec) return rec, count(*) weight order weight desc 

this query says: "find products bob has purchased. find tags products. find products same tags bob has not purchased. recommend these products bob, showing products highest number of overlapping tags first."

more information on available in video , in tutorial.


Comments

Popular posts from this blog

javascript - jQuery: Add class depending on URL in the best way -

caching - How to check if a url path exists in the service worker cache -

Redirect to a HTTPS version using .htaccess -