Movie-Recommendation-System / src /streamlit_app.py
MSK34's picture
Update src/streamlit_app.py
c93b9dd verified
Raw
History Blame Contribute Delete
1.63 kB
import streamlit as st
import pandas as pd
st.title("Movie Recommendation System")
st.write("This app recommends similar movies based on user ratings.")
# Verileri okuyoruz
ratings = pd.read_csv("src/ratings.csv")
movies = pd.read_csv("src/movies.csv")
# Verileri birleştiriyoruz
df = pd.merge(ratings, movies, on="movieId")
# Film istatistikleri
movie_stats = df.groupby("title")["rating"].agg(["mean", "count"])
# Kullanıcı-film puan matrisi
movie_matrix = df.pivot_table(
index="userId",
columns="title",
values="rating"
)
def recommend_movies(movie_name):
movie_user_ratings = movie_matrix[movie_name]
similar_movies = movie_matrix.corrwith(
movie_user_ratings
)
corr_df = pd.DataFrame(
similar_movies,
columns=["Correlation"]
)
corr_df.dropna(inplace=True)
corr_df = corr_df.join(
movie_stats["count"]
)
recommendations = corr_df[
corr_df["count"] > 100
]
recommendations = recommendations.sort_values(
"Correlation",
ascending=False
)
recommendations = recommendations[
recommendations.index != movie_name
]
return recommendations.head(10)
movie_list = sorted(
movie_stats[movie_stats["count"] > 100].index
)
selected_movie = st.selectbox(
"Select a movie",
movie_list
)
if st.button("Recommend"):
result = recommend_movies(selected_movie)
st.subheader("Recommended Movies")
if result.empty:
st.warning("Bu film için yeterli öneri bulunamadı.")
else:
for movie in result.index:
st.write(movie)