
В данной статье рассмотрено программное решение для сбора набора данных о пропавших и найденных животных с сайта Pet911.ru – крупнейшей в России система поиска пропавших животных, анализа и визуализации полученных данных. Исследуется зависимость шанса нахождения животного или новых хозяев от его вида, возраста, подробности описания примет, числа комментариев, количества фотографий и так далее Формируется статистика о пропавших питомцах по регионам. Данная работа может помочь при организации поисков пропавших животных и для нахождения хозяев уличным животным, создании новых волонтёрских объединений.
Данное исследование выполнено в рамках дисциплины «Большие данные» магистерской программы «Математические методы анализа и визуализации данных» Санкт‑Петербургского политехнического университета Петра Великого.
Авторы статьи: Худина Анастасия Алексеевна, Буталова Юлия Алексеевна, Цыганков Тимофей Юрьевич, Степанов Андрей Алексеевич.
Обзор предметной области
По данным Информационного телеграфного агентства России (ТАСС), в 2024 году в России было потеряно и найдено более 168 тысяч домашних животных, что на 17% больше, чем годом ранее. Для повышения шансов найти питомца живым и невредимым, помимо самостоятельных поисков, можно обратиться к волонтёрским сообществам и специализированным сервисам – именно волонтеры помогают найти более 90% пропавших животных. Одним из ключевых онлайн‑ресурсов, аккумулирующих информацию о пропаже и находке животных, является Pet911.
Pet911 – это масштабный общественный проект, созданный для помощи в поиске пропавших питомцев. Сервис функционирует как информационная площадка, где владельцы могут разместить ориентировки, а волонтёры и просто неравнодушные люди – оперативно получать данные о потерявшихся животных в своем районе. Несмотря на то, что данные Pet911 составляют лишь часть от всех пропавших питомцев, анализ этих данных позволит составить представление об общей статистике по стране.
Постановка задач исследования
Сформулированные нами аналитические задачи можно разделить на 5 подгрупп:
анализ ситуации в регионах и построение прогнозной модели нагрузки;
анализ активности пользователей на сайте;
анализ факторов, влияющих на вероятность успешного поиска и построение прогнозной модели вероятности благополучного исхода;
анализ обстоятельств пропажи и особенностей поиска, кластеризация по качеству оформления заявок;
сравнительный анализ факторов успеха для двух типов объявлений.
Подготовка данных к анализу
В качестве источника данных был выбран сайт Pet911.ru – крупнейшая в России система поиска пропавших животных. Сбор данных осуществлялся из двух основных разделов каталога:
пропавшие животные (объявления от хозяев о потере питомца);
найденные животные (объявления от людей, нашедших животное на улице и ищущих старых или новых хозяев).
Характеристика источника:
тип данных: слабо структурированные данные (HTML‑страницы);
формат представления: каталог объявлений и индивидуальные карточки;
период выборки: сентябрь – октябрь 2025 года;
специфика: данные вводятся пользователями вручную, что приводит к высокой вариативности написания пород, адресов и описаний, а также к пропускам в ключевых полях.
Исходные данные представляли собой HTML‑страницы каталога и детальные страницы («карточки») отдельных животных. Каждая карточка содержала как структурированные метаданные (поля формы), так и неструктурированный текст (описание, заголовок).
Для автоматизации сбора данных был разработан скрипт на языке Python, реализующий ETL‑процесс. Процесс был построен по принципу объектно‑ориентированного программирования (класс Pet911Scraper) и состоял из следующих этапов:
инициализация параметров: задание стартовых URL с географическими координатами и временными фильтрами (сентябрь‑октябрь 2025);
-
сбор ссылок:
итеративный обход страниц;
сбор уникальных URL‑адресов карточек объявлений во избежание дублирования данных;
-
глубокий парсинг:
переход на страницу каждого объявления;
извлечение данных по словарю CSS‑селекторов;
задержка: внедрение случайных пауз от 2 до 4 секунд между запросами для имитации человеческого поведения;
-
постобработка и сохранение:
агрегация всех словарей в единый DataFrame;
разделение на два файла по типу объявления.
Для повышения качества данных и заполнения пропусков был реализован алгоритм «умного поиска» атрибутов.
В результате работы скрипта был сформирован массив данных за период сентябрь‑октябрь 2025 года. Данные сохранены в формате CSV. Датасет был поделён на две части: для объявлений о пропавших животных, которых ищут хозяева, и для объявлений о найденных сторонними людьми животных — для поиска их хозяев. Фрагмент таблицы датасета найденных животных представлен на рис. 1.

Количественные характеристики:
общий объем выборки: 1549 уникальных записей;
пропавшие: 997 записей;
найденные: 552 записи;
-
структура данных:
идентификаторы: id, url (ссылка на источник);
временные метки: дата публикации, дата пропажи или дата находки;
характеристики животного: тип животного, пол, порода, окрас, возраст;
география: регион, место события (адрес/район);
контент и метаданные: описание (полный текст), особые приметы (извлеченные), количество фото, длина описания в словах.
Полученный и очищенный датасет полностью готов для исследовательских целей:
сравнительный анализ: соотношение 997 к 552 позволяет оценить дисбаланс между теряемыми и находимыми животными;
гео‑аналитика: поля с адресами позволяют построить тепловые карты районов с наибольшей активностью;
оценка эффективности объявлений: данные позволяют выявить корреляцию между полнотой заполнения карточки (длина текста, наличие фото) и успешностью поиска;
NLP‑задачи: текстовые описания пригодны для частотного анализа слов и кластеризации объявлений.
Краткий обзор решения ключевых задач анализа
1. Анализ ситуации в регионах и построение прогнозной модели нагрузки
В рамках настоящего исследования была поставлена первая аналитическая задача: выявление и систематизация пространственно‑временных закономерностей в потоке заявок, связанных с потерей и находкой домашних животных. Полученные данные и закономерности будут иметь ключевое значение для оптимизации работы волонтерских служб и распределения ресурсов. Для достижения поставленной цели задача была разбита на две последовательные подзадачи: ранжирование регионов по ключевым метрикам эффективности и построение прогнозной модели временной нагрузки.
Первая подзадача была направлена на анализ региональной статистики. Целью являлось выявление географических особенностей: определение регионов с наибольшей активностью пользователей (общее число заявок), а также регионов с наивысшей и наименьшей долей успешного завершения случаев (коэффициент успеха). Такой анализ позволяет адресно оценить эффективность существующих практик в разных субъектах и выделить территории, требующие дополнительного внимания или изучения успешного опыта.
Для решения этой задачи был применен инструментарий языка Python с использованием специализированных библиотек для анализа данных и визуализации. Основная обработка и агрегация данных выполнялись с помощью библиотеки Pandas, обеспечивающей эффективную работу со структурированными таблицами и временными рядами. Визуализация результатов была реализована посредством библиотек Matplotlib и Seaborn, которые предоставляют широкие возможности для создания качественных графиков и диаграмм, необходимых для наглядного представления сложных статистических зависимостей. В качестве основного научного метода использовался описательный статистический анализ, включающий группировку, агрегацию и расчет относительных показателей (долей и процентов).
В результате анализа были созданы визуализации для двух типов заявок: о поиске питомцев и о поиске хозяев. Полученные диаграммы включают таблицу топ-10 регионов по эффективности, горизонтальные и круговые диаграммы распределения заявок, графики процента успешных случаев, а также комбинированные столбчатые диаграммы для сравнения общего числа заявок и успешных исходов по регионам.
Вторая подзадача была сфокусирована на анализе временных закономерностей и построении прогнозной модели. Ее цель – выявление сезонных и недельных паттернов в поступлении заявок и построение краткосрочного прогноза нагрузки для помощи волонтерским организациям в планировании ресурсов на периоды ожидаемой пиковой активности.
Для решения этой подзадачи, помимо Pandas, Matplotlib и Seaborn, активно использовались методы работы с временными рядами, встроенные в Pandas, такие как ресемплинг данных по различным временным агрегатам (неделя, месяц). Это позволило перейти от точечных данных к рядам, пригодным для анализа трендов и периодичности. Прогнозирование осуществлялось упрощенным методом на основе скользящего среднего с добавлением случайной вариации, что, хотя и не является сложной статистической моделью, дает базовую ориентировочную оценку на ближайшую перспективу.
Результатом выполнения кода стали три типа временных графиков для каждого датасета. Первый график – столбчатая диаграмма распределения заявок по дням недели – позволяет выявить, существует ли повышенная нагрузка на службы в конкретные дни (например, выходные). Второй график в виде линейной диаграммы отображает динамику поступления заявок по неделям за весь период наблюдений, отображая общие тренды и возможные всплески активности. Третий, ключевой для прогнозирования, график представляет собой комбинированную столбчатую диаграмму, где фактические месячные данные отделены от спрогнозированных на три месяца вперед значений, что дает наглядный инструмент для планирования.
2. Анализ активности пользователей на сайте
В рамках второй аналитической задачи исследования был проведен углубленный анализ поведения пользователей на платформе и качественных характеристик публикаций с целью определения факторов, максимизирующих вероятность успешного воссоединения питомцев с хозяевами. Данная задача была разбита на две ключевые подзадачи: анализ активности пользователей через призму комментариев и анализ влияния качественных параметров публикаций (наличие, количество и детализация контента) на успешность поиска.
Первая подзадача была посвящена анализу пользовательской активности, измеряемой через количество комментариев к объявлению. Целью являлось выявление корреляции между уровнем вовлеченности сообщества (количеством комментариев) и конечной успешностью случая. Гипотеза заключалась в том, что более активное обсуждение может свидетельствовать о повышенном внимании к случаю, распространении информации и, как следствие, повышать шансы на успех. Для решения этой задачи применялся инструментарий Python с использованием библиотек Pandas для обработки и агрегации данных, а также SciPy для проверки статистической значимости различий между группами. Основным научным методом выступил сравнительный корреляционный анализ, включающий расчет средних значений и распределения долей успеха по группам активности.
Результаты анализа активности представлены на серии диаграмм. Графики «Среднее количество комментариев» показывают, что среднее число комментариев под успешными объявлениями о пропаже питомцев несколько выше, тогда как для объявлений о находке разница минимальна. Более показательными являются графики зависимости успешности от количества комментариев. Для объявлений типа «lost» наблюдается ярко выраженная положительная корреляция: при отсутствии комментариев успешность составляет лишь 27.8%, тогда как в группе с 10+ комментариями этот показатель достигает 75.0%. Для объявлений типа «found» тренд также положительный, но менее выраженный: от 9.5% при нуле комментариев до 20.5% в группе 6–10 комментариев.
Вторая подзадача была сфокусирована на анализе качественных характеристик публикаций: наличии и количестве фотографий, длине текстового описания, а также их комбинированном влиянии. Целью было выявление формальных критериев, которым должно соответствовать объявление для увеличения его эффективности. Использовались методы статистического сравнения долей (аналог A/B‑тестирования) и многомерного анализа. Инструментарий включал библиотеки Pandas для агрегации данных, а также регулярные выражения (модуль re) для обработки текста и подсчета слов в описаниях. Визуализация осуществлялась с помощью Matplotlib и Seaborn.
Результаты представлены в виде набора сравнительных диаграмм. Анализ наличия фото показал, что для поиска питомца фото повышает успешность с 24.0% до 31.6%. Для поиска хозяев эффект еще более выражен: с 9.5% до 16.8%. Зависимость от количества фото демонстрирует явный положительный тренд для типа «lost»: успешность монотонно растет от 24.0% (0 фото) до 33.6% (3 фото). Для типа «found» пик эффективности (17.1%) наблюдается при 2 фото, а при большем количестве показатель стабилизируется или немного снижается. Длина описания оказывает сильное влияние на успешность поиска питомца: подробные описания (25+ слов) дают 38.1% успеха против 23.8% для коротких. Для поиска хозяев тренд аналогичный, но с меньшим разбросом. Наиболее информативен комбинированный анализ.
3. Анализ факторов, влияющих на вероятность успешного поиска и построение прогнозной модели вероятности благополучного исхода
В рамках третьей аналитической задачи исследования был проведен комплексный статистический анализ для выявления ключевых факторов, влияющих на вероятность успешного воссоединения питомцев с хозяевами. Задача была разбита на две взаимосвязанные подзадачи: расчет статистики влияния различных характеристик и построение на её основе интерактивной прогнозной модели.
Первая подзадача была направлена на систематическое изучение корреляции между успешностью поиска и параметрами объявления. Целью являлось количественное измерение влияния таких факторов, как тип животного, наличие и количество фотографий, полнота текстового описания и наличие контактной информации. Полученные метрики должны были стать основой для построения прогнозной модели.
Для решения данной задачи был применен инструментарий Python с использованием специализированных библиотек для обработки структурированных данных и визуализации. Основная работа с табличными данными выполнялась с помощью библиотеки Pandas, обеспечивающей эффективные операции фильтрации, группировки и агрегации. Особое внимание было уделено обработке специфического формата входных данных: CSV‑файлов, где каждая строка представляет собой одну запись с разделителем‑запятой, а значения, содержащие запятые, экранированы двойными кавычками. Для корректного парсинга использовался модуль CSV. Визуализация промежуточных и итоговых результатов была реализована посредством библиотек Matplotlib и Seaborn. В качестве основного научного метода использовался описательный статистический анализ с расчетом относительных показателей (долей успеха) для различных сегментов данных.
Результатом выполнения кода стала так же серия диаграмм. Важным итогом выполнения программы стали сохранённые в структурированных JSON и CSV файлах метрики. Эти файлы содержат базовые уровни успешности для каждого типа объявлений и точные значения влияния каждого проанализированного фактора, что создает необходимую эмпирическую базу для следующего этапа.
Вторая подзадача была посвящена разработке и реализации интерактивной прогнозной модели, основанной на статистике, собранной на предыдущем этапе. Целью являлось создание инструмента, позволяющего пользователям оценить вероятностный шанс на успех конкретного объявления на основе вводимых параметров и получить персонализированные рекомендации по его улучшению.
Для решения данной задачи был применен подход, основанный на аддитивной модели с корректировками. Инструментарий включал библиотеку JSON – для загрузки предварительно рассчитанных статистических весов, Matplotlib – для создания наглядной визуализации прогноза в виде градиентной шкалы, а также интерактивный ввод данных через консоль.
Помимо численного прогноза, система генерирует текстовые рекомендации, например: «Добавьте фото питомца – по статистике это увеличивает шансы на X%». Ключевым элементом вывода является визуализация: создается график (Рис. 2). Верхняя панель содержит текстовую сводку введенных пользователем данных. Нижняя панель представляет собой градиентную шкалу вероятности (от красного к зеленому), на которой отмечены базовая успешность (синяя линия) и рассчитанная для пользователя вероятность (черная пунктирная линия). Данный график сохраняется в файл с уникальным именем, содержащим временную метку.

Программа работает в интерактивном цикле, позволяя пользователю делать несколько прогнозов подряд для разных сценариев.
4. Анализ обстоятельств пропажи и особенностей поиска, кластеризация по качеству оформления заявок
В рамках четвертой аналитической задачи исследования был проведен углубленный анализ текстового контента объявлений с целью выявления вербальных маркеров, коррелирующих с успешным или не успешным исходом. Задача также была разбита на два аспекта: лингвистический анализ и кластеризация по качеству оформления.
Подзадача была направлена на исследование семантического наполнения текстовых описаний. Гипотеза заключалась в том, что выбор лексики, стилистические особенности и степень детализации в описании питомца или обстоятельств его пропажи/находки могут статистически значимо влиять на вовлеченность пользователей и, как следствие, на результат поиска. Целью являлось выделение слов и фраз, наиболее характерных для успешных и не успешных объявлений.
Для решения данной задачи был применен комплексный лингвистический инструментарий Python. Обработка текстов на русском языке осуществлялась с использованием библиотек NLTK (для загрузки списка стоп‑слов) и Pymorphy3 (для приведения слов к их нормальной, словарной форме). Это позволило нивелировать влияние падежей, чисел и других грамматических вариаций. Основной анализ проводился с использованием двух взаимодополняющих методов:
частотный анализ: подсчет абсолютной и относительной (на 1000 слов) частоты употребления каждого слова в успешных и не успешных объявлениях;
TF‑IDF анализ: метод векторизации текстов, который оценивает важность слова не только по частоте его употребления в конкретном документе, но и с учетом его редкости во всей коллекции документов. Это позволяет выявить слова, которые являются характерными для определенной группы объявлений.
Визуализация результатов, сохраненных в папке «Результаты 4 главы анализа», представлена в виде двух комплексных графиков. Первый график (Рис. 3) содержит четыре диаграммы, демонстрирующие лидирующие 20 слов по разнице частот и по разнице TF‑IDF весов для успешных и не успешных объявлений. Второй график (Рис. 4) позволяет детально сравнить абсолютные частоты топ-10 слов из каждой группы в обоих подгруппах. Все числовые результаты (полные ранжированные списки слов с частотами и TF‑IDF весами) сохраняются в структурированных CSV‑файлах для возможности дальнейшей работы с полученными данными.


Вторая подзадача в рамках четвертого пункта была направлена на сегментацию всего массива объявлений на однородные группы на основе комплексной оценки качества и полноты их оформления. Целью являлось выявление типовых «портретов» объявлений, оценка их распространенности и, что наиболее важно, определение связи между принадлежностью к тому или иному кластеру и итоговой успешностью поиска. Таким образом, задача заключалась в переводе качественных характеристик в количественные сегменты для выявления наиболее успешных групп.
Для решения данной задачи были применены методы машинного обучения без учителя, в частности, алгоритм кластеризации K‑Means. Инструментарий включал библиотеку Scikit‑learn, предоставляющую эффективные реализации алгоритмов машинного обучения, и методы снижения размерности для визуализации результатов в двумерном пространстве. Обработка данных и работа с признаками осуществлялась с помощью Pandas.
5. Сравнительный анализ факторов успеха для двух типов объявлений
В рамках пятой аналитической задачи был проведён комплексный сравнительный анализ факторов, влияющих на успешность поиска животных в двух различных сценариях: объявления о пропаже («lost») и объявления о находке («found»). Задача направлена на выявление различий в динамике и механизмах успешного завершения поиска в зависимости от типа ситуации.
Пятый аналитический блок включает девять подзадач, каждая из которых посвящена одному фактору:
первая подзадача посвящена изучению влияния временной задержки между событием пропажи и публикацией объявления на успешность поиска;
вторая подзадача анализирует зависимость успешности от возраста животного;
третья подзадача направлена на изучение влияния типа местности на успешность поиска;
четвёртая подзадача анализирует влияние наличия фотографии в объявлении;
пятая подзадача посвящена анализу влияния породистости.
Для каждой подзадачи выполнена статистическая обработка данных и построены визуализации, позволившие провести прямое сравнение между двумя сценариями.
Общие результаты анализа
Проведенное исследование позволило выявить комплекс взаимосвязанных пространственно‑временных и поведенческих закономерностей, определяющих эффективность поиска пропавших и найденных животных на платформе Pet911. Синтез результатов всех аналитических подзадач формирует целостную картину. Анализ регионального распределения заявок показал выраженную централизацию проблемы: на Москву и Московскую область приходится непропорционально большая доля инцидентов. Однако именно мегаполисы демонстрируют сравнительно низкую эффективность, в то время как наибольший процент успешных исходов наблюдается в небольших населённых пунктах, что может указывать на более эффективную работу локальных сообществ. Временной анализ выявил, что пик заявок о пропаже приходится на воскресенье и понедельник, а также восходящий тренд недельной активности в течение анализируемого периода. Построенная прогнозная модель, несмотря на ограниченный период наблюдений, указывает на возможное снижение нагрузки по объявлениям о пропаже в ближайшие три месяца при стабилизации нагрузки по объявлениям о находке, что позволяет рекомендовать волонтёрским организациям гибкое перераспределение ресурсов.
Исследование однозначно подтвердило гипотезу о критическом влиянии полноты и качества публикации на вероятность благополучного исхода. Наличие фотографии повышает успешность поиска в 1.5 – 2 раза, причём для пропавших животных наблюдается прямая зависимость от количества изображений. Детальное текстовое описание существенно увеличивает шансы на успех, а максимальная эффективность достигается при синергии факторов – комбинации нескольких фото и развёрнутого текста. Активность пользователей в комментариях выступает мощным социальным фактором успеха, особенно для объявлений о пропаже, выполняя функцию краудсорсинга, уточнения деталей и расширения географии поиска.
Лингвистический анализ текстовых описаний выявил существенные различия в семантике успешных и не успешных объявлений. Для успешных случаев характерна лексика конкретики и призыва к действию, в то время как не успешные объявления чаще содержат расплывчатые и эмоционально‑оценочные формулировки, что снижает их информативность. Кластеризация всех объявлений по параметрам качества позволила выделить устойчивые типы анкет. Наиболее эффективный кластер характеризуется высокой оперативностью публикации, наличием нескольких фотографий, подробным описанием и активным обсуждением. Напротив, кластеры с низкой полнотой заполнения или значительной задержкой публикации демонстрируют существенно более низкие показатели успешности, что подчёркивает важность как качества, так и своевременности.
Сравнение факторов успеха для двух принципиально разных типов объявлений выявило как общие, так и специфические закономерности. Общим для обоих сценариев является фундаментальная важность визуального и текстового контента. Однако выявлена значительная асимметрия в абсолютных показателях успешности и в ключевых факторах влияния. Для сценария поиска потерянного питомца критически важна скорость публикации, тогда как для поиска хозяев для найденного животного этот фактор выражен слабее. Влияние типа местности также проявляется противоположным образом. Таким образом, стратегии оптимизации и рекомендации для пользователей и волонтёров должны быть строго дифференцированы в зависимости от типа решаемой задачи.
С более развёрнутым и подробным анализом можно ознакомится в репозитории проекта.
Заключение
В результате проведённого исследования был выполнен комплексный анализ данных крупнейшей российской платформы Pet911, что позволило перейти от эмпирических наблюдений к количественно обоснованным выводам и практическим рекомендациям. Доказано, что эффективность поиска определяется не столько географией или типом животного, сколько качеством создаваемого пользователями цифрового следа – информативностью и оперативностью публикации, а также уровнем вовлечённости виртуального сообщества. Выявленные паттерны – такие как низкая эффективность мегаполисов при высокой нагрузке, критическая важность первых часов для публикации, семантические маркеры успешных текстов и чёткие профили качественных анкет – формируют основу для системных улучшений.
Полученные результаты имеют прямую практическую значимость. Они могут быть интегрированы в функционал платформы в виде интерактивного конструктора объявлений с подсказками, автоматического калькулятора шансов на успех. Целевые рекомендации, адресованные пользователям, способны существенно повысить общую эффективность поиска. Основным ограничением работы является относительно короткий период наблюдения, что не позволяет в полной мере учесть сезонные колебания. В качестве перспектив дальнейших исследований предлагается сбор данных за многолетний период для построения более точных прогнозных моделей, применение методов машинного обучения для создания комплексных прогнозирующих инструментов, а также расширение анализа на данные смежных платформ. Реализация этих направлений позволит эволюционировать от аналитической системы к интеллектуальной платформе поддержки принятия решений, способной повысить шансы на возврат домой каждого потерянного питомца.
Ссылка на репозиторий выполненного исследования
Ссылка на репозиторий магистерского проекта, где можно подробно ознакомиться со всеми материалами проведённого исследования.
leshchev-artem
Эйс Вентура одобряет!
Тынц
nunucka-19
тут про анализ данных а не про то-что 911 чтобы не звонили в 112 а то можно и получить хлыстом за такое