Ich hab eine Liste von Songs.
Um Aussagen über deren ähnlichkeit zu machen muss ich die untereinander vergleichen. Das ergibt für N Songs ((N - 1) ^ 2 / 2) Vergleiche. Für N=32k ne ganze Menge. (Abgeschätzte Zeit wären ca. 13h, also unakzeptabel.)
for song_a, song_b in combinations(song_list): distance = Song.compute(song_a, song_b) # Aufwändig ist nur die Berechnung der Distanz oben. song_a.distance_add(song_b, distance) song_b.distance_add(song_a, distance)
Mögliche Lösungsideen:
- Gruppen bilden
Nachteile:
- Was ist das Splitkriterium? (Merke: Distanzen zu anderen Songs sind zu diesem Zeitpunkt noch nicht vorhanden)
- Man hat danach viele Gruppen. Wie verbindet man diese wieder?
Einführung einer "Heuristik" die entscheidet ob es lohnt 2 Songs zu vergleichen:
for song_a, song_b in combinations(song_list): if heuristic(song_a, song_b): distance = Song.compute(song_a, song_b) # ...
Vorteil: Ein ganzer Graph würde rauskommen. Nachteil: Wie wäre so eine Heuristik aufgebaut?
Weitere Ideen?
Last active
December 27, 2015 12:39
-
-
Save sahib/7327137 to your computer and use it in GitHub Desktop.
I haz problemz.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment