oriolus1 commited on
Commit
22c0b81
·
verified ·
1 Parent(s): 3aeb481

Upload 4 files

Browse files
Files changed (4) hide show
  1. app.py +51 -0
  2. requirements.txt +3 -0
  3. rubert_26650.pt +3 -0
  4. subject_dict.json +1 -0
app.py ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import torch
3
+ from transformers import AutoTokenizer, AutoModel, AutoModelForSequenceClassification
4
+ import json
5
+ import numpy as np
6
+
7
+
8
+
9
+ @st.cache_data # кэширование
10
+ def load_subject_dict():
11
+ with open('subject_dict.json') as json_file:
12
+ subject_dict = json.load(json_file)
13
+ return subject_dict
14
+
15
+ @st.cache_resource # кэширование
16
+ def load_model_and_tokenizer():
17
+ model_name = 'DeepPavlov/rubert-base-cased'
18
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
19
+ model = torch.load('rubert_26650.pt', weights_only=False)
20
+ return model, tokenizer # скачивание модели
21
+
22
+ model, tokenizer = load_model_and_tokenizer()
23
+ subject_dict = load_subject_dict()
24
+
25
+ st.title("Прогнозирование темы по условию математической задачи")
26
+
27
+ query = st.text_input("Текст задачи", value="Все зебры полосатые. Все полосатые животные - веселые. Верно ли, что все зебры веселые?")
28
+
29
+ st.header("Предлагаемые темы:")
30
+ if query:
31
+ tokens_info = tokenizer(
32
+ query,
33
+ padding=True,
34
+ truncation=False,
35
+ return_tensors="pt",
36
+ )
37
+
38
+ model.eval()
39
+ model.cpu()
40
+ with torch.no_grad():
41
+ out = model(**tokens_info)
42
+ probs = torch.nn.functional.softmax(out.logits, dim=-1)
43
+ top_k = 3
44
+ if top_k:
45
+ best_prob, best_idx = torch.topk(probs, top_k, dim=-1)
46
+ best_prob = best_prob[0].numpy()
47
+ best_prob /= best_prob.sum()
48
+ best_idx = best_idx[0].numpy()
49
+ for i in range(top_k):
50
+ st.write(f"**{subject_dict[str(best_idx[i])]}** (с вероятностью {best_prob[i]:2.1%})")
51
+
requirements.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ streamlit
2
+ torch
3
+ transformers
rubert_26650.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2790f7c8440d17af7d76966fb74a1a72f2dfd9b2086ac7be53882a99dbabc0d5
3
+ size 711751655
subject_dict.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"0": "\u041f\u0440\u0438\u043d\u0446\u0438\u043f \u0414\u0438\u0440\u0438\u0445\u043b\u0435", "1": "\u0422\u0435\u043e\u0440\u0438\u044f \u0447\u0438\u0441\u0435\u043b. \u0414\u0435\u043b\u0438\u043c\u043e\u0441\u0442\u044c", "2": "\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438", "3": "\u041a\u043e\u043c\u0431\u0438\u043d\u0430\u0442\u043e\u0440\u043d\u0430\u044f \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044f", "4": "\u0422\u0435\u043e\u0440\u0438\u044f \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432", "5": "\u041e\u0446\u0435\u043d\u043a\u0430 + \u043f\u0440\u0438\u043c\u0435\u0440", "6": "\u041f\u043b\u0430\u043d\u0438\u043c\u0435\u0442\u0440\u0438\u044f", "7": "\u0410\u043b\u0433\u0435\u0431\u0440\u0430\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b", "8": "\u041c\u043d\u043e\u0433\u043e\u0447\u043b\u0435\u043d\u044b", "9": "\u0421\u0438\u0441\u0442\u0435\u043c\u044b \u0441\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f", "10": "\u0422\u0435\u043e\u0440\u0438\u044f \u0433\u0440\u0430\u0444\u043e\u0432", "11": "\u041a\u043e\u043c\u0431\u0438\u043d\u0430\u0442\u043e\u0440\u0438\u043a\u0430 (\u043f\u0440\u043e\u0447\u0435\u0435)", "12": "\u0410\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0430. \u0423\u0441\u0442\u043d\u044b\u0439 \u0441\u0447\u0435\u0442 \u0438 \u0442.\u043f.", "13": "\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430", "14": "\u041e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043f\u043e\u0440\u044f\u0434\u043a\u0430", "15": "\u0417\u0430\u0434\u0430\u0447\u0438-\u0448\u0443\u0442\u043a\u0438", "16": "\u0418\u043d\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0438 \u043f\u043e\u043b\u0443\u0438\u043d\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b", "17": "\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0438 \u043a\u043e\u043d\u0442\u0440\u043f\u0440\u0438\u043c\u0435\u0440\u044b. \u041a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438", "18": "\u0412\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0440\u0430\u0441\u043a\u0440\u0430\u0441\u043a\u0430", "19": "\u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0442\u043e\u0440\u0438\u043a\u0430", "20": "\u0414\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e \u043e\u0442 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u0433\u043e", "21": "\u0422\u0435\u043e\u0440\u0438\u044f \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432", "22": "\u041f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438", "23": "\u0424\u0443\u043d\u043a\u0446\u0438\u0438 \u043e\u0434\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439. \u041d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0441\u0442\u044c", "24": "\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u043b\u043e\u0433\u0430\u0440\u0438\u0444\u043c\u044b", "25": "\u041b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0438 \u043f\u043e\u043b\u0438\u043b\u0438\u043d\u0435\u0439\u043d\u0430\u044f \u0430\u043b\u0433\u0435\u0431\u0440\u0430", "26": "\u0421\u0440\u0435\u0434\u043d\u0438\u0435 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u044b", "27": "\u0414\u0440\u043e\u0431\u0438", "28": "\u0421\u0442\u0435\u0440\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044f", "29": "\u041f\u0440\u0438\u043d\u0446\u0438\u043f \u043a\u0440\u0430\u0439\u043d\u0435\u0433\u043e", "30": "\u0422\u0440\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u041f\u0430\u0441\u043a\u0430\u043b\u044f \u0438 \u0431\u0438\u043d\u043e\u043c \u041d\u044c\u044e\u0442\u043e\u043d\u0430", "31": "\u0418\u043d\u0434\u0443\u043a\u0446\u0438\u044f", "32": "\u0410\u043b\u0433\u0435\u0431\u0440\u0430\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043d\u0435\u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u0430 \u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043d\u0435\u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432", "33": "\u0410\u043b\u0433\u0435\u0431\u0440\u0430\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0439", "34": "\u041a\u043e\u0440\u043d\u0438. \u0421\u0442\u0435\u043f\u0435\u043d\u044c \u0441 \u0440\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u043c", "35": "\u041c\u0435\u0442\u043e\u0434\u044b \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430", "36": "\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430", "37": "\u0413\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b", "38": "\u0427\u0438\u0441\u043b\u0430 \u041a\u0430\u0442\u0430\u043b\u0430\u043d\u0430", "39": "\u041e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438. \u041a\u043b\u0430\u0441\u0441\u044b \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438", "40": "\u041c\u043e\u0434\u0443\u043b\u044c \u0447\u0438\u0441\u043b\u0430", "41": "\u0422\u0435\u043e\u0440\u0438\u044f \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u0435\u0439", "42": "\u0422\u0435\u043e\u0440\u0438\u044f \u0433\u0440\u0443\u043f\u043f", "43": "\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u0430\u044f", "44": "\u0410\u043b\u0433\u0435\u0431\u0440\u0430 \u0438 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0430 (\u043f\u0440\u043e\u0447\u0435\u0435)", "45": "\u0422\u0440\u0438\u0433\u043e\u043d\u043e\u043c\u0435\u0442\u0440\u0438\u044f", "46": "\u0413\u0440\u0430\u0444\u0438\u043a\u0438 \u0438 \u0413\u041c\u0422 \u043d\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u043d\u043e\u0439 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438", "47": "\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437 (\u043f\u0440\u043e\u0447\u0435\u0435)", "48": "\u0410\u043b\u0433\u0435\u0431\u0440\u0430\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044f", "49": "\u0427\u0438\u0441\u043b\u043e\u0432\u044b\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438", "50": "\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u043b", "51": "\u041c\u0435\u0442\u043e\u0434\u044b \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447 \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c", "52": "\u0420\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438", "53": "\u0410\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f. \u0427\u0438\u0441\u043b\u043e\u0432\u044b\u0435 \u0442\u043e\u0436\u0434\u0435\u0441\u0442\u0432\u0430", "54": "\u041f\u0440\u043e\u0435\u043a\u0442\u0438\u0432\u043d\u0430\u044f \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044f", "55": "\u0410\u0444\u0444\u0438\u043d\u043d\u0430\u044f \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044f", "56": "\u0420\u044f\u0434\u044b", "57": "\u041a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u044b\u0435 \u0447\u0438\u0441\u043b\u0430", "58": "\u0424\u0443\u043d\u043a\u0446\u0438\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445", "59": "\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u044f\u0449\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438", "60": "\u0424\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0442\u0435\u043f\u0435\u043d\u043d\u044b\u0435 \u0440\u044f\u0434\u044b", "61": "\u041f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u0440\u044f\u0434\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0439", "62": "\u041b\u0438\u043d\u0433\u0432\u0438\u0441\u0442\u0438\u043a\u0430", "63": "\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430", "64": "\u0422\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f", "65": "\u041b\u043e\u0433\u0438\u043a\u0430 \u0438 \u0442\u0435\u043e\u0440\u0438\u044f \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432 (\u043f\u0440\u043e\u0447\u0435\u0435)", "66": "\u0413\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u044f (\u043f\u0440\u043e\u0447\u0435\u0435)", "67": "\u0412\u044b\u043f\u0443\u043a\u043b\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437 \u0438 \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435"}