25000 лучших фильмов, или еще один сервис для кино поиска

В прошлой статье я рассказал, как безуспешно пытался применить алгоритмы коллаборативной фильтрации для практически ценной рекомендации фильмов. Однако в процессе экспериментов обнаружилось, что простое усреднение оценок фильма пользователями сервиса (рейтинг IMDB, Кинопоиска и т.д.) является очень неплохим предсказателем оценки фильма новым зрителем, что было продемонстрировано математически. Это, в частности, объясняет, почему все знают рейтинг Кинопоиска, а о рекомендациях Кинопоиска никто не слышал, хотя такой сервис у них есть.

Однако и у усредненных оценок (рейтингов) есть свои проблемы. Посмотрим, как выглядит топ фильмов по рейтингу в киносоциальной сети Letterboxd:

c262e04f32e9cffa13f834cbb4a8a58e.jpg

Многие из этих фильмов не знакомы даже киноманам. Например, на 18 месте находится фильм «The Human Condition III: A Soldier«s Prayer» с рейтингом 4.52 и 12K оценками, а на 29 — «The Lord of the Rings: The Return of the King» (третья часть «Властелина колец») с рейтингом 4.48 и 792К оценками. Первый фильм имеет немного более высокий рейтинг, но он в 70 раз менее популярен. Хотелось бы построить такой список фильмов, который бы отражал как рейтинг фильма, так и его популярность одновременно.

Так я и пришел к идее «композитного» рейтинга. Рейтинг умножается на некую производную от популярности фильма, повышая рейтинг, если фильм популярнее среднего, и понижая в обратном случае. Можно сказать, что популярность фильма становится мерой «достоверности» его рейтинга. Композитный рейтинг используется только для сортировки фильмов, отражая сравнительную предпочтительность фильма для просмотра. В соответствии с этим рейтингом, фильмы из примера выше перемещаются с 18 на 780 место и с 29 на 10 место соответственно.

Эксперименты с композитным рейтингом оказались настолько интересными, что я решил создать небольшое приложение для поиска фильмов с его помощью. Я назвал его CineFilter.

66db1460d56f766d420dd0e54698d8b6.jpg

CineFilter — это дополнение к англоязычной киносоциальной сети Letterboxd. С его помощью вы можете выбирать фильмы, соответствующие различным критериям (режиссер, актер, комбинации жанров, год выпуска и т.д.), и фильмы будут отсортированы по их композитному рейтингу.

Этот сервис можно рассматривать как IMDB Top 250, который можно отфильтровать множеством различных способов. CineFilter содержит более 25000 фильмов с самым высоким композитным рейтингом.

Примеры возможных поисков:

Научная фантастика 80-х и 90-х годов

Лучшая анимация, начиная с 2020 года

Лучшая адаптация Бэтмена, не анимация

Лучшие фильмы на французском за последнее десятилетие

Даже романтические комедии не выглядят банально с композитным рейтингом

В Letterboxd жанры фильмов проставлены очень адекватно, поэтому поиск по жанрам может быть очень интересным. Например:

Фильмы с жанрами, как у фильма «The Fall» (2006), но не анимация

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

Если сервис будет пользоваться популярностью, я планирую добавить больше критериев для поиска, например: оператор, сценарист или студия (возможность увидеть фильмы A24 или Miramax в одном списке и отфильтровать их по жанрам). Также было бы очень интересно добавить фильтры по кинофестивалям, но, к сожалению, этой информации в Letterboxd нет, и не ясно, как это реализовать.

Приложение является Progressive Web App и может быть установлено как «родное» на все платформы, включая мобильные, через меню браузера «Add to Home screen» и аналогичные.

Планирую обновлять данные в приложении раз в месяц.

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

© Habrahabr.ru