private static TrainingDataWriterConfigV1 getTrainingJobWriterConfig()

in src/main/java/com/amazonaws/services/neptune/profiles/neptune_ml/v1/config/TrainingDataWriterConfigV1.java [55:107]


    private static TrainingDataWriterConfigV1 getTrainingJobWriterConfig(JsonNode json, int index) {
        Map<Label, LabelConfigV1> nodeClassLabels = new HashMap<>();
        Map<Label, LabelConfigV1> edgeClassLabels = new HashMap<>();
        Collection<Word2VecConfig> word2VecNodeFeatures = new ArrayList<>();
        Collection<NumericalBucketFeatureConfigV1> numericalBucketFeatures = new ArrayList<>();
        Collection<FeatureOverrideConfigV1> nodeFeatureOverrides = new ArrayList<>();
        Collection<FeatureOverrideConfigV1> edgeFeatureOverrides = new ArrayList<>();

        Collection<Double> defaultSplitRates = new ParseSplitRate(json, DEFAULT_SPLIT_RATES_V1, new ParsingContext("config")).parseSplitRates();

        String name = json.has("name") ?
                json.get("name").textValue() :
                index > 1 ? String.format("%s-%s", DEFAULT_NAME_V1, index) : DEFAULT_NAME_V1;

        if (json.has("targets")) {
            JsonNode labels = json.path("targets");
            Collection<JsonNode> labelNodes = new ArrayList<>();
            if (labels.isArray()) {
                labels.forEach(labelNodes::add);
            } else {
                labelNodes.add(labels);
            }
            ParseLabelsV1 parseLabels = new ParseLabelsV1(labelNodes, defaultSplitRates);
            parseLabels.validate();
            nodeClassLabels.putAll(parseLabels.parseNodeClassLabels());
            edgeClassLabels.putAll(parseLabels.parseEdgeClassLabels());
        }

        if (json.has("features")) {
            JsonNode features = json.path("features");
            Collection<JsonNode> featureNodes = new ArrayList<>();
            if (features.isArray()) {
                features.forEach(featureNodes::add);
            } else {
                featureNodes.add(features);
            }
            ParseFeaturesV1 parseFeatures = new ParseFeaturesV1(featureNodes);
            parseFeatures.validate();
            word2VecNodeFeatures.addAll(parseFeatures.parseWord2VecNodeFeatures());
            numericalBucketFeatures.addAll(parseFeatures.parseNumericalBucketFeatures());
            nodeFeatureOverrides.addAll(parseFeatures.parseNodeFeatureOverrides());
            edgeFeatureOverrides.addAll(parseFeatures.parseEdgeFeatureOverrides());
        }

        return new TrainingDataWriterConfigV1(
                name,
                nodeClassLabels,
                edgeClassLabels,
                word2VecNodeFeatures,
                numericalBucketFeatures,
                nodeFeatureOverrides,
                edgeFeatureOverrides);
    }