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

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

большие окна домов освещены
дети столпились у окон
младенцы заснули наверху, бессвязно

среди хлопков
хлопков
хлопков

верхний ствол перекатывается, качается
лязг
на землю

и откатывается вдаль

От Анны Завильской и Macbook Serial CO2P…H2, вдохновлено Сильвией Плат

Моя машина и я написали вышеуказанное стихотворение вместе. Стихотворение вдохновлено одной из моих любимых: Сильвией Плат.

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

Как это работает

Репозиторий Github с кодом и инструкциями находится здесь: https://github.com/AnnaZawilska/inspire-me

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

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

В коде вы начинаете с заполнения системы начальным словом (в моем коде по умолчанию используется «the»). Затем в цикле:

80% времени:

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

20% времени:

  • добавить новую строку. Я выбрал это примерно, взяв за образец пару стихотворений и посмотрев, сколько символов являются новой строкой.

Инструмент использует эту систему автозаполнения: https://pypi.python.org/pypi/autocomplete/0.0.104. Он содержит простую Скрытую марковскую модель: при заданном текущем слове и первой части следующего слова Инструмент находит набор вероятных вторых слов.

Вы тренируете свой простой «HMM» с помощью корпуса работ. Как правило, чем больше, тем лучше. Я нашла около 10 стихотворений Сильвии Плат из интернет-архивов. Вам нужен корпус с определенной тематикой, чтобы извлеченные концепции имели тенденцию работать вместе, чтобы вызвать в воображении некоторые образы. Чем конкретнее темы поэзии в корпусе, тем более потенциально значимой будет цепочка вдохновляющих слов, которую генерирует ваша машина.

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

костер
наездников
сузился

бочки времени косые
замки адирондак

темно

роса смелое поколение королева толпа

жилой почтальон

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

упавший
аккорд вода коннектикут желтый желтый синий вверх
окно ребенок толпа остров

бочки
взрослые упали

горничная nubs
владелец воды и бессистемно

остров остров почтальон девственницы

последний

Эффект

Твою поэзию формируют:

  • Ваши образы и мысли
  • Аппаратное и программное обеспечение вашей машины (генерация случайных чисел и букв, которые определяют выбранные вдохновляющие слова)
  • Концепции, темы и образы, связанные с обучающими данными

Осторожно

Эта система — не лучший способ научить машину генерировать связные стихи самостоятельно. Это территория более сложных моделей с памятью вроде RNN. Но RNN намного сложнее в вычислительном отношении и обычно требует больше данных.

Совместный поэтический джем машин и людей

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

Если вам это понравилось, нажмите 💚 ниже, чтобы другие люди увидели это здесь, на Medium.