После долгих выходных, путешествующих по Лагосу, Кадуне и Абудже для проведения ежеквартального анализа бизнес-данных и углубленного обучения Excel в Абудже, я сегодня отдохнул и решил выполнить интересную задачу по анализу данных.

Провести анализ настроений по сегодняшним твитам о президенте Бухари.

Это было очень интересное задание. Познакомил меня с библиотекой Python Tweepy. Мне помог Марко Бонзанини. Вам следует ознакомиться с его книгой Освоение майнинга социальных сетей с помощью Python.

Вот разбивка шагов по достижению цели:

  1. Созданы необходимые учетные данные для доступа к Twitter API (они находятся на https://apps.twitter.com/app/new).
  2. Используйте Tweepy для поиска твитов о Бухари в реальном времени
  3. Сохраните твиты как файл JSON.
  4. Обработка смайлов и строк, характерных для Twitter (например, @, # и т. Д.)
  5. Исключите стоп-слова (слова, не имеющие значения, для анализа тональности, значения), например, быть, быть, есть и т. Д.
  6. Примените Вейдера к каждому тексту твита и рассчитайте тональность потока твита.
  7. Примените Sentiwordnet, альтернативу Vader, для того же анализа тональности потока.

Ниже приведены скриншоты некоторых шагов.

А результаты?

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

Вейдер классифицировал поток твитов как 54,67% отрицательных против 17,76% положительных и 27,57% нейтральных.

Sentiwordnet дала более убедительный результат: 92,06% отрицательных против 7,48% положительных и 0,47% нейтральных.

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

Первоначально опубликовано на www.olafusimichael.com.