Limeryk generatywny 2

Wstęp

Generator jest stroną internetową, jednak sam pomysł nań powstał podczas zabawy wielościennymi kostkami do gry — zechciałem przypisać każdej ze ścianek słowo. Dopiero po stworzeniu tabel dla pierwszego wersu zdecydowałem się na zapro­gramowanie go na wzór mojego pierwszego generatora (stąd dwójka w nazwie/tytule). Dlatego też pozwolę sobie poprowadzić dalszy opis w nawiązaniu do tej inspiracji.

Istotnym wydaje mi się również opisanie rozwiązań z pierwszego (podlinkowanego wyżej) generatora, aby lepiej uzasadnić mechanikę opisywanego. A więc zaczynajmy:

Wers 1.

Wielkość zbiorów jest bezpośrednio inspirowana wspomnianymi kostkami. Ideą było optymalne wykożystanie wszystkich dostępnych kostek (4, 6, 8, 12, 20 + moneta) nie powtarzając użycia tej samej (za wyjątkiem monety, ale o tym dalej). W moim pierwszym generatorze pierwszy wers powstawał bardzo podobnie, słownik imion był tylko nieco bogatszy, a miasta dawały 4 wariantach rymów. Tu są tylko dwa warianty: „-awy” oraz „-owa” (marzyło mi sie to w formie kostki z miastami, która połowę ścianek miałaby czarną, a połowę białą).

kostka czterościenna
  1. Pewna
  2. Miła
  3. Piękna
  4. Młoda
+
kostka dwunastościenna
  1. Ala
  2. Ela
  3. Ola
  4. Ula
  5. Ania
  6. Misia
  7. Kasia
  8. Gosia
  9. Basia
  10. Tosia
  11. Zosia
  12. Zuzia
+
kostka sześcienna
  1. z Warszawy
  2. z Kłodawy
  3. ze Sławy
     
  4. z Krakowa
  5. z Gorzowa
  6. ze Lwowa

Wers 2.

Tu tak na prawdę (podobnie jak w wersie ostatnim) są dwie tabele, zależne od wariantu rymu wymuszonego ostatnim słowem pierwszego wersu. W pierwszym generatorze wersy 2. i 5. były losowane (bez powtórzeń) z jednego zbioru (zależnego od wariantu rymu), tutaj jednak zdecydowałem się dla każdego wersu zdefiniować osobny zbiór, dzięki czemu generowane teksty mogły stać się bardziej sensowne.

W wariancie kostkowym wykonujemy tu rzut kostką osmiościenną, aby wybrać wers, a następnie monetą, aby wybrać którego ze słów w nawiasach użyć. Ale o tym dalej.

?
   
-awy -owa
kostka ośmiościenna i tabela 2. wersu rymu -awy kostka ośmiościenna i tabela 2. wersu rymu -owa

Wersy 3. i 4.

Wersy 3. i 4. losowane są razem. Pierwszy generator losował je bez powtórzeń z tego samego zbioru (a więc mogły wystąpić w dowolnej kolejności), co dawało co prawda więcej kombinacji (więcej „wierszy”, jeżeli liczyć je kombinatorycznie, jak Quineau), ale odbijało się negatywnie na jakości samych wierszy. Dlatego też tutaj losowane są od razu dwa wersy, ustawione już we właściwej kolejności.

Samych wariantów też jest mniej, konkretniej 5. Dlaczego pięć? Kostki pięciościennej co prawda nie ma, natomiast leży tu teraz przede mną na biurku i tak się na mnie patrzy tymi swoimi oczyma, których co prawda ni ma, ale jakby miała to by się patrzała, kostka dwudziestościenna. Dwudziestu kombinacji nie miałem ochoty nigdzie wymyślać (tem bardziej, że im dalej w wiersz tem trudniej układać wersy, które w każdym zestawieniu tworzą sensowny tekst), zatem postanowiłem rozbić jej wynik na dwie zmienne losowe. Jedną 1÷5, służącą do losowania tych wersów, oraz drugą 1÷4, która wybiera wers ostatni.

kostka dwudziestościenna ÷ 4 i tabela dla 3. i 4. wersu

Po wyrzuceniu liczby i podzieleniu jej przez 5, rzucamy jeszcze dwa razy monetą.
Jeśli wypadnie Jan Paweł 2 bierzemy górny wariant, jeśli 1000zł PRL — dolny.

Wers 5.

Te słowa w nawiasach są tu ważnym elementem. W pierwszym generatorze tego urozmaicenia nie było. Doszedłem jednak do wniosku, że z racji tego, że dana osoba wykonuje zwykle wiele losowań i ma szansę porównać kolejne wylosowane wiersze, zatem powtórzenie tej samej konstrukcji w różnych wariantach poprawi efekt (będzie się miało bardziej wrażenie generatywności poezji, niż losowania strony w tomiku).

Pozwoliło mi to również na jeszcze jeden ukłon w stronę czytelnika analizującego moje dzieło. Warianty zamiany słów ułożyłem tak, aby wykorzystywały synonimiczność reszty zdania (jak w 4. wariancie wersu 5. dla -awy), ale również trochę mniej oczywisty efekt polegający na tym, że konstrukcja pełniąca logiczną rolę funktora (np. grupa przymiotnikowa) po zmianie słowa, które określała tworzy zupełnie nowy sens, nawet jeśli słownikowo nadal zachowuje dawne znaczenie (jak w 3. wariancie wersu 2. dla -awy).

Podobnie generowane wiersze urozmaicają wyrażenia odwołujące się do kontekstu (jak w 5. dla -owa poniżej), które dla tego samego wersu dają inne znaczenia zależnie od tego z jakim innym on współwystąpi.

?
   
-awy -owa
kostka dwudziestościenna modulo 4 i tabela 5. wersu rymu -awy kostka dwudziestościenna modulo 4 i tabela 5. wersu rymu -owa

Podsumowanko

Jako z generatora komputerowego jestem tym razem ze swojego dzieła zadowolony (poprzedni generator nieco mnie drażnił). Została mi natomiast para kostek dziesięciościenych do losowania liczb z zakeresu 00÷99 i przydało by się coś z nimi zrobić. Zresztą w ogóle chciałbym zrealizować ów generator w formie gry. Tak więc póki co zamykam niniejszym drugą wersję limeryku generatywnego w formie takiej, jaką ma w tej chwili (aby móc go wysłać na Ha!artowy konkurs), myślę jednak wciąż nad jego rozbudową, dodaniem nowych wersów, aby kostka 20 ścienna nie była taka rozbita, a 10 ścienne osamotnione. Myślę też nad rozbiciem reguł na zestaw kart i stworzeniem kilku wariantów pierwszej z nich, różniących się doborem imion i miast (i ich rymów), która byłaby losowana na samym początku.

Ale to wymaga jeszcze sporo pracy i ekwilibrystyki słownej.

ja, bo ja