[RUBY] Ich habe eine einfache Empfehlungsfunktion erstellt.

Empfehlungsfunktion Grund zur Sorge

――Ich habe oft Empfehlungen im Online-Shop gesehen. image.png

――Ich habe einen empfohlenen Freund bei SNS gesehen

→ Empfehlungen wurden kürzlich verwendet → Es ist interessant, also möchte ich es herausfinden


Zum Thema passende Artikel


Machen Sie zuerst eine Filmempfehlung


Algorithmus (1)

image.png


Algorithmus (2)

image.png


Algorithmus (3) -Scoring


Ich habe Scoring in Rails geschrieben.

    def recommend_movies # recommend movies to a user
      # find all other users, equivalent to .where(‘id != ?’, self.id)
      other_users = self.class.all.where.not(id: self.id)
      # instantiate a new hash, set default value for any keys to 0
      recommended = Hash.new(0)
      # for each user of all other users
      other_users.each do |user|
        # find the movies this user and another user both liked
        common_movies = user.movies & self.movies
        # calculate the weight (recommendation rating)
        weight = common_movies.size.to_f / user.movies.size
        # add the extra movies the other user liked
        common_movie_ids = common_movies.pluck(:id)
        user.movies.each do |movie|
          next if common_movie_ids.include? movie.id
          # put the movie along with the cumulative weight into hash
          recommended[movie] += weight
        end
      end
      # sort by weight in descending order
      sorted_recommended = recommended.sort_by { |key, value| value }.reverse
    end

Anzeige in Schienen

https://github.com/phamthanhthuongbk/recommendation-rails

image.png


Machen Sie zuerst die Empfehlung eines Freundes.


Ergebnis ist

https://github.com/phamthanhthuongbk/recommendation-rails

image.png


Impressionen

――Der Algorithmus ist leicht zu verstehen, und ich habe den Effekt gesehen. ――Ich habe ein Bild der empfohlenen Bewegung. ――Für das Scoring müssen Sie sich alle DBs ansehen. Wie wäre es also mit einem großen System?

Recommended Posts

Ich habe eine einfache Empfehlungsfunktion erstellt.
[Ruby] Ich habe einen einfachen Ping-Client erstellt
[Rails] Ich habe eine Entwurfsfunktion mit enum erstellt
Ich habe eine Chat-App erstellt.
Ich habe ein einfaches Berechnungsproblemspiel in Java gemacht
Ich habe eine shopify App @java erstellt
Ich habe mit Swing eine GUI erstellt
Ich habe eine passende App erstellt (Android App)
Ich habe mit Spring Boot ein einfaches MVC-Beispielsystem erstellt
Ich habe ein Tool zur Generierung von package.xml erstellt.
[Android] Ich habe eine Schrittzähler-App erstellt.
[Rails] Ich habe eine einfache Kalender-Mini-App mit benutzerdefinierten Spezifikationen erstellt.
Ich habe eine Antwortfunktion für die Rails Tutorial-Erweiterung (Teil 1) erstellt.
Ich habe ein einfaches Suchformular mit Spring Boot + GitHub Search API erstellt.
Ich habe eine Antwortfunktion für die Rails Tutorial-Erweiterung (Teil 5) erstellt:
[Schienenentnahme] Erstellen Sie eine einfache Entnahmefunktion mit Schienen
Ich habe mit Ruby einen riskanten Würfel gemacht
Ich habe ein Plug-In für IntelliJ IDEA erstellt
Ich habe eine Janken App mit Kotlin gemacht
Ich habe eine Taschenrechner-App für Android erstellt
Ich habe ein neues Java-Bereitstellungstool erstellt
Ich habe eine Janken App mit Android gemacht
Ich habe StringUtils.isBlank gemacht
Ich habe eine Antwortfunktion für die Rails Tutorial-Erweiterung (Teil 2) erstellt: Modell ändern
Ich habe ein Diff-Tool für Java-Dateien erstellt
Ich habe ein Programm zur Beurteilung von Primzahlen in Java erstellt
04. Ich habe mit SpringBoot + Thymeleaf ein Frontend gemacht
Ich habe Mosaikkunst mit Pokemon-Bildern gemacht
Java Ich habe versucht, einen einfachen Block zu brechen
Ich habe ein Janken-Spiel in Java (CLI) gemacht.
Ich habe eine Viewer-App erstellt, die PDF anzeigt
Ich habe einen Docker-Container erstellt, um Maven auszuführen
Ich habe eine Ruby-Erweiterungsbibliothek in C erstellt
Ich habe einen LINE Bot mit Rails + Heroku gemacht
Ich habe mit Ruby On Rails ein Portfolio erstellt
Ich habe eine einfache Grafikbibliothek für Smartphone-Apps erstellt [MP Android Chart Kai]
Ich habe ein Docker-Image für die japanische Version von SDAPS erstellt
Ich habe ein Check-Tool für das Release-Modul erstellt
Ich habe eine Methode entwickelt, um nach Premium Friday zu fragen
[Ruby] Ich habe einen Crawler mit Anemone und Nokogiri gemacht.
Ich habe mit WebAssembly einen Zeichnungschat "8bit Paint Chat" erstellt
Ich habe im Frühjahr einen Restful-Server und -Client erstellt.
Ich habe eine Bibliothek erstellt, die in Safari wie ein Tab funktioniert !!
Ich habe eine Bibliothek zum Anzeigen von Tutorials auf Android erstellt.
Ich habe einen Wrapper erstellt, der KNP von Java aus aufruft
Ich habe eine Funktion zum Registrieren von Bildern bei der API in Spring Framework erstellt. Teil 1 (API Edition)
Ich möchte der Kommentarfunktion eine Löschfunktion hinzufügen
Ich habe eine Antwortfunktion für die Erweiterung Rails Tutorial (Teil 4) erstellt: Eine Funktion, die den Benutzer einzigartig macht
Ich habe eine Funktion zum Registrieren von Bildern bei der API in Spring Framework erstellt. Teil 2 (Client Edition)
Ich habe versucht, eine japanische Version der Automatik-Mail von Rails / devise zu erstellen
Ich habe die Serverseite des Online-Kartenspiels gemacht made
Ich habe eine Entwicklungsumgebung mit Rails6 + Docker + PostgreSQL + Materialise erstellt.
Ich möchte eine Produktinformationsbearbeitungsfunktion ~ part1 ~ implementieren
Ich habe ein Plug-In erstellt, das Jextract mit Gradle-Aufgaben ausführt
[Anfänger] Ich habe ein Programm zum Verkauf von Kuchen in Java erstellt
Ich habe die Serverseite des Online-Kartenspiels gemacht made