Нашей команде предлагалось максимально точно описать фильмы с применением техник кластеризации и тематического моделирования. У нас были сценарии 20 фильмов в формате .txt в переводе с оригинального языка на русский. Около трети сценариев были написаны с ошибками в русском языке и в стандарте киносценариев. Мы дополнили и проверили данные за счет датасета TMDB + IMDB с метаданными о сборах и наградах фильмов по этим сценариям.
Как мы решали задачу?
Из датасета мы решили создать прототип рекомендательной системы. В первичном анализе данных мы при помощи пакетов pymorphy3, natasha, spacy построили карты распределения частей речи в сценариях. С помощью networkx построили графы социальных связей, по кластерам в которых можно судить о совместных действиях активных персонажей. С помощью zero-shot classification и BERTopic мы выявили фильмы, наиболее похожие друг на друга и на любимые фильмы кураторов воркшопа. Для определения похожего фильма использовался топ слов по tf-idf для каждого сценария среди выборки.
Что мы получили?
В итоговом макете нашей рекомендательной системы (ее структура на рисунке ниже) можно выбрать фильм, похожий на ваш любимый фильм по сценарию или сделать выбор по следующим характеристикам: ритме повествования, количеству действующих лиц и интенсивности их взаимодействия, наличию любовных линий, наличию обсценной лексики и лексики насилия, наиболее характерных словах. Наша характеристика также предлагает сравнение характерных слов из сценария с фильмами того же жанра с аналогичным рейтингом.
Структура рекомендательной системы
Как можно было бы улучшить исследование?
Мы бы хотели проверить свои результаты на большем датасете. Также иллюстрации нуждаются в дальнейшей очистке от стоп-слов, а списки персонажей и локаций — в проверке человеком. Стоит проверить, могут ли наши результаты дать многомерность для создания матрицы близости в будущей рекомендательной системе.