public IActionResult TrainSpam() { var result = SpamModel.Train(); return(Json(new { result })); }
public IActionResult TestSpam([FromBody] string message) { var result = SpamModel.Predict(message); return(Json(new { result })); }
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 })); }
public static void Main(string[] args) { SpamModel.LoadTrainedModel(); CreateHostBuilder(args).Build().Run(); }