public CategoricalTransform(ValueToKeyMappingEstimator term, IEstimator <ITransformer> toVector, IDataView input) { if (toVector != null) { _transformer = term.Append(toVector).Fit(input); } else { _transformer = new TransformerChain <ITransformer>(term.Fit(input)); } }
private void buildAndTrainModel(IDataView data) { _answerKeyEstimator = _mlContext.Transforms.Conversion.MapValueToKey( inputColumnName: nameof(MLEntry.Text), outputColumnName: "Label"); var trainingPipeline = _answerKeyEstimator .Append(_mlContext.Transforms.Text.FeaturizeText(inputColumnName: nameof(MLEntry.Text), outputColumnName: "TextFeaturized")) .Append(_mlContext.Transforms.Text.FeaturizeText(inputColumnName: nameof(MLEntry.Intent), outputColumnName: "IntentFeaturized")) .Append(_mlContext.Transforms.Text.FeaturizeText(inputColumnName: nameof(MLEntry.PreviousIntents), outputColumnName: "PreviousIntentFeaturized")) .Append(_mlContext.Transforms.Concatenate("Featurized", "TextFeaturized", "IntentFeaturized", "PreviousIntentFeaturized")) .AppendCacheCheckpoint(_mlContext) .Append(_mlContext.MulticlassClassification.Trainers.SdcaMaximumEntropy("Label", "QuestionFeaturized")) .Append(_mlContext.Transforms.Conversion.MapKeyToValue("PredictedLabel")); _trainedModel = trainingPipeline.Fit(data); _predictionEngine = _mlContext.Model.CreatePredictionEngine <MLEntry, IntentPrediction>(_trainedModel); }
public SchemaShape GetOutputSchema(SchemaShape inputSchema) => _term.Append(_toSomething).GetOutputSchema(inputSchema);