forked from topel/emoMusic
-
Notifications
You must be signed in to change notification settings - Fork 0
/
analyse_annotations.py
56 lines (47 loc) · 1.5 KB
/
analyse_annotations.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
__author__ = 'thomas'
import numpy as np
from utils import load_X, load_y_to_dict, mix, standardize, add_intercept, evaluate, evaluate1d, load_metadata
import matplotlib.pyplot as plt
NUM_FRAMES = 60
DATADIR = '/baie/corpus/emoMusic/train/'
# DATADIR = './train/'
arousal, valence, song_id, nb_of_songs = load_y_to_dict(DATADIR)
metadatafile = DATADIR + 'annotations/metadata.csv'
list_20genres_file = DATADIR + '../20_most_frequent_genres.lst'
id2genre, genre_list = load_metadata(metadatafile, list_20genres_file)
# for k, v in id2genre.iteritems():
# print k, v
#
# for g in genre_list:
# print g
#
# for song in song_id:
# print song, arousal[song]
arousal_by_genre = dict()
valence_by_genre = dict()
for genre in genre_list:
arousal_tmp = list()
valence_tmp = list()
for id, g in id2genre.iteritems():
if g == genre:
arousal_tmp.append(arousal[id])
valence_tmp.append(valence[id])
# arousal_by_genre[genre] = arousal_tmp
# valence_by_genre[genre] = valence_tmp
arousal_by_genre[genre] = [item for sublist in arousal_tmp for item in sublist]
valence_by_genre[genre] = [item for sublist in valence_tmp for item in sublist]
ind = 1
for genre in genre_list:
print genre
val = valence_by_genre[genre]
ar = arousal_by_genre[genre]
plt.figure(ind)
plt.plot(val, ar, 'o')
plt.title(genre)
axes = plt.gca()
axes.set_xlim([-1.,1.])
axes.set_ylim([-1.,1.])
plt.show()
# if ind % 5 == 0 :
# break
ind += 1