Всем привет! Я только что закончил свой главный проект по получению сертификата больших данных от Университета Райерсона в Торонто. Этот проект был довольно сложным, но требовал огромных знаний. Я потратил почти месяц на ее окончательную доработку и подготовку отчета. Следуйте подробному пошаговому коду 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)