コード例 #1
0
        public static PredictedCommentaire AttribScoreAndTypeOfComment(this PredictedCommentaire commentaire)
        {
            MLContext mlContext = new MLContext();
            //chargement des commentaires de la base de donnée
            TrainTestData splitDataView = LoadData(mlContext, commentaire);
            //Transformation des commentaire pour être exploité par l'intelligence artificuelle
            ITransformer model = BuildAndTrainModel(mlContext, splitDataView.TrainSet);

            //Evaluation du model de prédiction ainsi on a le taux de précision de notre model
            Evaluate(mlContext, model, splitDataView.TestSet);
            PredictionEngine <PredictedCommentaire, PredictedModels.PredictedCommentaire> predictionFunction =
                mlContext.Model.CreatePredictionEngine <PredictedCommentaire, PredictedModels.PredictedCommentaire>(model);
            //Prédction grâce au model crée avec la classification binaire
            var resultPrediction = predictionFunction.Predict(commentaire);
            var collection       = new CommentaireCollection();

            if (collection.GetItems(c => c.Value == commentaire.Value).Count() == 0)
            {
                collection.NewItems(new PredictedCommentaire
                {
                    Id            = resultPrediction.Id,
                    Value         = resultPrediction.Value,
                    Date          = resultPrediction.Date,
                    SentimentType = resultPrediction.SentimentType,
                    Sentiment     = resultPrediction.Sentiment
                });
            }
            return(resultPrediction);
        }
コード例 #2
0
        public static TrainTestData LoadData(MLContext mlContext, PredictedCommentaire commentaire)
        {
            IEnumerable <PredictedCommentaire> commentaires = new CommentaireCollection().GetItems(c => c.Value != commentaire.Value);
            IDataView dataView = mlContext.Data.LoadFromEnumerable(commentaires);

            //Ce code utilise la méthode TrainTestSplit() pour diviser l'ensemble de données chargé en ensembles de données train et test et les retourner dans la classe TrainTestData.
            //La valeur par défaut est 10%, dans ce cas nous utilisons 20% pour évaluer plus de données.
            TrainTestData splitDataView = mlContext.Data.TrainTestSplit(dataView, testFraction: 0.2);

            return(splitDataView);
        }