In [ ]:
import os
import sys
import numpy as np
import pickle
from sklearn.metrics import f1_score
from keras.models import model_from_json 

src = os.path.join(os.getcwd(), os.pardir, 'src')
sys.path.append(src)

from features import feature_proc
from model import train_model

In [ ]:
dataset_path = '../data/processed/SentiRuEval2016.pickle'
with open(dataset_path, 'rb') as bin_data:
    X, y, labels, words_num = pickle.load(bin_data)     
    
train_data = set(["bank", "ttk"])
test_data = set(["bank"])
selected = [feature_proc.get_sample_case(label, train_data, test_data) for label in labels]
X_train, X_test, y_train, y_test = feature_proc.split_data(X, y, selected)

In [ ]:
path_to_weights = "../models/common_bank_news_vec22_weights.h5"
path_to_arch = "../models/architecture.json"

model = model_from_json(open(path_to_arch, 'r').read())
model.compile(loss='categorical_crossentropy',
              optimizer='adagrad', metrics=['accuracy'])

model.load_weights(path_to_weights)

In [ ]:
y_pred = model.predict(X_test, batch_size=1)

In [ ]:
f_macro = f1_score(y_test.argmax(axis=1), y_pred.argmax(axis=1), labels=[1,2] , average='macro')
f_micro = f1_score(y_test.argmax(axis=1), y_pred.argmax(axis=1), labels=[1,2] , average='micro')
print("Result scores for prediction negative and positive classes")
print("f_macro: {:.4f}".format(f_macro))
print("f_micro: {:.4f}".format(f_micro))

In [ ]:


In [ ]: