Spaces:
Build error
Build error
Commit
·
2545913
1
Parent(s):
018bb30
Update pages/1 Подбор фильмов по описанию✏️🔍.py
Browse files
pages/1 Подбор фильмов по описанию✏️🔍.py
CHANGED
|
@@ -36,6 +36,41 @@ model = load_model()
|
|
| 36 |
# Пользовательский ввод
|
| 37 |
user_input = st.text_input("Введите описание фильма:", value="", help="Чем подробнее будет ваше описание, тем точнее мы сможем подобрать для вас фильм 🤗'")
|
| 38 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 39 |
if st.button("Искать🔍🎦"):
|
| 40 |
if user_input:
|
| 41 |
def encode_description(description, tokenizer, model):
|
|
@@ -54,31 +89,43 @@ if st.button("Искать🔍🎦"):
|
|
| 54 |
recs = df.iloc[sorted_indices[0]].reset_index(drop=True)
|
| 55 |
recs.index = recs.index + 1
|
| 56 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 57 |
|
| 58 |
# Вывод рекомендованных фильмов с изображениями
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
# В колонке отображаем название фильма, описание, роли и ссылку
|
| 66 |
-
col1.info(recs['description'].iloc[i])
|
| 67 |
-
col1.markdown(f"**В ролях:** {recs['actors'].iloc[i]}")
|
| 68 |
-
col1.markdown(f"**Фильм можно посмотреть [здесь]({recs['page_url'].iloc[i]})**")
|
| 69 |
-
|
| 70 |
-
# В колонке отображаем изображение
|
| 71 |
-
col2.image(recs['image_url'].iloc[i], caption=recs['movie_title'].iloc[i], width=200)
|
| 72 |
-
with st.sidebar:
|
| 73 |
-
st.info("""
|
| 74 |
-
#### Мы смогли помочь вам с выбором?
|
| 75 |
-
""")
|
| 76 |
-
feedback = st.text_input('Поделитесь с нами вашим мнением')
|
| 77 |
|
| 78 |
-
|
|
|
|
|
|
|
|
|
|
| 79 |
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 84 |
|
|
|
|
| 36 |
# Пользовательский ввод
|
| 37 |
user_input = st.text_input("Введите описание фильма:", value="", help="Чем подробнее будет ваше описание, тем точнее мы сможем подобрать для вас фильм 🤗'")
|
| 38 |
|
| 39 |
+
genre_list = ['анимация',
|
| 40 |
+
'аниме',
|
| 41 |
+
'балет',
|
| 42 |
+
'биография',
|
| 43 |
+
'боевик',
|
| 44 |
+
'вестерн',
|
| 45 |
+
'военный',
|
| 46 |
+
'детектив',
|
| 47 |
+
'детский',
|
| 48 |
+
'документальный',
|
| 49 |
+
'драма',
|
| 50 |
+
'исторический',
|
| 51 |
+
'катастрофа',
|
| 52 |
+
'комедия',
|
| 53 |
+
'концерт',
|
| 54 |
+
'короткометражный',
|
| 55 |
+
'криминал',
|
| 56 |
+
'мелодрама',
|
| 57 |
+
'мистика',
|
| 58 |
+
'музыка',
|
| 59 |
+
'мюзикл',
|
| 60 |
+
'нуар',
|
| 61 |
+
'приключения',
|
| 62 |
+
'сборник',
|
| 63 |
+
'семейный',
|
| 64 |
+
'сказка',
|
| 65 |
+
'спорт',
|
| 66 |
+
'триллер',
|
| 67 |
+
'ужасы',
|
| 68 |
+
'фантастика',
|
| 69 |
+
'фэнтези',
|
| 70 |
+
'эротика']
|
| 71 |
+
|
| 72 |
+
user_select_genre = st.multiselect('Выберите жанр', genre_list)
|
| 73 |
+
|
| 74 |
if st.button("Искать🔍🎦"):
|
| 75 |
if user_input:
|
| 76 |
def encode_description(description, tokenizer, model):
|
|
|
|
| 89 |
recs = df.iloc[sorted_indices[0]].reset_index(drop=True)
|
| 90 |
recs.index = recs.index + 1
|
| 91 |
|
| 92 |
+
if user_select_genre:
|
| 93 |
+
genres_selected = user_select_genre.values()
|
| 94 |
+
genre_mask = df['genre'].str.contains('')
|
| 95 |
+
for i in range(len(genres_selected)):
|
| 96 |
+
genre_mask_i = df['genre'].str.contains(genres_selected[i])
|
| 97 |
+
genre_mask = genre_mask * genre_mask_i
|
| 98 |
+
recs = recs[genre_mask]
|
| 99 |
+
|
| 100 |
+
if recs.empty:
|
| 101 |
+
st.subheader("Подходящих фильмов не найдено, ослабьте фильтры 😔:")
|
| 102 |
+
else:
|
| 103 |
+
|
| 104 |
|
| 105 |
# Вывод рекомендованных фильмов с изображениями
|
| 106 |
+
st.subheader("Рекомендованные фильмы 🎉:")
|
| 107 |
+
for i in range(5):
|
| 108 |
+
st.markdown(f"<span style='font-size:{20}px; color:purple'>{recs['movie_title'].iloc[i]}</span>", unsafe_allow_html=True)
|
| 109 |
+
# Создаем две колонки: одну для текста, другую для изображения
|
| 110 |
+
col1, col2 = st.columns([2, 1])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 111 |
|
| 112 |
+
# В колонке отображаем название фильма, описание, роли и ссылку
|
| 113 |
+
col1.info(recs['description'].iloc[i])
|
| 114 |
+
col1.markdown(f"**В ролях:** {recs['actors'].iloc[i]}")
|
| 115 |
+
col1.markdown(f"**Фильм можно посмотреть [здесь]({recs['page_url'].iloc[i]})**")
|
| 116 |
|
| 117 |
+
# В колонке отображаем изображение
|
| 118 |
+
col2.image(recs['image_url'].iloc[i], caption=recs['movie_title'].iloc[i], width=200)
|
| 119 |
+
with st.sidebar:
|
| 120 |
+
st.info("""
|
| 121 |
+
#### Мы смогли помочь вам с выбором?
|
| 122 |
+
""")
|
| 123 |
+
feedback = st.text_input('Поделитесь с нами вашим мнением')
|
| 124 |
+
|
| 125 |
+
feedback_button = st.button("Отправить отзыв", key="feedback_button")
|
| 126 |
+
|
| 127 |
+
if feedback_button and feedback:
|
| 128 |
+
feedback_container.success("Спасибо, каждый день мы стараемся быть лучше для вас 💟")
|
| 129 |
+
elif feedback_button:
|
| 130 |
+
feedback_container.warning("Пожалуйста, введите отзыв перед отправкой.")
|
| 131 |
|