Коротко о проекте
-
01
Клиент
Рекрутинговое агентство создает сайт-агрегатор вакансий
-
02
Проблема
На сайте много контента, который размещают пользователи. Там может содержаться нежелательная информация: оскорбительные формулировки, фишинговые ссылки, спам. Пользовательский контент нужно проверять перед публикацией. Но когда его много, это невозможно делать вручную
-
03
Задача
Автоматизировать проверку контента перед публикацией
-
04
Решение
Создать систему премодерации, которая будет автоматически проверять текст перед публикацией с помощью спам-фильтров
Разрабатываем агрегатор вакансий для рекрутингового агентства
Рекрутинговое агентство привлекает персонал на разовые работы: разнорабочие, вахтовики, уборщики, грузчики. Специализированных онлайн-платформ для найма неквалифицированного персонала не существует. Сотрудникам агентства приходится вести собственные базы и вручную подбирать кандидатов, на это тратится много времени.
Чтобы автоматизировать процесс найма, агентство решило разработать собственный агрегатор вакансий. В дальнейшем компания планирует расширить его до профессиональной соцсети: кандидаты смогут обмениваться опытом, приглашать знакомых, а работодатели — повторно нанимать работников, которые хорошо себя зарекомендовали.
Разработку разбили на два этапа:
- на этапе MVP реализуем базовые функции: кандидаты смогут размещать резюме, а работодатели — объявления о вакансиях.
- в расширенной версии добавим функции социальной сети для работодателей и кандидатов.
На сайте много пользовательского контента, который нужно проверять перед публикацией
Сайт предполагает много пользовательского контента даже на этапе MVP: вакансии от работодателей и профили кандидатов. Когда набор функций расширится до соцсети, добавятся отзывы, посты, видео-визитки.
Часть пользовательского контента может оказаться неприемлемой. Например, объявления могут содержать ненормативную лексику, дискриминационные высказывания, оскорбления, пропаганду опасного поведения. Кроме этого, под видом объявлений о вакансии злоумышленники могут рассылать спам и сообщения с фишинговыми ссылками.
Перед публикацией пользовательский контент надо проверять. Вручную обработать такой объем информации невозможно. Мы изучили, какие инструменты используют для борьбы со спамом аналогичные ресурсы: Headhunter, Avito, а также сервис онлайн-трансляций Twitch. На основе полученных инсайтов мы разработали собственную систему автоматической премодерации.
Спроектировали систему модерации контента
На популярных агрегаторах вакансий модерация работает примерно одинаково. В ее основе два механизма:
- первичная автоматическая модерация: алгоритмические программы проверяют контент перед публикацией;
- вторичная ручная модерация: администратор подключается в ситуациях, когда программы не справились и пропустили неприемлемый контент.
При первичной автоматической модерации алгоритмические программы проверяют объявление на использование запрещенных слов и изображений. Для этого в них нужно загрузить список стоп-слов. Базовый список можно найти в открытых источниках. Например, набрать в поисковике «стоп-слова для спам-фильтров».
Алгоритмические программы работают на основе регулярных выражений. В них задается шаблон «найди сочетание букв» и с помощью этого шаблона проверяется текст. Шаблон можно настроить с разной степенью точности, чтобы искать не только слова в исходном виде, но и словоформы.
Программа проверяет текст объявления перед публикацией и сравнивает его со списком запрещенных слов. Если они есть, то опубликовать объявление невозможно, нужно исправить. Если автор объявления не понимает, что нужно исправить, он может обратиться в службу поддержки сайта.
Вторичная ручная модерация необходима, если пользователи жалуются на уже опубликованные объявления. Когда пользователям не нравится контент, они нажимают кнопку «Пожаловаться» и в специальной форме указывают причины, по которым контент кажется им недопустимым. Этот баг-репорт отправляется администратору сайта.
Когда у администратора накопится несколько жалоб на объявление, он рассматривает его в административной панели и принимает решение: оставить объявление, удалить его или связаться с тем, кто его публиковал, чтобы он его изменил.
Разработали механизм первичной модерации на Django
Почему выбрали Django для системы премодерации:
- Интеграция с существующим бэкендом. Django — фреймворк, на котором уже написана вся бэкенд-часть агрегатора вакансий. Использование Django для системы премодерации позволит избежать дублирования кода и поможет бесшовно интегрировать систему с существующей архитектурой, снижая затраты на разработку и упрощая обслуживание.
- Быстрая разработка. У Django есть много готовых компонентов и инструментов, которые могут быть использованы для ускорения разработки. Например, встроенные фильтры для контента — это простые функции-обработчики, которые запоминают массив из запрещенных слов, а затем сравнивают с ним содержание и заголовки всех объявлений перед публикацией.
- Масштабируемость. Django — масштабируемый фреймворк, который может поддерживать большие объемы трафика и данных. Система премодерации, созданная для MVP, может быть легко расширена при разработке полноценной версии продукта для поддержки растущего количества пользователей и объявлений.
- Безопасность. У Django есть инструменты обеспечения безопасности от взломов и несанкционированного доступа. Это важно, когда речь идет о данных пользователей.
- Совместимость. Django поддерживает различные базы данных, такие как PostgreSQL, MySQL, and SQLite, и языки программирования, такие как Python, JavaScript, and HTML. Это позволяет выбирать инструменты, которые лучше всего подходят для нужд проекта. Также Django может работать с различными форматами данных, например с текстом и изображениями, что делает его универсальным решением для премодерации контента.
На этапе MVP мы воспользовались встроенными в Django фильтрами для контента. При разработке полноценной версии мы доработаем их и добавим в фильтры стоп-слова, которые связаны с объявлениями о вакансиях. Для этого мы накапливаем данные из нескольких источников:
- изучаем объявления, которые блокируются на других работных сайтах;
- администраторы агрегатора проверяют публикуемые объявления и собирают запрещенные слова, которые используют авторы именно на этом сайте;
- после жалоб на опубликованные объявления администраторы получают слова, на которые чаще всего жалуются пользователи. С каждой жалобой первичная премодерация будет становиться все точнее.
На этапе MVP система проверяет только тексты объявлений. В дальнейшем мы добавим проверку изображений. Это позволит блокировать оскорбительные изображения и фотографии в плохом качестве.
На старте администратор будет проверять изображения вручную. Позже мы подключим алгоритм автоматической проверки. Мы уже решали подобные задачи: создали для агрегатора видеороликов модуль на Python, который из 50 миллионов картинок-превью и нашел 4,7 миллиона размытых.
Вторичная модерация: вручную или с помощью нейросети?
При модерации контента недостаточно только антиспам-фильтров. Запрещенные слова можно написать так, что фильтр их не распознает. Например, вместо «Здорово» написать «3д0р0в0», используя цифры вместо букв «з» и «о». В таких случаях нужна вторичная модерация: после жалоб пользователей опубликованные объявления проверяют повторно.
Вторичную модерацию можно проводить вручную, а можно использовать нейросеть. У этого решения есть плюсы и минусы:
- Нейросеть проверяет объявления быстрее человека, но при ее работе все равно бывают ошибки.
- Для обучения нейросети нужны данные, а именно объявления. Как только на сайте будет больше 1000 объявлений в день, мы сможем создать алгоритм, обучить его и использовать для модерации.
Пока данные для обучения не накоплены, на сайте будет реализован механизм вторичной модерации с участием человека. В блоке «Модерация объявлений» административной панели модератор будет видеть все объявления, на которые пожаловались пользователи. Объявления будут автоматически блокироваться до того, как модератор примет решение «Удалить» их или «Разблокировать».
На каких еще проектах полезна система премодерации
Система автоматической премодерации может быть использована в любых продуктах с пользовательским контентом. Чем больше контента генерируют пользователи, тем сильнее система премодерации влияет на комфортное использование продукта.
Примеры проектов | Чем полезна система премодерации |
Форумы | — Предотвращение флуда и спама. Поддерживает порядок и фокус на теме обсуждения, улучшает пользовательский опыт. — Фильтрация оскорбительных сообщений. Создает безопасную и уважительную среду для участников. |
Образовательные платформы | — Фильтрация плагиата и некорректного оформления работ. Обеспечивает честность и объективность оценки знаний, учит студентов правильно оформлять работы и цитировать источники. — Блокировка нежелательного контента. Защищает детей от доступа к неподходящей информации. Создает безопасную среду для обучения. |
Социальные сети | — Фильтрация спама и оскорбительных комментариев. Помогает снижать уровень агрессии среди пользователей и защищает их от харассмента и кибербуллинга. — Модерация контента, не соответствующего правилам платформы. Запрещает распространение дезинформации, разжигание ненависти и другой опасный контент. |
Корпоративные порталы | — Повышение безопасности и конфиденциальности. Блокирует контент, содержащий коммерческую тайну или персональные данные сотрудников. — Поддержание профессионального имиджа компании. Фильтрует контент, который не соответствует ценностям компании. — Повышение эффективности работы. Блокирует спам и ненужную информацию, чтобы сотрудники могли сосредоточиться на важных задачах. |
Сайты знакомств | — Обеспечение безопасности пользователей. — Блокирует фейковые профили, мошенников и спамеров. — Фильтрует сообщения с оскорблениями, некорректные описания и фото, сделанные не по правилам. |
Интернет-магазины и сайты с отзывами | — Борьба с фейковыми отзывами. Обеспечивает достоверность информации о продуктах и услугах. Защищает потребителей от обмана. — Модерация отзывов, содержащих нецензурную лексику или оскорбления. Поддерживает вежливую атмосферу на сайте. Сохраняет положительный имидж компании. |
Сервисы аренды недвижимости, автомобилей | — Предотвращение мошенничества. Блокирует фейковые объявления и профили пользователей, проверяет подлинность документов, снижает риск кражи имущества. |
Telegram
WhatsApp
+7 499 321-59-32
contact@orbitsoft.com