HaggiVaggi commited on
Commit
fa7222f
·
1 Parent(s): 9b47e1a

updated test

Browse files
Files changed (1) hide show
  1. app.py +35 -0
app.py CHANGED
@@ -1,6 +1,13 @@
1
  import streamlit as st
2
  import pandas as pd
3
  import numpy as np
 
 
 
 
 
 
 
4
 
5
 
6
 
@@ -44,3 +51,31 @@ if page == "Главная":
44
  # Вывод на страничке Streamlit
45
  st.write("Случайные 10 фильмов")
46
  st.write(random_rows)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  import streamlit as st
2
  import pandas as pd
3
  import numpy as np
4
+ from sklearn.metrics.pairwise import cosine_similarity
5
+ from sentence_transformers import SentenceTransformer, util
6
+ from transformers import AutoTokenizer, AutoModel
7
+ import faiss
8
+ from sentence_transformers import SentenceTransformer, InputExample, losses
9
+ from torch.utils.data import DataLoader
10
+
11
 
12
 
13
 
 
51
  # Вывод на страничке Streamlit
52
  st.write("Случайные 10 фильмов")
53
  st.write(random_rows)
54
+
55
+ if page == "какая-то еще":
56
+ # Загрузка предварительно обученной модели ruBERT
57
+ tokenizer = AutoTokenizer.from_pretrained("DeepPavlov/rubert-base-cased-sentence")
58
+ model = AutoModel.from_pretrained("DeepPavlov/rubert-base-cased-sentence")
59
+ def encode_description(description):
60
+ tokens = tokenizer(description, return_tensors="pt")
61
+ with torch.no_grad():
62
+ outputs = model(**tokens)
63
+ embeddings = outputs.last_hidden_state.mean(dim=1)
64
+ return embeddings
65
+
66
+
67
+ embeddings = pd.read_pickle('embeddings.pkl')
68
+ user_input = st.text_area('Введите описание фильма')
69
+ input_embedding = encode_description(user_input)
70
+ mbeddings_tensor = torch.stack(df['description_embedding'].tolist()).numpy()
71
+
72
+ # Рассчитайте косинусное сходство
73
+ similarity_scores = cosine_similarity(input_embedding.view(1, -1).detach().numpy(), embeddings_tensor.reshape(embeddings_tensor.shape[0], -1))[0]
74
+
75
+ # Получение индексов отсортированных значений
76
+ sorted_indices = similarity_scores.argsort()[::-1]
77
+
78
+ # Используйте индексы для извлечения строк из DataFrame
79
+ recs = df.iloc[sorted_indices[:10]].reset_index(drop=True)
80
+ recs.index = recs.index + 1
81
+ st.write(recs[['movie_title', 'description']])