{"id":14284,"url":"\/distributions\/14284\/click?bit=1&hash=82a231c769d1e10ea56c30ae286f090fbb4a445600cfa9e05037db7a74b1dda9","title":"\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0444\u0438\u043d\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u0430\u043d\u0446\u044b \u0441 \u0441\u043e\u0431\u0430\u043a\u0430\u043c\u0438","buttonText":"","imageUuid":""}

Как я нашёл красивую квартиру с хорошим ремонтом с помощью собственной нейросети

История о том, как я искал квартиру под аренду и в итоге написал нейросеть, которая отфильтровала лучшие результаты на ЦИАН для меня.

Пример выдачи

Боль

Недавно встала задача найти новую хорошую квартирку для жилья в Москве. Диапазон цен, который меня бы устроил, — от 40 до 60 тысяч рублей.

После продолжительных поисков на всевозможных сервисах поиска жилья я обратил внимание, что 90% времени я просто тыкаю по объявлениям, листая фотографии, и принимаю решение — нравится мне квартира визуально или нет.

Все остальные мелкие параметры можно настроить в фильтрах поисковиков. В данном случае я использовал ЦИАН.

Решение

В итоге я подумал: а почему бы не сделать нейросеть, которая бы одним кликом отфильтровала бы мне квартиры, которые мне априори не понравятся.

Легким движением руки я подкрутил фильтры поиска так, чтобы в выдача получилась максимально отвратительной, а затем повторил тоже самое, только наоборот. Я просто менял ценовые диапазоны. Таким образом я собрал датасет из десятка тысяч картинок с очень красивыми и просто отвратительными квартирами.

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

Хэппи-энд

Вот такой вид теперь у меня из окна

Я нашел просто отличный вариант двушки с видом на Москву-реку и «Москву-Сити» за 45 тысяч рублей. Завтра заселяюсь!

Где попробовать?

Прикрепляю ссылка на Google Colab:

Всё, что нужно сделать:

  • Зайти на ЦИАН и в фильтрах выставить все ваши хотелки. Нажать «Поиск».
  • У вас получится поисковая выдача с объявлениями.
  • Копировать ссылку на эту выдачу. Она будет выглядеть примерно вот так. И вставить её в Google Colab в самом самом низу в разделе MAGIC HAPPENS HERE.

Готово, можно запускать!

Нажимайте «Среда Выполнения» → «Запустить все». Модель отфильтрует для вас хорошие варианты. Уровень фильтрации можно менять параметром threshold в том же разделе. Его можно менять от 0 до 1. Чем выше значение (например, 0,7), тем сильнее будет фильтрация и меньше результатов в выдаче.

У меня в планах сделать из этого простой инструмент. Например, Chrome Extension, так чтобы любой желающий мог быстро отсеять лишнее.

0
222 комментария
Написать комментарий...
Никита Олифер

Спасибо за клёвый скрипт! Почему-то со ссылкой на Спб не работает:
https://spb.cian.ru/cat.php?currency=2&deal_type=rent&engine_version=2&maxprice=60000&minprice=30000&offer_type=flat®ion=2&room1=1&room2=1&room9=1&type=4
показывает просто пустую выдачу. Наверное, там есть небольшие отличия в вёрстке.

Ответить
Развернуть ветку
Peter Bondarenko
Автор

Вот пример первых трех строчек выдачи:
Score for https://www.cian.ru/rent/flat/235204277/ -> [0.07298347788552444, 0.927016536394755]: This is a good flat.
Score for https://www.cian.ru/rent/flat/235619356/ -> [0.37351334777971107, 0.6264866789182028]: This is a good flat.
Score for https://www.cian.ru/rent/flat/235617086/ -> [0.2044434861842698, 0.7955564906199774]: This is a good flat.

Ответить
Развернуть ветку
Bulat Ziganshin

имхо квартиры комфорт-класса с правильными фотофильтрами, такие фотки агентства умеют делать. они только кажутся привлекательными, со второго раза начинаешь уже анализировать - какой пол, какие люстры, какая плита...

Ответить
Развернуть ветку
Денис Ишутенко

У Вас выборка идет по Московской области. Как пониманию, вопрос был насчет именно СПб. При treshold'е и в 0.3 выводит пустой список

Ответить
Развернуть ветку
Peter Bondarenko
Автор

Ответил под другим вопросом, дублирую еще раз сюда: нужно добавить в ссылку & region=N – где N регион. Это поле из линка переодически убирает сам ЦИАН (видимо в куки), но его можно вернуть, если в на странице с выдачей снова выбрать регион.

Ответить
Развернуть ветку
Денис Ишутенко

Супер, таким образом сработало)

Ответить
Развернуть ветку
Zoibana

Какой отвратный ремонт

Ответить
Развернуть ветку
219 комментариев
Раскрывать всегда