#Emmys2022 — Часть 1: Парсинг твитов и предварительная обработка данных

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

Хотя использование свободных от правил сокращений из-за ограниченного количества символов и широкого использования повседневного разговорного языка затрудняет анализ данных Twitter, в среднем 200 миллиардов твитов в год [1] продолжают пульс повестки дня и стал важным источником данных для всех слоев общества. На самом деле известно, что официальный интерфейс разработки приложений Twitter получает в среднем 15 миллиардов вызовов в день [2]!

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

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

Если вы готовы, давайте начнем!

74-я церемония вручения премии «Эмми», известная как «Оскар» телевизионного мира, состоялась недавно и вызвала большой интерес во всем мире. Конечно, этот интерес нашел место и в социальных сетях.

Репосты, сделанные в Твиттере с хэштегом #Emmys2022, были выдвинуты на передний план как тема глобального тренда. Мы засучили рукава, чтобы провести сквозной анализ постов, сделанных под этим хэштегом!

Шаг реализации 1: Соберите твиты с помощью Snscrape

Snscrape — это парсер данных для многих сервисов социальных сетей. Сегодня предлагает решения для сбора данных через социальные сети Facebook, Instagram, Twitter, Reddit, Telegram, ВКонтакте, Weibo, Mastodon.

Вы можете установить Библиотеку Snscrape [3] с помощью pip с помощью команды pip install snscrape

Snscrape требует Python 3.8 или выше.

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

Определенная функция search_hashtag выполняет поиск по следующим параметрам и сохраняет дату (Date) и текст твита (Tweet) твитов в результате этого поиска как Pandas DataFrame в формате .csv.

  • searchterm —искомое слово или хэштег.
  • dt_since — с даты в формате даты%Y-%m-%d
  • dt_until —%Y-%m-%d до даты в формате даты
  • lang —код языка.
  • limit —максимальное количество твитов.

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

search_hashtag('#Emmys2022', '2022-09-14', '2022-09-01', 'en')

В результате поиска было взято 52 867 твитов, удалено 150 дублирующих твитов и получено в общей сложности 52 717 репостов в Твиттере.

Шаг 2 реализации: предварительная обработка данных для анализа тональности и облака слов

1. Очистка стоп-слов

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

Итак, здесь нам все еще нужна предварительная обработка. Стоп-слова основаны на библиотеке nltk (Natural Language Toolkit)[4], а в списке слов есть только emmys, emmy, » во время генерации облака слов и слова «amp.

Вы можете установить библиотеку nltk с помощью pip с помощью команды pip install nltk .

для nltk требуется Python 3.7, 3.8, 3.9 или 3.10.

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

from nltk.corpus import stopwords
print(stopwords.words('english'))

Список стоп-слов английского языкаСписок стоп-слов английского языкаt

['i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', "you're", "you've", "you'll", "you'd", 'your', 'yours', 'yourself', 'yourselves', 'he', 'him', 'his', 'himself', 'she', "she's", 'her', 'hers', 'herself', 'it', "it's", 'its', 'itself', 'they', 'them', 'their', 'theirs', 'themselves', 'what', 'which', 'who', 'whom', 'this', 'that', "that'll", 'these', 'those', 'am', 'is', 'are', 'was', 'were', 'be', 'been', 'being', 'have', 'has', 'had', 'having', 'do', 'does', 'did', 'doing', 'a', 'an', 'the', 'and', 'but', 'if', 'or', 'because', 'as', 'until', 'while', 'of', 'at', 'by', 'for', 'with', 'about', 'against', 'between', 'into', 'through', 'during', 'before', 'after', 'above', 'below', 'to', 'from', 'up', 'down', 'in', 'out', 'on', 'off', 'over', 'under', 'again', 'further', 'then', 'once', 'here', 'there', 'when', 'where', 'why', 'how', 'all', 'any', 'both', 'each', 'few', 'more', 'most', 'other', 'some', 'such', 'no', 'nor', 'not', 'only', 'own', 'same', 'so', 'than', 'too', 'very', 's', 't', 'can', 'will', 'just', 'don', "don't", 'should', "should've", 'now', 'd', 'll', 'm', 'o', 're', 've', 'y', 'ain', 'aren', "aren't", 'couldn', "couldn't", 'didn', "didn't", 'doesn', "doesn't", 'hadn', "hadn't", 'hasn', "hasn't", 'haven', "haven't", 'isn', "isn't", 'ma', 'mightn', "mightn't", 'mustn', "mustn't", 'needn', "needn't", 'shan', "shan't", 'shouldn', "shouldn't", 'wasn', "wasn't", 'weren', "weren't", 'won', "won't", 'wouldn', "wouldn't"]

Какие советы дают известные компании студентам и стартапам? Мы попросили их! Прочитайте или посмотрите наши отраслевые вопросы и ответы, чтобы получить советы от команд из Стэнфорда, Google и HuggingFace.

2. Очистка знаков препинания и повторяющихся букв

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

3. Очистка смайликов

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

Например: используйте ‘:)’вместо 😃.

В любом случае, удаление смайликов из текста — важный предварительный процесс перед созданием облака слов.

4. Некоторые другие этапы предварительной обработки

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

Описанная ниже функция включает следующие этапы предварительной обработки соответственно:

  • Преобразование всех символов в нижний регистр
  • Очистка чисел
  • Очистка URL-адресов
  • Очистка упоминаний
  • Очистка хэштегов
  • Очистка выражений RT
  • Замена более двух точек пробелом
  • Ограничение нескольких последовательных пробелов одним пробелом
  • Очистка некоторых специальных символов

Давайте посмотрим, как эти предварительные процессы вызывают изменения в образце твита!

Исходный твит:' С каждым пренебрежением (Лучше звоните Солу, у которого нет Эмми за его имя, Только убийства исключены) был приятный сюрприз (5+ для Abbott Elementary!) на #Emmys2022. https://t.co/IS9xBQZd9f

Твит после обработки:'каждый пренебрежительный отзыв лучше звоните Солу, у которого ноль эмми за его имя, только убийства исключены, это стало приятным сюрпризом для начальной школы Эбботта в школе'

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

Так что переходите к второй части серии блогов и завершите сквозную реализацию!

Приятного чтения ☕

Ссылки:

  1. Сейс, Д. (2020). Количество твитов в день в 2020 году. Получено с сайта Dsayce
  2. Пандья, А., Уссала, М., Костакос, П., и Фатима, У. (2020, июнь). Mated: система обнаружения твиттер-событий с помощью метаданных. В Международной конференции по обработке информации и управлению неопределенностью в системах, основанных на знаниях (стр. 402–414). Спрингер, Чам.
  3. Библиотека снскрейпа
  4. Инструментарий естественного языка (библиотека nltk)

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

Независимая от редакции, Heartbeat спонсируется и публикуется Comet, платформой MLOps, которая позволяет специалистам по данным и командам машинного обучения отслеживать, сравнивать, объяснять и оптимизировать свои эксперименты. Мы платим нашим авторам и не продаем рекламу.

Если вы хотите внести свой вклад, перейдите к нашему призыву к участию. Вы также можете подписаться на получение нашего еженедельного информационного бюллетеня (Еженедельник глубокого обучения), заглянуть в блог Comet, присоединиться к нам в Slack и подписаться на Comet в Twitter и LinkedIn для получения ресурсов и событий. и многое другое, что поможет вам быстрее создавать более качественные модели машинного обучения.