В Индии мы наблюдаем растущую популярность хинглиша, который в основном является неформальным языком, который включает в себя смесь английских слов, а также слов хинди или слов хинди, написанных романско-английским письмом вместо традиционного письма деванагари. Например, «mereko yeh dekhna pasand hai» в основном означает «мне нравится смотреть это». Было проведено очень мало или почти ничтожно мало работы по анализу и классификации настроений, написанных с использованием хинглиша. В нашем блоге я пытаюсь объяснить предложенный мной подход, направленный на правильную классификацию настроений, полученных от видео на YouTube и постов в Instagram.

Предлагаемый подход

В предлагаемом подходе цель состоит в том, чтобы создать удобный веб-сайт, на котором пользователь может ввести ссылку на свои видео на YouTube или публикации в Instagram вместе со своими учетными данными, чтобы получить подробный анализ комментариев к своему контенту, разделенных в виде положительных отзывов. , негативные или нейтральные комментарии. Я стремлюсь создать платформу, которая будет особенно полезна для создателей контента, которые хотят проанализировать, как их контент воспринимается их аудиторией. Комментарии к постам и видео будут извлекаться с помощью API на Python для анализа. Чтобы выполнить наш анализ настроений, я извлек набор данных YouTube из репозитория GitHub, который представляет собой смесь комментариев на английском и хинглише. Комментарии сначала будут переданы через Google Translator API, чтобы преобразовать хинглиш-комментарии в английский для анализа. Предварительная обработка и очистка данных будет следующим необходимым шагом, чтобы извлечь только полезные слова и получить структурированные данные для анализа. После получения необходимых структурированных данных важно преобразовать их в форму, понятную для модели классификации, для чего мы выполняем токенизацию, которая преобразует читаемые пользователем предложения в векторизованную форму, понятную машине. В целях классификации для анализа типа настроения я использовал подходы глубокого обучения, которые включают использование LSTM (сетей с долговременной кратковременной памятью), которые представляют собой особый вид RNN (рекуррентных нейронных сетей), который очень широко используется в области интеллектуальный анализ текстовых данных, например анализ настроений.

А. Обучение модели:

1) Сбор данных:

Существует ряд наборов данных, доступных для анализа настроений, но выбор правильного для получения наиболее точных и удовлетворительных результатов — утомительная задача. Набор данных был собран с Kaggle и состоит из обзоров Yelp. Обзоры состояли из смеси других языков, кроме английского, и полностью состояли из более чем 3,9 тысяч образцов, которые были смещены в сторону положительных комментариев, и распределение между тремя категориями комментариев было неравным. Наша модель состоит из 90 тысяч комментариев, взятых из этого набора данных, который состоит исключительно из комментариев на английском языке и по 30 тысяч комментариев каждой категории, т. е. положительных (рис. 3), отрицательных (рис. 4) и нейтральных (рис. 2). Набор данных был разделен на соотношение 70% и 30%, из которых 70% используются для тренировок и отдыха для тестирования.

2) Предварительная обработка данных

а) Удаление нежелательных символов и эмодзи:

Измененные данные, содержащие равное количество положительных, отрицательных и нейтральных комментариев, полученных от Kaggle после внесения необходимых изменений, проходят этап предварительной обработки, чтобы удалить текст, который не полезен для анализа настроений, из предоставленного текста. В данных, используемых для обучения, мы использовали библиотеку re (Regular Expression) для удаления нежелательных символов, таких как (!@#$%&*) и т. д., которые не дают никакой важной или существенной информации о настроении в предложении.

б) Токенизация:

Токенизация — это этап предварительной обработки, необходимый для преобразования данного предложения в форму, которую можно использовать в нашей модели для целей классификации. При токенизации каждое слово предложения разбивается на небольшие части, т. е. преобразуется в небольшие токены (присваивается номер) и сохраняется в виде массива, который может использоваться моделью для необходимых вычислений. Этот этап предварительной обработки можно выполнить с помощью API Tokenizer, предоставляемого Keras.

3) Модель классификации:

Для целей классификации мы использовали технику глубокого обучения. Интеллектуальный анализ текста или обработка текста для получения значимой информации для нашей пользы — сложная работа. Согласно ряду исследований и внедрений в этой области, было установлено, что глубокое обучение является более точным методом работы с текстовыми данными, такими как выполнение сентиментального анализа. Одним из основных преимуществ использования глубокого обучения по сравнению с машинным обучением является то, что архитектура глубокого обучения сканирует все данные, чтобы найти корреляции между данными, и самостоятельно выполняет разработку функций. Хотя этот процесс медленнее, чем алгоритмы машинного обучения, но, как известно, он дает лучшие результаты. В нашей модели мы использовали несколько разных слоев, чтобы получить удовлетворительный результат. Самым большим преимуществом использования глубокого обучения по сравнению с машинным обучением является то, что тип модели, используемой для нашей классификации, представляет собой последовательную модель, в которой слои образуют многоуровневую структуру, которая может быть или не быть линейной по своей природе.

а) Слой внедрения:

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

б) Отсев:

Dropout — это в основном метод регуляризации, используемый в моделях глубокого обучения для предотвращения перенастройки при обучении данных. Это может быть реализовано либо на всех скрытых слоях, а также на входном слое, либо только на нескольких скрытых слоях в зависимости от типа набора данных и проблемы, решаемой моделью. Как следует из названия, выпадение означает удаление чего-либо, что в области глубокого обучения относится к удалению единиц скрытых слоев или видимого слоя. Под удалением устройства подразумевается временное прекращение его соединения со всей сетью путем удаления соединения между всеми его входящими и исходящими соединениями. Это создает иллюзию того, что слой отличается от предыдущего слоя, и, следовательно, он обрабатывается соответствующим образом, изменяя конфигурацию модели по сравнению с исходной. В нашей модели мы использовали коэффициент отсева 0,3, что означает, что 30% наших скрытых единиц будут отброшены.

в) ЛСТМ:

Известно, что сети с долговременной кратковременной памятью (LSTM) представляют собой особый тип рекуррентной нейтральной сети (RNN). Его особенность заключается в том, что он способен обрабатывать не только одну точку данных, такую ​​как изображения, но и последовательность данных, таких как аудиофайл или видео. Архитектура LSTM обычно состоит из ячейки, входных ворот, выходных ворот и ворот забывания. Ячейка полезна для запоминания причудливых интервалов времени, в то время как трое ворот играют важную роль в регулировании входящего и исходящего потока из клетки. Каждая ячейка отвечает за получение информации о зависимостях между элементами входной последовательности. LSTM были введены для устранения двух основных проблем, возникающих при использовании RNN, а именно проблемы исчезающих градиентов и взрывных градиентов. LSTM широко используются в полях

г) Плотный слой:

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

д) Используемая функция активации:

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

f) Используемая функция потерь:

Мы использовали categorical_crossentropy loss в нашей модели, которая используется в случае мультиклассовой классификации, когда желаемый результат не в виде целых чисел, а в виде векторных вероятностей. Этот тип функции потерь лучше всего подходит при использовании функции активации softmax для классификации.

g) Используемый оптимизатор:

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

B. Тестирование нашей модели:

Модель, которую мы обучили в предыдущем разделе, теперь будет протестирована на наборе данных Yelp, который был разделен на обучение (70%) и тестирование (30%), а затем наша модель также будет протестирована на комментариях к сообщению, ссылка на которое была вводится пользователем на созданном веб-сайте.

1) Сбор набора данных:

Комментарии пользователя для анализа настроений будут взяты с помощью нашего веб-сайта, где пользователь введет ссылку на видео, чьи комментарии он хочет проанализировать в случае YouTube и учетных данных пользователя, а также номер публикации в случае Instagram. . Используя Google YouTube API в python, мы будем извлекать все комментарии к видео по ссылке, введенной пользователем. Точно так же для извлечения комментариев из Instagram мы использовали API Instagram в python. Как только пользователь вводит ссылку на публикацию/видео, все комментарии будут извлечены и отправлены в нашу модель для классификации, будь то положительные, отрицательные или нейтральные.

2) Работа над предложениями на хинглише:

Проведя исследование в Интернете, мы обнаружили, что для обучения нашей модели нет достаточных или подходящих данных для хинглиша.

Доступны только некоторые наборы данных с очень небольшим количеством примеров данных, которые не дают желаемых результатов данных.

Чтобы работать с предложениями на хинглише, я использовал Google Trans API в python для преобразования предложений на хинглише в английский язык, который затем можно было отправить в нашу модель для анализа настроений.

3) Токенизация:

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

4) Прогноз:

Комментарии, извлеченные из сообщений/видео, которые пользователь хочет проанализировать, будут предсказаны с использованием нашей обученной модели с помощью команды model.predict(), предлагаемой Keras. Это позволит предсказать тональность тестовых данных, извлеченных из комментариев, и классифицировать ее как положительную, отрицательную или нейтральную.

Заключение

В рамках этого исследования я попытался создать платформу в виде веб-сайта для пользователей, где они могут анализировать комментарии, полученные к своим сообщениям или видео в Instagram и YouTube соответственно, которые будут извлечены с использованием ссылки на сообщение/видео, введенную пользователем. пользователь на нашем сайте. Для обучения нашей модели мы использовали набор данных из примерно 90 000 комментариев Yelp. Для выполнения классификации мы использовали методы глубокого обучения, а именно LSTM для достижения удовлетворительной точности результатов. Благодаря этому исследованию я пришел к выводу, что мало или почти совсем не проводилось исследований по анализу настроений хинглиш. Мы работали над комментариями на хинглише, используя API перевода. Наша цель - предоставить наилучшие возможные результаты и отобразить их пользователю в виде графиков для лучшего понимания пользователя, чтобы проанализировать распределение комментариев к своим сообщениям.