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

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

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

Одними из наиболее часто используемых платформ для распространения идей в настоящее время являются Twitter и Medium (вы здесь!). В Twitter обычно публикуются статьи, включая внешние URL-адреса и заголовок, где пользователи могут получить доступ к статье и продемонстрировать свое удовлетворение лайком или ретвитом исходного сообщения.

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

Проэкт

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

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

Используя только статистику Twitter, мы ожидаем, что статьи первоначально достигли почти одинакового числа читателей (эти читатели были подписчиками учетной записи freeCodeCamp в Twitter). Следовательно, их эффективность и взаимодействие будут ограничиваться характеристиками твита, например заголовком статьи. И это именно то, что мы хотим измерить.

Я выбрал аккаунт freeCodeCamp для этого проекта, потому что идея заключалась в том, чтобы ограничить объем темы статей и лучше спрогнозировать ответ в конкретном поле. Одно и то же название может хорошо работать в одной категории (например, Технологии), но не обязательно в другой (например, Кулинария). Кроме того, эта учетная запись публикует заголовок исходной статьи и URL-адрес на Medium в качестве содержимого твита.

Как выглядят данные?

Первым шагом этого проекта было получение информации из Twitter и Medium, а затем ее сопоставление. Набор данных можно найти здесь, и он содержит 711 точек данных. Вот как выглядит набор данных:

Анализ и обучение с данными

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

Итак, давайте посмотрим, что говорят цифры для статей freeCodeCamp, написанных на Medium и опубликованных в Twitter.

Какова хорошая длина заголовка?

Написание заголовков длиной от 50 до 110 символов помогает повысить шансы на успешную публикацию статьи.

Какое количество слов в названии?

Наиболее эффективное количество слов в заголовке - от 9 до 17. Чтобы оптимизировать количество ретвитов и лайков, попробуйте от 9 до 18 слов, а для хлопков - от 7 до 17.

Какие категории лучше всего отмечать?

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

Какие слова лучше всего использовать?

В этом лексическом анализе вы заметите, что одни слова привлекают гораздо больше внимания в сообществе freeCodeCamp, чем другие. Если цель состоит в том, чтобы увеличить количество статей, разговоры о JavaScript, React или CSS увеличат их ценность. Использование слов «учиться» или «руководство» для описания также повысит вероятность.

Использование машинного обучения

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

Прогнозирование количества ретвитов, лайков и аплодисментов к статье можно рассматривать как проблему классификации, и это обычная задача машинного обучения (ML). Но для этого нам нужно использовать вывод как дискретные значения (диапазон чисел). Входными данными будут заголовки статей с каждым словом в качестве токена (t1, t2, t3,… tn), длина заголовка и количество слов в заголовке.

Диапазон наших функций:

  • Ретвиты: 0–10, 10–30, 30+
  • Нравится: 0–25, 25–60, 60+
  • Хлопки: 0–50, 50–400, 400+.

И, наконец, после предварительной обработки нашего набора данных и оценки некоторых моделей (все полностью описано здесь) мы пришли к выводу, что модель MultinomialNB работает лучше для ретвитов, достигая точности 60,6%. Логистическая регрессия составила 55,3% для лайков и 49% для аплодисментов.

В качестве эксперимента для этой статьи я предсказал название этой статьи, и модель предсказала, что:

У него будет 10–30 ретвитов и 25–60 избранных в Twitter и 400+ аплодисментов на Medium.

Как это предсказание? 😀

Следуйте за мной, если вы хотите прочитать больше моих статей 😘 И если вам понравилась эта статья, обязательно понравитесь, дайте мне много хлопков - для писателя это означает мир .

Флавио Х. де Фрейтас - предприниматель, инженер, технический любитель, мечтатель и путешественник. Работал техническим директором в Бразилии, Силиконовой долине и Европе.