Обработку естественного языка (НЛП) в простых словах можно определить как ветвь искусственного интеллекта, которая дает машинам возможность читать, понимать и понимать человеческие языки. Анализ тональности также известен как анализ мнений или эмоции ИИ - это использование методов обработки естественного языка для анализа текстов. и извлечение и классификация настроений этих текстов как положительных, отрицательных или нейтральных. Этот пост будет посвящен тому, как анализ настроений используется в твитах о COVID-19.

Перед этим нам нужно понять, почему анализ настроений необходим для социальных сетей?

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

Теперь у вас может возникнуть интересный вопрос об этом типе проектов: почему анализ настроений в твитах о COVID-19? Что насчет твитов о коронавирусе, которые были бы положительными? Возможно, вы слышали анализ настроений в обзорах фильмов или книг, но какова цель изучения и анализа данных такого типа?

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

Фух! довольно пространное объяснение.

Переходим к части кода.

Для этого проекта я использовал наборы данных от Kaggle. Вы можете найти ссылку на наборы данных, которые я использую, в приведенных ниже ссылках. Набор обучающих данных состоит из 41157 твитов, а тестовый набор данных состоит из 3798 твитов. В столбце настроений есть 5 настроений, а именно «Позитивное», «Чрезвычайно позитивное», «Негативное», «Чрезвычайно негативное» и «Нейтральное». Мы собираемся выполнить шаги, написанные ниже

  1. Предварительная обработка данных.
  2. TF-IDF
  3. Моделирование.
  4. Оценка.

Я использовал nltk toolkit для обработки текста . Итак, наряду с другими библиотеками, моим первым шагом был импорт nltk.

1) Предварительная обработка данных. Модели машинного обучения не справляются с беспорядочными данными. Таким образом, предварительная обработка данных является чрезвычайно важным шагом, поскольку она влияет на способность нашей модели к обучению.

Набор данных для обучения и тестирования состоит из столбцов «UserName», «ScreenName», «Location», «TweetAt», «OriginalTweet» и «Sentiment». Я отбросил ненужные столбцы, которые бесполезны для того, что мы пытаемся предсказать. Нет большой разницы между «крайне положительным» и «положительным» и «крайне отрицательным» и «отрицательным», поэтому я заменил исключительно положительное на положительное, а крайне отрицательное - на отрицательное. Это также поможет в быстрой обработке. Предварительная обработка данных включает удаление нулевых значений, удаление знаков препинания, URL-адресов, хэштегов, стоп-слов и преобразование всех слов в твитах в нижний регистр. Я также использовал стемминг и лемматизацию для предварительной обработки текста.

Стеммеры. Стеммеры - это процесс сокращения слова до корневого слова путем удаления его суффикса. В пакете nltk доступны различные типы стеммеров. Я использовал Porter Stemmer для этого кода.

Лемматизация. Используя корчевание, мы можем иногда терять реальное значение слова. Лемматизация похожа на выделение корней, но она учитывает контекст слова и преобразует его в его базовую форму.

После выполнения всех этих действий твиты будут выглядеть так:

Я также нарисовал облако слов, и оно выглядит следующим образом:

Теперь я сопоставил «позитивное» настроение с 1, «отрицательное» сантименты - с 2 и «нейтральное» настроение - с 0.

2) TF-IDF: TF-IDF - один из самых популярных подходов к подсчету частот слов. TF-IDF означает Частота термина - обратная частота документа. Термин «частота» показывает, сколько раз слово встречается в документе, тогда как обратная частота в документе уменьшает вес слов, которые часто встречаются в разных документах. Он сообщает нам, является ли слово общим или редким во всех документах.

TF-IDF важен, поскольку помогает понять важность слова в документах.

3) Моделирование: для этого я использовал различные модели, такие как логистическая регрессия, наивный байесовский анализ, случайный лес, деревья решений и градиентное усиление. Некоторые модели нейронных сетей также показывают многообещающий успех в задачах НЛП. Я использовал RNN, LSTM, Bi-LSTM и GRU для этого кода. Для более подробной реализации вы можете посмотреть мой код git hub.

4) Оценка. Результаты оценки для основных классификационных моделей выглядят следующим образом:

Наивысшая точность среди этих моделей достигается с помощью логистической регрессии. После оценки всех моделей нейронных сетей было замечено, что наилучшие результаты достигаются при использовании RNN. Точность 81% достигается при использовании RNN. Другие модели, такие как Bi-LSTM и GRU, также показали хорошую точность 80% и 78%. Можно сказать, что все нейросети дают примерно одинаковую точность.

В этом посте я попытался объяснить как можно больше, относящееся к анализу настроений в твитах о Covid-19. Надеюсь, этот пост будет вам полезен. Спасибо. До тех пор …

Ссылка на набор данных:

Коронавирус твиты НЛП - Классификация текста Получено с https://www.kaggle.com/datatattle/covid-19-nlp-text-classification