Anime recommender made in Python

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Cloud Rocket
Seçkin Üye
Katılım
13 Ağu 2022
Mesajlar
385
Çözümler
8
Tepki puanı
88
Ödüller
3
3 HİZMET YILI
Necessary libraries:

import pandas
import streamlit

NOTE : Code written to search for anime genres you like and watch constantly


Python:
import pandas as pd
import streamlit as st
st.header('ANIME RECOMMENDER')
df_anime = pd.read_csv('anime.csv')
df_notes = pd.read_csv('rating.csv')

df = pd.merge(df_notes, df_anime.drop('rating', axis=1), on='anime_id')

df.groupby('name')['rating'].count().sort_values(ascending=False).head(10)

notes = pd.DataFrame(df.groupby('name')['rating'].mean())
notes['number of reviews'] = pd.DataFrame(df.groupby('name')['rating'].count())
notes['average rating'] = pd.DataFrame(df.groupby('name')['rating'].mean().round(2))

genre = pd.DataFrame(data=df_anime[['name', 'genre']])
genre.set_index('name', inplace=True)

name_the_anime = st.sidebar.selectbox('Animes', df_anime['name'])


def verificar_genre(list_genre, string):
    if any(x in string for x in list_genre):
        return True
    else:
        return False

def recomendar_anime(name_the_anime, n):
    genre_anime = genre.loc[name_do_anime].values[0].split(', ')
    cols = df_anime[df_anime['genre'].apply(lambda x: verificar_genre(genre_anime, str(x)))]['name'].tolist()
    matriz_de_animes = df[df['name'].isin(cols)].pivot_table(index='user_id', columns='name', values='rating')
    anime_note = matriz_de_animes[name_the_anime]
    anime_similar = matriz_de_animes.corrwith(anime_note)
    anime_correlated = pd.DataFrame(anime_similar, columns=['correlated'])
    anime_correlated = anime_correlated.join(notes[['number of reviews', 'average rating']])
    anime_correlated.dropna(inplace=True)
    animes_recommended = anime_correlated[anime_correlated['number of reviews'] > 3000].sort_values(
        'correlated', ascending=False)
    animes_recommended = animes_recommended.rename_axis('Animes recommended')
    return animes_recommended.head(n + 1)


df_final = recomendar_anime(name_the_anime, 5)
st.write('recommended:')
st.dataframe(df_final)
 
:d
Süper Üye
Katılım
3 May 2021
Mesajlar
621
Çözümler
12
Tepki puanı
108
Ödüller
5
5 HİZMET YILI
Do i need change something in the code?
 
Seçkin Üye
Katılım
26 Ağu 2021
Mesajlar
408
Tepki puanı
55
Ödüller
5
Yaş
26
4 HİZMET YILI
what we need to do? xd
 
Uzman Üye
Katılım
18 Şub 2018
Mesajlar
186
Tepki puanı
23
Ödüller
6
Yaş
27
8 HİZMET YILI
So what is the purpose of this actually? It just recommends anime?
 
mistake is a path
Seçkin Üye
Katılım
15 Nis 2022
Mesajlar
321
Çözümler
2
Tepki puanı
41
Ödüller
3
4 HİZMET YILI
i cp/pst and its says ModuleNotFoundError: No module named 'streamlit'

 
Üye
Katılım
17 Mar 2016
Mesajlar
2
Tepki puanı
0
Ödüller
6
10 HİZMET YILI
pandaları pd olarak içe aktar
akıcılığı st olarak içe aktar
st.header('ANIME TAVSİYE EDER')
df_anime = pd.read_csv('anime.csv')
df_notes = pd.read_csv('rating.csv')

df = pd.merge(df_notes, df_anime.drop('rating', axis=1), on='anime_id')

df.groupby('name')['rating'].count().sort_values(artan=Yanlış).head(10)

notlar = pd.DataFrame(df.groupby('name')['rating'].mean())
notlar['inceleme sayısı'] = pd.DataFrame(df.groupby('name')['rating'].count())
notlar['ortalama derecelendirme'] = pd.DataFrame(df.groupby('name')['rating'].mean().round(2))

tür = pd.DataFrame(veri=df_anime[['ad', 'tür']])
tür.set_index('ad', inplace=Doğru)

name_the_anime = st.sidebar.selectbox('Animler', df_anime['ad'])


def verificar_genre(list_genre, string):
varsa (list_genre'de x için dizede x):
dönüş True
başka:
dönüş Yanlış

def recomendar_anime(name_the_anime, n):
tür_anime = tür.loc[ad_do_anime].values[0].split(', ')
cols = df_anime[df_anime['tür'].apply(lambda x: verificar_genre(genre_anime, str(x)))]['name'].tolist()
matriz_de_animes = df[df['name'].isin(cols)].pivot_table(index='user_id', column='name', values='rating')
anime_note = matriz_de_animes[name_the_anime]
anime_similar = matriz_de_animes.corrwith(anime_note)
anime_korele = pd.DataFrame(anime_similar, sütunlar=['ilişkili'])
anime_corrated = anime_correlated.join(notlar[['inceleme sayısı', 'ortalama puan']])
anime_korele.dropna(inplace=Doğru)
animes_recommended = anime_correlation[anime_correlation['inceleme sayısı'] > 3000].sort_values(
'ilişkili', artan=Yanlış)
animes_recommended = animes_recommended.rename_axis('Animeler önerilir')
dönüş animes_recommended.head(n + 1)


df_final = tavsiye_anime(name_the_anime, 5)
st.write('önerilen:')
st.dataframe(df_final)
 
Üye
Katılım
11 Nis 2020
Mesajlar
44
Tepki puanı
1
Ödüller
2
Yaş
26
6 HİZMET YILI
So what is the purpose of this actually? It just recommends anime?
 
Süper Üye
Katılım
15 Ocak 2021
Mesajlar
689
Tepki puanı
459
Ödüller
4
Yaş
33
5 HİZMET YILI
I don't know what i'm doing here, but i like it and try someday
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...