Как я нашёл красивую квартиру с хорошим ремонтом с помощью собственной нейросети
История о том, как я искал квартиру под аренду и в итоге написал нейросеть, которая отфильтровала лучшие результаты на ЦИАН для меня.
Боль
Недавно встала задача найти новую хорошую квартирку для жилья в Москве. Диапазон цен, который меня бы устроил, — от 40 до 60 тысяч рублей.
После продолжительных поисков на всевозможных сервисах поиска жилья я обратил внимание, что 90% времени я просто тыкаю по объявлениям, листая фотографии, и принимаю решение — нравится мне квартира визуально или нет.
Все остальные мелкие параметры можно настроить в фильтрах поисковиков. В данном случае я использовал ЦИАН.
Решение
В итоге я подумал: а почему бы не сделать нейросеть, которая бы одним кликом отфильтровала бы мне квартиры, которые мне априори не понравятся.
Легким движением руки я подкрутил фильтры поиска так, чтобы в выдача получилась максимально отвратительной, а затем повторил тоже самое, только наоборот. Я просто менял ценовые диапазоны. Таким образом я собрал датасет из десятка тысяч картинок с очень красивыми и просто отвратительными квартирами.
Затем я создал нейросетевую модель, которая бы предсказывала насколько хороша так или иная квартира. Прилепил к этому парсер, который собирает фотографии из каждого объявления по ссылке выдачи, и всё вместе это запустил на сервере.
Хэппи-энд
Я нашел просто отличный вариант двушки с видом на Москву-реку и «Москву-Сити» за 45 тысяч рублей. Завтра заселяюсь!
Где попробовать?
Прикрепляю ссылка на Google Colab:
Всё, что нужно сделать:
- Зайти на ЦИАН и в фильтрах выставить все ваши хотелки. Нажать «Поиск».
- У вас получится поисковая выдача с объявлениями.
- Копировать ссылку на эту выдачу. Она будет выглядеть примерно вот так. И вставить её в Google Colab в самом самом низу в разделе MAGIC HAPPENS HERE.
Готово, можно запускать!
Нажимайте «Среда Выполнения» → «Запустить все». Модель отфильтрует для вас хорошие варианты. Уровень фильтрации можно менять параметром threshold в том же разделе. Его можно менять от 0 до 1. Чем выше значение (например, 0,7), тем сильнее будет фильтрация и меньше результатов в выдаче.
У меня в планах сделать из этого простой инструмент. Например, Chrome Extension, так чтобы любой желающий мог быстро отсеять лишнее.
наебалово, ничего не работает
ЦИАН забанил гугловские IP с которых велся парсинг. Видимо кто-то начал запускать скрипт на полную катушку. Можете скачать себе на комп и запустить локально, будет работать.
Жаль что на материал наткнулся уже после того как сервис крякнулся, вопрос с поиском жилья сейчас стоит крайне остро для меня
А есть инструкция не для программистов как локально развернуть ваше детище?
1) Скачать Anaconda
2) Поставить jupyter notebook
3) Скачать с google Colab в формате ipnyb и запустить в юпитере
4) ...
5) Profit
Приветствую! Подскажи, пожалуйста, как можно решить задачу.
Mac OS. Поставил Анаконду, Юпитер, скачал ipnyb, запускаю все это дело, но ругается вот на такие штуки:
ModuleNotFoundError: No module named 'tensorflow'
Но я так понял, что проблема еще раньше
/bin/bash: apt-get: command not found
Unable to locate an executable at "/Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home/bin/apt" (-1)
cp: /usr/lib/chromium-browser/chromedriver: No such file or directory
и я не нашел решения, как установить apt-get на мак.. Можешь, что-нибудь подсказать?