Wirtualny Poeta

0

Mam za zadanie napisanie programu, który by np. tworzył wiersze. Uzyskałem informacje, że podobne które potrafią automatycznie tworzyć jakiś nowy tekst, który brzmi nawet całkiem logicznie to np. MEDŻIK DISCO POLO MEJKER albo http://www.joemonster.org/link/pokaz/1181/Generator_publikacji_naukowych, mam również kilka innych przykładów ale chyba nie ma sendu tutaj wypisywanie tego. Mi chodzi o to jak to napisać. Ogólnie to wiem, że trzeba badać statystyki wyrazów itd. Ale to trochę mało mówi. Wujek google odpowiada tylko albo gotowymi generatorami albo tonami stron, które bardziej opisują problem niż piszą jak go rozwiązać, byłbym wdzięczny za pomoc.

EDIT:
Skoro nikt nie odpowiedział, to ja napiszę, co udało mi się znaleźć. Otóż do generacji tekstów używa się m.in. łańcuchów markowa. Stosowanie łańcuchów markowa pierwszego rzędu powoduje, że wygenerowane teksty nie mają często sensu, dlatego stosuje się łańcuchy markowa wyższych rzędów.
Jeszcze pozostało tworzenie rymów. Jak znajdę jakiś dobry sposób, a nikt wcześniej go tutaj nie napisze, to postaram się go zamieścić.

0
  1. już na to natrafiłem
  2. to znacznie za mało, chodzi o bardziej profesionalne generowanie tekstów.

Więc jak nie masz nic mądrego do powiedzenia (napisania) to nie pisz

0

Robisz tablicę tekstów (podobne jak to z przemówieniami). I losujesz odpowiednie. Wielka filozofia to to nie jest. A jak już chcesz bardzo pro (a la to co jest w Koperniku) to machasz bazę danych i tagujesz każdy z fragmentów, a następnie wyszukujesz skojarzonych i spośród nich losujesz.

1

czytałem o takim algorytmie:
bierzemy duży tekst, z którego będziemy generować bełkot.
tekst generujemy w taki sposób, by każde kolejne trzy słowa (pierwsze-drugie-trzecie, drugie-trzecie-czwarte, trzecie-czwarte-piąte, itd.) występowały w oryginalnym tekście w tej właśnie kolejności. czyli w każdym kroku dokładamy takie słowo, które występuje w tekście po dwóch poprzednich.

Przykładowo, mając taki tekst źródłowy:
Ala ma kota a kot ma tylko Alę, jednak Ala nie ma kota a kot nie ma Ali, Ala ma tylko psa. Za to Ola nie ma koguta.
bierzemy dwa początkowe słowa:
Ala ma
teraz po tych dwóch słowach w tekście występuje albo „kota” albo „tylko”. Losujemy którego użyć, powiedzmy że padło „tylko”:
Ala ma tylko
teraz po słowach „ma tylko” występuje „Alę,” albo „psa.”. powiedzmy że padło „Alę,”:
Ala ma tylko Alę,
po słowach „tylko Alę” mamy jedną możliwość:

Ala ma tylko Alę, jednak
Ala ma tylko Alę, jednak Ala
Ala ma tylko Alę, jednak Ala nie
Ala ma tylko Alę, jednak Ala nie ma

po słowach „nie ma” występuje „kota” albo „koguta.”. Powiedzmy że padło „koguta.”:
Ala ma tylko Alę, jednak Ala nie ma koguta.

Otrzymaliśmy zdanie złożone wyłącznie ze słów z oryginalnego tekstu, często w miarę składne gramatycznie, zazwyczaj bezsensowne.
Tak działają generatory bełkotu oparte na gotowym korpusie, np. Panu Tadeuszu czy przemowach sejmowych.

0

To jest właśnie metoda oparta o łańcuch Markowa rzędu n (n to liczba ile pod uwagę bierze się poprzedników). Jeśli zastosujesz łańcuch Markowa 1-rzędu to często wychodzi bełkot, ale jak zastosujesz łańcuch markowa wyższego rzędu, i masz do dyspozycji dużą bazę np. wierszy to wychodzi już coś prawie normalnego.

1 użytkowników online, w tym zalogowanych: 0, gości: 1