deeppavlov.models.classifiers

class deeppavlov.models.classifiers.keras_classification_model.KerasClassificationModel(embedding_size: int, n_classes: int, model_name: str, optimizer: str = 'Adam', loss: str = 'binary_crossentropy', learning_rate: float = 0.01, learning_rate_decay: float = 0.0, last_layer_activation='sigmoid', restore_lr: bool = False, classes: Union[list, Generator, None] = None, text_size: Optional[int] = None, padding: Optional[str] = 'pre', **kwargs)[source]

Class implements Keras model for classification task for multi-class multi-labeled data.

Parameters
  • embedding_size – embedding_size from embedder in pipeline

  • n_classes – number of considered classes

  • model_name – particular method of this class to initialize model configuration

  • optimizer – function name from keras.optimizers

  • loss – function name from keras.losses.

  • learning_rate – learning rate for optimizer.

  • learning_rate_decay – learning rate decay for optimizer

  • last_layer_activation – parameter that determines activation function after classification layer. For multi-label classification use sigmoid, otherwise, softmax.

  • restore_lr – in case of loading pre-trained model whether to init learning rate with the final learning rate value from saved opt

  • classes – list or generator of considered classes

  • text_size – maximal length of text in tokens (words), longer texts are cut, shorter ones are padded with zeros (pre-padding)

  • paddingpre or post padding to use

opt

dictionary with all model parameters

n_classes

number of considered classes

model

keras model itself

epochs_done

number of epochs that were done

batches_seen

number of epochs that were seen

train_examples_seen

number of training samples that were seen

sess

tf session

optimizer

keras.optimizers instance

classes

list of considered classes

padding

pre or post padding to use

__call__(data: List[List[numpy.ndarray]], *args) → List[List[float]][source]

Infer on the given data

Parameters
  • data – list of tokenized text samples

  • *args – additional arguments

Returns

vector of probabilities to belong with each class or list of labels sentence belongs with

Return type

for each sentence

pad_texts(sentences: List[List[numpy.ndarray]]) → Union[numpy.ndarray, Tuple[numpy.ndarray, numpy.ndarray]][source]

Cut and pad tokenized texts to self.opt[“text_size”] tokens

Parameters

sentences – list of lists of tokens

Returns

array of embedded texts

train_on_batch(texts: List[List[numpy.ndarray]], labels: list) → Union[float, List[float]][source]

Train the model on the given batch

Parameters
  • texts – list of tokenized embedded text samples

  • labels – list of labels

Returns

metrics values on the given batch

infer_on_batch(texts: List[List[numpy.ndarray]], labels: list = None) → Union[float, List[float], numpy.ndarray][source]

Infer the model on the given batch

Parameters
  • texts – list of tokenized embedded text samples

  • labels – list of labels

Returns

metrics values on the given batch, if labels are given predictions, otherwise

cnn_model(kernel_sizes_cnn: List[int], filters_cnn: int, dense_size: int, coef_reg_cnn: float = 0.0, coef_reg_den: float = 0.0, dropout_rate: float = 0.0, input_projection_size: Optional[int] = None, **kwargs) → keras.engine.training.Model[source]

Build un-compiled model of shallow-and-wide CNN.

Parameters
  • kernel_sizes_cnn – list of kernel sizes of convolutions.

  • filters_cnn – number of filters for convolutions.

  • dense_size – number of units for dense layer.

  • coef_reg_cnn – l2-regularization coefficient for convolutions.

  • coef_reg_den – l2-regularization coefficient for dense layers.

  • dropout_rate – dropout rate used after convolutions and between dense layers.

  • input_projection_size – if not None, adds Dense layer (with relu activation) right after input layer to the size input_projection_size. Useful for input dimentionaliry recuction. Default: None.

  • kwargs – other non-used parameters

Returns

uncompiled instance of Keras Model

Return type

keras.models.Model

dcnn_model(kernel_sizes_cnn: List[int], filters_cnn: List[int], dense_size: int, coef_reg_cnn: float = 0.0, coef_reg_den: float = 0.0, dropout_rate: float = 0.0, input_projection_size: Optional[int] = None, **kwargs) → keras.engine.training.Model[source]

Build un-compiled model of deep CNN.

Parameters
  • kernel_sizes_cnn – list of kernel sizes of convolutions.

  • filters_cnn – number of filters for convolutions.

  • dense_size – number of units for dense layer.

  • coef_reg_cnn – l2-regularization coefficient for convolutions.

  • coef_reg_den – l2-regularization coefficient for dense layers.

  • dropout_rate – dropout rate used after convolutions and between dense layers.

  • input_projection_size – if not None, adds Dense layer (with relu activation) right after input layer to the size input_projection_size. Useful for input dimentionaliry recuction. Default: None.

  • kwargs – other non-used parameters

Returns

uncompiled instance of Keras Model

Return type

keras.models.Model

cnn_model_max_and_aver_pool(kernel_sizes_cnn: List[int], filters_cnn: int, dense_size: int, coef_reg_cnn: float = 0.0, coef_reg_den: float = 0.0, dropout_rate: float = 0.0, input_projection_size: Optional[int] = None, **kwargs) → keras.engine.training.Model[source]

Build un-compiled model of shallow-and-wide CNN where average pooling after convolutions is replaced with concatenation of average and max poolings.

Parameters
  • kernel_sizes_cnn – list of kernel sizes of convolutions.

  • filters_cnn – number of filters for convolutions.

  • dense_size – number of units for dense layer.

  • coef_reg_cnn – l2-regularization coefficient for convolutions. Default: 0.0.

  • coef_reg_den – l2-regularization coefficient for dense layers. Default: 0.0.

  • dropout_rate – dropout rate used after convolutions and between dense layers. Default: 0.0.

  • input_projection_size – if not None, adds Dense layer (with relu activation) right after input layer to the size input_projection_size. Useful for input dimentionaliry recuction. Default: None.

  • kwargs – other non-used parameters

Returns

uncompiled instance of Keras Model

Return type

keras.models.Model

bilstm_model(units_lstm: int, dense_size: int, coef_reg_lstm: float = 0.0, coef_reg_den: float = 0.0, dropout_rate: float = 0.0, rec_dropout_rate: float = 0.0, input_projection_size: Optional[int] = None, **kwargs) → keras.engine.training.Model[source]

Build un-compiled BiLSTM.

Parameters
  • units_lstm (int) – number of units for LSTM.

  • dense_size (int) – number of units for dense layer.

  • coef_reg_lstm (float) – l2-regularization coefficient for LSTM. Default: 0.0.

  • coef_reg_den (float) – l2-regularization coefficient for dense layers. Default: 0.0.

  • dropout_rate (float) – dropout rate to be used after BiLSTM and between dense layers. Default: 0.0.

  • rec_dropout_rate (float) – dropout rate for LSTM. Default: 0.0.

  • input_projection_size – if not None, adds Dense layer (with relu activation) right after input layer to the size input_projection_size. Useful for input dimentionaliry recuction. Default: None.

  • kwargs – other non-used parameters

Returns

uncompiled instance of Keras Model

Return type

keras.models.Model

bilstm_bilstm_model(units_lstm_1: int, units_lstm_2: int, dense_size: int, coef_reg_lstm: float = 0.0, coef_reg_den: float = 0.0, dropout_rate: float = 0.0, rec_dropout_rate: float = 0.0, input_projection_size: Optional[int] = None, **kwargs) → keras.engine.training.Model[source]

Build un-compiled two-layers BiLSTM.

Parameters
  • units_lstm_1 – number of units for the first LSTM layer.

  • units_lstm_2 – number of units for the second LSTM layer.

  • dense_size – number of units for dense layer.

  • coef_reg_lstm – l2-regularization coefficient for LSTM. Default: 0.0.

  • coef_reg_den – l2-regularization coefficient for dense layers. Default: 0.0.

  • dropout_rate – dropout rate to be used after BiLSTM and between dense layers. Default: 0.0.

  • rec_dropout_rate – dropout rate for LSTM. Default: 0.0.

  • input_projection_size – if not None, adds Dense layer (with relu activation) right after input layer to the size input_projection_size. Useful for input dimentionaliry recuction. Default: None.

  • kwargs – other non-used parameters

Returns

uncompiled instance of Keras Model

Return type

keras.models.Model

bilstm_cnn_model(units_lstm: int, kernel_sizes_cnn: List[int], filters_cnn: int, dense_size: int, coef_reg_lstm: float = 0.0, coef_reg_cnn: float = 0.0, coef_reg_den: float = 0.0, dropout_rate: float = 0.0, rec_dropout_rate: float = 0.0, input_projection_size: Optional[int] = None, **kwargs) → keras.engine.training.Model[source]

Build un-compiled BiLSTM-CNN.

Parameters
  • units_lstm – number of units for LSTM.

  • kernel_sizes_cnn – list of kernel sizes of convolutions.

  • filters_cnn – number of filters for convolutions.

  • dense_size – number of units for dense layer.

  • coef_reg_lstm – l2-regularization coefficient for LSTM. Default: 0.0.

  • coef_reg_cnn – l2-regularization coefficient for convolutions. Default: 0.0.

  • coef_reg_den – l2-regularization coefficient for dense layers. Default: 0.0.

  • dropout_rate – dropout rate to be used after BiLSTM and between dense layers. Default: 0.0.

  • rec_dropout_rate – dropout rate for LSTM. Default: 0.0.

  • input_projection_size – if not None, adds Dense layer (with relu activation) right after input layer to the size input_projection_size. Useful for input dimentionaliry recuction. Default: None.

  • kwargs – other non-used parameters

Returns

uncompiled instance of Keras Model

Return type

keras.models.Model

cnn_bilstm_model(kernel_sizes_cnn: List[int], filters_cnn: int, units_lstm: int, dense_size: int, coef_reg_cnn: float = 0.0, coef_reg_lstm: float = 0.0, coef_reg_den: float = 0.0, dropout_rate: float = 0.0, rec_dropout_rate: float = 0.0, input_projection_size: Optional[int] = None, **kwargs) → keras.engine.training.Model[source]

Build un-compiled BiLSTM-CNN.

Parameters
  • kernel_sizes_cnn – list of kernel sizes of convolutions.

  • filters_cnn – number of filters for convolutions.

  • units_lstm – number of units for LSTM.

  • dense_size – number of units for dense layer.

  • coef_reg_cnn – l2-regularization coefficient for convolutions. Default: 0.0.

  • coef_reg_lstm – l2-regularization coefficient for LSTM. Default: 0.0.

  • coef_reg_den – l2-regularization coefficient for dense layers. Default: 0.0.

  • dropout_rate – dropout rate to be used after BiLSTM and between dense layers. Default: 0.0.

  • rec_dropout_rate – dropout rate for LSTM. Default: 0.0.

  • input_projection_size – if not None, adds Dense layer (with relu activation) right after input layer to the size input_projection_size. Useful for input dimentionaliry recuction. Default: None.

  • kwargs – other non-used parameters

Returns

uncompiled instance of Keras Model

Return type

keras.models.Model

bilstm_self_add_attention_model(units_lstm: int, dense_size: int, self_att_hid: int, self_att_out: int, coef_reg_lstm: float = 0.0, coef_reg_den: float = 0.0, dropout_rate: float = 0.0, rec_dropout_rate: float = 0.0, input_projection_size: Optional[int] = None, **kwargs) → keras.engine.training.Model[source]

Method builds uncompiled model of BiLSTM with self additive attention.

Parameters
  • units_lstm – number of units for LSTM.

  • self_att_hid – number of hidden units in self-attention

  • self_att_out – number of output units in self-attention

  • dense_size – number of units for dense layer.

  • coef_reg_lstm – l2-regularization coefficient for LSTM. Default: 0.0.

  • coef_reg_den – l2-regularization coefficient for dense layers. Default: 0.0.

  • dropout_rate – dropout rate to be used after BiLSTM and between dense layers. Default: 0.0.

  • rec_dropout_rate – dropout rate for LSTM. Default: 0.0.

  • input_projection_size – if not None, adds Dense layer (with relu activation) right after input layer to the size input_projection_size. Useful for input dimentionaliry recuction. Default: None.

  • kwargs – other non-used parameters

Returns

uncompiled instance of Keras Model

Return type

keras.models.Model

bilstm_self_mult_attention_model(units_lstm: int, dense_size: int, self_att_hid: int, self_att_out: int, coef_reg_lstm: float = 0.0, coef_reg_den: float = 0.0, dropout_rate: float = 0.0, rec_dropout_rate: float = 0.0, input_projection_size: Optional[int] = None, **kwargs) → keras.engine.training.Model[source]

Method builds uncompiled model of BiLSTM with self multiplicative attention.

Parameters
  • units_lstm – number of units for LSTM.

  • self_att_hid – number of hidden units in self-attention

  • self_att_out – number of output units in self-attention

  • dense_size – number of units for dense layer.

  • coef_reg_lstm – l2-regularization coefficient for LSTM. Default: 0.0.

  • coef_reg_den – l2-regularization coefficient for dense layers. Default: 0.0.

  • dropout_rate – dropout rate to be used after BiLSTM and between dense layers. Default: 0.0.

  • rec_dropout_rate – dropout rate for LSTM. Default: 0.0.

  • input_projection_size – if not None, adds Dense layer (with relu activation) right after input layer to the size input_projection_size. Useful for input dimentionaliry recuction. Default: None.

  • kwargs – other non-used parameters

Returns

uncompiled instance of Keras Model

Return type

keras.models.Model

bigru_model(units_gru: int, dense_size: int, coef_reg_lstm: float = 0.0, coef_reg_den: float = 0.0, dropout_rate: float = 0.0, rec_dropout_rate: float = 0.0, input_projection_size: Optional[int] = None, **kwargs) → keras.engine.training.Model[source]

Method builds uncompiled model BiGRU.

Parameters
  • units_gru – number of units for GRU.

  • dense_size – number of units for dense layer.

  • coef_reg_lstm – l2-regularization coefficient for GRU. Default: 0.0.

  • coef_reg_den – l2-regularization coefficient for dense layers. Default: 0.0.

  • dropout_rate – dropout rate to be used after BiGRU and between dense layers. Default: 0.0.

  • rec_dropout_rate – dropout rate for GRU. Default: 0.0.

  • input_projection_size – if not None, adds Dense layer (with relu activation) right after input layer to the size input_projection_size. Useful for input dimentionaliry recuction. Default: None.

  • kwargs – other non-used parameters

Returns

uncompiled instance of Keras Model

Return type

keras.models.Model

class deeppavlov.models.classifiers.cos_sim_classifier.CosineSimilarityClassifier(top_n: int = 1, save_path: str = None, load_path: str = None, **kwargs)[source]

Classifier based on cosine similarity between vectorized sentences

Parameters
  • save_path – path to save the model

  • load_path – path to load the model

__call__(q_vects: Union[scipy.sparse.csr.csr_matrix, List]) → Tuple[List[str], List[int]][source]

Found most similar answer for input vectorized question

Parameters

q_vects – vectorized questions

Returns

Tuple of Answer and Score

fit(x_train_vects: Tuple[Union[scipy.sparse.csr.csr_matrix, List]], y_train: Tuple[str]) → None[source]

Train classifier

Parameters
  • x_train_vects – vectorized question for train dataset

  • y_train – answers for train dataset

Returns

None

load() → None[source]

Load classifier parameters

save() → None[source]

Save classifier parameters