SigParser utilise ML.NET pour détecter les e-mails "non humains"
Client
SigParser
Produits & services
ML.NET
Office 365
Secteur
Logiciels/télécommunications
Taille de l’organisation
Petite (<100 employés)
Pays/région
États-Unis
SigParser est une API et un service qui automatise le processus fastidieux (et souvent coûteux) d'ajout et de maintenance des systèmes de gestion de la relation client (CRM). SigParser extrait les informations de contact, telles que les noms, les adresses e-mail et les numéros de téléphone, des signatures e-mail et alimente toutes ces informations en tant que contacts dans les systèmes ou bases de données CRM.
Problème d’entreprise
Lorsque SigParser traite des e-mails pour une entreprise, de nombreux e-mails ne sont pas humains (par exemple, des newsletters, des notifications de paiement, des réinitialisations de mots de passe, etc.). Les informations sur l'expéditeur de ces types d'e-mails ne doivent pas apparaître dans les listes de contacts ou être poussées dans un système CRM. Ainsi, SigParser a décidé d'utiliser l'apprentissage automatique pour prédire si les e-mails sont "à l'aspect de spam".
Prenons l’exemple de l’e-mail de notification suivant à partir d’un forum. L’expéditeur de cet e-mail n’étant pas un contact qui doit apparaître dans un CRM, un modèle Machine Learning prédit que "isSpammyLookingEmailMessage" a la valeur true :
Pourquoi ML.NET ?
Lorsque l’équipe de SigParser a décidé d’utiliser le Machine Learning, ils ont initialement essayé d’utiliser R ; toutefois, ils ont trouvé qu’il était très difficile de gérer et d’intégrer leur API, qui est générée avec .NET Core.
Paul Mendoza, PDG et fondateur de SigParser, a déclaré que R « était trop déconnecté du processus de développement. Avec R, nous générions toutes les constantes, puis nous devions les copier et coller dans .NET, puis testions le modèle en vrai et découvrir qu’il ne fonctionnait pas vraiment et que nous devions le répéter. C’était trop lent."
Par conséquent, ils se sont transformés en ML.NET pour tout intégrer dans une seule application.
Avec ML.NET, nous pouvons entraîner le modèle, puis le tester immédiatement dans notre code. La livraison des nouvelles modifications devient ainsi plus rapide, car tous les outils sont regroupés au même endroit.\ »
Impact de ML.NET
L’impact de la migration vers ML.NET à partir de R a été une amélioration de productivité 10 fois plus rapide. En outre, jusqu’à ce que SigParser soit déplacé vers R, ils n’utilisaient qu’un seul modèle Machine Learning. Depuis la conversion en ML.NET, ils disposent désormais de 6 modèles Machine Learning pour différents aspects de l’analyse du courrier électronique. Cette augmentation est due au fait qu’il est désormais possible avec ML.NET d’expérimenter rapidement de nouvelles idées d’apprentissage automatique et d’afficher rapidement les résultats dans l’application.
Architecture de la solution
Traitement des données
SigParser a d'abord utilisé l'ensemble de données bien connu d'Enron pour former son modèle, mais lorsqu'ils ont réalisé qu'il était assez obsolète, ils ont fini par étiqueter quelques milliers d'e-mails dans leurs propres comptes de messagerie (conformément à la conformité GDPR) comme étant humains ou non humains. et l'a utilisé comme ensemble de données d'entraînement.
Fonctionnalités Machine Learning
Le modèle ML.NET de SigParser a deux fonctionnalités (utilisées pour effectuer la prédiction ""IsHumanE-mail") :
HasUnsubscribes
—True si un e-mail a un message "unsubscribe" ou "opt out" dans le corps de l’e-mailEmailBodyCleaned
—Normalise le corps de l’e-mail HTML pour rendre la langue du courrier indépendante et supprimer toutes les informations d’identification personnelle
Algorithme Machine Learning
Ces deux fonctionnalités sont entrées dans un algorithme Binary FastTree, qui est un algorithme pour les scénarios de classification, et la sortie est la prédiction indiquant si l'e-mail a été envoyé par un "vrai humain" ou par une source automatisée. Actuellement, SigParser traite des millions d'e-mails par mois avec ce modèle 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 utilise les transformations de données et les algorithmes de ML.NET pour plusieurs solutions d'apprentissage automatique, y compris le modèle de détection de spam mentionné ci-dessus, qui leur a permis d'exporter automatiquement les informations de contact correctes vers les bases de données clients à partir des signatures d'e-mails, évitant ainsi le temps et les erreurs. -saisie manuelle des données de contact.
Prêt à démarrer ?
Notre tutoriel étape par étape vous aidera à démarrer ML.NET sur votre ordinateur.