Сайт Tracery обновился

Kate Compton обновила сайт своего движка для процедурной генерации текста Tracery.



Tracery — это очень простой инструмент и язык для генерации текста, который может использоваться самостоятельно или как подключаемая Javascript-библиотека. Относительно свежий проект ещё ищет свою нишу, но его уже активно используют, в частности, для создания Twitter-ботов и текстовых игр.

Идея процедурных текстов проста: автор пишет правила и составляет словари, а библиотека составляет по ним текст. (Словари можно тоже составлять автоматически из различных корпусов текста) Вам не придётся разбираться в цепях Маркова, а результат всё ещё может поразить.

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



Библиотека не привязана к грамматике, а значит, может использоваться для русского языка (вам придётся взять Javascript-движок, например, Twine или Undum.)

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

Lina traveled with her pet duck. The duck was always too indignant.
Yuuma traveled with her pet unicorn. The unicorn was always too indignant.
Azra traveled with her pet coyote. The coyote was always too impassioned.
Yuuma traveled with her pet owl. The owl was always too courteous.
Azra traveled with her pet zebra. The zebra was always too astute.

Программистам, более искушённым в Javascript, будет также интересна библиотека процедурной генерации текста Improv (открытая лицензия MIT), которую написал Bruno Dias специально для видеоигр. Improv имеет более сложную настройку, но добавляет генерацию с моделями знания, к которым может обращаться вся игра. Таким образом, вам будет проще следить за согласием текста и состояния игры.

12 комментариев

Oreolek
На правах пирата: PDF с материалами конференции. Там есть про Tracery и не только. Внутри серьёзный научный английский.
Gudleifr
Во-во… Именно то, о чем я и говорил. Сведение «творчества» к «заполнению слотов заранее заготовленных фреймов». И «творчество» программистов, сводящееся к выдергиванию из материалов 40-летней давности чего-то курьезного.

> Внутри серьёзный научный английский.
Не-а. Обычный бейсик-пиджин. Правда с обилием ссылок, возможно даже ведущих к настоящим материалам.
ASBer
А есть примеры для русского языка?
Oreolek
Ну у меня был где-то тестовый проект, но там онлайн-редактор настолько простой, что можно что-то своё минут за пять накидать и намного больше понять.
Oreolek
Вот буквально на коленке:
{
"origin":["#subject.capitalize# #verb# #object#"],
"subject":["Маша", "Лида", "Вера", "Ира", "Люда", "Саша", "Даша", "Вика", "Фрося"],
"verb":["мыла", "сушила", "била", "села на"],
"object":["раму", "даму", "пижаму"]
}
esse
А есть возможность для движка этого сайта добавить кнопочку «скрыть» рядом с кнопочками плюса и минуса?
Gudleifr
— Ведь были же, говорят, времена! — завопил он. — Ведь пикнуть же не смели! Чуть из них кто вякнет — ночью к нему в белых балахонах или там в черных рубашках, дадут в зубы с хрустом и в лагерь, чтоб не вякал… В школах, сын рассказывает, все фашистов поносят: ах, негров обижали, ах, ученых совсем затравили, ах, лагеря, ах, диктатура! Да не травить надо было, а в землю вбивать, чтобы на развод не осталось!
esse
Вас ждут Ваши солдатики на Вашем коричневом сайте. Не забывайте про них.
Gudleifr
А странно видеть три минуса у Стругацких на литературном сайте. Не находите?
spline
Странно считать ифхаб литературным сайтом.
LuckyUK
true-grue подсказал ссылку https://habrahabr.ru/company/yandex/blog/219311/
И счёл необходимым пояснить:
true-grue: В теории формальных грамматик давно уже принят двоякий взгляд на вещи.
true-grue: С одной стороны по заданной грамматике можно определить принадлежность конкретного текста к языку.
true-grue: А с другой — грамматика порождает все возможные формально корректные тексты на этом языке.
Комментарий отредактирован: 16 февраля 2017, 22:37