Exemple #1
0
    def from_config(
        cls,
        config: Config,
        feature_config: ModelInputConfig,
        target_config: TargetConfig,
        **kwargs,
    ):
        """Factory method to construct an instance of
        ContextualIntentSlotModelDataHandler object from the module's config,
        model input config and target config.

        Args:
            config (Config): Configuration object specifying all the
                parameters of ContextualIntentSlotModelDataHandler.
            feature_config (ModelInputConfig): Configuration object specifying
                model input.
            target_config (TargetConfig): Configuration object specifying target.

        Returns:
            type: An instance of ContextualIntentSlotModelDataHandler.

        """
        features: Dict[str, Field] = create_fields(
            feature_config,
            {
                ModelInput.TEXT: TextFeatureField,
                ModelInput.DICT: DictFeatureField,
                ModelInput.CHAR: CharFeatureField,
                ModelInput.CONTEXTUAL_TOKEN_EMBEDDING:
                ContextualTokenEmbeddingField,
                ModelInput.SEQ: SeqFeatureField,
                ModelInput.DENSE: FloatVectorField,
            },
        )

        # Label fields.
        labels: Dict[str, Field] = create_label_fields(
            target_config,
            {
                DocLabelConfig._name: DocLabelField,
                WordLabelConfig._name: WordLabelField,
            },
        )

        extra_fields: Dict[str, Field] = {
            ExtraField.DOC_WEIGHT: FloatField(),
            ExtraField.WORD_WEIGHT: FloatField(),
            ExtraField.RAW_WORD_LABEL: RawField(),
            ExtraField.TOKEN_RANGE: RawField(),
            ExtraField.UTTERANCE: RawField(),
        }

        kwargs.update(config.items())
        return cls(
            raw_columns=config.columns_to_read,
            labels=labels,
            features=features,
            extra_fields=extra_fields,
            **kwargs,
        )
    def from_config(
        cls,
        config: Config,
        feature_config: ModelInputConfig,
        target_config: TargetConfig,
        **kwargs,
    ):
        features: Dict[str, Field] = create_fields(
            feature_config,
            {
                ModelInput.TEXT1: TextFeatureField,
                ModelInput.TEXT2: TextFeatureField
            },
        )
        assert len(features) == 2
        # share the processing field
        features[ModelInput.TEXT2] = features[ModelInput.TEXT1]

        labels: Dict[str, Field] = create_label_fields(
            target_config, {DocLabelConfig._name: DocLabelField})
        extra_fields: Dict[str, Field] = {
            ExtraField.UTTERANCE_PAIR: RawField()
        }
        kwargs.update(config.items())
        return cls(
            raw_columns=config.columns_to_read,
            labels=labels,
            features=features,
            extra_fields=extra_fields,
            **kwargs,
        )
Exemple #3
0
    def from_config(
        cls,
        config: Config,
        model_input_config: ModelInputConfig,
        target_config: TargetConfig,
        **kwargs,
    ):
        """
        Factory method to construct an instance of `DocClassificationDataHandler`
        from the module's config object and feature config object.

        Args:
            config (DocClassificationDataHandler.Config): Configuration object
                specifying all the parameters of `DocClassificationDataHandler`.
            model_input_config (ModelInputConfig): Configuration object
                specifying all the parameters of the model config.
            target_config (TargetConfig): Configuration object specifying all
                the parameters of the target.

        Returns:
            type: An instance of `KDDocClassificationDataHandler`.
        """
        model_input_fields: Dict[str, Field] = create_fields(
            model_input_config,
            {
                ModelInput.WORD_FEAT:
                TextFeatureField,
                ModelInput.DICT_FEAT:
                DictFeatureField,
                ModelInput.CHAR_FEAT:
                CharFeatureField,
                ModelInput.PRETRAINED_MODEL_EMBEDDING:
                PretrainedModelEmbeddingField,
            },
        )
        target_fields: Dict[str, Field] = create_label_fields(
            target_config, {DocLabelConfig._name: DocLabelField})
        extra_fields: Dict[str, Field] = {ExtraField.RAW_TEXT: RawField()}
        if target_config.target_prob:
            target_fields[Target.TARGET_PROB_FIELD] = RawField()
            target_fields[Target.TARGET_LOGITS_FIELD] = RawField()

        if target_config.target_prob:
            extra_fields[Target.TARGET_LABEL_FIELD] = RawField()
        kwargs.update(config.items())
        return cls(
            raw_columns=config.columns_to_read,
            labels=target_fields,
            features=model_input_fields,
            extra_fields=extra_fields,
            **kwargs,
        )
    def from_config(
        cls,
        config: Config,
        feature_config: FeatureConfig,
        label_configs: Union[DocLabelConfig, WordLabelConfig,
                             List[TargetConfigBase]],
        **kwargs,
    ):
        features: Dict[str, Field] = create_fields(
            feature_config,
            {
                DatasetFieldName.TEXT_FIELD:
                TextFeatureField,
                DatasetFieldName.DICT_FIELD:
                DictFeatureField,
                DatasetFieldName.CHAR_FIELD:
                CharFeatureField,
                DatasetFieldName.DENSE_FIELD:
                FloatVectorField,
                DatasetFieldName.PRETRAINED_MODEL_EMBEDDING:
                PretrainedModelEmbeddingField,
            },
        )

        # Label fields.
        labels: Dict[str, Field] = create_label_fields(
            label_configs,
            {
                DocLabelConfig._name: DocLabelField,
                WordLabelConfig._name: WordLabelField,
            },
        )
        has_word_label = WordLabelConfig._name in labels

        extra_fields: Dict[str, Field] = {
            DatasetFieldName.DOC_WEIGHT_FIELD: FloatField(),
            DatasetFieldName.WORD_WEIGHT_FIELD: FloatField(),
            DatasetFieldName.TOKEN_RANGE: RawField(),
            DatasetFieldName.UTTERANCE_FIELD: RawField(),
        }
        if has_word_label:
            extra_fields[DatasetFieldName.RAW_WORD_LABEL] = RawField()

        kwargs.update(config.items())
        return cls(
            raw_columns=config.columns_to_read,
            labels=labels,
            features=features,
            extra_fields=extra_fields,
            **kwargs,
        )