예제 #1
0
        public IActionResult TrainSpam()
        {
            var result = SpamModel.Train();

            return(Json(new
            {
                result
            }));
        }
예제 #2
0
        public IActionResult TestSpam([FromBody] string message)
        {
            var result = SpamModel.Predict(message);

            return(Json(new
            {
                result
            }));
        }
예제 #3
0
        public IActionResult CheckEmailSpam([FromBody] MailContent[] data)
        {
            List <MailPredictResult> result = new List <MailPredictResult>();
            var groupedBySender             = data.GroupBy(m => m.From);

            foreach (var mailsBySender in groupedBySender)
            {
                MailPredictResult spamResult = new MailPredictResult()
                {
                    SenderEmail    = mailsBySender.Key.Contains('<') ? mailsBySender.Key.Split('<', '>')[1] : mailsBySender.Key,
                    TotalSentEmail = mailsBySender.Count(),
                    TotalSpam      = 0,
                    Spams          = new List <FormattedEmail>()
                };
                foreach (var mail in mailsBySender)
                {
                    string mailMessage = "";
                    foreach (var part in mail.Parts)
                    {
                        mailMessage += SpamModel.Base64Decode(part.Data) + " ";
                    }
                    var prediction = SpamModel.Predict(mailMessage);
                    if (prediction.IsSpam)
                    {
                        spamResult.TotalSpam = spamResult.TotalSpam + 1;
                        spamResult.Spams.Add(new FormattedEmail()
                        {
                            Id         = mail.Id,
                            Content    = mailMessage,
                            Prediction = prediction
                        });
                    }
                }
                result.Add(spamResult);
            }
            return(Json(new
            {
                result
            }));
        }
예제 #4
0
 public static void Main(string[] args)
 {
     SpamModel.LoadTrainedModel();
     CreateHostBuilder(args).Build().Run();
 }