private void UseModelWithSingleItem(MLContext mlContext, ITransformer model, MediaKeywordModel sampleStatement) { PredictionEngine <MediaKeywordModel, MediaKeywordPredictionModel> predictionFunction = mlContext.Model.CreatePredictionEngine <MediaKeywordModel, MediaKeywordPredictionModel>(model); var resultPrediction = predictionFunction.Predict(sampleStatement); Console.WriteLine(); Console.WriteLine("=============== Prediction Test of model with a single sample and test dataset ==============="); Console.WriteLine(); Console.WriteLine($"Sentiment: {resultPrediction.Keywords} | Prediction: {(Convert.ToBoolean(resultPrediction.Prediction) ? "Positive" : "Negative")}"); Console.WriteLine("=============== End of Predictions ==============="); Console.WriteLine(); }
public void LoadDataFromDatabase() { DatabaseLoader loader = this.mlContext.Data.CreateDatabaseLoader <MediaKeywordModel>(); string connectionString = "Server=.;Database=CinemaHub;Trusted_Connection=True;MultipleActiveResultSets=true"; string queryForData = "SELECT r.CreatorId AS UserId, IIF(r.Score > 6, CAST(1 AS BIT), CAST(0 AS BIT)) AS IsLiked, string_agg(k.Name, ', ') AS Keywords FROM Rating AS r INNER JOIN MediaKeywords AS mk ON mk.MediaId = r.MediaId INNER JOIN Keywords AS k ON k.Id = mk.KeywordId GROUP BY r.MediaId, r.CreatorId, r.Score"; DatabaseSource dbSource = new DatabaseSource(SqlClientFactory.Instance, connectionString, queryForData); IDataView data = loader.Load(dbSource); DataOperationsCatalog.TrainTestData trainTestSplit = mlContext.Data.TrainTestSplit(data, testFraction: 0.2); IDataView trainingData = trainTestSplit.TrainSet; IDataView testData = trainTestSplit.TestSet; var preview1 = trainingData.Preview(); var preview = testData.Preview(); var model = this.BuildAndTrainModel(this.mlContext, trainingData); this.Evaluate(this.mlContext, model, testData); var sampleData = new MediaKeywordModel() { Keywords = "wegfwegweg", UserId = "p[", }; var sampleData1 = new MediaKeywordModel() { Keywords = "sequel, aftercreditsstinger, superhero", UserId = "eb28dc2e-182c-4040-9797-295d21c00681", }; this.UseModelWithSingleItem(this.mlContext, model, sampleData); this.UseModelWithSingleItem(this.mlContext, model, sampleData1); }