Skip to content

Commit

Permalink
Fixed jterrace#3
Browse files Browse the repository at this point in the history
  • Loading branch information
sahib committed Apr 14, 2014
1 parent 9773271 commit 01faef4
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 22 deletions.
34 changes: 18 additions & 16 deletions rst/3_einleitung/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,20 @@ gegeben, die man bei der Entwicklung mit und von *libmunin* beachten sollte.
Zur Nuztung von *libmunin*
==========================

- Die Qualität der Empfehlungen kann nur so gut sein wie die Qualität der
- Die Qualität der Empfehlungen kann nur so gut sein, wie die Qualität der
Eingabedaten. Da in den meisten Fällen die Metadaten zu den einzelnen Liedern
aus den *Tags* der Audiodateien kommen, empfiehlt es sich diese vorher mit
Musiktaggern einheitlich zu pflegen. Der Autor empfiehlt hierfür Picard,
welches im Hintergrund auf Musicbrainz :cite:`3A3` zugreift.
aus den *Tags* der Audiodateien kommen, empfiehlt es sich diese vorher mit
Musiktaggern einheitlich zu pflegen. Der Autor empfiehlt hierfür *Picard*
:cite:`picard`, welches im Hintergrund auf *Musicbrainz* :cite:`3A3` zugreift.
Für schwerer zu besorgende Daten kann unter anderem auf libglyr, beets oder
dem eingebauten ``PlyrLyricsProvider`` und ``DiscogsGenreProvider``.
dem eingebauten ``PlyrLyricsProvider`` und ``DiscogsGenreProvider``
zurückgegriffen werden.
- Welche Lieder man zu *libmunin's History* hinzufügt, sollte
abgewogen werden. Fügt man auch Lieder ein welche vom Nutzer einfach
übersprungen worden sind, so sind die erstellten Regeln nicht repräsentativ.
- Anwendungsentwickler sollten nach Möglichkeit eine eigene, für ihre eigenen
Es sollten nur Lieder hinzugefügt werden, welche auch mehr als :math:`50\%`
angehört worden sind.
- Anwendungsentwickler sollten nach Möglichkeit eine eigene, für ihre
Zwecke konfigurierte Session--Maske verwenden. Zwar ist der Einsatz der
``EasySession`` deutlich einfacher, doch ist diese mehr für den *schnellen*
Einsatz gedacht. Zudem sollte es dem Endanwender möglich gemacht werden,
Expand Down Expand Up @@ -48,11 +51,11 @@ Hinweise zum Schreiben von Distanzfunktionen
weitere Verfahren: :cite:`wiki:fusion`.


- Die zuvor genannten mathematischen Eigenschaften einer :term:`Distanzfunktion`
sollten eingehalten werden.
- Um konsistent zu bleiben sollten alle der zuvor genannten mathematischen
Eigenschaften einer :term:`Distanzfunktion` eingehalten werden.

- Distanzfunktionen sollten schlechte Werte abstrafen und gute belohnen. Während
der Entwicklung hat sich gezeigt, dass simple Distanzfunktionen die auch für
der Entwicklung hat sich gezeigt, dass simple Distanzfunktionen, die auch für
eigentlich gar nicht mehr ähnliche eine Distanz errechnen die :math:`\neq 1.0`
ist, zu qualitativ schlechten Verbindungen im Graphen führen. Man sollte daher
den Bereich, in denen man eine Distanz :math:`< 1.0` vergibt, einschränken.
Expand Down Expand Up @@ -112,8 +115,8 @@ Hinweise zum Schreiben von neuen Providern
------------------------------------------

- Provider laufen im Gegensatz zu Distanzfunktionen nur einmal. Sie sind als
Präprozessor verstehen, der die vom Nutzer eingegebenen Daten auf möglichst
einfache und effiziente Vergleichbarkeit optimiert. Die Laufzeit die er dafür
Präprozessor zu verstehen, der die vom Nutzer eingegebenen Daten auf möglichst
einfache und effiziente Vergleichbarkeit optimiert. Die Laufzeit, die er dafür
braucht ist daher im Vergleich zur Distanzfunktion vernachlässigbar.
Daher sollte gut abgewogen werden wieviele Daten man dem Provider produzieren
lässt. Im Zweifelsfall empfiehlt es sich unnötiges wegzulassen.
Expand Down Expand Up @@ -170,7 +173,7 @@ sehen kann.

**Auffälligkeiten:**

- Bei *libmunin* wiederholt sich der Künstler *Knorkator* alle 3--4 Stücke,
- Bei *libmunin* wiederholt sich der Künstler *Knorkator* alle 3--3 Stücke,
da der *Filter* entsprechend eingestellt ist. Daher ist eine Wiederholung des
Künstlers nur alle 3, und eine Wiederholung des Albums nur alle 5 Stücke
erlaubt. Bei Mirage scheint lediglich eine direkte Wiederholung des Künstlers
Expand All @@ -180,13 +183,13 @@ sehen kann.
- *Mirage* leistet gute Arbeit dabei ähnlich klingende Stücke auszuwählen. Der
tempomäßig relativ langsame Seedsong (*Mirage* besitzt hier tatsächlich ein
änhliches Konzept) besitzt eine dunke Stimmung und harte E--Gitarren. Die von
*Mirage* vorgeschlagenen Songs schlagen hier tatsächlich sehr passend von der
Stimmung her. Die von *libmunin* vorgeschlagenen Songs sind in Punkt
*Mirage* vorgeschlagenen Songs sind hier tatsächlich sehr passend von der
Stimmung. Die von *libmunin* vorgeschlagenen Songs sind in Punkt
Audiodaten bei weitem nicht so übereinstimmend. Was aber auffällig ist, ist
dass größtenteils deutsche Titel (wie der Seedsong) vorgeschlagen werden. Auch
führt das *Parody* in der Genre--Beschreibung dazu, dass ebenfalls lustig oder
ironisch gemeinte Lieder vorgeschlagen werden. Zwar ist die Stimmung im
Seedsong düster, doch wird textlich ein lustiges Thema behandelt --- was
Seedsong düster, doch wird textlich ein Thema ironisch behandelt --- was
*Mirage* an den Audiodaten natürlich nicht erkennen kann. Hier zeigt sich
*libmunin's* (momentaner) Fokus auf Metadaten. Bei der zufälligen Playlists
passen zwar die Genres einigermaßen übereinander, doch liegt das eher an dem
Expand All @@ -205,7 +208,6 @@ Ressourcenverbrauch
Damit Anwendungsentwickler die Aufwändigkeit einzelner Operation einschätzen
können, wird in Tabelle :num:`table-spec` eine kurze Übersicht über den
Ressourcenverbrauch einzelner Aspekte gegeben.

Die gemessenen Werte beziehen sich stets auf die Testumgebung mit 666 Songs.

.. figtable::
Expand Down
12 changes: 6 additions & 6 deletions rst/5_provider/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ Algorithmen bei Providern
Einleitung
===========

:dropcaps:`Im` Folgenden werden einige ausgewählte Paare aus Provider und Distanzfunktionen
näher betrachtet. Nicht alle in der Projektarbeit vorgestellten Provider werden
erläutert, das würde auch den Umfang dieser Arbeit übersteigen. Zudem sind die
meisten Provider eher einfacher Natur --- die Lektüre des jeweiligen Quelltextes
sagt oft mehr als der separate Text. Daher werden im Folgenden nur die
erklärungsbedürftigen Paare näher betrachtet.
:dropcaps:`Im` Folgenden werden einige ausgewählte Paare aus Provider und
Distanzfunktionen näher betrachtet. Nicht alle in der Projektarbeit
vorgestellten Provider werden erläutert, das würde auch den Umfang dieser Arbeit
übersteigen. Zudem sind die meisten Provider eher einfacher Natur --- die
Lektüre des jeweiligen Quelltextes sagt oft mehr als der separate Text. Daher
werden im Folgenden nur die erklärungsbedürftigen Paare näher betrachtet.


Genrenormalisierung und Vergleich
Expand Down
8 changes: 8 additions & 0 deletions urls.bib
Original file line number Diff line number Diff line change
Expand Up @@ -317,3 +317,11 @@ @Misc{inkscape
howpublished = "\url{http://www.inkscape.org}",
key = {inkscape}
}

@Misc{picard,
note = {[Stand: 15.4.2014]},
howpublished = "\url{http://musicbrainz.org/doc/MusicBrainz_Picard}",
key = {picard}
}


0 comments on commit 01faef4

Please sign in to comment.