Liebe/-r wer-weiss-was Experte/-in,
Zuerst mal ein freundliches Hallo!
Hallo!
Tag Clouds werdet ihr vielleich kennen; es handelt sich um
sogennante Schlagwortwolken (schauderhafte Übersetzung).
Habe zwar nie mit Tag Clouds gearbeitet, aber die mathematischen Grundlagen kann ich dir dazu wohl etwas erklären.
Wie du ja schon sagtest, arbeiten Tag Clouds auf absoluten Häufigkeiten, also zB der Anzahl wie oft ein Gegenstand einer Datenbank mit einem Schlagwort verbunden wird. Nehmen wir dazu als Beispiel eine Filmdatenbank, in der einzelne Filmtitel mit Beschreibung/Beurteilung abgelegt werden, und dann einem oder mehreren Genres zugeordnet werden können. Die Tags (in diesem Fall also die Genres, zB Action/Drama/Sci-Fi/…) dienen hierbei als Navigationshilfe, da sie Filme in Genres einteilen. Stellt man nun die einzelnen Genres über ihre absolute Häufigkeit dar, so bekommt man ein „Histogramm“, das für jedes Genre die Anzahl der Filme angibt, die diesem Genre zugeordnet wurden. Zu beachten ist, dass ein Film auch mehreren Genres zugeordnet werden kann, weshalb absolute Häufigkeiten (die Anzahl der Verlinkungen) benutzt werden.
Tag-Clouds nehmen nun den Raum der Schlagwörter (man hat also in dem Sinne ein Schlagwort-Wörterbuch) und versuchen diese über ihre Häufigkeiten in Bezug zueinander zu setzen, um damit eine Hierarchie - also eine Ordnung - aufzubauen, die es einem Benutzer möglich machen soll über diese Schlagwörter zu Navigieren bzw Suchanfragen zu beantworten.
- Was muss generell mathematisch in einer Tag Cloud
geschehen?
Die Tag-Cloud nimmt einen Eintrag aus dem Schlagwort-Wörterbuch und berechnet (wenn dies nicht schon on-the-fly mit neuen Einträgen gemacht wurde) die Anazhl seines Vorkommens über die zugrundeligende Datenbank. Dies wird für jeden Tag gemacht.
Bei der Darstellung in einer Tag-Cloud werden nun die absoluten Häufigkeiten einzelner Tags in Relation zueinander gesetzt. Diese Repräsentation kann, wie du schon sagtest, mit verschiedenen Mitteln wie Schriftgröße/Farbe/Formatierung/… erzielt werden.
Angenommen wir stellen mit Schriftgrößen dar und haben 4 verschiedene Größen zur Verfügung. Das heißt, dass wir den Raum der Häufigkeiten auf den Raum der Schriftgrößen abbilden. Diese Abbildung ist i.A. nicht invertierbar, da die Eingangsdaten einen größeren Wertebereich repräsentieren, und damit eine Daten-/Informationsreduktion stattfindet. Hierzu weiter mit dem Beispiel: Häufigkeiten im Intervall [a,b] werden auf 4 Schriftgrößen reduziert. Nehmen wir an, wir haben 10 verschiedene Genres die wir darstellen wollen, und jedes Genre hat eine absolute Häufigkeit Pa(i) : i=1,…,10.
Action: Pa(1) = 197 mal in DB
Drama: Pa(2) = 123 mal in DB
Sci-Fi: Pa(3) = 69 mal in DB
…
Wollen wir diese Hierarchie nun linear, also gleichmäßig-verteilt aufbauen, so teilen wir den Bereich der Häufigkeiten durch die Anzahl der Schriftarten, Bsp.:
Häufigkeiten min: 0, max: 200
0-50: kleinste Schriftgröße (z.B. 10)
51-100: Schriftgröße 15
101-150: Schriftgröße 20
151-200: Schriftgröße 25
Dies ist jedoch (abhängig davon welche Häufigkeiten die einzelnen Genres haben) problematisch, und oft keine geeignete Repräsentation der Daten. Z.B. könnte es sein, dass 9 von den 10 Tags eine Häufigkeit zwischen 0 und 50 haben, und nur das 10te (sagen wir Drama) eine von 190. Damit würde die Tag-Cloud ein Tag hervorheben, und die anderen wären alle gleich groß. Dies wäre keine große Hilfe für den Benutzer, da er damit nur wüßte dass „Drama“ wesentlich öfter vorkommt als die anderen Tags, jedoch nicht in welcher Relation die restlichen Tags zueinander stehen.
- Welche Formeln brauche ich in einer Tag Cloud umbedingt?
Die Formel für die lineare Abbildung ist auf Wiki gegeben,
http://de.wikipedia.org/wiki/Schlagwortwolke
sie macht genau das in (1) beschriebene - teilt den Bereich zwischen tmin und tmax in gleich Große Teile (auch Bins genannt) und ordnet diesen Bins Schriftgrößen zu. Ein Tag wird dann über seine Häufigkeit einem Bin zugeordnet, und bekommt damit eine Schriftgröße.
- Was ist der genaue Unterschied zwischen einer linearen und
einer logarithmischen Tag Cloud?
Wie in (1) erwähnt ist die Darstellung der Daten problematisch, je nachdem welche Häufigkeitsverteilung die Daten aufweisen. Deshalb kann man alternativ auch logarithmisch skalieren, was bedeutet dass der Bereich z.B. so aussehen würde:
kleinste Schriftgröße 10: 0-10
Schriftgröße 15: 11-100
Schriftgröße 20: 101-1000
Schriftgröße 25: 1001-10001
Damit bekommt man eine bessere Skalierung für kleinere Werte, da eine lineare Skalierung die Bins in 10000/4 = 2500 teilen würde. Damit hat man also eine bessere Auflösung für den kleinen Wertebereich, auf Kosten der Auflösung im höheren Wertebereich. Man sollte beim Design der Funktion also ca. wissen wie die Daten aufgebaut sind.
- Was hat eine Tag Cloud mid Interpolation zu tun?
Interpolation bezeichnet in dem Sinne deine Skalierung bzw die Einteilung in Bins. Da du von einem Minimalwert schrittweise in Richtung Maximalwert unterteilst. In (1) wird zB der Bereich 0-200 durch 4 Werte „interpoliert“, 0 -> 51 -> 101 -> 151 -> 200. Logarithmisch ist das dann wie in (2) 0 -> 11 -> 101 -> 1001 -> 10000.
- Brauche ich eine eigene Formel um die „Gewichtung“ der Tags
zu ermitteln, oder soll ich als Gewicht die pure Häufigkeit
nehmen? Gibt es hier mehrere Möglichkeiten?
I.A. wird die absolute Häufigkeit genommen, natürlich können auch andere Faktoren in die Formel für die „Wertigkeit“ eines Tags miteinbezogen werden. Hängt wieder davon ab, welche Information die Tag-Cloud darstellen soll, also Design-Frage.
- Brauche ich eine oder zwei Formeln um die Gewichtung des
Tags und dessen Größe in der Tag Cloud zu berechnen?
Denke das wurde zuvor beantwortet.
Grüße,
ziD