SigParser использует ML.NET для обнаружения электронных писем, созданных "не человеком".
Клиент
SigParser
Продукты и службы
ML.NET
Office 365
Промышленность
Программное обеспечение и телекоммуникации
Размер организации
Малый (<100 сотрудников)
Страна/регион
США
SigParser — это API и служба, которые автоматизируют утомительный (и часто дорогостоящий) процесс добавления и обслуживания систем управления взаимоотношениями с клиентами (CRM). SigParser извлекает контактную информацию, такую как имена, адреса электронной почты и номера телефонов, из подписей электронной почты и передает всю эту информацию в виде контактов в системы CRM или базы данных.
Бизнес-проблема
Когда SigParser обрабатывает электронные письма для компании, многие электронные письма не принадлежат человеку (например, информационные бюллетени, платежные уведомления, сбросы паролей и т. д.). Информация об отправителе из этих типов электронных писем не должна отображаться в списках контактов или передаваться в систему CRM. Таким образом, SigParser решил использовать машинное обучение, чтобы предсказать, являются ли сообщения электронной почты «спамовыми».
В качестве примера возьмем следующее электронное письмо с уведомлением с форума. Отправитель этого письма не является контактом, который должен отображаться в CRM, поэтому модель машинного обучения предсказывает, что "isSpammyLookingEmailMessage" верно:
Почему ML.NET?
Когда команда SigParser решила использовать машинное обучение, они изначально пытались использовать R. Однако они обнаружили, что его очень сложно поддерживать и интегрировать с их API, созданным с помощью .NET Core.
Пол Мендоза, генеральный директор и основатель SigParser, сказал, что R "был слишком оторван от процесса разработки. С помощью R мы создавали все константы, а затем копировали и вставляли их в .NET, а затем тестировали модель по-настоящему и понимали, что это работает не так, как надо, и приходилось все повторять. Все было слишком медленно."
Поэтому они обратились к ML.NET, чтобы объединить все в одном приложении.
Благодаря ML.NET мы можем обучить модель, а затем сразу же протестировать ее внутри нашего кода. Это ускоряет внесение новых изменений, поскольку все инструменты собраны в одном месте".
Влияние ML.NET
Последствия перехода на ML.NET с R привели к 10-кратному повышению производительности. Кроме того, пока SigParser не перешел на R, они использовали только одну модель машинного обучения. После перехода на ML.NET у них теперь есть 6 моделей машинного обучения для различных аспектов анализа электронной почты. Это увеличение произошло потому, что теперь с ML.NET можно быстро экспериментировать с новыми идеями машинного обучения и быстро отображать результаты в приложении.
Архитектура решения
Обработка данных
SigParser сначала использовал известный набор данных Enron для обучения своей модели, но когда они поняли, что он сильно устарел, они в конечном итоге пометили пару тысяч электронных писем в своих учетных записях электронной почты (в соответствии с GDPR) как человеческие или нечеловеческие. и использовали это как обучающий набор данных.
Возможности машинного обучения
Модель SigParser ML.NET имеет две функции (используемые для предсказания "IsHumanE-mail"):
HasUnsubscribes
—Значение true, если в тексте сообщения присутствуют слова "unsubscribe" (отменить подписку) или "opt out" (явно отказаться)EmailBodyCleaned
—Нормализует текст сообщения электронной почты в формате HTML, чтобы язык сообщения не учитывался, а все персональные данные были удалены
Алгоритм машинного обучения
Эти две функции вводятся в алгоритм Binary FastTree, который представляет собой алгоритм для сценариев классификации, а на выходе получается прогноз того, было ли электронное письмо отправлено «настоящим человеком» или из автоматизированного источника. В настоящее время SigParser обрабатывает миллионы электронных писем в месяц с помощью этой модели ML.NET.
var mlContext = new MLContext();
var(trainData, testData) = mlContext.BinaryClassification.TrainTestSplit(mlContext.CreateStreamingDataView(totalSampleSet), testFraction:0.2);
var pipeline = mlContext.Transforms.Text.FeaturizeText("EmailBodyCleaned", "EmailHTMLFeaturized")
.Append(mlContext.Transforms.Concatenate("Features", "HasUnsubscribes", "EmailHTMLFeaturized"))
.Append(mlContext.BinaryClassification.Trainers.FastTree(labelColumn: "IsHumanEmail", featureColumn: "Features"));
Console.WriteLine("Fitting data");
var fitResult = pipeline.Fit(trainData);
Console.WriteLine("Evaluating metrics");
var metrics = mlContext.BinaryClassification.Evaluate(fitResult.Transform(testData), label: "IsHumanEmail");
Console.WriteLine("Accuracy: " + metrics.Accuracy);
using (var stream = File.Create(emailParsingPath + "EmailHTMLTypeClassifier.zip"))
{
mlContext.Model.Save(fitResult, stream);
}
SigParser использует преобразование данных и алгоритмы ML.NET для нескольких решений машинного обучения, включая упомянутую выше модель обнаружения спама, которая позволила им автоматически экспортировать правильную контактную информацию в базы данных клиентов из подписей электронной почты, минуя необходимость затрат времени и ошибок. - склонен к ручному вводу контактных данных.
Готовы приступить?
Наше пошаговое руководство поможет вам запустить ML.NET на вашем компьютере.