Этот файл позволит Вам оценить качество наших моделей word-based на Ваших тестовых данных Вход:

  1. файл в формате .csv
  2. модель gensim m2v (ссылка в комментариях ниже)
  3. наша обученая модель Выход: графики предсказания и ground truth, а также значения метрик: MAE, MSE, median absolute error, r2 score

In [1]:
import keras
import numpy as np
import pandas as pd
from tqdm import tqdm_notebook
from utils.sentence_processor import SentenceProcessor
from utils.stop_words import stop_words
from utils.generators import test_generator
from utils.score import get_score


Using TensorFlow backend.
C:\Users\miair\Anaconda3\envs\tensorflow\lib\site-packages\gensim\utils.py:865: UserWarning: detected Windows; aliasing chunkize to chunkize_serial
  warnings.warn("detected Windows; aliasing chunkize to chunkize_serial")

In [2]:
# путь к тестовым данным
FILE_PATH = 'data/reviews_test.csv'
reviews = pd.read_csv(FILE_PATH, header=0, encoding='utf-8') #cp1251 если windows

In [3]:
X_test_raw = reviews.comment
y_test_raw = reviews.reting # or 'rating'

In [5]:
# ссылка на модель gensim w2v:
# http://panchenko.me/data/dsl-backup/w2v-ru/tenth.norm-sz500-w7-cb0-it5-min5.w2v
MODEL_PATH = 'w2v_models/tenth.norm-sz500-w7-cb0-it5-min5.w2v' 
sp = SentenceProcessor(MODEL_PATH)
sp.stop_words = stop_words
sp.sample_len = 100 # максимальная длина комментария в словах

In [6]:
# обработка комментариев
X_test = [x for x in tqdm_notebook(test_generator(X_test_raw, sp))]
X_test = np.array(X_test, dtype=np.float32)

# обработка рейтингов
y_test = y_test_raw.values


Widget Javascript not detected.  It may not be installed or enabled properly.


In [7]:
# загрузка обученной модели нейросети
DIR = 'saved_models/'
MODEL_NAME = 'trained_model_1(keras==1.2.2)' # измените на название нашей обученной модели
model = keras.models.load_model(DIR+MODEL_NAME)

In [10]:
import importlib
import utils.score
importlib.reload(utils.score)
from utils.score import get_score

In [12]:
# результат
get_score(model, X_test, y_test, sparse=40)


mode 
MSE: 0.9136
MAE: 0.6817
MedianAE: 0.4942
R2 score: 0.471
Out[12]:
{'mean absolute error': 0.68168549987142646,
 'mean squared error': 0.91355784244879334,
 'median absolute error': 0.49422812461853027,
 'r2 score': 0.47097509275016125}