Кейс 10 · Чаты → база объектов

47 000 сообщений из чатов — в базу на 83 000 объектов

Рынок недвижимости Дубая живёт в Telegram-группах: предложения приходят обычным текстом, вперемешку с болтовнёй, и через час тонут в ленте. Собрал пайплайн, который читает эти группы, достаёт из сообщений поля и складывает объекты в базу и в Excel. Точность извлечения — около 97%, и это измеренная цифра, а не самооценка.

47 000

сообщений прочитано и разобрано

83 000

структурированных карточек объектов на выходе

~97%

точность извлечения полей, проверена сверкой с исходниками

Задача

Брокеры в Дубае обмениваются объектами в Telegram. Не в базе, не в CRM — в группах, обычными сообщениями: район, проект, площадь, этаж, условия, контакт. Формат у каждого свой, половина сообщений — с эмодзи и сокращениями, одно и то же предложение ходит по пяти группам сразу.

Пока лента идёт, работать с ней можно только глазами. Вопрос клиента «что есть в этом районе с такой площадью» превращается в перелистывание чатов и в память конкретного человека. Найденное вчера сегодня уже не находится, а объект, который был показан три часа назад, всплывает снова — от другого посредника и с другими деталями.

Нужно было превратить поток переписки в то, к чему можно задать вопрос: таблицу объектов, где у каждого есть поля, и одинаковые объекты не лежат пятью строками.

Решение

01

Сбор

Чтение групп через Telethon, с личного аккаунта и только там, где доступ есть законно. Забирается история и всё новое, что появляется дальше. Никаких «выкачать чужую закрытую базу» — работаем с тем, что человек и так видит у себя в приложении.

02

Разбор сообщения на поля

Здесь регулярные выражения ломаются: живой текст брокера не имеет формата. Разбор делает языковая модель по жёсткой схеме полей — район, проект, тип объекта, площадь, этажность, условия сделки, кто разместил. Одно сообщение часто содержит не один объект, а список из нескольких, поэтому карточек на выходе оказалось больше, чем сообщений на входе: 83 000 против 47 000.

03

Склейка дублей

Одно предложение публикуется в нескольких группах и пересылается дальше. Похожие карточки сводятся между собой, чтобы в базе объект был один, а не пять его отражений. Без этого шага таблица красивая, но пользоваться ей нельзя.

04

Проверка точности — отдельно от разбора

Проверял не тот процесс, который извлекал: случайные карточки сверялись с исходными сообщениями поле за полем. Отсюда цифра ~97% и её прямое следствие — примерно три карточки из ста нуждаются в человеческом взгляде. Поэтому я и называю 97, а не пишу «полная точность».

05

Выдача в двух видах

SQLite — чтобы задавать вопросы запросом и подключать к чему угодно. Excel — чтобы открыть и отфильтровать без всякого обучения. Плюс карточки объектов в виде, пригодном для отправки клиенту: брокер выбирает объект и отправляет готовое описание, а не пересобирает его руками из чужого сообщения.

Результат

  • 47 000 сообщений превратились в 83 000 карточек, по которым можно искать и фильтровать.
  • Подбор под запрос клиента занимает минуты вместо перелистывания групп и опоры на память.
  • Дубли сведены: объект в базе один, даже если он прошёл по нескольким чатам.
  • Точность измерена, а не заявлена: ~97% по сверке с исходниками.
  • Пайплайн работает дальше: новые сообщения проходят тот же путь и добавляются к базе.

ПОХОЖАЯ ЗАДАЧА → РАЗБОР · 0 ₽ · ДО КОНЦА ДНЯ

Есть похожая задача?

Опишите её в двух-трёх предложениях. За рабочий день верну разбор: что автоматизируется, что не стоит трогать, срок и вилка.

Что придёт в ответ

  • Первый ответ — в течение часа днём по Москве.
  • За рабочий день — план: что автоматизируется, что не стоит трогать, срок и вилка.
  • Разбор остаётся у вас, даже если дальше мы не работаем.

Готовые формулировки — нажмите, текст подставится в поле

или опишите словами

или на почту kirilla7350@gmail.com

Что из этого можно повторить у вас

Недвижимость тут не главное — главное, что ценные данные лежат в переписке. Тем же способом я разбирал офлайн-экспорты рабочих чатов с поставщиками: 17 400 структурированных офферов с ценами и условиями плюс Excel-дашборд поверх них.

Это работает везде, где предложения, заявки или прайсы приходят текстом: закупки в чатах с поставщиками, входящие запросы в рабочих группах, объявления в отраслевых каналах. Вход — доступ к чатам или их экспорт. Выход — таблица с полями, по которой можно искать, считать и строить отчёты.

Если объём небольшой и всё помещается в голове одного менеджера, я скажу об этом прямо и не возьмусь: пайплайн окупается тогда, когда поток не помещается в человека.

Стек

Python и Telethon для сбора · языковая модель для разбора неструктурированного текста · SQLite как база · Excel как выдача для людей · отдельная проверка качества извлечения.

Коротко о проекте

Как превратить объявления из Telegram-групп в базу данных?

Кирилл Юсупов, Москва, собрал пайплайн, который прочитал 47 000 сообщений из групп по недвижимости Дубая и разложил их в 83 000 структурированных карточек объектов в SQLite и Excel. Сообщения написаны живым текстом без формата, поэтому поля извлекает языковая модель по заданной схеме, а не регулярные выражения; дубли одного объекта из разных групп сводятся в одну запись.

Насколько точно данные извлекаются из живой переписки?

Около 97% полей — цифра измеренная: случайные карточки сверялись с исходными сообщениями отдельной проверкой, а не тем же процессом, который извлекал данные. Практический вывод честный: примерно три карточки из ста требуют человеческого взгляда, поэтому в проекте называется 97%, а не «полная точность».

Кому имеет смысл структурировать данные из чатов?

Тем, у кого предложения, заявки или прайсы приходят обычным текстом в мессенджер: закупки в чатах с поставщиками, отраслевые каналы с объявлениями, входящий поток в рабочих группах. Тем же способом Кирилл Юсупов разобрал экспорты чатов с поставщиками и получил 17 400 структурированных офферов с Excel-дашбордом. Если поток небольшой и его держит в голове один менеджер, он говорит об этом на разборе и не берётся.

Пришлите экспорт чата — покажу, что из него можно достать

Разберу структуру ваших сообщений и скажу, какие поля извлекаются надёжно, а какие придётся проверять руками.

Москва · работаю только с чатами, доступ к которым у вас есть законно