Product
Mise à jour produit hebdomadaire : améliorations du panneau de contrôle et correcteur orthographique 135 fois plus rapide pour la vérification des emails
Cette semaine, nous nous sommes concentrés sur l’amélioration du panneau de contrôle de Mailgun et du correcteur orthographique de l’API de vérification des emails.
Le panneau de contrôle fait peau neuve et s’enrichit de nouvelles fonctionnalités
Vous ne l’aviez peut-être pas remarqué, mais notre panneau de contrôle n’a remporté aucun prix de design. : ) Notre équipe s’est toujours concentrée sur l’ingénierie et maîtrisait mieux Python et Golang que HTML5 et CSS. Mais nous avons récemment recruté une personne exceptionnelle spécialisée en design UX et développement front-end pour améliorer l’expérience d’utilisation de Mailgun via le panneau de contrôle. Cette semaine, nous avons donc déployé une nouvelle version du panneau de contrôle avec plusieurs améliorations visuelles subtiles et une nouvelle fonctionnalité qui devrait vous être utile : le statut des domaines. Ce n’est que la première étape et nous déploierons d’autres améliorations UX et fonctionnalités à l’avenir.
Statut du domaine
Tout domaine Mailgun peut avoir l’un des trois statuts suivants : actif, non vérifié ou désactivé. Voici ce que chacun d’eux signifie et pourquoi vous devriez vous y intéresser :
- Actif : cela signifie que votre domaine dispose de tous les enregistrements DNS appropriés et qu’il est en règle.
- Non vérifié : cela signifie qu’il manque à votre domaine tout ou partie des enregistrements DNS d’envoi requis. C’est un problème, car sans ces enregistrements, vos emails finiront très probablement dans les spams. Vous devez corriger ce problème dès que possible.
- Désactivé : cela signifie que votre domaine n’est plus en mesure d’envoyer d’emails, très probablement en raison d’un taux élevé de rebonds ou de plaintes reçues. Contactez-nous à l’adresse support@mailgun.com pour résoudre le problème.
Ces statuts vous donnent un aperçu rapide de tous vos domaines, ce qui est particulièrement utile si vous gérez une plateforme à grande échelle pour votre clientèle via Mailgun. Il sera désormais beaucoup plus facile d’identifier les membres de votre clientèle qui rencontrent des problèmes et ont besoin de votre aide. Le statut des domaines est également disponible dans notre API des domaines si vous préférez y accéder de cette manière.
Correcteur orthographique du validateur d’emails 135 fois plus rapide
Lorsque nous avons commencé à travailler sur Guardpost, notre API de vérification des emails, nous savions que les suggestions de correction étaient une fonctionnalité que nous voulions intégrer au service (cela permet de repérer les fautes de frappe comme gmall.com au lieu de gmail.com). Nous voyons chaque jour de très nombreux emails non remis à leurs destinataires à cause de fautes de frappe, et nous voulions y remédier. Nous avons mené une réflexion en interne et cherché comment d’autres personnes résolvaient ce problème ; et, comme beaucoup, nous avons découvert l’article de Peter Norvig sur la création d’un correcteur orthographique et nous avons conçu notre premier correcteur orthographique autour de son idée pour la version initiale de Guardpost que nous avons déployée.
Nous avons rapidement constaté que notre CPU était saturé, ce qui ralentissait Guardpost, bien que ce dernier soit hébergé sur un serveur très puissant. Une analyse de profilage a rapidement montré que le correcteur orthographique consommait un temps disproportionné.
Pour en revenir au correcteur orthographique, la version initiale fonctionnait en créant de multiples combinaisons de chaînes de caractères à partir du mot d’origine (appelées modifications). En parcourant l’ensemble de ces modifications, l’algorithme cherchait celle présentant le moins de différences par rapport au mot initial (la distance d’édition) pour la proposer comme suggestion de correction.
C’est une excellente approche pour les mots de la langue anglaise, mais nous ne traitions pas de simples mots anglais : nous examinions un sous-ensemble très spécifique, les domaines. Nous avons donc commencé à chercher d’autres algorithmes plus performants pour notre cas d’usage spécifique de correction des fautes de frappe sur les domaines. Nous avons mené de nombreuses expériences pour trouver la solution la plus performante. En matière de performances, nous recherchions un algorithme offrant à la fois rapidité et précision.
Après de nombreuses recherches, expériences et ajustements, nous avons fini par utiliser une bibliothèque intégrée à Python appelée difflib, qui utilise l’algorithme de Ratcliff-Obershelp pour calculer la similarité entre deux chaînes de caractères. Cet algorithme n’est pas seulement précis, il est aussi très rapide pour corriger les domaines. À quel point est-il plus rapide ? 135 fois plus rapide !
Qu’en est-il de la précision ?
Pour évaluer la précision, nous avons créé un ensemble de données de test comprenant les fautes de frappe courantes détectées par notre serveur DNS, ainsi que des mutations aléatoires. Les mutations aléatoires consistent par exemple à supprimer ou ajouter des caractères au hasard dans un domaine, ou encore à raccourcir ou allonger des mots. Au total, nous avons effectué environ 1 000 tests.
Sur l’ensemble des données, le nouveau correcteur a obtenu une précision de 93,9 %, contre 98,9 % pour l’ancien.
Comme vous pouvez le constater, ces tests semblent avoir été conçus pour grandement avantager le correcteur d’origine, car c’est là qu’il excelle vraiment : dans l’analyse des modifications.
En retirant ces tests pour ne conserver que les fautes de frappe réelles détectées par nos serveurs DNS, notre nouveau correcteur atteint une précision de 95,8 %, contre 96,3 % pour le correcteur initial ! Cela représente moins de 1 % de perte de précision sur des fautes de frappe réalistes, pour une vitesse multipliée par 135. C’est un excellent compromis.
Ce n’est qu’une des nombreuses choses sur lesquelles nous travaillons en coulisses pour améliorer Guardpost et l’expérience d’utilisation de cet outil. Tout cela (et bien plus encore) sera bientôt rendu open source. Vous pourrez ainsi l’examiner (et le tester) par vous-même. Restez à l’écoute !
C’est tout pour cette semaine.
Bons envois !
L’équipe Mailgun