Antworten auf deine Fragen:
Neues Thema erstellen

Relevanz und Übereinstimmung berechnen?

ap1

Grafik/Web

Hi Leute

Eine Frage. WIe würdet ihr das machen?
Man ist ein Benutzer und hat verschiedene Geschmäcker etwa

music.hiphop
music.rap
music.dance
location.club
location.disco
anderes.test1
anderes.test2

Dann kann man nach Events suchen die die ähnlichen Attribute haben können etwa

EVENT1
music.rock
music.metal
location.bar
anderes.test4

EVENT2
music.hiphop
music.rap
location.disco
anderes.test2

EVENT3
music.rock
music.pop
music.hiphop
location.disco
anderes.test1
anderes.test4

Event 1 trifft überhaupt nicht auf den Benutzer zu. Event 2 trifft komplett zu und Event 3 naja so halb halb... Versteht ihr?
Jetzt soll Event 1 der Relevanz nach ganz unten sortiert werden, Event 2 ganz oben und Event 3 mitten drin. Dazu möchte ich gerne einen Relevanzwert (wie Wikipediasuche usw...) ausgeben - zu eigenen Vergleichszwecken!

Wie kann ich es anstellen?
PS: Die Events werden wahrscheinlich so in ein Array geladen und durchsucht:
$event["event1"]["music"]["rock"] = true
$event["event1"]["music"]["metal] = true
$event["event1"]["location"]["bar"] = true
etc...

Viiiiielen vielen dank^^ ich verwzeifel :(
 

ChrisvA

Aktives Mitglied

AW: Relevanz und Übereinstimmung berechnen?

Also, du solltest am Besten das ganze Kategorie für Kategorie testen.
Am Besten machst du eine Funktion, die dir immer die Anzahl der Übereinstimmungen/ Unterschiede.
Anschließend musst du nur noch die Unterschiede/ Übereinstimmungen zusammenzählen und danach sortieren.
 

ap1

Grafik/Web

AW: Relevanz und Übereinstimmung berechnen?

Also, du solltest am Besten das ganze Kategorie für Kategorie testen.
Am Besten machst du eine Funktion, die dir immer die Anzahl der Übereinstimmungen/ Unterschiede.
Anschließend musst du nur noch die Unterschiede/ Übereinstimmungen zusammenzählen und danach sortieren.

So hab ichs bis jetzt auch vor gehabt ;)
Nur (ich habs oben vergessen zu erwähnen) möchte ich dem Benutzer unterschiedliche Gewichtungen erlauben, dh. jemd kann sagen mir ist die Musikübereinstimmung wichtiger als irgendwas anderes... So mit Prozent vielleicht? Weißt was ich mein?

vielen dank für die schnelle antwort ;)
 

saila

Moderatorle

AW: Relevanz und Übereinstimmung berechnen?

HI,

wenn ich das richtig verstanden habe, kann der User in der jeweiligen Kategorie ein Hacken setzen, was für ihn relevant ist. Dieser Hacken wird dann wiederum irgendwo gespeichert. Am besten in einer eigenen Tabelle mit Beziehung zu den Kategorien.
Gleichzeitig speicherst du mit den User gewählten Kategoriepunkten die Anhzahl der vorhandene jeweiligen Unterkategoirepunkte.

Somit kannt du im Grunde direkt die relevanz darstellen und gleichzeitig innerhalb des Query auch die ORDER BY nutzen für die Sortierfolge.
 

ChrisvA

Aktives Mitglied

AW: Relevanz und Übereinstimmung berechnen?

Dann werte eben alles, was als besonders wichtig eingetragen ist doppelt. Also entweder doppelt positiv, oder doppelt negativ.
 

ap1

Grafik/Web

AW: Relevanz und Übereinstimmung berechnen?

HI,

wenn ich das richtig verstanden habe, kann der User in der jeweiligen Kategorie ein Hacken setzen, was für ihn relevant ist. Dieser Hacken wird dann wiederum irgendwo gespeichert. Am besten in einer eigenen Tabelle mit Beziehung zu den Kategorien.
Gleichzeitig speicherst du mit den User gewählten Kategoriepunkten die Anhzahl der vorhandene jeweiligen Unterkategoirepunkte.

Somit kannt du im Grunde direkt die relevanz darstellen und gleichzeitig innerhalb des Query auch die ORDER BY nutzen für die Sortierfolge.

Das ist korrekt! Das System wählt bzw. der Benutzer kann das auch - aus einer Kategorie Sachen aus, welche in der DB gespeichert werden! Die Anzahl der vorhandenen brauch ich doch nicht speichern, per Count kann ich die doch auch auslesen oder?

Es gibt aber mehrere Benutzer die auf die gleichen Events zugreifen! Da kann ich nicht nach Relevanz ordern - oder wie meinst du?

Dann werte eben alles, was als besonders wichtig eingetragen ist doppelt. Also entweder doppelt positiv, oder doppelt negativ.

Wie meinst du?
Der User kann feste Prozente vergeben! Dh. Musik: Wichtigkeit 80%, Ort: Wichtigkeit 10%; TestBlaaa WIchtigkeit: 10%. Das soll irgendwie in die Ergebnisse eingehen.

Darüber hinaus soll es ja nicht nur bei der Suche relevanzen geben. Schließlich kann dem Benutzer auch das "Best-Matching" Event vorgeschlagen werden... und dazu muss ich die Übereinstimmungen (wie oben von jmd genannt) per Funktion in jeder Kategorie überprüfen - oder?

lg
 

saila

Moderatorle

AW: Relevanz und Übereinstimmung berechnen?

Achso - ich dachte jeder User kann für sich die Relevanz eintragen und du speicherst diese Daten um für den jeweiligen User die Darstellung zu erzeugen.

Wenn allerdings alle User eine Relevanz abgeben könnten, so speicherst du letztlich den Wert der abgegebenen %te und addierst diese in die Kategorie hinzu. Dadurch erreichst du eine generelle Relevanz einer bestimmten Kategorie und eines Unterpunktes der jeweiligen Kategie.

Besp: User klickt auf Musik - Rock und gibt 40% ein weiterer das gleiche und vergibt 30%. In der reinen addition wäre das 70 (ohne Prozent) und zur speicherung würde ich auch Dezimal nehmen bzw. einfach % aussen vor lassen und einen 0. vor die Zahl. Somit sparst du dir Speicherplatz in dem DB-Feld.

Wenn nun 100 User für Musik-Rock einen Wert für diesen Bereich vergeben haben von 4.1 und eine andere Kategorie Musik-Kuschelrock hat 1.9, dann hast du automatisch die Relevanz und kannst per SUM und ODER BY direkt die Rangliste ausgeben. Abgesehen davon kannst du die Kategorien untereinander noch dazu vergleichen und ebenfalls hierfür die gleiche Vorgehensweise ansetzen. Ausser das der User eben für diese Hauptkategorien keine eigentl. Wertung/Relevanz abgeben kann.
 

Duddle

Posting-Frequenz: 14µHz

AW: Relevanz und Übereinstimmung berechnen?

Prinzipiell müsstest du eben die Relevanz aller vorhandenen Events berechnen und dann danach sortieren. Ich bleibe mal bei deinem Beispiel und füge gleich mal zufällige Relevanz-Werte vom User ein:

Code:
music.hiphop 0.8 = 80%
music.rap 0.7
music.dance 0.3
location.club 0.2
location.disco 0.8
anderes.test1 0.1
anderes.test2 0.25

Ausserdem definiere ich, dass alle anderen Relevanz-Werte des Nutzers 0 betragen. Dann gebe ich mal jedem Attribut eines Events arbiträr 10 Punkte:

Code:
EVENT1
music.rock 10
music.metal 10
location.bar 10
anderes.test4 10

Gleiches für EVENT2, EVENT3.

Dann berechnet sich die EVENT-Relevanz aus der Summe alle Produkte über die Attribut-Punkte mit den Relevanz-Werten:

Code:
EVENT1:
musik.rock 10 * 0 (siehe oben, 0 standardmässig)
music.metal 10 * 0
location.bar 10 * 0
anderes.test4 10 * 0
--- Summe: 0

EVENT2
music.hiphop 10 * 0.8
music.rap 10 * 0.7
location.disco 10 * 0.2
anderes.test2 10 * 0.25
--- Summe: 19,5

EVENT3
music.rock 10 * 0
music.pop 10 * 0
music.hiphop 10 * 0.8
location.disco 10 * 0.2
anderes.test1 10 * 0.1
anderes.test4 10 * 0
--- Summe: 11

Sortiert nach "Summe" ergibt sich dann EVENT2, EVENT3, EVENT1.

Wäre die Nutzergewichtung anders, beispielsweise
Code:
music.hiphop 0.5 = 50%
music.rap 0.5
music.dance 0.1
location.club 0.2
location.disco 0.8
anderes.test1 0.8
anderes.test2 0.25
Dann wäre die Sortierung EVENT3 (Summe 21), EVENT2 (Summe 20,5), EVENT1.


Ob das die beste Vorgehensweise ist, weiß ich nicht. Es gibt sicherlich schon sehr schöne Lösungen, aber ich hab auf Anhieb keine googlen können. Wenn ich mich recht erinnere, heißen diese Probleme "weighted search" bzw. "gewichtetete Suche", aber so richtig gute Artikel konnte ich nicht finden.


Duddle
 

ap1

Grafik/Web

AW: Relevanz und Übereinstimmung berechnen?

Soo lange nicht mehr on gewesen ;)

Vielen Dank für die vielen guten Antworten!

Prinzipiell müsstest du eben die Relevanz aller vorhandenen Events berechnen und dann danach sortieren. Ich bleibe mal bei deinem Beispiel und füge gleich mal zufällige Relevanz-Werte vom User ein:

Code:
music.hiphop 0.8 = 80%
music.rap 0.7
music.dance 0.3
location.club 0.2
location.disco 0.8
anderes.test1 0.1
anderes.test2 0.25
Ausserdem definiere ich, dass alle anderen Relevanz-Werte des Nutzers 0 betragen. Dann gebe ich mal jedem Attribut eines Events arbiträr 10 Punkte:

Code:
EVENT1
music.rock 10
music.metal 10
location.bar 10
anderes.test4 10
Gleiches für EVENT2, EVENT3.

Dann berechnet sich die EVENT-Relevanz aus der Summe alle Produkte über die Attribut-Punkte mit den Relevanz-Werten:

Code:
EVENT1:
musik.rock 10 * 0 (siehe oben, 0 standardmässig)
music.metal 10 * 0
location.bar 10 * 0
anderes.test4 10 * 0
--- Summe: 0

EVENT2
music.hiphop 10 * 0.8
music.rap 10 * 0.7
location.disco 10 * 0.2
anderes.test2 10 * 0.25
--- Summe: 19,5

EVENT3
music.rock 10 * 0
music.pop 10 * 0
music.hiphop 10 * 0.8
location.disco 10 * 0.2
anderes.test1 10 * 0.1
anderes.test4 10 * 0
--- Summe: 11
Sortiert nach "Summe" ergibt sich dann EVENT2, EVENT3, EVENT1.

Wäre die Nutzergewichtung anders, beispielsweise
Code:
music.hiphop 0.5 = 50%
music.rap 0.5
music.dance 0.1
location.club 0.2
location.disco 0.8
anderes.test1 0.8
anderes.test2 0.25
Dann wäre die Sortierung EVENT3 (Summe 21), EVENT2 (Summe 20,5), EVENT1.


Ob das die beste Vorgehensweise ist, weiß ich nicht. Es gibt sicherlich schon sehr schöne Lösungen, aber ich hab auf Anhieb keine googlen können. Wenn ich mich recht erinnere, heißen diese Probleme "weighted search" bzw. "gewichtetete Suche", aber so richtig gute Artikel konnte ich nicht finden.


Duddle

Ich denke das wird wohl die "einfachste" Lösung sein! Danke dafür. Wenn es nicht klappt rück-melde-ich hier :)

Danke an alle!
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben