ホームページ >データベース >mysql チュートリアル >MySQLとRuby on Railsを使った簡単な音楽レコメンド機能の開発方法

MySQLとRuby on Railsを使った簡単な音楽レコメンド機能の開発方法

WBOY
WBOYオリジナル
2023-09-21 14:45:43737ブラウズ

如何使用MySQL和Ruby on Rails开发一个简单的音乐推荐功能

MySQL と Ruby on Rails を使用して簡単な音楽レコメンデーション機能を開発する方法、具体的なコード例が必要です

音楽市場の継続的な拡大と増加に伴い、音楽の種類が多いため、ユーザーが自分の好みに合った音楽を見つけるのは困難です。したがって、音楽レコメンド機能の開発が非常に必要です。この記事では、MySQL データベースと Ruby on Rails フレームワークをベースに、簡単な音楽レコメンド機能の開発方法と具体的なコード例を紹介します。

ステップ 1: データベースの作成
まず、音楽データとユーザー設定を保存するための MySQL データベースを作成する必要があります。以下は、データベース テーブルの作成に使用される Rails 移行ファイルの例です:

class CreateSongs < ActiveRecord::Migration[6.0]
  def change
    create_table :songs do |t|
      t.string :title
      t.string :artist
      t.string :genre
    end
  end
end

class CreateUserPreferences < ActiveRecord::Migration[6.0]
  def change
    create_table :user_preferences do |t|
      t.references :user
      t.references :song
      t.integer :rating
    end
  end
end

上記のコードは 2 つのテーブルを作成します: songs は、title などの音楽情報を保存するために使用されます。 (曲名)、artist (アーティスト)、および genre (音楽タイプ); user_preferences は、各曲に対するユーザーの評価を保存するために使用されます。

ステップ 2: モデルの関係とデータの入力
Rails では、モデル間の関係を定義する必要があります。この例のモデル コードは次のとおりです。

class Song < ApplicationRecord
  has_many :user_preferences
  has_many :users, through: :user_preferences
end

class User < ApplicationRecord
  has_many :user_preferences
  has_many :songs, through: :user_preferences
end

class UserPreference < ApplicationRecord
  belongs_to :user
  belongs_to :song
end

上記のコードは、SongUser、および UserPreference の間の関係を定義します。 SongUser の間には多対多の関係があり、接続は UserPreference を通じて確立されます。

次に、サンプル データをデータベースに入力する必要があります。例の入力コードを次に示します。

Song.create(title: 'Song 1', artist: 'Artist 1', genre: 'Pop')
Song.create(title: 'Song 2', artist: 'Artist 2', genre: 'Rock')
Song.create(title: 'Song 3', artist: 'Artist 3', genre: 'Jazz')

User.create(name: 'User 1')
User.create(name: 'User 2')
User.create(name: 'User 3')

UserPreference.create(user_id: 1, song_id: 1, rating: 4)
UserPreference.create(user_id: 1, song_id: 2, rating: 5)
UserPreference.create(user_id: 2, song_id: 2, rating: 3)
UserPreference.create(user_id: 3, song_id: 3, rating: 2)

上記のコードは、3 つの曲、3 人のユーザー、および 4 つのユーザー設定の例 (曲のユーザー評価) を作成します。

ステップ 3: 音楽推奨アルゴリズムを実装する
次に、単純な音楽推奨アルゴリズムを実装する必要があります。以下は、推奨アルゴリズムの例です。

class RecommendationController < ApplicationController
  def index
    user = User.find(params[:user_id])
    rated_songs = user.songs
    similar_users = User.where.not(id: user.id).joins(:songs)
                   .where('songs.id IN (?)', rated_songs.pluck(:id)).distinct
    recommended_songs = similar_users.joins(:songs).where.not('songs.id IN (?)', rated_songs.pluck(:id))
                       .group(:song_id).average(:rating)
    @recommendations = Song.where(id: recommended_songs.keys)
                       .order(recommended_songs.values.map(&:to_f).reverse)
  end
end

上記のコードは、RecommendationsController コントローラーを定義します。ここで、index メソッドは、ユーザーの好み (つまり、ユーザーの評価) に基づいています。曲) 類似ユーザーと推奨曲を計算し、結果を @recommendations 変数に保存します。

ステップ 4: ビューの作成
最後のステップは、おすすめの曲を表示するビューを作成することです。以下は簡単なサンプル ビュー コードです:

<h1>Recommendations for User <%= @user.name %></h1>

<% @recommendations.each do |song| %>
  <p><%= song.title %></p>
  <p>Artist: <%= song.artist %></p>
  <p>Genre: <%= song.genre %></p>
<% end %>

上記のコードは、ユーザーに推奨される曲のリストを表示します。

概要:
この記事では、MySQL と Ruby on Rails を使用して簡単な音楽レコメンド機能を開発する手順を紹介します。データベースの作成とデータの入力から、モデルの関係の定義と推奨アルゴリズムの実装、結果を表示するビューの作成まで。この簡単な例が、読者が MySQL と Ruby on Rails を使用して音楽レコメンデーション機能を開発する方法を理解するのに役立つことを願っています。

以上がMySQLとRuby on Railsを使った簡単な音楽レコメンド機能の開発方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。