Zum Inhalt springen

Tag Cloud Mathematik. Ferialpraktikum Hilfe!


Independence

Empfohlene Beiträge

Ich bin neu hier, also zuerst mal ein freundliches Hallo an alle!

Ich hoffe, dass hier ist die richtige Rubrik für mein Thema.

Ich bin 17 Jahre alt, und mache gerade ein Ferialpraktikum bei einer Softwarefirma. Meine Aufgabe ist es, eine konzeptionelle Arbeit über Tag Clouds zu schreiben.

Ich erbitte eure geschulten Gehirne, meine Verwirrung bezüglich der Formeln aufzulösen.

Tag Clouds werden hier warscheinlich viele kennen; es handelt sich um sogennante Schlagwortwolken (schauderhafte Übersetzung).

Eine Tag Cloud greift auf ein System zu, auf dem Tags gespeichert sind (so wie Flickr, Delicioso, Technorati,...) und stellt die Tags, gemäß einer Hierarchie dann unterschiedlich groß (oder farbig, oder unterstrichen,...) dar.

Die Hierarchie der Tags kommt bei einer klassischen Tag Cloud durch die Häufigkeit des Tags im System zustande = Häufigere Tags sollen größer dargestellt werden.

Nun habe ich mir die Formel gesucht , die die relative Größe eines Tags in der Wolke berechnet (Wikipedia):

si = fmin + ((ti-tmin)*(fmax-fmin)/(tmax-tmin))

• si: Anzuzeigende Fontgröße

• fmax: maximale Fontgröße

• ti: Häufigkeit

• tmin: minimale Häufigkeit

• tmax.: maximale Häufigkeit

• fmin : minimale Fontgröße

Diese Formel führt eine lineare Interpolation zwischen den Wertepaaren (tmin/fmin) und (tmax/fmax) durch, das heisst im Klartext sie verbindet die beiden Punkte mit einem geraden Strich (mithlife einer Funktion).

Das klingt alles sehr plausibel für mich. S

So könnte man abhängig vom "Gewicht" (also der Häufigkeit) ti eines Tags dessen individuelle Größe berechnen.

Nun bin ich aber wieder und wieder auf andere Internetseiten ( wie diese: Tag Cloud Font Distribution Algorithm | Echo Chamber Project) gestoßen, die sich AUCH mit der Mathematik einer Tag Cloud mit linearer Größenformel auseinandersetzen, aber völlig anders vorgehen.

Immer wieder, wie auch bei der Echochamberprojekt Seite, ist die Rede von "Thresholds" , sogennanten Schwellenwerten.

Wenn ich das richtig verstanden habe, wird hier die Differenz aus Maximalgewicht und Minimalgewicht eines Tags einfach durch die gewünschte Anzahl an Größenordnungen dividiert, um somit in weiterer Folge "Größenbereiche" zu schaffen.

Soll heißen, wenn das Gewicht eines Tags sich in einem gewissen Intervall befindet, dann wird ihm automatisch eine bestimmte Größe zugeordnet und wenn es einen vorher berechneten "Threshold" überschreitet, bekommt es die nächstgrößere Größe.

Nun klingt auch DAS für mich plausibel, was ich aber (auch nach langem Überlegen) nicht verstehe, ist, wie ich diese beiden Konstruktionsansätze vereinen soll!

Wenn ich den Konstruktionsansatz mit den Schwellenwerten nehme, wäre doch die oben gennante Formel für mich völlig unnötig, oder? Dann müsste ich doch nur das Gewicht eines Tags nehmen und dem entsprechenden, vorher berechneten Intervall zuordnen, um eine passende Größe zu erlangen?

Ich werde trotzdem das Gefühl nicht los, dass es sich hierbei nicht um 2, sondern um 1 Theorie handelt, schon allein, weil mir diese beiden Formeln während meiner Internetrecherche immer wieder unter dem selben Schlagwort (Linearverteilung der Größe bei Tag Clouds) über den Weg laufen.

Oder handelt es sich hier eventuell um zwei völlig voneinander unabhängige Möglichkeiten, die Größe der Tags in einer Cloud zu berechnen?

Ich hoffe irgendjemand von euch tut sich an, diesen langen Text zu lesen, und kann mir vielleicht weiterhelfen. Im Vorhinein ein großes DANKE für jede noch so kleine Hilfestellung!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Diese Formel führt eine lineare Interpolation zwischen den Wertepaaren (tmin/fmin) und (tmax/fmax) durch, das heisst im Klartext sie verbindet die beiden Punkte mit einem geraden Strich (mithlife einer Funktion).

Hier wird nichts verbunden, das ist eine einfache lineare Abbildung, so wie Du es auch aus der Prozentrechnung kennst, ein beliebiges Intervall [a,b] wird auf das Intervall [0,100] abgebildet.

Das klingt alles sehr plausibel für mich.

So könnte man abhängig vom "Gewicht" (also der Häufigkeit) ti eines Tags dessen individuelle Größe berechnen.

Aber beachte auch, dass es sich bei Deiner angegebenen Formel nur um die Berechnung der Schriftgröße handelt.

Wiki: Schlagwortwolke ? Wikipedia

Da die Anzahl indexierter Objekte pro Schlagwort üblicherweise nach einem Potenzgesetz verteilt ist, ist für größere Wertebereiche eine logarithmische Darstellung sinnvoll.

Du musst immer beachten wir reden bei diesen Dingen über Häufigkeiten und in diesem Fall über eine logarithmische Darstellung. Wenn diese schon vorliegt, wird dann die Schriftgröße interpoliert

Nun bin ich aber wieder und wieder auf andere Internetseiten ( wie diese: Tag Cloud Font Distribution Algorithm | Echo Chamber Project) gestoßen, die sich AUCH mit der Mathematik einer Tag Cloud mit linearer Größenformel auseinandersetzen, aber völlig anders vorgehen.

Immer wieder, wie auch bei der Echochamberprojekt Seite, ist die Rede von "Thresholds" , sogennanten Schwelle

Ich werde trotzdem das Gefühl nicht los, dass es sich hierbei nicht um 2, sondern um 1 Theorie handelt, schon allein, weil mir diese beiden Formeln während meiner Internetrecherche immer wieder unter dem selben Schlagwort (Linearverteilung der Größe bei Tag Clouds) über den Weg laufen.

Oder handelt es sich hier eventuell um zwei völlig voneinander unabhängige Möglichkeiten, die Größe der Tags in einer Cloud zu berechnen?

Zitat aus Deinem Link

One way to even out the fontsize distribution in the tag cloud would be to use a logarithmic thresholding algorithm instead of a linear one

Man wird die Häufigkeit der Daten oft logarithmisch auftragen und dann linear die gewünschte Schriftgröße interpolieren bzw. wie man nun die Tag hervorhebt ist natürlich immer eine Designfrage

Ich habe Deine Links nur kurz überflogen, aber Du musst immer gedanklich trennen: Wie kommt man von der Anzahl der Wörter zu einer entsprechenden Auswertung und im zweiten Schritt wie kommt man von der Auswertung zu einer Darstellung

HTH

Phil

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn ich das richtig verstanden habe, wird hier die Differenz aus Maximalgewicht und Minimalgewicht eines Tags einfach durch die gewünschte Anzahl an Größenordnungen dividiert, um somit in weiterer Folge "Größenbereiche" zu schaffen.

Genau das tut deine Formel:

si = fmin + ((ti-tmin)*(fmax-fmin)/(tmax-tmin))

Ein "Größenbereich" bedeutet einfach fmin+x bis fmin+x+1, ist also einfach durch die Schritte zwischen fmin und max festgelegt und unterliegt Rundungseinflüssen.

Vielleicht bin ich zu naiv aber mal Logarithmik aussen vor gelassen sind deine zwei Ansätze ein und dasselbe.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstmal vielen Dank für all die tollen Antworten!

besonders flashpixx hat mir schon um einiges weitergeholfen

@flashpixx

du sagst ja, dass man zuerst eine formel finden muss, um die "gewichtung" des Tags festzulegen, bevor man anhand der gewichtung die Größe errechnet?

das klingt sehr plausibel, danke

nur was mich noch verwirrt...

du sagst, eine logarithmische darstellung sei bei der Gewichtung der Tags sinnvoll, und die größe der tags soll man dann linear interpolieren

Tag Clouds : Linear vs Logarithmic Interpolation

warum ist dann hier die rede von "logarithmischer interpolation".

Das Interpolationsverfahren, ist doch, wenn ich richtig verstanden habe, nur das verfahren, mit dem man dann die endgültige schriftgröße der gewichtung bestimmt, und das ist doch linear problemos durchzuführen oder?

Link zu diesem Kommentar
Auf anderen Seiten teilen

du sagst ja, dass man zuerst eine formel finden muss, um die "gewichtung" des Tags festzulegen, bevor man anhand der gewichtung die Größe errechnet?

Wo habe ich etwas über Gewichtung geschrieben? Bitte lies einmal mein Posting genauer, da steht nichts von einer Gewichtung

du sagst, eine logarithmische darstellung sei bei der Gewichtung der Tags sinnvoll, und die größe der tags soll man dann linear interpolieren

Es werden hier keine Gewichtungen der Tags darstellt, sondern die Häufigkeiten: Häufigkeit ? Wikipedia

und bei Dein beiden angegeben Quellen müsste dies einer Power-Law Verteilung im groben entsprechen: Potenzgesetz (Statistik) ? Wikipedia

Tag Clouds : Linear vs Logarithmic Interpolation

warum ist dann hier die rede von "logarithmischer interpolation".

Vielleicht liest Du einmal den ersten Satz:

One of the topics our audience research is to figure out using linear interpolation versus logarithmic interpolation for the font-size formula

Hier werden nur die Verfahren zur Ermittelung der Schriftgröße diskutiert

Das Interpolationsverfahren, ist doch, wenn ich richtig verstanden habe, nur das verfahren, mit dem man dann die endgültige schriftgröße der gewichtung bestimmt, und das ist doch linear problemos durchzuführen oder?

Ja, aber wie man interpoliert, dafür gibt es eine Menge Möglichkeiten z.B. linear, kubisch, quadratisch, .... Es nützt die relativ wenig, wenn Du einfach interpolierst, Du solltest schon wissen wie Deine Daten verteilt sind. Ich kann ja z.B. auch nur 3 Schriftgrößen verwenden und innerhalb jeder Größe interpoliere ich die Farbe.

Phil

Link zu diesem Kommentar
Auf anderen Seiten teilen

Aber du hast ja von einer Auswertung am Ende deines 1. Postings gesprochen? Was meinst du denn dann damit?

Auswertung = Datenanalyse. Du hast erst einmal Wörter und was machst Du mit diesen? Die Datenanalyse ist hier eine statistische Analyse, die gewissen Gesetzmäßigkeiten folgt. Das ist der wichtigste Schritt, die visuelle Darstellung (Interpolation von Schriftgrößen) ist allenfalls technischer Natur

Phil

Link zu diesem Kommentar
Auf anderen Seiten teilen

Entschuldige wenn ich so dumm frage, aber reicht es als auswertung nicht auch, einfach die häufigkeit eines Tags zu zählen?

Sicherlich nicht, schau Dir den Artikel zu Häufigkeiten an (absolut, relativ, kummulativ). Zusätzlich spielt auch eine Rolle, wie Du die gewonnen Daten entsprechende auf Deine gedanklichen Achsen aufträgst und dann darüber interpolierst

Und wo ist der Unterschied zwischen Auswertung und Gewicht eines Tags?

Eine Gewichtung ist z.B. die Multiplikation mit einem Skalar / Vektor, z.B. wenn in einer Reihe gerade Zahlen immer additiv hinzu kommen und ungerade subtraktiv. Dann ergibt sich multipliziere ich anhand der Position einfach mit (-1)^i (entsprechende Gewichte hast Du bei Feed-Forward-Netzen). Siehe dazu Gewichtung ? Wikipedia

Phil

Link zu diesem Kommentar
Auf anderen Seiten teilen

ok und könntest du das mit der Auswertung noch etwas näher erklären?

was genau passiert bei der Datenanalyse?

muss ich nun die Daten im Rahmen der Auswertung gewichten?

generell: mit welchen schritten würdest du beginnen, wenn du die mathematische struktur für eine tag cloud entwickeln müsstest?

Link zu diesem Kommentar
Auf anderen Seiten teilen

ok und könntest du das mit der Auswertung noch etwas näher erklären?

was genau passiert bei der Datenanalyse?

Ich werde Dir hier sicherlich keine Einführung in Statistik bzw Stochastik geben können. Das Wissen musst Du Dir selbst aneignen

muss ich nun die Daten im Rahmen der Auswertung gewichten?

Das sind sind Fragen, die problembezogen zu beantworten sind

generell: mit welchen schritten würdest du beginnen, wenn du die mathematische struktur für eine tag cloud entwickeln müsstest?

Datenhäufigkeit ermitteln, versuchen daraus den Schluss auf die Verteilung zu bekommen und dann überlegen wie ich das visuell sinnvoll darstelle.

Ich denke mal, dass man mit der Power-Law Verteilung schon recht gut liegt. Die visuelle Ansicht ist ja in das Design der Webseite anzupassen

Ich würde wohl eher ein völlig anderes Verfahren einsetzen Clusteranalyse ? Wikipedia weil ich damit auch Ähnlichkeiten der Tag ermitteln kann, da z.B. das Wort "Dorf" bzw "Stadt" letztendlich eine ähnliche Bedeutung haben.

Phil

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich würde so vorgehen:

Ich würde zuerst mal die Häufigkeit, mit der ein Tag vorkommt ermitteln.

Dann würde ich zusammen mit der Häufigkeit und eventuell anderen Parametern (wie zb. Datum) eine Gewichtung der Tags erstellen.

Nun würde ich mir ansehen, wie die Taggewichtungen verteilt sind (wie du sagstest warscheinlich eine Power-law-verteilung), und anhand dessen eine passende Interpolation zur Größenermittlung durchführen.

Wäre dieses Verfahren i.A. korrekt, oder vergesse ich etwas?

Link zu diesem Kommentar
Auf anderen Seiten teilen

I

Ich würde zuerst mal die Häufigkeit, mit der ein Tag vorkommt ermitteln.

Dann würde ich zusammen mit der Häufigkeit und eventuell anderen Parametern (wie zb. Datum) eine Gewichtung der Tags erstellen.

Nun würde ich mir ansehen, wie die Taggewichtungen verteilt sind (wie du sagstest warscheinlich eine Power-law-verteilung), und anhand dessen eine passende Interpolation zur Größenermittlung durchführen.

Du hast mein Post gelesen? Das ist nur um die Gewichtung bezügl des Datums erweitert.

Wenn Du den Wiki Artikel zu Schlagwortwolke ? Wikipedia liest, dann steht dort:

Prinzipiell wird die Schriftgröße eines Schlagwortes in einer Schlagwortwolke durch dessen Häufigkeit bestimmt. [...]

Bei kleinen Häufigkeiten genügt es, für jede Anzahl von eins bis zu einem Maximalwert die Schriftgröße direkt anzugeben. Für größere Werte sollte eine Normierung vorgenommen werden. Bei einer linearen Normierung wird das Gewicht ti eines Deskriptors auf eine Größenskala von 1 bis f abgebildet, wobei tmin und tmax den Wertebereich der vorhandenen Gewichte angeben. [...]

Da die Anzahl indexierter Objekte pro Schlagwort üblicherweise nach einem Potenzgesetz verteilt ist, ist für größere Wertebereiche eine logarithmische Darstellung sinnvoll. [...]

Für flektierende Sprachen wie das Deutsche müssen die Wörter vor dem Zählen zuerst lemmatisiert also auf ihre Grundform reduziert werden.

Was willst Du jetzt von mir jetzt wissen? Ob das korrekt ist was Du da machen willst, woher soll ich das beantworten können? Ich kenne weder Daten noch, das was dabei raus kommen soll.

Wenn Du so etwas implementieren sollst, dann musst Du entweder ein fertiges Tool dafür nehmen oder Dich eben mit der Mathematik / Algorithmik auseinander setzen. Aber wie Du auch siehst, ist die Datengrundlage extrem wichtig, damit Du die Häufigkeiten ermitteln kannst, je nach Sprache musst Du eben zuerst lemmatisieren.

Generell es gibt ein unzählige Menge an Visualisierungsalgorithmen, eben das von mir genannte Clustering (da unterschiedliche Varianten), MDS, Isomap, PCA (Hauptkomponentenanalyse ? Wikipedia), .... (nur mal um ein paar zu nennen). DIe Kernfrage bleibt, "was" soll Dir die Visualisierung als Ergebnis liefern, "was" hast Du für Daten und ggf. ob Du Deine Daten zuerst vorverarbeiten musst.

Phil

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...