cobra

cobra

Song-Recommender - a naive song recommendation system built with Elixir and Neo4j

Hey everyone, hope you’re all good. I’ve been really interested in graph databases for a while now and decided to build some sort of project with the aim of improving my skills in this particular domain. After reading so many articles I saw that graph databases can be used to make product recommendations or things like that. I tried thinking about making a simple recommender system for something like Amazon products but that wasn’t that interesting to me. So I thought about making one for song recommendations (yes like Spotify). Anyway to make a really good song recommendation system, I would have to combine some ML with various other things and I wasn’t really going to become an ML engineer overnight. So I thought of something simpler. What if I could just extract relationships between various songs and artists, categorize songs into genres and track user activity to see what they were really listening to? Based on this, I could then make simple song recommendations, minimizing repeating songs while also ensuring I don’t show absolutely irrelevant songs. I happened to come across a csv file with song data of over 1 million songs which would be enough for this simple experiment ( Spotify_1Million_Tracks | Kaggle ).

To do this, I of course had to settle for a graph DB and I picked Neo4j. There happens to be tons of Bolt Elixir drivers out there, but the same isn’t quite reflected in the number of public repos that are utilizing Elixir + Neo4j(Cypher). The reason I’m posting is to probably get some views from others who have gone down the same path. How do you structure a phoenix project where you’ll primarily be interacting with a Neo4j backend? Total beginners may also benefit.

Here’s the completed project

Waiting for feedback :slight_smile:

First Post!

cobra

cobra

Where Next?

Popular in Announcing Top

mspanc
I am pleased to announce an initial release of the Membrane Framework - an Elixir-based framework with special focus on processing multim...
New
ityonemo
Currently just starting out on a new mini-project - getting zig NIFs to run in elixir. https://github.com/ityonemo/zigler The idea here...
New
josevalim
Yes, yet another parser combinator library! Most of the parser combinators in the ecosystem are either compile-time, often using AST tra...
159 19417 141
New
msaraiva
Surface is an experimental library built on top of Phoenix LiveView and its new LiveComponent API that aims to provide a more declarative...
564 43757 214
New
restlessronin
The repo is at GitHub - cyberchitta/openai_ex: Community maintained Elixir library for OpenAI API · GitHub. Docs are at OpenaiEx User Gu...
152 10342 134
New
riverrun
I’ve just released version 3 of Comeonin, a password hashing library. The following small changes have been made: changes to the NIF c...
New
cjen07
parameterized pipe in elixir: |n> edit: negative index in |n> and mixed usage with |> are supported example: use ParamPipe ...
New
OvermindDL1
Been making an MLElixir thing (not released yet…) for fun in spare time in the past day. I’m just trying to see how much I can get an ML...
132 14057 106
New
zoltanszogyenyi
Hey everyone :waving_hand: Excited to join this forum - I am one of the founders and current project maintainers of a popular and open-s...
New
mattludwigs
Grizzly is a library for working with Z-Wave devices. Z-Wave is a low-frequency radio protocol for controlling smart home devices on a me...
New

Other popular topics Top

sen
Hi All, I set a environment variables in dev.exs , like below code. when i start server, how can i set the ${enable} value? thanks. d...
New
AstonJ
Posting this to see if we can make things easier for people to get into Neovim. If you use Neovim and have a favourite distro please let ...
New
WestKeys
Currently suffering from paralysis by [HTTP client] analysis. This is rather unusual in Elixirland as there tends to be consensus on the ...
New
electic
Hi, I am new to Elixir. I am trying to use the DateTime component to insert a date into MySQL however the there seems to be no way to fo...
New
stefanchrobot
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
aesmail
Hello guys, I have finally made it. I created an admin interface for a framework. It’s been on my todo list for years and with the curre...
New
sergio_101
I am VERY much an elixir newbie. I have taken one elixir course and one phoenix course on Udemy. During that course, I saw the instructor...
New
hariharasudhan94
I would like to know what is the best IDE for elixir development?
New
PeterCarter
There are pre-rolled solutions for other frameworks that do work. However, Phoenix does not seem to have these. Have people had good expe...
New
vegabook
I’m brand new to Phoenix and I have stripped one of the demo applications to the bone. I just want to get an svg up on the screen. Here i...
New

We're in Beta

About us Mission Statement