В одном из предыдущих блогов я рассказал, как собрать базу данных для машинного обучения. Возьмем конкретный случай прогнозирования мировых доходов от фильмов. База данных подготовлена на основе данных, связанных с фильмами, которые можно собрать с онлайн-сайтов, таких как IMDb, YouTube и т. д. Обзоры и комментарии можно получить из трейлеров к фильмам на YouTube. Пожалуйста, обратитесь к следующей ссылке для получения дополнительной информации о подготовке базы данных.
В этом блоге я представляю анализ данных, предварительную обработку и сбор данных о настроениях в базе данных фильмов. В базе данных фильмов есть три типа признаков: числовые, категориальные и обзоры. Числовые значения, такие как мировой доход, количество экранов, количество актеров и т. д. Категориальная характеристика — это жанр и обзоры, которые собираются с YouTube. На следующем рисунке показаны различные функции, представленные в базе данных фильмов.
Бюджет — это одно из числовых значений, присутствующих в наборе данных. На следующем рисунке показано распределение бюджета для различных фильмов. Чтобы повысить производительность моделей машинного обучения, необходимо выполнить нормализацию числовых данных, чтобы числовые признаки попадали в один и тот же диапазон.
В базе данных фильмов присутствует несколько категориальных данных, таких как режиссер, актерский состав фильма, продюсер, производственный баннер и т. д. Одним из требований многих моделей машинного обучения является то, что категориальные признаки должны быть преобразованы в числовые данные. Процедура кодирования используется для преобразования категориальных признаков в числовые данные. Например, каждому актеру, снявшемуся не менее чем в 6 фильмах, присваивается числовой код, а всем остальным — общий код. Тем самым закодировал все имена актеров в числовые значения. На следующем рисунке показана процедура преобразования категориальных значений кодирования в числовые.
Многие функции взяты из трейлера фильма, представленного на YouTube. Эти функции включают в себя подсчеты, такие как количество просмотров, лайков, антипатий, комментариев, процент лайков на YouTube и т. д. Из комментариев к обзору, представленных на YouTube, можно собрать информацию о настроениях.
VADER — это один из инструментов анализа тональности, который можно применить к комментарию обзора для получения информации о тональности. VADER выдает оценку от -1 до 1. Есть несколько слов, относящихся к фильмам, которые необходимо добавить в список лексикона VADER. Включены следующие слова: «ХИТ», «мурашки по коже», «шляпа» и т. д. Слово «ХИТ» означает, что фильм является блокбастером. Оценка валентности для этих слов может быть получена из существующих подобных слов.
В следующей таблице показана оценка тональности, полученная VADER по комментариям отзывов.
Код Python для вычисления оценки тональности VADER в комментариях
Следующий код Python вычисляет оценку тональности с помощью инструмента VADER. Он также вычисляет отношение общего количества положительных комментариев к общему количеству комментариев к этому фильму. CSV-файл, содержащий идентификатор фильма на YouTube, количество комментариев и комментарии, является входными данными для следующего кода. Результатом работы кода Python является файл CSV, содержащий идентификатор фильма и отношение количества положительных комментариев к общему количеству комментариев для каждого фильма.
#This code to perform the sentiment analysis of movie review comments import csv from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer #Create the sentiment analyzer object analyzer = SentimentIntensityAnalyzer() youTubeCmtsDb=[] ratioOfPosTototal = [] #The CSV file has the following fields: # YoutubeID No.of.Comments Comment # z0KPQstwMQw 100 ...;...;... # 1CCA3reNOOY 27 ...;...;... # 7cbmZULhpN8 52 ...;...;... # mp-XqCrCi6I 100 ...;...;... #Open a CSV file containing above details of YouTube comments with open('youTubeComments.csv') as csvfile: csvFileReader = csv.reader(csvfile) for row in csvFileReader: youTubeCmtsDb.append(row) #here 'n' number of movies and thier corresponding comments are present in youTubeCmtsDb n = len(youTubeCmtsDb) for movie in range(0,n): print (movie) score = 0 posCount = 0 negCount = 0 #Total number of comment for a specific movie is: 'm' m = int(youTubeCmtsDb[movie][0])+1 count = m-1 #For eac comment apply the VADER sentiment analyzer and compute the score for comment in range(1,m): vs = analyzer.polarity_scores(youTubeCmtsDb[movie][comment]) if (vs['compound'] > 0.1): posCount = posCount+1 if (vs['compound'] < -0.1): negCount = negCount +1 if (vs['compound'] == 0): count = count - 1 if count == 0: count =1 #Append the ratio of positive comments to the total number of comments ratioOfPosTototal.append(float(posCount)/count) #Write the ratio of positive comments to the total number of comments to a CSV file csv_out = open('moviesPosToTotalRatio.csv', 'wb') csv_writer = csv.writer(csv_out) print ("Write to a file") csv_writer.writerow(ratioOfPosTototal) csv_out.close()
Исследовательская работа
Исследование по прогнозированию валового дохода в мире:
Цитировать работу
Пожалуйста, процитируйте следующую исследовательскую работу:
Алина Заиди, Сиддхалинг Уролагин, «Прогнозирование мирового валового дохода от болливудских фильмов с использованием модели гибридного ансамбля», Int. J. Business Intelligence and Data Mining, 1(1), 10.1504/IJBIDM.2019.10019858, индекс: Elsevier Scopus, 2019.
Дальнейшие проекты и контакты
www.researchreader.com
https://medium.com/@dr.siddhaling
https://github.com/siddhaling
Доктор. Сиддхалинг Уролагин,
Доктор наук, постдокторант, эксперт по машинному обучению и науке о данных,
страстный исследователь, специализирующийся на глубоком обучении и его приложениях,
[email protected]
использованная литература
- https://www.ntaskmanager.com/blog/sentiment-analysis-for-project-managers/
- https://blogs.oracle.com/bigdata/machine-learning-database
Первоначально опубликовано на http://researchreader.com 18 октября 2020 г.