В API уже есть несколько проверок: исправление опечаток, обнаружение Gmail dot trick и поиск подозрительных паттернов. Каждая из них решает свою задачу. Humaneness работает иначе. Это ML-модель, которая анализирует часть email-адреса до символа @ и оценивает, насколько адрес похож на придуманный человеком, а не сгенерированный автоматически. Результат — число от 0 до 1. Например, ivan.ivanov@mail.ru получит оценку ближе к 1, а fjweowenfmewjewk@mail.ru — ближе к 0.
Как это устроено
Для оценки email-адресов мы обучили ML-модель на реальных адресах и искусственно созданных примерах. Она научилась отличать привычные человеку имена почтовых ящиков от случайных наборов букв, необычных сочетаний символов и других подозрительных комбинаций. Теперь каждый email проверяется автоматически, без обращения к сторонним сервисам. Это позволяет быстро получать оценку и использовать её вместе с другими проверками адреса.
Полное описание набора признаков, обучающих данных и оценки модели опубликовано отдельно:
habr.com — статья о модели ↗Оценка Humaneness не зависит от других проверок CleanContact. Поэтому адрес может успешно пройти все стандартные проверки, но при этом выглядеть подозрительно для ML-модели. Бывает и наоборот: модель считает адрес похожим на настоящий, хотя другие проверки находят в нём признаки риска.
Пример
curl -H "X-API-Key: <ваш-ключ>" \
"https://api.cleancontact.ru/validate?email=fjweowenfmewjewk@mail.ru"{
"value": "fjweowenfmewjewk@mail.ru",
"normalized": "fjweowenfmewjewk@mail.ru",
"result": {
"status": "Good",
"detail": "Mailbox accepts mail"
},
"humaneness": 0.0421
}Оценка Humaneness возвращается в ответе API отдельным числовым полем, наряду с result, и не входит в состав risk. Обычно она доступна для каждого проверенного адреса. Если по какой-то причине модель не смогла выполнить оценку, поле humaneness просто не возвращается. Это не означает, что адрес подозрительный, — только то, что оценку получить не удалось.
Что это даёт
- Гибкая оценка риска. Вместо простого ответа «да» или «нет» вы получаете оценку от 0 до 1. Вы сами решаете, при каком значении отправлять адрес на дополнительную проверку, блокировать его или просто сохранять информацию о нём.
- Находит подозрительные адреса, которые пропускают обычные проверки. Модель не ограничивается заранее заданными правилами. Она анализирует сочетания символов и помогает выявлять автоматически сгенерированные адреса, даже если они не нарушают ни одного известного правила.
- Подходит для любых почтовых сервисов. В отличие от проверок, разработанных специально для Gmail или Яндекса, модель оценивает сам адрес независимо от почтового провайдера.