Анализ настроений в отношении нового референдума о независимости Шотландии

Ключевые слова: Twitter, tweepy, vaderSentiment, nltk, scikit learn, keras, машинное обучение, глубокое обучение, LSTM, RNN, SVM, наивный Байес, геоплот, геопия, номинатим, фолиум, пигеокодер.

Все мы знакомы с огромным влиянием политических кампаний на электорат, основанных на данных. Достаточно взглянуть на президентские выборы в США в 2016 году, когда Хиллари Клинтон и Дональд Трамп встретились лицом к лицу и в конечном итоге коренным образом изменили способ победы американских политиков на выборах.

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

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

В Великобритании дела шли непросто, и промоутеры Брексита извлекли много уроков из кампании Трампа и использовали их. Перенесемся в 2020 год, и главный деятель Брексита Борис Джонсон теперь является новоизбранным премьер-министром от консерваторов довольно разделенного «Соединенного» Королевства.

Нынешняя политическая ситуация в Шотландии после голосования по Брекситу и недавней победы Бориса Джонсона на зимних всеобщих выборах 2019 года очень острая.

Шотландских избирателей сначала спросили, хотят ли они, чтобы Шотландия стала независимой страной на референдуме в сентябре 2014 года; результат был 55% против 45% против независимости.

В манифесте о всеобщих выборах 2019 года Шотландской национальной партии (ШНП) говорилось, что партия намерена провести второй референдум в 2020 году; и они получили 48 из 59 мест Шотландии в Палате общин Великобритании. Итак, естественно, первый министр Никола Стерджен заявил, что « будущее, которого желает большинство людей в Шотландии, явно отличается от того, за которое выступает большая часть остальной части Великобритании» . Ранее в этом месяце она официально потребовала полномочий провести референдум о независимости до конца 2020 года, но вскоре после этого Борис Джонсон отказал ей.

Все это создало сложную среду в стране, которая, похоже, находится в очень трудном (и не очень благоприятном) положении в Великобритании Бориса Джонсона.

СОДЕРЖАНИЕ

  1. "Вопросы"
  2. Почему твиттер?
  3. ETL: извлечение, загрузка, преобразование
  4. Feature Engineering
  5. Определение модели и обучение
  6. Оценка модели
  7. Моделирование неизвестного: данные твиттера референдума.
  8. Геопространственный анализ
  9. Выводы

Вопросы

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

Итак, мои вопросы:

Как люди в Великобритании реагируют на нынешний политический климат в отношении призывов к новому референдуму о независимости Шотландии? А отказ Бориса Джонсона разрешить?

Чем отличается эта реакция у жителей Шотландии, Англии, Уэльса и Северной Ирландии? Особо интересует Шотландия.

Итак, я загрузил неделю твитов с 8 по 15 января 2020 года с ключевыми словами «indyref2», «scottish independent» и «scotref» . Процесс, который я использовал для очистки данных и анализа настроений, можно повторить для любой учетной записи Twitter или медиа-страницы.

Используя Анализ настроений (также известный как анализ мнений), подполе Обработка естественного языка, я изучил Twitter как своего рода политический барометр независимости Шотландии. Я обучил две модели машинного обучения с учителем: Машина опорных векторов (SVM) и Наивный байесовский классификатор. Затем я провел систематическое сравнение с рекуррентной нейронной сетью глубокого обучения (RNN), известной как сеть с краткосрочной памятью (LSTM). После оценки моделей я выбрал и использовал модель LSTM для прогнозирования настроений в наборе данных Twitter.

Вы можете ознакомиться с полным проектом с его техническими деталями в репозитории Github.

Почему твиттер?

Я решил взглянуть на Twitter, потому что он - и социальные сети в целом - становятся все более неотъемлемой частью повседневной жизни, и это также верно в мире политики. Кроме того, проекты анализа настроений используют в основном данные Twitter, потому что они (почти) общедоступны, в то время как (почти) невозможно собрать какие-либо полезные данные из Facebook.

ETL: извлечение, загрузка, преобразование

обучающие данные были получены из Sentiment140 и состоят из около 1,6 миллиона случайных твитов с соответствующими двоичными метками 0 для отрицательного настроения и 4 для положительного настроения. Исходный набор данных состоит из 80 тысяч твитов, отмеченных положительными, и 80 тысяч - отрицательных. Это много твитов. Поэтому я взял образец из большего набора обучающих данных, чтобы избежать длительного ожидания. В итоге я использовал 25 160 твитов, помеченных как отрицательные, и 24 840 твитов, помеченных как положительные, для обучения.

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

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

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

Что касается тестовых данных, я загрузил набор данных с помощью API Twitter и использовал его для тестирования реальной производительности модели. Я использовал tweepy, библиотеку-оболочку python для API Twitter, которая дает вам больше контроля над тем, как вы запрашиваете ее. Чтобы получить хороший кусок данных для тестового набора данных, я загрузил данные, используя ключевые слова 'indyref2', 'scottish independence' и 'scotref' через функцию поиска API. Однако в бесплатной версии REST API Twitter есть ограничение. Он выполняет поиск по выборке последних твитов, опубликованных за последние 7 дней. Таким образом, мне удалось собрать всего 636 твитов. Тем не менее, мне удалось извлечь из них интересную информацию.

Подробные пошаговые инструкции по работе с этим разделом можно найти в записной книжке в моем Github.

Функциональная инженерия

Чтобы проанализировать предварительно обработанные данные, их необходимо преобразовать в функции. В зависимости от использования, текстовые функции могут быть созданы с использованием различных техник, таких как Пакет слов (BoG), TF-IDF и Вложения слов.

Я выбрал «Мешок слов», чтобы упростить проект. Но базовый подход не позволяет уловить разницу между фразами типа «Ты мне нравишься», где «нравится» - это глагол с позитивным настроением, и «Я такой же, как ты», где «нравится» - это предлог, выражающий иное мнение.

Чтобы улучшить эту технику, я извлек элементы с помощью тегов Оценки полярности Вейдера и части речи (POS).

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

Тегирование части речи (POS) - это когда часть речи назначается каждому слову в списке с использованием контекстных подсказок. Это полезно, потому что одно и то же слово в разных частях речи может иметь два совершенно разных значения. Это процесс разметки слова в корпусе (связке текста) до соответствующей части речевого тега на основе его контекста и определения. Это непростая задача, поскольку у конкретного слова может быть другая часть речи в зависимости от контекста, в котором это слово используется. В этом проекте я использовал простой лексический метод, который присваивает тег POS наиболее часто встречающемуся слову в обучающем корпусе и добавляет теги в качестве функций в нашу модель. См. Ниже вспомогательную функцию:

Ознакомьтесь с записной книжкой в ​​моем Github, чтобы получить пошаговую инструкцию по этому разделу.

Определение модели и обучение

Машинное обучение с учителем

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

  • Наивный байесовский классификатор
  • Машинный классификатор опорных векторов

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

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

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

После определения моделей я использовал Scikit Learn GridSearchCV для перекрестной проверки и одновременного выбора лучшей конфигурации гиперпараметров. С помощью Grid Search вы настраиваете сетку значений гиперпараметров и для каждой комбинации обучаете модель и оцениваете данные проверки. В этом подходе проверяется каждая комбинация значений гиперпараметров.

Я передал объединенные гиперпараметры объекту GridsearchCV для каждого классификатора и 10 раз для перекрестной проверки, что означает, что для каждой комбинации параметров сетка каждый раз выполняла 10 различных итераций с различным набором тестов (это заняло некоторое время…).

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

Глубокое обучение

Для сравнения я также реализовал рекуррентную нейронную сеть (RNN), известную как Long Short-Term Memory (LSTM).

Чтобы быстро описать это, подумайте о том, как мы думаем. Мы не начинаем думать с нуля каждую секунду. Мы строим на этом. Читая этот пост, вы углубляетесь в его понимание по мере чтения.

Традиционные нейронные сети не могут этого сделать.

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

Входит в LSTM! Это ребенок, который нам нужен.

Я использовал следующую сетевую архитектуру:

  • Сначала мы перешли на слой встраивания, наш первый скрытый слой.
  • После того, как входные слова были переданы на слой внедрения, новые вложения передаются в ячейки LSTM, наш второй скрытый слой.
  • Наконец, выходные данные LSTM попадают на выходной уровень softmax.

Чтобы твиты были готовы к вводу в сеть LSTM, потребовалось довольно много времени на подготовку данных. Мне пришлось закодировать слова твита в целые числа. Итак, мне пришлось преобразовать твиты в последовательности целых чисел, используя Tokenizer из Кераса. Затем закодированные твиты могут быть переданы в сеть.

С помощью Keras построить сеть было довольно просто. Вы можете просто наложить несколько слоев друг на друга:

Я запустил модель для 10 эпох и заметил, что потери для данных проверки начинают увеличиваться после эпохи 1, что предполагает переобучение. С помощью вспомогательных функций eval_metric и optimal_epoch я решил проблему, немного изменив модель.

Из графиков мы наблюдаем две вещи:

  • Потери в обучении продолжают уменьшаться с каждой эпохой. Наша модель учится распознавать определенные закономерности в обучающей выборке.
  • Потеря валидации продолжает расти после каждой эпохи. Наша модель недостаточно хорошо обобщает набор для проверки.

Потери на обучение продолжают снижаться и почти достигают нуля в эпоху 10. Это нормально, поскольку модель обучается так, чтобы максимально точно соответствовать данным поезда.

Итак, мы перетренируемся (также известное как "переобучение модели").

Чтобы решить эту проблему, я применил регуляризацию, которая сводится к добавлению стоимости к функции потерь для больших весов.

Мы можем видеть, что он начинает переоснащение во второй эпохе, а затем потери проверки растут медленнее.

На первый взгляд уменьшенная модель казалась лучшей моделью для обобщения. Но затем я проверил набор тестов с помощью вспомогательной функции test_model, которая дала точность теста 74,81% для первого LSTM и 74,47% для LSTM с регуляризацией.

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

Ознакомьтесь с записной книжкой в ​​моем Github, чтобы получить пошаговую инструкцию по этому разделу.

Оценка модели

Оценка модели - неотъемлемая часть процесса разработки модели. Это помогает найти лучшую модель, которая представляет наши данные и насколько хорошо выбранная модель будет работать в будущем. Для этой задачи классификации я использовал следующие показатели оценки:

  • Матрица путаницы
  • Точность, отзывчивость, прецизионность и F1-баллы

Матрица неточностей показывает количество правильных и неправильных прогнозов, сделанных классификационной моделью, по сравнению с фактическими результатами (целевым значением) в данных.

Из вышесказанного:

  • Наивный байесовский классификатор: модель правильно предсказала 76% ярлыков как отрицательные и 73% правильно как положительные. Модель предсказала 27% меток как отрицательные, но они были положительными (ложноотрицательные). Модель предсказывала, что 24% этикеток являются положительными, когда они были отрицательными (ложноположительные).
  • Классификатор SVM: модель правильно предсказала 75% ярлыков как отрицательные и 75% правильно как положительные. Модель предсказала 25% меток как отрицательные, но они были положительными (ложноотрицательные). Модель предсказывала, что 25% этикеток являются положительными, когда они были отрицательными (ложноположительные).

Из вышесказанного:

  • Нейронная сеть LSTM: модель правильно предсказала 76% ярлыков как отрицательные и 73% правильно как положительные. Модель предсказала 27% меток как отрицательные, но они были положительными (ложноотрицательные). Модель предсказывала, что 24% этикеток являются положительными, когда они были отрицательными (ложноположительные).
  • Нейронная сеть LSTM с регуляризацией: модель правильно предсказала 74% ярлыков как отрицательные и 73% правильно как положительные. Модель предсказала 25% меток как отрицательные, но они были положительными (ложноотрицательные). Модель предсказывала, что 26% меток являются положительными, когда они были отрицательными (ложноположительные), что является небольшим улучшением точности по сравнению с первой моделью RNN.

Затем мы смотрим на отчеты о классификации на предмет точности, полноты, точности и F1-баллов. Различия между этими показателями и причины, по которым мы не полагаемся просто на показатель точности, хорошо объяснены в этом посте.

Для Наивного Байеса и SVM:

Для моделей LSTM:

Судя по приведенным выше показателям, наши модели работают относительно хорошо. Обратите внимание, что как макро-, так и микро-средние результаты дают одинаковый результат во всех четырех моделях. Это означает, что наши данные хорошо сбалансированы, иначе говоря, распределение классов в нашем наборе обучающих данных симметрично. Но мы это уже знали. Дело в том, что сбалансированный набор данных позволяет нам полагаться на общую метрику точности при выборе модели.

Для сравнения, в этой статье исследователи обнаружили, что люди-оценщики обычно соглашаются в 80% случаев.

Таким образом, модель с точностью 75% работает почти так же хорошо, как и люди.

Сетевые классификаторы SVM и LSTM без регуляризации превзошли другие модели на 1%, достигнув общей точности 75%.

Я выбрал LSTM вместо модели SVM для следующего шага, потому что в целом глубокое обучение действительно проявляет себя, когда дело доходит до сложных проблем, таких как обработка естественного языка. Еще одно преимущество состоит в том, что мы меньше беспокоимся о части разработки функций, когда дело касается развертывания модели.

В конечном итоге истинным испытанием было использование модели на невидимых данных реального мира.

Ознакомьтесь с записной книжкой в ​​моем Github, чтобы получить пошаговую инструкцию по оценке модели.

Моделирование неизвестного: данные твиттера референдума.

Наконец, мы подошли к самой интересной части. Наши тематические данные Twitter!

Давайте сначала немного исследуем данные, проверив, какие слова в наборе данных наиболее употребительны:

Как мы видим, слова «indyref2», «шотландский», «независимый» и «шотландия» встречаются непропорционально. Конечно, есть. Они являются частью моих ключевых слов для загрузки твитов! Я исключил их и посмотрел еще раз:

Марш? Какого черта это слово используется чаще всего?

Ах! Если вы живете в Великобритании, возможно, вы знаете, что 11 января тысячи сторонников независимости Шотландии прошли маршем через Глазго в рамках первой из серии протестов, запланированных на 2020 год. И эта дата попадает во временные рамки загруженных твитов.

Так что да… марш.

Давайте визуализируем все слова с помощью графика облака слов, потому что они довольно крутые:

Вы можете видеть, что слова типа «Глазго», «СНП», «народ», «сегодня», «союз», «марш» и «референдум» - самые частые. Однако это не дает нам никакого представления о связанном с ними настроении твитов. Итак, давайте продолжим с прогнозами.

Я использовал обученную модель LSTM для создания прогнозов набора данных твитов. Я должен подчеркнуть, что модель выявляет негативные или позитивные настроения в целом. Он не определяет, пишет ли кто-то что-то против или в пользу обсуждаемой темы.

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

После прогнозов количество твитов с положительными тегами составило 263
, а количество твитов с отрицательными тегами - 373:

Количество твитов, помеченных как отрицательные, больше, чем твитов, помеченных как положительные, особенно когда в твите больше слов. Для наших данных, чем длиннее твит, тем больше вероятность, что он негативный.

Также хорошо иметь быстрый просмотр твитов и их тегов.

Следующие твиты были отмечены как отрицательные:

@anninnis @BBCPolitics Голосуйте "НЕТ", чтобы оставаться в ЕС, как они сказали в 2014 году. Все меняется, время для IndyRef2

Я не удивлен (нисколько), что @BorisJohnson отклонил запрос @ NicolaSturgeon о хранении # Indyref2.

Они читают немного сердито или расстроенно, хотя это зависит от точки зрения читателя.

Следующие факторы были отмечены нашей моделью как положительные:

@CoyJudge Потому что голосование было проведено и проиграно, поэтому я двинулся дальше, теперь у нас есть Брексит, и я был на стороне победителя.

Я лейборист, в этом полностью согласен с Борисом. SNP разбирается со всем дерьмом, которое они создали в Шотландии. Indyref2 мертв.

Правильно. Так что это предсказание второго твита кажется мне немного странным, и я бы не стал классифицировать его как положительный.

Увы, для целей этого проекта я продолжил предсказания этой модели.

Геопространственный анализ

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

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

Так что вполне возможно, что я пропускаю много твитов без геотегов, которые рисовали бы другую картину, чем та, которую я представляю при нанесении на карту.

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

Теперь построить это было непросто. Было несколько проблем с данными, отсутствие файлов формы и другие проблемы. Например, одно место было указано как Парк Келвингроув в Глазго, поэтому его следует заменить этикеткой Глазго. Или в некоторых твитах были показаны маленькие городки, такие как Coaltown of Balgonie, который принадлежит Fife Area. Мне пришлось бы переименовать и это для единообразия.

После всего этого, наконец, я был готов к некоторым сюжетам и геоплотам.

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

Большинство твитов поступает из Шотландии, в частности из Глазго, не столицы, а крупнейшего города Шотландии, известного высоким процентом сторонников независимости. Однако неплохая сумма поступает из Англии.

Затем я извлек общие настроения в каждом из городов Великобритании, добавив положительные к отрицательным, и окончательное число является индикатором +/-.

Из гистограммы видно, что большинство значений лежат между -5 и 5, при этом общее настроение слегка смещено в отрицательную сторону. Среднее (медианное) настроение - это негативное настроение (-1). Также есть пара городов с большим значением общего отрицательного настроения по сравнению с остальными городами во фрейме данных.

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

Напоминаем, что общее настроение определяется суммированием положительных и отрицательных моментов для каждого города, чтобы получить окончательное число.

Я установил цветовую шкалу, где любое настроение ниже -1 помечается красным и отрицательным, между -1 и 1 светло-голубым и нейтральным, и, наконец, выше 1 считается положительным и окрашено в синий цвет.

В целом, кажется, что твиты, отправленные из городов Шотландии, вызывают больше негативных настроений, чем твиты из Англии и Уэльса. В Северной Ирландии есть один город, твиты которого выражают в целом нейтральные настроения. Городом с самым высоким уровнем негативных настроений (-19) является Глазго, за ним следует Инвергордон (-13) на севере Шотландии.

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

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

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

Ознакомьтесь с полной записной книжкой и кодом в моем Github.

Выводы

В начале этого поста я решил ответить на два вопроса:

Как люди в Великобритании реагируют на нынешний политический климат в отношении призывов к новому референдуму о независимости Шотландии? А отказ Бориса Джонсона разрешить?

Твиты из Шотландии показывают нам, что в целом люди реагируют негативно. Борис Джонсон заявил о своем отказе в проведении референдума 14 января. Таким образом, можно предположить, что реакция связана с этим объявлением, поскольку оно попадает во временные рамки загруженных нами твитов.

Чем отличается эта реакция у жителей Шотландии, Англии, Уэльса и Северной Ирландии? Особо интересует Шотландия.

Кажется, есть заметная разница в настроении твитов, исходящих из Шотландии, по сравнению с твитами, исходящими из больших и малых городов Англии. И информации из Уэльса и Северной Ирландии не так много.

Интересным шагом может быть добавление временного измерения к карте для визуализации твитов во временном ряду и наблюдения за изменениями тональности твитов до и после объявления.

Результаты не означают, что люди, пишущие в Твиттере из Шотландии, имеют отрицательное мнение о втором референдуме о независимости Шотландии, а люди, пишущие в Твиттере из Англии, имеют положительное.

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

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

Но он ограничен с точки зрения определения того, является ли твит негативным по рассматриваемой теме. Скорее, твиты имеют отрицательный или положительный характер.

-19Все негативные настроения в Глазго можно интерпретировать как то, что люди в Глазго пишут в Твиттере много негативных слов. Очень гневные слова, когда мы смотрим на некоторые твиты.

Заинтересованных сторон, вероятно, интересуют конкретные эмоции по поводу независимости Шотландии, а не сама полярность. Они могут захотеть понять, что люди думают об этой теме, распознать растущий гнев, страх или разочарование, связанные с этим.

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

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

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

Вот и все. Я очень увлечен политикой, поэтому работать над этим проектом было очень интересно.

Если вам каким-то образом удалось пройти через все это и вы читаете это, спасибо за ваше время! Любая обратная связь очень ценится.