Создать машину, которая работает как InspiroBot.me — легко!
Впервые о InspiroBot AI написал Techcrunch в 2015 году, рассказав, что такой инструмент хорошая замена человеческого труда по созданию философских постов для социальных сетей.
InspiroBot о себе заявляет: «Я — искусственный интеллект, призванный генерировать неограниченное количество уникальных вдохновляющих цитат для бесконечного обогащения бессмысленного человеческого существования.» Другими словами, автор бота — Педер Джоргенсен (Peder Jorgensen), загрузил словарь и фоновые картинки, чтобы генерировать бесконечное количество цитат.
Вот как это работает, по рассказу автора блога в техфоруме Steemit.com:
Слова разделены на семантические группы и прописаны виды фраз по смыслу, например:
- ]<strive-to><time/occasion> — <стремление к> <результату> <время/событие>
]<as-relationship> — <причина> <объект1> <к> <глагол> <объект2> <как отношение> <описание> <сущность2> <как есть> <объект1>
Для подбора таких грамматических структур существует разные инструменты, например: Link Grammar Parser, где есть циклические отношения между словами — правила синтаксиса. По такому же принципу работает корректор пунктуации в Word Office. Кроме того, есть словарь на английском языке — Word Net, где части речи сгруппированы в наборы синонимов.
Однако, в большинстве случаев фразы получаются смешными или просто абсурдными.
Например:
Точно неизвестно, что именно заложено под капотом программы Inspirobot и почему он выдает такие сумасшедшие фразы. Поэтому для большей ясности решили разработать такой бот своими руками в меньшем размере, усовершенствовав его, чтобы предложения бота не теряли смысловую нагрузку.
Инструкция по разработке бота — цитатника:
1 — Для начала в Google Spreadsheets или Microsoft Excel строем генератор фраз из заданных фрагментов. (Такой же механизм используют маркетологи для создания ключевых фраз для SEO.) Прописываем структуру предложения, разделяя слова по смыслу. Заполняем синонимы, которые подходят под фразу в нужной форме(падеже/времени и т.д.).
2 — После этого задаем комбинаторику выражений в виде индексов, как если бы пытались отгадать код от сейфа. Это действие не нужно делать в ручную, формулы можно подглядеть в Youtube. И вот текстовый результат — готовые мотивационные цитаты, так из 26 отдельных слов выходит 500+ уникальных выражений.
3 — Следующий шаг — работа с Python. Для этого скачиваем редактор VS Code. Там создаем файл с расширением — example.py, редактор автоматически покажет, что вы работаете теперь в питоновском исходнике. Обновите свой Python до версии 3.8, чтобы работали все библиотеки.
Вот весь код:
Дальше все разберем шаг за шагом:
Для работы с Google Spreadsheets нужен — “gspread”
Для функции рандома вводим “random”
Для работы с графикой вводим “PIL”
Отдельно прописав в терминале pip install
После подключаем Google API, чтобы получить данные из таблицы.
Для этого прописываем скоп ссылок:
и подключаем креденшелы.
Подробнее как подключить API можно ознакомиться тут.
Далее мы указываем лист, в которой находится таблица с данными:
В моем случае я назвала лист с фразами в Google Spreadsheets — “Quotes”
Возвращаемся обратно к скрипту.
Сперва надо создать объект, куда запишем все ранее сгенерированные фразы из наших таблиц:
Следом нужно в цикле получить все строки со склейками:
Теперь можем запустить скрипт и в консоли вы должны увидеть, что-то подобное, но уже с вашими подборками фраз:
Так, получив все необходимые данные, теперь берем изображение и кладем в ту же директорию, где лежит скрипт:
Потом берем из директории любое изображение с функцией рандома:
Нужно еще скачать шрифты с кириллицей. Быстренько идем на google fonts и скачиваем любой понравившийся шрифт и кладем рядом, выбираем позицию для изображения(250, 250 можно чуть выше, ниже, как хотите):
Берем готовую цитату и массива по рандомному индексу:
Функция draw нарисует текст в указанной позиции с нужным шрифтом:
Далее просто прописываем show, чтобы на выходе получить изображение
и сохраняем изображение в той же директории.
Запускаем и смотрим результат:
Вуаля!
Уверена, используя инструкцию, у Вас получится создать такого бота меньше, чем за час!
(P.S. Интересно, какую цитату вам выдаст непредсказуемый Inspirobot, делитесь в комментариях!)
Авторы статьи: Амина Эмерсон и Фамил Гаджиев
janvarev
Коллекционирую генераторы текстов, даже небольшой DSL (Domain Specific Language) написал для этого. Спасибо, хорошая подборка фраз, утащил себе в коллекцию.
AminaEmerson Автор
Спасибо! Приятно быть полезным))