HaggiVaggi commited on
Commit
ac6735c
1 Parent(s): 814a159

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -10
app.py CHANGED
@@ -64,21 +64,31 @@ if page == "какая-то еще":
64
  with torch.no_grad():
65
  outputs = model(**tokens)
66
  embeddings = outputs.last_hidden_state.mean(dim=1)
67
- return embeddings
 
 
 
 
68
  df2 = pd.read_csv('data_with_embeddings.csv')
69
- embeddings = pd.read_pickle('embeddings.pkl')
 
70
  user_input = st.text_area('Введите описание фильма')
71
  input_embedding = encode_description(user_input)
72
  embeddings_tensor = torch.stack([torch.Tensor(ast.literal_eval(embedding_str)) for embedding_str in df2['description_embedding']]).numpy()
73
 
 
 
 
 
74
 
75
- # Рассчитайте косинусное сходство
76
- similarity_scores = cosine_similarity(input_embedding.view(1, -1).detach().numpy(), embeddings_tensor.reshape(embeddings_tensor.shape[0], -1))[0]
77
 
78
- # Получение индексов отсортированных значений
79
- sorted_indices = similarity_scores.argsort()[::-1]
 
80
 
81
- # Используйте индексы для извлечения строк из DataFrame
82
- recs = df2.iloc[sorted_indices[:10]].reset_index(drop=True)
83
- recs.index = recs.index + 1
84
- st.write(recs[['movie_title', 'description']])
 
64
  with torch.no_grad():
65
  outputs = model(**tokens)
66
  embeddings = outputs.last_hidden_state.mean(dim=1)
67
+ return embeddings.cpu().numpy().astype('float32')
68
+
69
+ embeddings_array = np.load('embeddings.npy')
70
+ index = faiss.read_index('desc_faiss_index.index')
71
+
72
  df2 = pd.read_csv('data_with_embeddings.csv')
73
+ # embeddings = pd.read_pickle('embeddings.pkl')
74
+
75
  user_input = st.text_area('Введите описание фильма')
76
  input_embedding = encode_description(user_input)
77
  embeddings_tensor = torch.stack([torch.Tensor(ast.literal_eval(embedding_str)) for embedding_str in df2['description_embedding']]).numpy()
78
 
79
+ if st.button("Искать 🔍"):
80
+ if user_input:
81
+ # Векторизация введенного запроса
82
+ input_embedding = encode_description(user_input)
83
 
84
+ # Поиск с использованием Faiss
85
+ _, sorted_indices = index.search(input_embedding.reshape(1, -1), 10)
86
 
87
+ # Используйте индексы для извлечения строк из DataFrame
88
+ recs = df.iloc[sorted_indices[0]].reset_index(drop=True)
89
+ recs.index = recs.index + 1
90
 
91
+ # Вывод рекомендованных фильмов
92
+ st.write("Рекомендованные фильмы:")
93
+ st.table(recs[['movie_title', 'description']])
94
+