Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save raedatoui/a501aa796e5aace1ff3f9b798db21012 to your computer and use it in GitHub Desktop.
Save raedatoui/a501aa796e5aace1ff3f9b798db21012 to your computer and use it in GitHub Desktop.
orchard/sonymusic neo4j hackathon
USING PERIODIC COMMIT 10000
LOAD CSV WITH HEADERS FROM 'file:///Tracks.csv' as line
WITH line,
CASE
WHEN toFloat(line.TEMPO) < 20 THEN "Larghissimo"
WHEN toFloat(line.TEMPO) >= 20 AND toFloat(line.TEMPO) < 40 THEN "Grave"
WHEN toFloat(line.TEMPO) >= 40 AND toFloat(line.TEMPO) < 60 THEN "Largo"
WHEN toFloat(line.TEMPO) >= 60 AND toFloat(line.TEMPO) < 80 THEN "Adagio"
WHEN toFloat(line.TEMPO) >= 80 AND toFloat(line.TEMPO) < 120 THEN "Moderato"
WHEN toFloat(line.TEMPO) >= 120 AND toFloat(line.TEMPO) < 180 THEN "Allegro"
ELSE "Presto"
END as NamedTempo,
CASE
WHEN toFLoat(line.DANCEABILITY) < .25 THEN "S"
WHEN toFLoat(line.DANCEABILITY) >= .25 AND toFLoat(line.DANCEABILITY) < .5 THEN "M"
WHEN toFLoat(line.DANCEABILITY) >= .5 AND toFLoat(line.DANCEABILITY) < .75 THEN "L"
ELSE "XL"
END as Dance,
CASE
WHEN toFLoat(line.ENERGY) < .25 THEN "S"
WHEN toFLoat(line.ENERGY) >= .25 AND toFLoat(line.ENERGY) < .5 THEN "M"
WHEN toFLoat(line.ENERGY) >= .5 AND toFLoat(line.ENERGY) < .75 THEN "L"
ELSE "XL"
END as Energy,
CASE
WHEN toFLoat(line.VALENCE) < .25 THEN "S"
WHEN toFLoat(line.VALENCE) >= .25 AND toFLoat(line.VALENCE) < .5 THEN "M"
WHEN toFLoat(line.VALENCE) >= .5 AND toFLoat(line.VALENCE) < .75 THEN "L"
ELSE "XL"
END as Valence,
CASE
WHEN toFLoat(line.INSTRUMENTALNESS) < .25 THEN "S"
WHEN toFLoat(line.INSTRUMENTALNESS) >= .25 AND toFLoat(line.INSTRUMENTALNESS) < .5 THEN "M"
WHEN toFLoat(line.INSTRUMENTALNESS) >= .5 AND toFLoat(line.INSTRUMENTALNESS) < .75 THEN "L"
ELSE "XL"
END as Instrumentalness
MERGE (tmp:Tempo {tempo:NamedTempo})
MERGE (d:DanceAbility {score:Dance})
MERGE (e:Energy {score:Energy})
MERGE (v:Valence {score:Valence})
MERGE (i:Instrumentalness {score:Instrumentalness})
MERGE (t:Track {trackId: line.TRACKID})
SET
t.trackName=line.NAME,
t.isrc=line.ISRC,
t.popularity=line.POPULARITY
MERGE (t)-[ht:HASTEMPO]->(tmp) SET ht.value = toFloat(line.TEMPO)
MERGE (t)-[dt:DANCEABLE]->(d) SET dt.value = toFloat(line.DANCEABILITY)
MERGE (t)-[et:ENERGETIC]->(e) SET et.value = toFloat(line.ENERGY)
MERGE (t)-[hat:HAPPINESS]->(v) SET hat.value = toFloat(line.VALENCE)
MERGE (t)-[it:INTRUMENTAL]->(i) SET it.value = toFloat(line.INSTRUMENTALNESS)
WITH t, line
MATCH (a:Artist {artistId:line.ARTISTID})
MERGE (a)-[:PERFORMED]->(t)
MATCH (t1:Track)-[v1:HASTEMPO|HAPPINESS|ENERGETIC|INTRUMENTAL|DANCEABLE]->(value1) WHERE id(t1) = 5026
WITH t1, v1
ORDER BY value1.order
WITH t1, collect(v1.value) as values1
MATCH (t2:Track)-[v2:HASTEMPO|HAPPINESS|ENERGETIC|INTRUMENTAL|DANCEABLE]->(value2)
WHERE id(t2) = 18
WITH t1, values1, t2, v2
ORDER BY value2.order
WITH t1, t2, collect(v2.value) as values2, values1
WHERE size(values2) = 5
RETURN t1.trackName AS from,
t2.trackName AS to,
values1,
values2,
algo.similarity.cosine(values1, values2) AS similarity
ARTISTID TRACKID NAME DURATION ISRC POPULARITY DANCEABILITY ENERGY KEY LOUDNESS MODE SPEECHINESS ACOUSTICNESS INSTRUMENTALNESS LIVENESS VALENCE TEMPO
00sazWvoTLOqg5MFwC68Um 1D1lJZTk19ij9ZtncawMWv Another Shore 293 FRPAH1100090 0 0.105 0.378 3 -11.52 1 0.0382 0.114 0.73 0.103 0.0547 181.142
5V0MlUE1Bft0mbLlND7FJz 1d1mCeeEAdDhWFSHUhZgDo Sing Me a Swing Song, and Let Me Dance 153 GB8XC1080249 0 0.633 0.363 1 -10.684 1 0.21 0.845 2.92e-05 0.116 0.795 166.95
0FI0kxP0BWurTz8cB8BBug 1D1mkpSvIIXJTZqkhmJGIA Right Now 211 GBUM70600506 0 0.582 0.742 1 -6.65 1 0.0275 0.262 0.00013 0.0419 0.724 89.342
5s6TJEuHTr9GR894wc6VfP 1D1mkpSvIIXJTZqkhmJGIA Right Now 211 GBUM70600506 0 0.582 0.742 1 -6.65 1 0.0275 0.262 0.00013 0.0419 0.724 89.342
5dCuFngSPyOOnTAvrC7v2s 1d1mPSPVXIHdbT5MIcyiJW Sen-Sa-Shun 173 GBN8H1207337 0 0.74 0.73 9 -8.861 1 0.03 0.685 0.958 0.308 0.968 139.87
1aSxMhuvixZ8h9dK9jIDwL 1d1pioLeinBn1LdFppoPWN The Man with the Child in His Eyes 158 GBAYE7800107 0 0.29 0.257 0 -11.404 1 0.0308 0.867 0.00018 0.181 0.159 85.266
66NweiA3nU84k1S3SZdTSG 1d1rcZ3RmCzIOuvhn1cYvz Los Sabanales 239 COSO10600082 14 0.64 0.515 7 -9.251 1 0.0429 0.258 1.2e-06 0.104 0.965 134.782
71jzN72g8qWMCMkWC5p1Z0 1D1rRowgWfXl0apqcEdJmx Enigma 170 USSM11406171 34 0.473 0.0693 10 -30.029 1 0.0309 0.97 0.918 0.101 0.0388 104.09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment