Source code for api.featurization.interface

# ------------------------------------------------- #
# Features extraction pipeline interface definition #
# ------------------------------------------------- #

[docs]class FeaturesExtractorPipeline(object): """Class implementing the features extractor pipeline interface""" def __init__(self, extractor, sample, config): """ Initializes the FeaturesExtractorPipeline (using injected extractor). :param extractor: feature extractor interface class :type extractor: <injected>.interface.featurizer.HandwritingFeatures :param sample: sample data to extract the features from :type sample: api.interfaces.inputs.Sample :param config: feature extractor configuration :type config: api.interfaces.inputs.FeaturesExtractorConfiguration """ self.extractor = extractor(sample.values, sample.labels, **config.extractor_configuration) def __repr__(self): return str({"extractor": self.extractor}) def __str__(self): return repr(self) def __call__(self, pipeline): return self.extract(pipeline)
[docs] def extract(self, pipeline): """ Extracts the features from the features extraction pipeline. :param pipeline: pipeline with the feature names and kwargs :type pipeline: api.interfaces.inputs.FeaturesPipeline :return: extracted features and feature labels :rtype: dict """ # Extract the features via the injected features extractor extracted = self.extractor.extract(pipeline.pipeline) # Return the extracted feature values and labels return { "values": extracted["features"], "labels": extracted["labels"] }