Вот основные моменты

Тим Деннинг - одна из самых успешных фигур в культуре самосовершенствования и предпринимательского ведения блогов. Имея более 140 тысяч подписчиков и 100 миллионов просмотров только на Medium, ясно, что он понял эту игру.

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

Что я могу сделать (я наивно подумал), так это скормить модели машинного обучения все статьи на timdenning.com и заставить ее автоматически генерировать для меня целые статьи в его стиле!

Как я был неправ.

После нескольких часов обучения модели на статьях, взятых с timdenning.com, генерация предложений в основном приводила к расплывчатой ​​чепухе в духе Тим-Деннинга, например:

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

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

Вот это да. Действительно мудрые слова от Искусственного Тима Деннинга.

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

Шаг 1. Получите текст из статей в Python

Цель состоит в том, чтобы собрать основной текст каждой статьи на timdenning.com/blog в один большой текстовый файл, который можно использовать для обучения textgenrnn модель.

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

Для этого я использовал BeautifulSoup: пакет Python, который предоставляет инструменты для очистки веб-страниц.

Логика была такая:

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

Эта простая реализация заняла несколько минут, так как каждый вызов статьи выполнялся последовательно. Мне удалось ускорить это до нескольких секунд, используя потоки, назначая извлечение каждой статьи отдельному потоку.

2) Обучаем модель по статьям

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

Результаты сильно зависят от количества обучающего текста и времени, потраченного на его изучение. num_epochs=10 был минимальным объемом обучения для получения приемлемых результатов.

По умолчанию модель фактически генерирует символ за символом. Устанавливая word_level=True, мы заставляем каждое слово быть точками данных, а не каждым символом. По моему опыту, это дает лучшие результаты для этого приложения.

3) Создать текст

После сохранения параметров модели мы можем загрузить их из их файлов. Затем все, что осталось сделать, это вызвать функцию generate. Приведенный ниже код генерирует 10 раздела текста с максимальной длиной 50 слов.

Тег temperature показывает, насколько мы позволяем модели выбирать неоптимальные слова. При температуре 0 модель всегда дает одинаковый результат. Это потому, что он выбирает только самое вероятное слово номер 1.

Повышая температуру, мы позволяем модели создавать все менее и менее «вероятные» предложения, что приводит к более творческим (но бессмысленным) результатам. Я обычно находил, что температура 0,5 работает хорошо.

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

Что вы должны взять с собой?

Это не новая концепция. Машинное обучение может генерировать человеческие предложения с 60-х годов. Что нового, так это то, насколько легко создавать подобные проекты - я справился всего за несколько часов. С появлением все более мощных библиотек Python с открытым исходным кодом барьер для входа в машинное обучение стал ниже, чем когда-либо.

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

Даже если вы никогда раньше не делали ничего подобного, это отличный способ начать изучение возможностей машинного обучения. Перефразируя великого философа искусственного интеллекта Тим-Деннинга:

Сделайте другим следующим шагом

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

Ознакомьтесь с моими последними описаниями проекта - бот Facebook Messenger, который по команде выполняет глубокую обработку изображений, и проект анализа настроений в Twitter в Google Cloud.