Комп’ютерне хайку
Як би ви написали програму,
щоб зробити їх для вас
Комп’ютерне хайку
Як би ви написали програму,
щоб зробити їх для вас
Відповіді:
Не намагайтеся.
Поезія погано поєднується
з металом та бітами
Якщо говорити серйозніше, хороше хайку (і навіть погане хайку) набагато більше стосується стиснення значення та образності, ніж підрахунок складів. Зазвичай він також базується на темах, зібраних з природи. Випадкове утворення слів і підрахунок складів змусять вас виміряти безглуздя, але не поезію ...
По-перше, вам захочеться розглянути ланцюги Маркова , а по-друге, є книга про вірші, створені комп’ютером, « Віртуальна муза» .
Хайку легко, що я буду відзначити
рішення добре задокументовані, і функції Rote
вони перестаралися і сирний
Coding занадто легкий
код мені лимерик, то я буду голосувати
// Я насправді люблю хайку
noteта vote?
Не всі хайку мають однакову кількість складів, але з цього слід починати.
Що стосується фактичного підбору слів, я думаю, що частини мови не будуть місцем, з якого я починаю. Натомість я б подивився на ланцюги Маркова і навчив би ваш словниковий запас на існуючих хайку.
У селі Хайку у нас є технологія, яка дозволяє легко зробити це різними способами. Одна ідея полягає в тому, щоб просто прочитати глобальну стрічку Twitter і виявити ненавмисні хайку. Оскільки на задній панелі також є словник, можна було б виробляти сумнівні хайку, але я думаю, що якості бракувало б.
Я думаю, якби у нас була система оцінки зірками, то, я гадаю, машинне навчання могло б бути використано для вирішення того, що є "хорошим".
"Передати свій настрій сімнадцятьма складами дуже складно ..." (Великий Джон Купер Кларк перевірив вулицю Бізлі , одну з моїх улюблених)
Наскільки складніше для комп'ютера? Логіка не знає настроїв :)
Щоб зробити його читабельним, відокремте словник на іменники, дієслова, прикметники з кількістю складів.
Придумайте кілька шаблонів форми:
[Іменник] [Дієслово] "s"
[Дієслово] a (n) [Прикметник] [Іменник]
[прикметник] [іменник]
і обріжте свої словники під красиві слова.
впровадити генетичний алгоритм для генерування хайку, витягнутих зі словника, позначеного підрахунками складів, а потім платити людям за читання та оцінювати їх як функцію придатності [механічна турка допомогла б]. З часом ваша програма повинна розвинути кілька хороших.
РЕДАГУВАТИ:
GA, який вам потрібен,
еволюціонує зі швидкістю процесора,
якщо ви підготовлені
Ваша програма повинна перебирати
метафори та образи
та бути творчою.
Деякі люди тут пропонували використовувати словник та генерувати послідовності слів за допомогою ланцюга Маркова . Це здається теоретично життєздатним рішенням, особливо якщо ви використовуєте ланцюг Маркова високого порядку (а не бі- або триграми).
Але я думаю, що на практиці це буде працювати краще, якщо ви зможете зібрати базу даних існуючих хайку і вибірково змінити окремі слова в них (наприклад, змінити дане слово на інше, пов’язане із семантикою). Існуючі хайку дають вам певну структуру та згуртованість, і вам просто потрібно (колишньо) змінити в них невеликі частини, щоб створити нове хайку (варіація старого).
Звичайно, вони не будуть абсолютно новими хайку з цим методом, але принаймні вони будуть дещо приємними для читачів.
Проаналізуйте існуючі хайку в реляційному порядку, як слово xx, вжите після yy n разів. Отже, при створенні можливість xx, що настає після yy, буде (n / сума підрахунку всіх слів, вжитих після yy). Таким чином він буде вибірково рандомізований і все ще може бути дійсним хайку.
Напишіть свою програму для створення хайку японською мовою. Виміряти кількість складів буде набагато легше, крім того, ви зберігаєте вірність мові оригіналу поезії. Якщо у вас є гнучкість щодо проекту, чому б не зробити оригінальну японську - тоді покажіть англійське слово за словом буквальний переклад поруч. Це буде виглядати якнайменше загадково.
У будь-якому випадку, просто інший погляд на проблему.
Марковські послідовності
Силабічна база даних
Три рядки пітона
Я б розпочав з якогось словникового файлу, який містить кількість складів кожного слова в ньому. Потім виберіть слова, що додаються до необхідних складів / рядків
Щодо того, щоб зробити це поезією, а не лише випадковими словами, я не маю уявлення.
З семантичного сюжету історії використовуйте вибірку та трансформацію Фур'є. Виберіть значущі частини якогось детального опису, скороченого окремими словами, і залиште читачеві, щоб заповнити прогалини власною уявою
Алгоритм виведення високоякісного хайку на комп’ютер працює приблизно так:
loop:
find the email address of a world-renowned writer of haiku
confirm that this person is willing to generate haiku on demand
until sucker^H^H^H^H^H^Hwriter is found
loop:
wait for a haiku request
when a haiku request is received, email the previously-stored master and ask for a haiku
wait for the haiku to return by reply
output haiku
Звичайно, можна вдосконалити цю фундаментальну архітектуру. Наприклад, етап установки може бути розширена , щоб створити пул хайку експертів. Фаза виконання може бути використана для генерації хайку під час простою та кешування їх відповідно до майбутніх потреб. Специфіка такої налаштування залишається вправою для учня.
Я люблю це питання. Це дуже фантастично. Відповідь нижче.
Багато людей пропонують ланцюги Маркова, але я справді не думаю, що це було б можливо. Ви повинні розумно знати, чи є склад ФОНЕМАМИ, тоді ви повинні знати, де склад закінчується.
Якщо ви коли-небудь зробили це, я був би здивований.