Recommendation Systems তৈরি করা

Recommendation Systems তৈরি করা

Recommendation Systems হল এমন অ্যালগরিদম যা ব্যবহারকারীদের জন্য ব্যক্তিগতকৃত সুপারিশ তৈরি করে। এগুলি মূলত ই-কমার্স, স্ট্রিমিং সার্ভিস, সোশ্যাল মিডিয়া ইত্যাদিতে ব্যবহৃত হয়। নিচে একটি মৌলিক রেকমেন্ডেশন সিস্টেম তৈরি করার প্রক্রিয়া আলোচনা করা হলো, যার মধ্যে বিভিন্ন ধরনের পদ্ধতি অন্তর্ভুক্ত করা হবে।


Recommendation Systems এর প্রকারভেদ

Collaborative Filtering: ব্যবহারকারীদের আচরণ এবং পছন্দের উপর ভিত্তি করে সুপারিশ তৈরি করা হয়।

  • User-based Collaborative Filtering: সমপর্যায়ের ব্যবহারকারীদের পছন্দ বিশ্লেষণ করে।
  • Item-based Collaborative Filtering: পণ্যগুলির পছন্দ বিশ্লেষণ করে।

Content-Based Filtering: পণ্য বা কনটেন্টের বৈশিষ্ট্য ব্যবহার করে সুপারিশ তৈরি করা হয়। উদাহরণস্বরূপ, একটি বইয়ের লেখক, বিষয়বস্তু ইত্যাদি।

Hybrid Systems: উভয় পদ্ধতি (Collaborative এবং Content-Based) ব্যবহার করে সুপারিশ তৈরি করা।


Recommendation System তৈরি করার ধাপ

১. ডেটা সংগ্রহ

প্রথমে আপনার ডেটাসেট সংগ্রহ করুন। উদাহরণস্বরূপ, একটি সিনেমার রেটিং ডেটাসেট।

import pandas as pd

# উদাহরণ রেটিং ডেটাসেট তৈরি
data = {
    'user_id': [1, 1, 1, 2, 2, 3, 3, 3],
    'item_id': [101, 102, 103, 101, 104, 102, 103, 105],
    'rating': [5, 3, 4, 4, 2, 4, 5, 3]
}

df = pd.DataFrame(data)

২. Collaborative Filtering পদ্ধতি

এখন Collaborative Filtering ব্যবহার করে সুপারিশ তৈরি করা হবে। এখানে Surprise লাইব্রেরি ব্যবহার করা হবে।

from surprise import Dataset, Reader, KNNBasic
from surprise.model_selection import train_test_split

# Surprise লাইব্রেরির Reader ব্যবহার করে ডেটা প্রস্তুতি
reader = Reader(rating_scale=(1, 5))
data = Dataset.load_from_df(df[['user_id', 'item_id', 'rating']], reader)

# ডেটা বিভক্ত করা
trainset, testset = train_test_split(data, test_size=0.2)

# KNNBasic মডেল তৈরি করা
model = KNNBasic()
model.fit(trainset)

# পূর্বাভাস তৈরি করা
predictions = model.test(testset)

# ফলাফল দেখানো
for uid, iid, true_r, est, _ in predictions:
    print(f'User: {uid}, Item: {iid}, True Rating: {true_r}, Estimated Rating: {est}')

৩. Content-Based Filtering পদ্ধতি

এখন Content-Based Filtering ব্যবহার করে সুপারিশ তৈরি করা হবে। এখানে একটি সিম্পল কেসের জন্য TfidfVectorizer ব্যবহার করা হবে।

from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import linear_kernel

# উদাহরণ কনটেন্ট ডেটাসেট তৈরি
content_data = {
    'item_id': [101, 102, 103, 104, 105],
    'description': [
        'Action movie with thrilling scenes',
        'Romantic comedy with great storyline',
        'Science fiction with space adventures',
        'Documentary about wildlife',
        'Horror movie with suspense'
    ]
}

content_df = pd.DataFrame(content_data)

# TF-IDF ভেক্টরাইজেশন
tfidf = TfidfVectorizer(stop_words='english')
tfidf_matrix = tfidf.fit_transform(content_df['description'])

# কসমিক্যালারিটি বের করা
cosine_sim = linear_kernel(tfidf_matrix, tfidf_matrix)

# সুপারিশ ফাংশন তৈরি করা
def recommend(item_id, cosine_sim=cosine_sim):
    idx = content_df[content_df['item_id'] == item_id].index[0]
    sim_scores = list(enumerate(cosine_sim[idx]))
    sim_scores = sorted(sim_scores, key=lambda x: x[1], reverse=True)
    sim_scores = sim_scores[1:6]  # শীর্ষ 5 প্রাপ্তি
    item_indices = [i[0] for i in sim_scores]
    return content_df.iloc[item_indices]

# সুপারিশ তৈরি করা
recommended_items = recommend(101)
print("\nRecommended Items based on Content:")
print(recommended_items)

সারসংক্ষেপ

Recommendation Systems ব্যবহারকারীদের জন্য ব্যক্তিগতকৃত সুপারিশ তৈরি করতে ব্যবহৃত হয়। উভয় Collaborative Filtering এবং Content-Based Filtering পদ্ধতি ব্যবহার করে আপনি বিভিন্ন ধরনের সুপারিশ তৈরি করতে পারেন। উপরোক্ত উদাহরণগুলিতে দেখা গেছে কিভাবে একটি মৌলিক রেকমেন্ডেশন সিস্টেম তৈরি করা যায় এবং কিভাবে ডেটা সংগ্রহ, প্রক্রিয়াকরণ এবং সুপারিশ তৈরি করা যায়।

Content added By

আরও দেখুন...

Promotion