Всем привет! Я только что закончил свой главный проект по получению сертификата больших данных от Университета Райерсона в Торонто. Этот проект был довольно сложным, но требовал огромных знаний. Я потратил почти месяц на ее окончательную доработку и подготовку отчета. Следуйте подробному пошаговому коду R на моем GitHub.

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

Вступление

New York Times (NYT) имеет большую читательскую базу и играет важную роль в формировании общественного мнения и взглядов на текущие дела, а также в определении тона общественного дискурса, особенно в США. Разделы статей в NYT довольно активны и дают представление о мнениях читателей по тематике статей. Каждый комментарий может получать рекомендации других читателей в виде голосов «за».

Проблемы для модераторов NYT

  • До 700 комментариев на статью с модераторами NYT, вручную просматривающими ~ 12 000 комментариев в день.
  • Модераторам необходимо быстрее принимать решения по проверке и сортировке комментариев на основе их предполагаемой релевантности и популярности.
  • Найти более простой способ группировать похожие комментарии и поддерживать полезный разговор между читателями.

Ключевые темы исследований

  • обширный анализ статей и комментариев NYT
  • прогноз популярности комментариев читателей

Подход

** Пошаговый код для этого проекта можно найти в моем репозитории NYT NLP Capstone GitHub.

Шаг 1. Сбор данных

Набор данных статей NYT:

  • Набор данных состоит из девяти файлов .csv для статей, опубликованных с января по май 2017 г. и с января по апрель 2018 г. (доступны в Интернете, также могут быть извлечены с помощью API-интерфейсов NYT).
  • Всего 9,335 различных статей с 15 переменными.

Набор данных комментариев NYT:

  • Был еще один набор из девяти файлов .csv, содержащих коллекцию комментариев к этим статьям (доступен в Интернете, также может быть извлечен с помощью API-интерфейсов NYT).
  • Всего 2176 364 комментария с 34 переменными.

** Все файлы данных, используемые в проекте, можно найти здесь.

Шаг 2. Очистка и предварительная обработка данных

Ограничение и сокращение

  • Из-за огромного объема данных и ограниченных вычислительных ресурсов я решил ограничить набор данных только лучшими 6 из 14 доступных столов новостей.
  • Я преобразовал некоторые черты характера в факторы.
  • Я изменил тип данных некоторых функций, особенно формат временных меток UNIX, на POSIXct.
  • Я удалил функции, которые не требовались для анализа.

Шаг 3: Оценка и расчет ориентации настроения

Организация и очистка текста:

  • Текст в комментариях, отрывках и заголовках статей обрабатывался с помощью функции unnest_tokens.
  • Тело текста было разделено на токены (отдельные слова) в каждой строке нового фрейма данных.
  • Я удалил знаки препинания и перевел токены в нижний регистр.

Определение баллов семантической направленности:

  • Подход на основе лексики использовался, чтобы отличить ориентацию текста от смысловой ориентации слов.
  • Соответствующий лексикон (BING) был идентифицирован из пакетов, доступных в R.
  • Я использовал BING, чтобы присвоить оценку каждому заголовку, фрагменту статьи и комментарию к статье.
  • На основе оценки тональности каждый заголовок, фрагмент и комментарий были отнесены к одной из трех категорий тональности: отрицательной, положительной или нейтральной.

Шаг 4: Извлечение и анализ функций

Помимо переменных, уже присутствующих в данных, были получены еще несколько функций:

  • совокупные оценки тональности для каждого заголовка, фрагмента и текста статьи (отрицательное, положительное, нейтральное).
  • общее количество слов в каждом комментарии
  • общее количество предложений в каждом комментарии
  • среднее количество слов в предложении в каждом комментарии
  • временные особенности: разница во времени между добавлением комментария и датой / временем публикации статьи.
  • день недели, когда был добавлен комментарий
  • время суток, когда был добавлен комментарий

Преобразование рекомендаций в двоичную переменную:

Кроме того, для построения прогнозной модели с использованием методологии классификации (как описано в моем следующем посте) целевая переменная «рекомендация» (числовая) была преобразована в двоичную переменную с возможными значениями 0 или 1.

Переменная популярность и непопулярность была получена из пятизначной сводной статистики для предварительно преобразованной рекомендательной переменной. Его общее медианное значение было 4; поэтому любой комментарий с ‹= 3 голосами за был отмечен как непопулярный.

Шаг 5: исследование и визуализация данных

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

Изучение корреляции между функциями текста и популярностью комментариев

Тесты Anova были запущены для определения статистической значимости корреляции между переменной ответа и числовыми предикторами. Корреляция была статистически значимой t для всех трех предикторов, как показано ниже.

Сводка исследования данных

  • Самые популярные службы новостей для NYT: OpEd, National, Foreign, Washington, Business и Редакционный. Модераторы могут сосредоточиться на этих категориях при модерации комментариев, добавленных читателями.
  • И в 2017, и в 2018 году статьи, как правило, имели больше негативных настроений, чем позитивных. Это может быть связано с политической ситуацией, преобладающей в Соединенных Штатах и ​​в мире.
  • Для статей с наибольшим количеством комментариев, а также для наиболее часто используемых слов в этих комментариях топ-25 терминов были похожи и включали Трамп, Россия, беженцы. , здоровье и секреты.
  • Судя по распределению популярности комментариев, национальные статьи были самыми читаемыми и любимыми читателями. Это можно объяснить политическими изменениями, происходящими в США в 2017–2018 годах.
  • Большинство комментариев было сделано утром и днем ​​.
  • Вторник, четверг и пятница были самыми активными днями для комментариев, а наименее активными днями были выходные.
  • Существует сильная корреляция между популярностью комментария и несколькими производными характеристиками: средним количеством слов в предложении в комментарии, средним количеством предложений в комментарии и средним промежутком времени между публикация статей и комментариев. Это означает, что эти функции можно использовать для прогнозирования популярности комментариев.

Заключение

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

Как вы относитесь к тому, что четыре голоса "за" ограничивают популярность? Как вы думаете, как увеличение или уменьшение порога повлияет на результаты? Дайте мне знать ваши мысли в разделе комментариев и продолжайте смотреть это пространство для Части 2 :-)

(Впервые опубликовано на сайте www.datacritics.com)