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