Я думаю, подзапрос является самым простым:
select p.*,
(case when exists (select 1
from posts po
where po.pet_id = p.id and po.buyer_id = 4
)
then 1 else 0
end) as is_favorite
from pets p;
Не делайте попытку его
, Поэзия не смешивается хорошо
С металлом и битами
более серьезно, хороший хайку (и даже плохой хайку) намного больше о сжатии значения и формирования изображений, чем подсчет слогов. Это обычно также основано на темах, собранных от природы. Случайное словообразование и подсчет слога получат Вас измеряемый мусор, но не поэзия...
От семантического sude выборки использования истории и преобразования Фурье. Выберите значительные части некоторого подробного описания, уменьшенного в отдельных словах и отпуске читателю для заполнения разрывов с ее собственным воображением
Вы могли, в дополнение к использованию идеи Ian количеств слога, также категоризировать слова частью речи и генерировать фразы.
Я запустил бы с некоторого файла словаря, который содержит количество слога каждого слова в нем. Затем выберите слова от этого, составляют в целом необходимые слоги/строку
относительно создания его поэзия и не только случайные слова, я понятия не имею.
Запишите свою программу для генерации Хайку на японском языке. Будет намного легче измерить Ваше количество слога, импульс, Вы остаетесь верными языку оригинала поэзии. Если у Вас есть гибкость с проектом, почему бы не сделать исходных японцев - затем показывают англичанам пословно буквальный перевод его стороной. Это будет выглядеть таинственным по меньшей мере.
Так или иначе, просто другое взятие на проблеме.
Проанализируйте существующие хайку в реляционном порядке, как слово xx используемый после yy n времена. Таким образом, при создании, возможность xx, прибывающего после yy, будет (n / сумма количества всех слов, используемых после yy). Таким образом, это будет выборочно рандомизировано и может все еще быть допустимым хайку.
Некоторые люди здесь предложили использовать словарь и генерировать последовательности слов с помощью Цепь Маркова . Это походит на теоретически эффективное решение, особенно при использовании старшей Цепи Маркова (не bi-или триграммы).
, Но я думаю на практике, что это работало бы лучше, если Вы могли бы собрать базу данных существующих хайку и выборочно отдельные слова изменения в них (например, изменить пообещанный на другого, семантически связанное слово). Существующие хайку дают Вам некоторую структуру и сцепление, и Вам просто нужно к (экс-), изменяют небольшие части в них для создания нового хайку (вариация на старую).
, Конечно, они не будут абсолютно новыми хайку с этим методом, но по крайней мере они будут несколько приятны для читателей.
Я искал бы синтаксическое программирование и лингвистический и попытался бы найти библиотеки для грамматической структуры. Оттуда это должен быть простой шаг для добавления подсчета слов и ограничений количества слога.
Для создания этого читаемым разделите словарь на Существительные, Глаголы, Прилагательные, с количеством слога.
Придумывает некоторые шаблоны формы:
[Существительное] [Глагол] [глагол] "s"
(n) [Прилагательное] [Существительное]
[прилагательное] [существительное]
и обрезка Ваши словари к красивым словам.
"Передать настроение в семнадцати Слогах очень diffic..". (Великое John Cooper Clarke Выезд Beasley Street, , , один из моих фаворитов)
, Сколько еще diffic для компьютера? Логика не знает капризов :)
Не все хайку имеют то же количество слогов, но это - место для запуска.
С точки зрения фактического выбора слов, я думаю, что части речи не были бы местом, где я запущу. Вместо этого я посмотрел бы Цепи Маркова и обучил бы Ваш словарь на существующих хайку.
Во-первых, Вы захотите изучить Цепи Маркова , и во-вторых, существует книга о машинно-генерируемой поэзии, названной Виртуальная муза .
Слоги меры
Понимают семантический поток
, Вашей цели можно удовлетворить
реализуйте генетический алгоритм для генерации хайку, оттянутых из словаря, аннотируемого количествами слога, затем заплатите людям, чтобы считать и оценить их как функцию фитнеса [Mechanical Turk помог бы]. Со временем Ваша программа должна развить некоторые хорошие.
РЕДАКТИРОВАНИЕ:
GA Вам нужно
, развивается при скорости ЦП
, если фитнес Вы учитываете
Ваша программа должна grok
Метафоры и формирование изображений
И будьте творческими.
На Деревне Хайку у нас есть технология, чтобы легко сделать это во множестве путей. Одна идея состоит в том, чтобы просто считать глобальный канал Твиттера и обнаружить неумышленные хайку. Так как бэкенд также имеет словарь, было бы возможно произвести сомнительные хайку, но я думаю, что качеству недоставало бы.
Я думаю, была ли у нас звездообразная система оценки, затем я предполагаю, что машинное обучение могло бы использоваться для решения то, что 'хорошо'.
Хайку легки, который я отмечу
Решения, хорошо зарегистрированные, и механические функции
Они являются преувеличенными и дрянными
Слишком легкое кодирование
Кодируйте меня лимерик, затем я буду голосовать
//Мне на самом деле нравятся хайку
Мне нравится этот вопрос. Он очень образный. Ответ ниже.
Многие люди предлагали цепи Маркова, но я действительно не думаю, что это возможно. Вам нужно точно знать, является ли слог ФОНЕМЫ, затем вы должны знать, где заканчивается слог.
Если вы когда-нибудь сделаете это, я буду поражен.
for (i is 0
and i is less than thirteen)
print s i plus plus