NursNurs commited on
Commit
962fc4e
·
1 Parent(s): 90037e5

Added expanders to results

Browse files
Files changed (1) hide show
  1. app.py +67 -29
app.py CHANGED
@@ -102,8 +102,19 @@ def sort_by_rating(k):
102
  k - int - how many top-matching places to show
103
  '''
104
  relevance = np.array(st.session_state.precalculated_df['Relevancy'])
105
- rating = np.array(list(st.session_state.precalculated_df['Rating']))
106
  top_similar_by_rating = dict(enumerate(np.multiply(relevance, rating)))
 
 
 
 
 
 
 
 
 
 
 
107
  st.session_state.precalculated_df['Sort_rating'] = top_similar_by_rating.values()
108
 
109
  #sort in the descending order
@@ -113,6 +124,7 @@ def sort_by_rating(k):
113
  #get restaurant names
114
  names = [rest_names[i] for i in top_k_similar.keys()]
115
  result = dict(zip(names, top_k_similar.values()))
 
116
  return result
117
 
118
  #combines 2 users preferences into 1 string and fetches best options
@@ -240,9 +252,28 @@ css = """
240
  display: inline-block;
241
  padding: 5px 10px;
242
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
243
  </style>
244
  """
245
 
 
246
  # options_disability_1 = st.multiselect(
247
  # 'Do you need a wheelchair?',
248
  # ['Yes', 'No'], ['No'], key=101)
@@ -258,8 +289,9 @@ css = """
258
  # with st.form('my_form_1'):
259
  # st.subheader('**User 1**')
260
 
261
- st.write("User 1")
262
- # Eingabe-Widgets
 
263
  food_1 = st.selectbox('Select the food type you prefer', st.session_state.food, key=1)
264
  if food_1 == 'Other':
265
  food_1 = st.text_input(label="Your description", placeholder="What kind of food would you like to eat?", key=10)
@@ -276,10 +308,9 @@ additional_1 = st.text_input(label="Your description", placeholder="Anything els
276
 
277
  with_kids = st.checkbox('I will come with kids', key=200)
278
 
279
- # st.subheader('**User 2**')
280
- st.write("User 2")
281
 
282
- # Eingabe-Widgets
283
  food_2 = st.selectbox('Select the food type you prefer', st.session_state.food, key=3)
284
  if food_2 == 'Other':
285
  food_2 = st.text_input(label="Your description", placeholder="What kind of food would you like to eat?", key=4)
@@ -351,29 +382,36 @@ if submit or (not st.session_state.precalculated_df.empty):
351
 
352
  condition = st.session_state.precalculated_df['Names'] == name
353
  rating = st.session_state.precalculated_df.loc[condition, 'Rating'].values[0]
354
- st.write(f":{nums_emojis[i]}: **{name}** **({str(rating)}**:star:) :", 'match score:', score)
355
-
356
- # Use the condition to extract the value(s)
357
- # description = st.session_state.precalculated_df.loc[condition, 'Strings']
358
- # st.write(description)
359
-
360
- type = [item for item in eval(st.session_state.precalculated_df.loc[condition, 'Category'].values[0])]
361
- # Display HTML with the custom styles
362
- for word in type:
363
- st.markdown(css, unsafe_allow_html=True)
364
- st.markdown(f'<div class="blue-box">{word}</div>', unsafe_allow_html=True)
365
- # st.write("Restaurant type:", str(type))
366
-
367
- keywords = [item[0] for item in eval(st.session_state.precalculated_df.loc[condition, 'Keywords'].values[0])]
368
- for pair in keywords[:3]:
369
- st.markdown(css, unsafe_allow_html=True)
370
- st.markdown(f'<div class="orange-box">{pair[0]} {pair[1]}</div>', unsafe_allow_html=True)
371
- # st.write("Restaurant type:", str(type))
372
-
373
-
374
- url = st.session_state.precalculated_df.loc[condition, 'URL'].values[0]
375
- st.write("_Check on the map:_", url)
376
-
 
 
 
 
 
 
 
377
  i+=1
378
 
379
  # st.markdown("This is a text with <span style='font-size: 20px;'>bigger</span> and <i>italic</i> text.", unsafe_allow_html=True)
 
102
  k - int - how many top-matching places to show
103
  '''
104
  relevance = np.array(st.session_state.precalculated_df['Relevancy'])
105
+ rating = np.array(st.session_state.precalculated_df['Rating'])
106
  top_similar_by_rating = dict(enumerate(np.multiply(relevance, rating)))
107
+
108
+ ## Combine the three lists into a list of tuples (name, score, price)
109
+ # restaurant_data = list(zip(rest_names, relevance, rating))
110
+
111
+ # # Sort the combined list based on rating (index 2) in descending order and relevance (index 1) in descending order
112
+ # sorted_data = sorted(restaurant_data, key=lambda x: (-x[1], -x[2]))
113
+
114
+ # # Extract the sorted lists
115
+ # sorted_restaurant_names, sorted_relevance, sorted_rating = zip(*sorted_data)
116
+ # result = {sorted_restaurant_names[i]: sorted_relevance[i] for i in range(k)}
117
+
118
  st.session_state.precalculated_df['Sort_rating'] = top_similar_by_rating.values()
119
 
120
  #sort in the descending order
 
124
  #get restaurant names
125
  names = [rest_names[i] for i in top_k_similar.keys()]
126
  result = dict(zip(names, top_k_similar.values()))
127
+
128
  return result
129
 
130
  #combines 2 users preferences into 1 string and fetches best options
 
252
  display: inline-block;
253
  padding: 5px 10px;
254
  }
255
+
256
+ .violet-box {
257
+ border: 2px solid #004d00; /* Dark violet contour */
258
+ border-radius: 10px;
259
+ background-color: #4CAF50; /* violet background */
260
+ display: inline-block;
261
+ padding: 5px 10px;
262
+ color: #FFFFFF; /* White text color */
263
+ }
264
+
265
+ .violet-box {
266
+ border: 2px solid #8a2be2; /* Violet contour */
267
+ border-radius: 10px;
268
+ background-color: #4169E1; /* Blue background */
269
+ display: inline-block;
270
+ padding: 5px 10px;
271
+ color: #FFFFFF; /* White text color */
272
+ }
273
  </style>
274
  """
275
 
276
+
277
  # options_disability_1 = st.multiselect(
278
  # 'Do you need a wheelchair?',
279
  # ['Yes', 'No'], ['No'], key=101)
 
289
  # with st.form('my_form_1'):
290
  # st.subheader('**User 1**')
291
 
292
+ st.markdown(css, unsafe_allow_html=True)
293
+ st.markdown(f'<div class="violet-box">User 1</div>', unsafe_allow_html=True)
294
+
295
  food_1 = st.selectbox('Select the food type you prefer', st.session_state.food, key=1)
296
  if food_1 == 'Other':
297
  food_1 = st.text_input(label="Your description", placeholder="What kind of food would you like to eat?", key=10)
 
308
 
309
  with_kids = st.checkbox('I will come with kids', key=200)
310
 
311
+ st.markdown(css, unsafe_allow_html=True)
312
+ st.markdown(f'<div class="violet-box">User 2</div>', unsafe_allow_html=True)
313
 
 
314
  food_2 = st.selectbox('Select the food type you prefer', st.session_state.food, key=3)
315
  if food_2 == 'Other':
316
  food_2 = st.text_input(label="Your description", placeholder="What kind of food would you like to eat?", key=4)
 
382
 
383
  condition = st.session_state.precalculated_df['Names'] == name
384
  rating = st.session_state.precalculated_df.loc[condition, 'Rating'].values[0]
385
+ with st.expander(f":{nums_emojis[i]}: **{name}** **({str(rating)}**:star:): match score: {score}"):
386
+
387
+ #f":{nums_emojis[i]}: **{name}** **({str(rating)}**:star:) :", 'match score:', score
388
+ try:
389
+ if type(st.session_state.precalculated_df.loc[condition, 'Price'].values[0]) == str:
390
+ st.write("Price category:", st.session_state.precalculated_df.loc[condition, 'Price'].values[0])
391
+ except:
392
+ pass
393
+
394
+ # Use the condition to extract the value(s)
395
+ # description = st.session_state.precalculated_df.loc[condition, 'Strings']
396
+ # st.write(description)
397
+
398
+ type = [item for item in eval(st.session_state.precalculated_df.loc[condition, 'Category'].values[0])]
399
+ # Display HTML with the custom styles
400
+ for word in type:
401
+ st.markdown(css, unsafe_allow_html=True)
402
+ st.markdown(f'<div class="blue-box">{word}</div>', unsafe_allow_html=True)
403
+ # st.write("Restaurant type:", str(type))
404
+
405
+ keywords = [item[0] for item in eval(st.session_state.precalculated_df.loc[condition, 'Keywords'].values[0])]
406
+ for pair in keywords[:3]:
407
+ st.markdown(css, unsafe_allow_html=True)
408
+ st.markdown(f'<div class="orange-box">{pair[0]} {pair[1]}</div>', unsafe_allow_html=True)
409
+ # st.write("Restaurant type:", str(type))
410
+
411
+
412
+ url = st.session_state.precalculated_df.loc[condition, 'URL'].values[0]
413
+ st.write(f"_Check on the_ [_map_]({url})")
414
+
415
  i+=1
416
 
417
  # st.markdown("This is a text with <span style='font-size: 20px;'>bigger</span> and <i>italic</i> text.", unsafe_allow_html=True)