HaggiVaggi commited on
Commit
ee1c320
·
1 Parent(s): 600a6d6

Update pages/Подбор фильмов по описанию✏️🔍.py

Browse files
pages/Подбор фильмов по описанию✏️🔍.py CHANGED
@@ -7,26 +7,22 @@ import numpy as np
7
 
8
  @st.cache_data
9
  def load_data(url):
10
- df = pd.read_csv(url) # 👈 Download the data
11
  return df
12
 
13
- df = load_data('data/final_data.csv')
14
-
15
  @st.cache_data
16
  def embedding_and_index():
17
  embeddings_array = np.load('data/embeddings_final.npy')
18
  index = faiss.read_index('data/desc_faiss_index_final.index')
19
- return(embeddings_array, index)
20
 
21
- embeddings_array, index = embedding_and_index()
22
-
23
- @st.cache_resource
24
  def load_tokenizer_and_model():
25
  tokenizer = AutoTokenizer.from_pretrained("DeepPavlov/rubert-base-cased-sentence")
26
  model = AutoModel.from_pretrained("DeepPavlov/rubert-base-cased-sentence")
27
  return tokenizer, model
28
 
29
- @st.cache_resource
30
  def encode_description(description, tokenizer, model):
31
  tokens = tokenizer(description, return_tensors="pt")
32
  with torch.no_grad():
@@ -36,6 +32,7 @@ def encode_description(description, tokenizer, model):
36
 
37
  st.header("Подбор фильмов по описанию ✏️🔍")
38
 
 
39
  df = load_data('data/final_data.csv')
40
  embeddings_array, index = embedding_and_index()
41
  tokenizer, model = load_tokenizer_and_model()
@@ -45,16 +42,17 @@ user_input = st.text_input("Введите описание фильма:", valu
45
 
46
  if st.button("Искать🔍🎦"):
47
  if user_input:
48
- # Векторизация введенного запроса
49
- input_embedding = encode_description(user_input)
50
 
51
- # Поиск с использованием Faiss
52
- _, sorted_indices = index.search(input_embedding.reshape(1, -1), 5) # Изменил на 5
53
 
54
- # Используйте индексы для извлечения строк из DataFrame
55
- recs = df2.iloc[sorted_indices[0]].reset_index(drop=True)
56
  recs.index = recs.index + 1
57
 
 
58
  # Вывод рекомендованных фильмов с изображениями
59
  st.subheader("Рекомендованные фильмы 🎉:")
60
  for i in range(5):
 
7
 
8
  @st.cache_data
9
  def load_data(url):
10
+ df = pd.read_csv(url)
11
  return df
12
 
 
 
13
  @st.cache_data
14
  def embedding_and_index():
15
  embeddings_array = np.load('data/embeddings_final.npy')
16
  index = faiss.read_index('data/desc_faiss_index_final.index')
17
+ return embeddings_array, index
18
 
19
+ @st.cache_data
 
 
20
  def load_tokenizer_and_model():
21
  tokenizer = AutoTokenizer.from_pretrained("DeepPavlov/rubert-base-cased-sentence")
22
  model = AutoModel.from_pretrained("DeepPavlov/rubert-base-cased-sentence")
23
  return tokenizer, model
24
 
25
+ @st.cache_data
26
  def encode_description(description, tokenizer, model):
27
  tokens = tokenizer(description, return_tensors="pt")
28
  with torch.no_grad():
 
32
 
33
  st.header("Подбор фильмов по описанию ✏️🔍")
34
 
35
+ # Загрузка данных
36
  df = load_data('data/final_data.csv')
37
  embeddings_array, index = embedding_and_index()
38
  tokenizer, model = load_tokenizer_and_model()
 
42
 
43
  if st.button("Искать🔍🎦"):
44
  if user_input:
45
+ # Векторизация введенного запроса с использованием переданных tokenizer и model
46
+ input_embedding = encode_description(user_input, tokenizer, model)
47
 
48
+ # Поиск с использованием Faiss
49
+ _, sorted_indices = index.search(input_embedding.reshape(1, -1), 5)
50
 
51
+ # Используйте индексы для извлечения строк из DataFrame
52
+ recs = df.iloc[sorted_indices[0]].reset_index(drop=True)
53
  recs.index = recs.index + 1
54
 
55
+
56
  # Вывод рекомендованных фильмов с изображениями
57
  st.subheader("Рекомендованные фильмы 🎉:")
58
  for i in range(5):