Любите его или ненавидите (лично очарованный им), у Buzzfeed есть свой характерный способ привлечь наше мимолетное внимание, и большая часть их моджо заключается в том, как они создают свои названия. Я использую подход, основанный на глубоком понимании, для анализа наиболее распространенных заголовков BuzzFeed с использованием различных методов машинного обучения и НЛП.

1. Сбор и очистка данных

Используя BuzzFeed API newsapi.org, я смог запросить до 50 главных заголовков с веб-сайта за раз. Я очищал 50 заголовков дважды в день в течение недели, что дало мне около 700 заголовков, с которыми можно было работать.
Как только это было сделано, я очистил текстовые данные, удалив неанглийские предложения и бесполезные символы Unicode.

2. О чем говорят данные

В Интернете принято считать, что идеальная длина заголовка находится где-то между 50–70 символами. Средняя длина заголовка BuzzFeed находится где-то на этом уровне. Поскольку это поиски наиболее часто встречающейся структуры заголовков BuzzFeed, я сужаю поиск до заголовков с 11 словами и перехожу к тегам части речи, чтобы выявить наиболее популярные последовательности слов.

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

Далее, следующая часть речи: существительные. С большим отрывом эти заголовки следуют за номерами существительными (в единственном или множественном числе).

Здесь нет ничего удивительного. Это существительные, к которым все мы можем относиться на каком-то сенсорном уровне. Ясно для массового обращения.

Что действительно привлекло мое внимание, так это четвертое слово в последовательности - «будет».
Пример: «14 вещей, которые вы поймете, если будете посещать спортзал».
С первого взгляда мы можем увидеть, как слово «будет» создает опережающий эффект. За то, что вы не нажимаете на заголовок, есть невидимая, но очевидная цена - цена того, что вы не узнаете.

Теперь, когда у нас есть структура, мы можем взглянуть на другие характеристики заголовков, такие как тональность: являются ли эти общие заголовки в целом положительными, отрицательными или нет?

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

3. Создание простого генератора заголовков BuzzFeed.

Прежде чем я продолжу этот раздел, давайте подведем итоги того, что мы узнали о названиях BuzzFeed:

  • Заголовки краткие, по 7–14 слов в каждом.
  • Наиболее часто используемая структура заголовка - это [CD, NNS, WDT, VBP…], то есть число, за которым следует существительное (в основном во множественном числе), за которым следует слово Wh и глагол (в основном «будет»).
  • Заголовок раскрывает много информации о содержании статьи. Они не обязательно являются «кликбейтами»: на мой взгляд, как раз наоборот. Они точно сообщают вам, что вы получите - списки статей, которые раскрывают некоторую часть информации, которую вы хотите / должны знать.
  • Они в основном нейтральны по настроениям. Я не верю, что «ожидание» подпадает под «позитивное» или «негативное». Цель этих заголовков - максимально эффективно вызвать у вас любопытство. В большинстве случаев для этого им не нужно вызывать какие-либо полярные настроения.
  • Примечание: я не могу это подчеркнуть. Приведенный выше анализ относится только к конкретной структуре заголовка, указанной в этой статье. BuzzFeed использует несколько других структур заголовков, которые интересны и заслуживают изучения.

Хорошо, давайте создадим простой алгоритм, который пытается воспроизвести эту структуру:

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

4. Тестирование

Я решил запросить около 500 заголовков из ABC news. Я объединил набор данных с набором данных BuzzFeed, чтобы создать поезд и целевой набор с векторизованными версиями заголовков с 1 в целевой переменной, указывающей, что это заголовок BuzzFeed. Затем я подгоняю простую модель классификатора опорных векторов к обучающей выборке.

Модель достигла точности 83,84 на тестовом наборе со многими ложными срабатываниями (низкая точность, высокая отзывчивость), то есть было 13 случаев, когда модель считала заголовок ABC заголовком BuzzFeed. Используя тысячу заголовков, сгенерированных нашим генератором заголовков, модель предсказала, что все заголовки принадлежат BuzzFeed. Так что в структуре создаваемых нами заголовков есть что-то, что действительно напоминает BuzzFeed. Обратите внимание: случайные существительные и глаголы, которые я использовал для создания заголовков, не были взяты из корпуса BuzzFeed (я взял их из словаря WordNet).

Заключение и дополнения

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

Я использовал предварительно обученную рекуррентную нейронную сеть (RNN) для генерации текста на основе заголовков BuzzFeed, представленных в качестве входных данных. Ниже приведен образец результата, который я получил (после 4 эпох):

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