SigParser menggunakan ML.NET untuk mendeteksi email "non-manusia"
Pelanggan
SigParser
Produk & jasa
ML.NET
Office 365
Industri
Perangkat Lunak / Telekomunikasi
Ukuran Organisasi
Kecil (<100 karyawan)
Negara/wilayah
AMERIKA SERIKAT
SigParser adalah API dan layanan yang mengotomatiskan proses penambahan dan pemeliharaan sistem manajemen hubungan pelanggan (CRM) yang membosankan (seringkali mahal). SigParser mengekstrak informasi kontak, seperti nama, alamat email, dan nomor telepon, dari tanda tangan email dan memberi umpan semua informasi tersebut sebagai kontak ke dalam sistem atau database CRM.
Masalah bisnis
Ketika SigParser memproses email untuk perusahaan, banyak email yang bukan manusia (misalnya, buletin, pemberitahuan pembayaran, pengaturan ulang kata sandi, dan sebagainya). Informasi pengirim dari jenis email ini tidak boleh muncul dalam daftar kontak atau didorong ke sistem CRM. Dengan demikian, SigParser memutuskan untuk menggunakan pembelajaran mesin untuk memprediksi apakah pesan email "terlihat seperti spam."
Ambil email pemberitahuan berikut dari forum sebagai contoh. Pengirim email ini bukan kontak yang seharusnya muncul di CRM, sehingga model pembelajaran mesin memprediksi bahwa "isSpammyLookingEmailMessage" adalah benar:
Mengapa ML.NET?
Saat tim di SigParser memutuskan untuk memanfaatkan pembelajaran mesin, mereka awalnya mencoba menggunakan R;. Namun, mereka kesulitan dalam pemeliharaan dan integrasi dengan API mereka, yang dibuat dengan .NET Core.
Paul Mendoza, CEO dan pendiri SigParser, mengatakan bahwa R " terlalu berjauhan dengan proses pengembangan. Dengan R, kami menghasilkan semua konstanta, lalu kami menyalin dan menempelkannya ke .NET dan mencoba modelnya dan mempelajarinya jika tidak berhasil. Kemudia, harus mengulanginya. Ini terlalu lambat."
Jadi, mereka beralih ke ML.NET untuk membawa semuanya ke dalam satu aplikasi.
Dengan ML.NET, kami dapat melatih model dan segera mengujinya di dalam kode kami. Ini membuat pengiriman perubahan baru lebih cepat karena semua alat tergabung di satu tempat."
Dampak ML.NET
Dampak perpindahan ke ML.NET dari R telah menjadi peningkatan produktivitas 10x. Selain itu, hingga SigParser dipindahkan ke R, mereka hanya menggunakan satu model pembelajaran mesin. Sejak konversi ke ML.NET, mereka kini memiliki 6 model pembelajaran mesin untuk berbagai aspek penguraian email. Peningkatan ini telah terjadi karena kini memungkinkan ML.NET untuk bereksperimen dengan cepat dengan ide pembelajaran mesin baru dan menampilkan hasil dalam aplikasi dengan cepat.
Arsitektur solusi
Pemrosesan data
SigParser pertama kali menggunakan himpunan data Enron yang terkenal untuk melatih model mereka, tetapi ketika mereka menyadari bahwa itu sudah cukup usang, mereka akhirnya melabeli beberapa ribu email di akun email mereka sendiri (sesuai dengan kepatuhan GDPR) sebagai manusia atau bukan manusia dan menggunakan ini sebagai himpunan data pelatihan.
Fitur pembelajaran mesin
Model ML.NET SigParser memiliki dua Fitur (digunakan untuk membuat prediksi "IsHumanE-mail"):
HasUnsubscribes
—True jika email memiliki "berhenti berlangganan" atau "tolak" dalam isi emailEmailBodyCleaned
—Menormalkan isi email HTML untuk membuat bahasa email agnostik dan menghapus informasi pengidentifikasi pribadi
Algoritma pembelajaran mesin
Kedua Fitur ini dimasukkan ke dalam algoritme FastTree Biner, yang merupakan algoritma untuk skenario klasifikasi, dan outputnya adalah prediksi apakah email dikirim dari "manusia nyata" atau dari sumber otomatis. Saat ini, SigParser memproses jutaan email per bulan dengan model ML.NET ini.
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 menggunakan transformasi dan algoritma data ML.NET untuk beberapa solusi pembelajaran mesin, termasuk model deteksi spam yang disebutkan di atas, yang telah memungkinkan mereka untuk secara otomatis mengekspor informasi kontak yang benar ke database pelanggan dari tanda tangan email, melewati kebutuhan akan entri data kontak manual yang memakan waktu dan rentan kesalahan.
Siap untuk memulai?
Tutorial langkah demi langkah kami akan membantu Anda menjalankan ML.NET di komputer.