Elevi7 commited on
Commit
e46c8b4
·
verified ·
1 Parent(s): 418ea5f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -15
app.py CHANGED
@@ -4,24 +4,22 @@ from sentence_transformers import SentenceTransformer, util
4
  import torch
5
  from itertools import chain
6
 
7
- raw_dataset = load_dataset("asuender/motivational-quotes", "quotes_extended", split="train")
8
-
9
- quotes = [item["quote"] for item in raw_dataset]
10
- authors = [item["author"] for item in raw_dataset]
11
- tags_list = [item["tags"] for item in raw_dataset]
12
-
13
- all_tags = list(set(chain.from_iterable(tags_list)))
14
- all_tags.sort()
15
-
16
  model = SentenceTransformer("all-MiniLM-L6-v2")
17
  quote_embeddings = model.encode(quotes, convert_to_tensor=True)
18
 
 
19
  def recommend_quote(mood_input, selected_tag):
20
- filtered = [
21
- (q, a, i) for i, (q, a, t) in enumerate(zip(quotes, authors, tags_list)) if selected_tag in t
22
- ]
23
  if not filtered:
24
- return "Sorry, no quotes found for that category."
25
 
26
  f_quotes = [q for q, _, _ in filtered]
27
  f_authors = [a for _, a, _ in filtered]
@@ -33,11 +31,12 @@ def recommend_quote(mood_input, selected_tag):
33
  top_k = torch.topk(similarities, k=min(3, len(f_quotes)))
34
 
35
  result = ""
36
- for i in top_k.indices[0]:
37
- result += f"{f_quotes[i]}\n {f_authors[i]}\n\n"
38
 
39
  return result.strip()
40
 
 
41
  iface = gr.Interface(
42
  fn=recommend_quote,
43
  inputs=[
 
4
  import torch
5
  from itertools import chain
6
 
7
+ # Load dataset
8
+ dataset = load_dataset("asuender/motivational-quotes", "quotes_extended", split="train")
9
+ quotes = [item["quote"] for item in dataset]
10
+ authors = [item["author"] for item in dataset]
11
+ tags_list = [item["tags"] for item in dataset]
12
+ all_tags = sorted(set(chain.from_iterable(tags_list)))
13
+
14
+ # Load model
 
15
  model = SentenceTransformer("all-MiniLM-L6-v2")
16
  quote_embeddings = model.encode(quotes, convert_to_tensor=True)
17
 
18
+ # Define recommendation logic
19
  def recommend_quote(mood_input, selected_tag):
20
+ filtered = [(q, a, i) for i, (q, a, t) in enumerate(zip(quotes, authors, tags_list)) if selected_tag in t]
 
 
21
  if not filtered:
22
+ return "😕 Sorry, no quotes found for that category."
23
 
24
  f_quotes = [q for q, _, _ in filtered]
25
  f_authors = [a for _, a, _ in filtered]
 
31
  top_k = torch.topk(similarities, k=min(3, len(f_quotes)))
32
 
33
  result = ""
34
+ for idx in top_k.indices[0]:
35
+ result += f"\"{f_quotes[idx]}\"\n {f_authors[idx]}\n\n"
36
 
37
  return result.strip()
38
 
39
+ # Gradio UI
40
  iface = gr.Interface(
41
  fn=recommend_quote,
42
  inputs=[