Ich habe viele Inhaltselemente in der Datenbank gespeichert und weiß, welche Tags ein Benutzer interessiert. Alice zum Beispiel zeigt Interesse an Tags wie "healthcare", "sports" und "social". Jedes Inhaltselement enthält ein oder mehrere Tags. Wie würde ich diese anpassen, um Alice neue Inhalte zu empfehlen?Übereinstimmen von Benutzerinteressen mit Inhalt (basierend auf Tags)
Betrachten Sie diese grundlegenden Datenbanktabellen:
CREATE TABLE `content_tag` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`item_id` INT(11) NOT NULL,
`tag_id` INT(11) NOT NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE `tag` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NOT NULL,
PRIMARY KEY (`id`)
);
Und ich habe Alice Interessen neben einer (Relevanz) Partitur, die wie Gewichte wirken:
array:3 [
'healthcare' => 2.20
'sports' => 1.30
'socal' => 0.5
]
Wie würden Sie diesen Ansatz?
Gibt es eine Möglichkeit, einen Algorithmus dafür zu verwenden, wie die Kosinus-Simularität, oder ist dies nur für Sätze gedacht?
Was haben Sie bisher versucht? Wird der Score als "Gewicht" beim Sortieren der Ergebnisse fungieren? –
Sie können die Funktion [FIELD] (http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_field) von MySQL auschecken (für eine benutzerdefinierte Sortierung basierend auf der Interessenbewertung). Es sollte auch in einem ORDER BY funktionieren. –
@MagnusEriksson Die 'FIELD' Funktion sieht sehr vielversprechend aus. Ich werde das untersuchen. – JasonK