рейтинг кинопоиск рейтинг imdb
Разность менталитетов: Кинопоиск против IMDB
Когда нам что-то нужно найти в интернете, мы заходим на Яндекс или Гугл. Эстеты могут предпочесть
bing или Спутник. В-общем, есть из чего выбрать. Но когда мы ищем кино, то как «шампунь номер один» в голове сразу всплывает Кинопоиск.
1. Сайты и рейтинги
Дейсвительно, на Кинопоиске самая большая в русскоязычном Интернете база данных о фильмах, правда о конкретном их количестве администрация дает уклончивый ответ про несколько сотен тысяч.
А IMDB — это глобальный «кинопоиск». В его базах более 3,5 миллионов фильмов.
Посетители обоих сайтов могут оценивать фильмы по 10-балльной шкале. На основе этих голосов по секретным методикам вычисляются рейтинги фильмов. У Кинопоиска даже два рейтинга — «Лучшие 250 фильмов» (Top-250) и обычный. Top-250 выглядит более «сглаженно», поэтому будем рассматривать обычный рейтинг, а из топа возьмем только список фильмов.
Рейтинг Кинопоиска округляется до тысячных, рейтинг IMDB — до десятых, по этому по IMDB довольно много фильмов с одинаковым рейтингом.
Но для начала сравним аудиторию сайтов. Кинопоиск сайт русскоязычный, и посещают его в-основном русскоговорящие:
Германию сложно назвать «русским миром», как, собственно и Казахстан, но только Россия-Украина-Белоруссия дают уже более 3/4 посетителей. Статистика отсюда
IMDB на английском языке, поэтому доступен более широкому кругу пользователей:
Индия со своим Болливудом — особый случай, но США-Великобритания-Канада это более 1/3 аудитории. Статистика отсюда
Таким образом, Кинопоиск можно считать выразителем мнения подавляющего большинства русскоговорящего населения планеты. Про IMDB и американцев так утверждать нельзя, но тем не менее, они оказывают существенное влияние на рейтинги фильмов.
Проанализировав рейтинги фильмов, можем увидеть, что больше нравится нам, а что «им». Данные брались с сайтов 20-27 ноября. Даже за эту неделю рейтинги изменились, но не настолько, чтобы сильно повлиять на результат. Все результаты и данные для расчета в этом файле, можете скачать и тоже проанализировать.
2. В чем мы совпадаем.
В обоих рейтингах Лучшим фильмом всех времен и народов признан «Побег из Шоушенка», американский фильм 1994 года. Ниже представлены 10 фильмов с вершины рейтингов, а также «суммарный рейтинг» (рассчитывался, как произведение рейтингов Кинопоиска обычного и IMDB).
Вполне ожидаемо в наш рейтинг попали наши фильмы. Кстати, на IMDB они тоже представлены, но я их исключил из расчета, так как маловероятно, что за них голосовал кто-то кроме русских. К тому-же их рейтинги довольно близки с Кинопоиском. Возможно Тарковского и «Москва слезам не верит» и смотрят американцы с индусами, но точных данных у меня нет. Если у вас есть информация о том, смотрят ли их за рубежом — пишите.
Кстати, обратите внимание, у нас на 7 месте мультфильм. В IMDB первый мультик только на 29 месте («Унесенные призраками» Миядзаки).
В рейтинг вошли фильмы из списка «250 лучших фильмов» по версии обоих сайтов. Исключение составили фильмы, представленные только на одном сайте, фильмы рейтинг которых на Кинопоиске «серый» (то есть их посмотрело очень мало людей) и советские и российские фильмы. Всего в списке 342 кинокартины, с 1921 по 2017 год.
3. В чем мы различаемся.
Сперва для каждого фильма рейтинг Кинопоиска был разделен на рейтинг IMDB, затем вычислено среднее арифметическое из получившихся значений. Затем для каждого фильма вычислена разница между отношением рейтингов и средним значением. Чем она больше, тем рейтинг Кинопоиска больше рейтинга IMDB, тем больше фильм нравится нам, и наоборот.
Что нравится «нам» больше, чем «им»:
Что «им» нравится больше, чем «нам»:
Вообще заметна тенденция: нам больше нравятся французские и итальянские фильмы, популярные в советские времена, американское кино 90-х, которое мы впервые увидели в видеосалонах, душещипательные фильмы про героя-одиночку, мультики и пираты.
Остальному миру больше нравятся фильмы основанные на реальных событиях, про гангстеров, про войну, «фильмы народов мира» и Звездные войны.
Выводы пусть делают психологи и кинокритики. Немного удивился, когда любимые с детства фильмы оказались не очень популярны в мире. И наоборот обидно, когда соотечественники недооценивают хорошее кино. В любом случае эти фильмы стали частью нашей культуры, а насколько доверять анонимным интернет-опросам каждый решает сам.
Разумеется, изменив методику расчета мы получим другие результаты. Если захотите проделать такое, скачивайте файл и экспериментируйте. Только пришлите пожалуйста ссылку на свои результаты, с интересом почитаю.
Web scraping с помощью R. Сравнение оценок фильмов на сайтах Кинопоиск и IMDB
Всемирная паутина — это океан данных. Здесь можно посмотреть практически любую интересующую Вас информацию. Однако, «вытащить» эту информацию из интернета уже сложнее. Есть несколько способов получить данные и web-scraping один из них.
Что такое web-scraping? Вкратце, это технология позволяющая извлекать данные с HTML-страниц. При использовании скрэпинга отпадает необходимость копипастить нужную информацию или переносить её с экрана в блокнот. Информация окажется у Вас в компьютере в удобном для Вас виде.
Web-scraping на примере сайта Кинопоиск.ru
Чтобы не заниматься скрэпингом ради скрэпинга неплохо поставить себе цель. Я решил, что это будет сравнение оценок фильмов на сайтах Кинопоиск.ru и IMDB.com, а также средние оценки фильмов по жанрам. Для анализа брались фильмы, вышедшие в прокат с 2010 по 2018 годы, с количеством голосов не менее 500.
Для начала загрузим необходимые нам библиотеки:
Далее я получаю количество фильмов в году, которые удовлетворяют условию отбора (более 500 голосов). Делается это для того, чтобы узнать общее количество страниц с данными и «сгенерировать» ссылки на них, т.к. ссылки однотипны по своей структуре.
Наша задача «вытащить» число 672, выделенное на картинке красным прямоугольником. Для этого нам и пригодиться web-scraping.
Web-scraping страницы сайта Кинопоиск.ру с помощью пакета rvest
Но как мы поймём, какой элемент нам нужно извлечь? Для этого мы должны навести на интересующую нас информацию курсор мыши, нажать ЛКМ и выбрать «просмотреть код». В нашем случае мы получим следующую картинку:
Также, для «детекции» нужного элемента можно использовать расширение selectorGadget, которое показывает, что нам нужно вводить в явном виде:
Далее функцией html_text мы извлекаем из выбранного элемента текстовую часть:
Мы получили нужное нам число из HTML-страницы Кинопоиска, но теперь нам нужно его «очистить». Это стандартная процедура для скрэпинга, потому что очень редко нужный нам элемент можно получить в необходимом нам виде.
Мы получили 2 одинаковых элемента из-за того, что общее число фильмов указано вверху и внизу страницы и их css селектор абсолютно одинаковый. Поэтому для начала мы убираем лишний элемент:
Далее нам нужно избавиться от той части вектора, которая идёт до цифры 672. Сделать это можно по разному, но в основе всех способов лежит написание регулярного выражения. В данном случае я «заменяю» часть «1-50 из» на пустоту (вместо str_replace можно использовать str_remove ), затем удаляю лишние пробелы (функция str_trim ) и, наконец, перевожу вектор из символьного типа в числовой. На выходе получаю число 672. Ровно столько фильмов 2018 года имеют на Кинопоиске более 500 голосов пользователей.
Что мы делаем далее? Если вы полистаете страницы на Кинопоиске то увидите, что адреса страниц поиска имеют одинаковую структуру и различаются только номером. Поэтому, чтобы не вводить адрес страницы каждый раз вручную, мы посчитаем число страниц и «сгенерируем» необходимое количество адресов. Делается это так:
На выходе получаем 14 адресов. Функция ceiling в данном примере округляет число до БОЛЬШЕГО целого числа.
А дальше используем функцию lapply на вход которой подаются адреса страниц, а функция «извлекает» со страниц Кинопоиска информацию о названии, рейтинге, количестве голосов и основных жанрах (максимум 3) фильма. Код функции можно найти в репозитории на Github.
В итоге мы получаем таблицу с 8111 фильмами.
Стоит заметить про использование функции Sys.sleep. С помощью неё можно задать время задержки между выполнением выражений. Зачем это нужно? Если вы хотите получить информацию по одному году, то незачем. Но если Вас интересует большое количество фильмов/лет, то через определённое количество запросов Кинопоиск посчитает вас роботом и на ваш запрос вы будете получать пустой список. Чтобы избежать этого и нужно вводить время задержки.
Аналогично «скрэпим» сайт IMDB.com.
Анализ полученных данных
У нас появилось две таблицы, в одной информация о фильмах с IMDB, в другой c Кинопоиска. Теперь нам нужно их объединить. Объединять будем по столбцам NAME и YEAR. Для того, чтобы уменьшить количество расхождений в названиях, я ещё на стадии скрэпинга удалил все знаки пунктуации и перевёл буквы в нижний регистр. В итоге, после всех соединений и удалений, получаем 3450 фильмов, которые имеют необходимую нам информацию с обоих сайтов.
Меня интересует разница в оценках фильмов на двух сайтах, поэтому создадим переменную DELTA, которая является разностью между оценкой IMDB и Кинопоиска. Если DELTA положительна, то оценка на IMDB выше, если отрицательна, то ниже.
Сначала построим гистограмму для показателя DELTA:
На графике нет ничего удивительного. Разница оценок имеет нормальное распределение и вершину в районе нуля, что говорит о том, что пользователи двух сайтов, обычно, в оценке фильмов сходятся.
Сходятся, но не совсем. t-test двух независимых выборок позволяет нам сказать, что оценки на Кинопоиске выше и эта разница статистически значима (p-value