Source code for bella.scikit_features.neural_pooling
import numpy as np
from sklearn.base import TransformerMixin
from sklearn.base import BaseEstimator
from bella.neural_pooling import matrix_max
[docs]class NeuralPooling(BaseEstimator, TransformerMixin):
[docs]    def fit(self, context_word_matrixs, y=None):
        '''Kept for consistnecy with the TransformerMixin'''
        return self
[docs]    def fit_transform(self, context_word_matrixs, y=None):
        '''see self.transform'''
        return self.transform(context_word_matrixs)
[docs]    def transform(self, context_word_matrixs):
        context_pool_vectors = []
        for context_word_matrix in context_word_matrixs:
            all_contexts = []
            for word_matrix in context_word_matrix:
                all_contexts.append(self.pool_func(word_matrix))
            num_contexts = len(all_contexts)
            vec_size = all_contexts[0].shape[1]
            all_contexts = np.asarray(all_contexts).reshape(num_contexts, vec_size)
            context_pool_vectors.append(all_contexts)
        return context_pool_vectors