rijdev commited on
Commit
e214e35
·
verified ·
1 Parent(s): 908975c

added validation for no genre

Browse files
Files changed (1) hide show
  1. app.py +8 -5
app.py CHANGED
@@ -22,8 +22,11 @@ all_genres = set()
22
  df["genres"].str.split("|").apply(all_genres.update)
23
  genre_list = sorted(all_genres)
24
 
25
- # 5) Updated recommendation function with year range
26
  def recommend_by_genre_and_year_range(genre: str, start_year: int, end_year: int, top_k: int = 5) -> str:
 
 
 
27
  mask_genre = metadata["genres"].str.lower().str.contains(genre.lower(), na=False)
28
  year_col = metadata["release_year"].fillna(0)
29
  mask_year = (year_col >= start_year) & (year_col <= end_year)
@@ -38,11 +41,11 @@ def recommend_by_genre_and_year_range(genre: str, start_year: int, end_year: int
38
  for _, row in picks.iterrows()
39
  )
40
 
41
- # 6) Gradio interface with year range inputs
42
  iface = gr.Interface(
43
  fn=recommend_by_genre_and_year_range,
44
  inputs=[
45
- gr.Dropdown(choices=genre_list, label="Select Genre"),
46
  gr.Number(label="Start Year", value=1990, precision=0),
47
  gr.Number(label="End Year", value=1995, precision=0),
48
  gr.Slider(1, 10, step=1, label="Number of Recommendations", value=5),
@@ -51,8 +54,8 @@ iface = gr.Interface(
51
  title="🎬 Movie Recommender by Genre & Year Range",
52
  description="""
53
  Loads local MovieLens metadata (ml-32m), extracts release years from titles,
54
- normalizes genres, and filters by genre and custom year range. No typing needed — just click!
55
- """,
56
  )
57
 
58
  if __name__ == "__main__":
 
22
  df["genres"].str.split("|").apply(all_genres.update)
23
  genre_list = sorted(all_genres)
24
 
25
+ # 5) Recommendation function with year range and genre check
26
  def recommend_by_genre_and_year_range(genre: str, start_year: int, end_year: int, top_k: int = 5) -> str:
27
+ if not genre:
28
+ return "⚠️ Please select a genre."
29
+
30
  mask_genre = metadata["genres"].str.lower().str.contains(genre.lower(), na=False)
31
  year_col = metadata["release_year"].fillna(0)
32
  mask_year = (year_col >= start_year) & (year_col <= end_year)
 
41
  for _, row in picks.iterrows()
42
  )
43
 
44
+ # 6) Gradio interface
45
  iface = gr.Interface(
46
  fn=recommend_by_genre_and_year_range,
47
  inputs=[
48
+ gr.Dropdown(choices=genre_list, label="Select Genre", value=None),
49
  gr.Number(label="Start Year", value=1990, precision=0),
50
  gr.Number(label="End Year", value=1995, precision=0),
51
  gr.Slider(1, 10, step=1, label="Number of Recommendations", value=5),
 
54
  title="🎬 Movie Recommender by Genre & Year Range",
55
  description="""
56
  Loads local MovieLens metadata (ml-32m), extracts release years from titles,
57
+ normalizes genres, and filters by genre and a custom year range.
58
+ """
59
  )
60
 
61
  if __name__ == "__main__":