FilmReview / app_utils.py
AxelFritz1
first commit
b0f7578
raw
history blame
2.9 kB
import pandas as pd
trailer_links = pd.read_csv("./data/trailer_links.csv")
notes = pd.read_csv("./data/notes_percentage_positive.csv")
notes["Film"] = notes["Film"].apply(lambda x : x.replace("_", " "))
positive_reviews = pd.read_csv("./data/postive_reviews.csv")
positive_reviews["titre"] = positive_reviews["titre"].apply(lambda x : x.replace("_", " "))
negative_reviews = pd.read_csv("./data/negative_reviews.csv")
negative_reviews["titre"] = negative_reviews["titre"].apply(lambda x : x.replace("_", " "))
def get_link_by_movie_name(movie_name):
"""
Recherche le lien de la bande-annonce d'un film dans un DataFrame.
Parameters:
- movie_name (str): Le nom du film pour lequel on souhaite obtenir le lien de la bande-annonce.
Returns:
- str: Le lien de la bande-annonce du film s'il est trouvé dans le DataFrame.
Si le film n'est pas trouvé, la fonction renvoie "Pas de lien disponible".
"""
row = trailer_links[trailer_links['Title'] == movie_name]
if not row.empty:
return row['TrailerLink'].values[0]
else:
return "Pas de lien disponible"
def get_infos_fim(movie_name):
"""
Récupère les informations sur un film à partir d'un DataFrame.
Parameters:
- movie_name (str): Le nom du film pour lequel on souhaite obtenir les informations.
Returns:
- tuple: Un tuple contenant les informations du film.
- Si le film est trouvé dans le DataFrame, le tuple contient la note du film et le pourcentage positif.
- Si le film n'est pas trouvé, le tuple contient (0, 0).
"""
row = notes[notes['Film'] == movie_name]
if not row.empty:
note = row["notes"].values[0]
pcentage_positif = row["pourcentages_positive"].values[0]
return (note, pcentage_positif)
else :
return(0,0)
def get_example_comments(movie_name) :
"""
Obtient des commentaires exemples positifs et négatifs sur un film à partir de DataFrames de critiques.
Parameters:
- movie_name (str): Le nom du film pour lequel on souhaite obtenir des commentaires exemples.
Returns:
- tuple: Un tuple contenant les commentaires exemples positifs et négatifs du film.
- Si des commentaires sont disponibles, le tuple contient le commentaire le plus positif et le plus négatif.
- Si aucun commentaire n'est trouvé, le tuple contient (None, None).
"""
temp = positive_reviews[positive_reviews['avis'].str.len() < 2000]
index_positive = temp[temp['titre'] == movie_name]["sentiment_score_VADER"].idxmax()
positive_comments = temp.loc[index_positive, 'avis']
temp = negative_reviews[negative_reviews['avis'].str.len() < 2000]
index_negative = temp[temp['titre'] == movie_name]["sentiment_score_VADER"].idxmin()
negative_comments = temp.loc[index_negative, 'avis']
return(positive_comments, negative_comments)