SigParser использует ML.NET для обнаружения электронных писем, созданных "не человеком".

Клиент
SigParser

Продукты и службы
ML.NET
Office 365

Промышленность
Программное обеспечение и телекоммуникации

Размер организации
Малый (<100 сотрудников)

Страна/регион
Соединенные Штаты Америки

SigParser — это API и служба, которые автоматизируют утомительный (и часто дорогостоящий) процесс добавления и обслуживания систем управления взаимоотношениями с клиентами (CRM). SigParser извлекает контактную информацию, такую как имена, адреса электронной почты и номера телефонов, из подписей электронной почты и передает всю эту информацию в виде контактов в системы CRM или базы данных.

Приложение SigParser позволяет вам предоставить образец электронной почты и предварительно просмотреть метаданные, которые оно может определить об электронной почте.

Бизнес-проблема

Когда SigParser обрабатывает электронные письма для компании, многие электронные письма не принадлежат человеку (например, информационные бюллетени, платежные уведомления, сбросы паролей и т. д.). Информация об отправителе из этих типов электронных писем не должна отображаться в списках контактов или передаваться в систему CRM. Таким образом, SigParser решил использовать машинное обучение, чтобы предсказать, являются ли сообщения электронной почты «спамовыми».

В качестве примера возьмем следующее электронное письмо с уведомлением с форума. Отправитель этого письма не является контактом, который должен отображаться в CRM, поэтому модель машинного обучения предсказывает, что "isSpammyLookingEmailMessage" верно:

Образец электронной почты поступает с адреса электронной почты noreply и содержит информацию о непрочитанных уведомлениях и т. д.

SigParser классифицирует образец электронной почты как «сообщение электронной почты, выглядящее как спам», используя свою модель ML.NET.

Почему ML.NET?

Когда команда SigParser решила использовать машинное обучение, они изначально пытались использовать R. Однако они обнаружили, что его очень сложно поддерживать и интегрировать с их API, созданным с помощью .NET Core.

Пол Мендоза, генеральный директор и основатель SigParser, сказал, что R "был слишком оторван от процесса разработки. С помощью R мы создавали все константы, а затем копировали и вставляли их в .NET, а затем тестировали модель по-настоящему и понимали, что это работает не так, как надо, и приходилось все повторять. Все было слишком медленно."

Поэтому они обратились к ML.NET, чтобы объединить все в одном приложении.

Благодаря ML.NET мы можем обучить модель, а затем сразу же протестировать ее внутри нашего кода. Это ускоряет внесение новых изменений, поскольку все инструменты собраны в одном месте".

Пол Мендоса, генеральный директор и основатель SigParser

Влияние 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 на вашем компьютере.

Начать