Как я собрал свой аналог Text.ru и снизил стоимость проверок
Как я собрал свой аналог Text.ru и снизил стоимость проверок на 85%
В какой-то момент я понял: мы платим не просто за проверку текста, а за большой универсальный сервис, из которого реально используем только часть функций.
Нам были нужны: • проверка уникальности по интернету; • водность; • заспамленность; • частотность слов; • SEO-метрики; • история проверок; • пакетная обработка; • понятный отчет по проблемным фрагментам.
Поэтому я собрал внутренний инструмент — по сути свой аналог Text.ru, но заточенный под наш рабочий процесс.
Главное отличие: мы не просто считаем SEO-метрики локально, а проверяем текст на совпадения через Search API.
Как работает пайплайн: • Текст разбивается на фрагменты • Сначала текст очищается от HTML, лишних пробелов, спецсимволов и мусорной пунктуации. Потом разбивается на предложения, токены и смысловые фрагменты. • Формируются поисковые запросы • Из текста выбираются характерные фразы и шинглы, по которым можно найти возможные совпадения в интернете. • Search API ищет источники • Система отправляет запросы в поисковый API и получает страницы, где потенциально могут быть совпадения. • Найденные страницы загружаются и очищаются • HTML очищается от меню, футеров, рекламы и технического мусора. • Остается основной текст страницы. • Текст сравнивается с найденными источниками • Дальше используются shingling, N-граммы, хэши, пересечения фрагментов и похожесть текстов.
На выходе отчет показывает: • процент уникальности; • список найденных источников; • совпавшие фрагменты; • проблемные участки текста; • водность; • заспамленность; • топ повторяющихся слов; • рекомендации по доработке.
Технически стек получился такой: • Backend: Python + FastAPI • Очереди: Celery / Redis • База: PostgreSQL • NLP: токенизация, лемматизация, стоп-слова, частотный анализ • Уникальность: Search API, shingling, N-граммы, сравнение с найденными страницами • Инфраструктура: Docker, кэширование, логирование Отдельно добавил кэширование. Для каждого текста считается hash нормализованной версии. Если текст уже проверялся, система сразу возвращает готовый отчет.
Также кэшируются: • поисковые запросы; • найденные источники; • очищенные тексты страниц; • токены; • леммы; • частотные словари; • шинглы.
Это сильно снижает количество повторных обращений к внешним API.
Потом добавил batch-режим: загружаешь CSV или список текстов, задача уходит в очередь, а на выходе получаешь готовые отчеты по всем текстам.
Основная экономия появилась за счет того, что мы: • убрали лишние функции; • перестали проверять каждый текст вручную; • сократили обращения к платным сервисам; • добавили кэш; • автоматизировали пакетные проверки; • сделали отчет именно под свои задачи.
В итоге получилась не просто внутренняя SEO-утилита, а полноценная замена Text.ru для нашего процесса.
Зато она решает нашу конкретную задачу: быстро, дешево и массово проверять тексты на уникальность, водность, заспамленность и повторы. Стоимость одной проверки стала примерно на 85% ниже.
· 30.06
Если пост найдет отклик, я подумаю о публикации фичи в общий доступ
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён