All of us are avid music lovers and we wanted to find a way to connect other music lovers with new, fresh songs that they might like based on their own tastes. That's why we decided to create MusicLearn.
What it does
It's a web app that utilizes sentiment analysis to determine the general mood of a song through it's lyrics. Based on this information, it finds songs with similar moods by similar artists. These are then suggested to the user with easy links to open in Spotify.
How we built it
We used python with Django to create the app. We used NLTK's Vader Sentiment Analyzer to find moods of songs, which outputs a metric of sentiment of any given sentence. We used this value to determine overall moods of songs. We then used the Spotify API to find similar artists and combed through their songs, determining the mood of each, and then ultimately finding the most similar songs to the user's original choice.
Challenges we ran into
We were familiar with natural language processing and Python in general, but we were beginners with Django. We quickly taught ourselves the basics of Django and got our website up and running.
Accomplishments that we're proud of
We were able to create this project that actually helped us discover new music. We believe it can actually help others diversify their music libraries. We're proud of the algorithm we created and believe that it is legitimately effective.
What we learned
We learned a lot about Django and natural language processing. We're glad we had this opportunity.
What's next for MusicLearn
Optimize our algorithm to reduce the amount of time it takes to find matches. Right now, it takes about thirty seconds and given more time, we can easily cut this down to five-ten. We will also add more to our UI, giving the user a cleaner experience.