В одном из предыдущих блогов я рассказал, как собрать базу данных для машинного обучения. Возьмем конкретный случай прогнозирования мировых доходов от фильмов. База данных подготовлена ​​на основе данных, связанных с фильмами, которые можно собрать с онлайн-сайтов, таких как 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]

использованная литература

  1. https://www.ntaskmanager.com/blog/sentiment-analysis-for-project-managers/
  2. https://blogs.oracle.com/bigdata/machine-learning-database

Первоначально опубликовано на http://researchreader.com 18 октября 2020 г.