-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgeneral_stride_classifier.py
36 lines (28 loc) · 1.12 KB
/
general_stride_classifier.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import pickle
import pandas as pd
from text_preprocessing import prepare_sentence
from skops.io import load
best_model = load("model/best_model.skops", trusted=True)
tfidf = pickle.load(open("model/vectorizer.pickle", 'rb'))
df_unseen = pd.read_excel('data/unseen_data.xlsx')
df_unseen["NameDesc"] = df_unseen["Name"] + " " + df_unseen["Desc"]
corpus = df_unseen['NameDesc'].apply(prepare_sentence)
n_predicted = 0
n_sentences = 0
for sentence in corpus:
vec_example = tfidf.transform([sentence])
res = best_model.predict(vec_example).toarray()
predicted = "".join(str(res).replace("[", "").replace("]", "").replace(" ", ""))
expected = df_unseen['STRIDE'].iloc[n_sentences].replace("\"", "")
print(f"{sentence[0:40]}... -> Predicted: {predicted} -> Expected: {expected} -> {predicted == expected}")
if predicted == expected:
n_predicted += 1
n_sentences += 1
print(f"Accuracy: {n_predicted / n_sentences}")
print("Write something")
sc = input()
print(sc)
sc = prepare_sentence(sc)
vec_example = tfidf.transform([sc])
res = best_model.predict(vec_example).toarray()
print(f"{sc[0:40]}... -> {res}")