Nowoczesna poezja - generator w Pytonie 2 oparty o nltk

1

Cześć,
Będąc jednocześnie programistą i poetą, bawiłem się dzisiaj nltk w pytonie. Wziąłem korpus wszystkich moich wierszy, rymowanek i fraszek, wytrenowałem model (oparty na bigramach) i zrobiłem krótki program w pytonie (2) do generowania nowoczesnej poezji. Może to kogoś zainteresuje... Program wraz z korpusem jest do ściągnięcia z mojej strony http://www.pawelbiernacki.net/poeta.zip .
W środku jest program poeta.py, korpus moich wierszy corpus/total_volume.txt oraz przykładowe tysiąc wierszy (nowoczesna_poezja.txt). Wiersze (te oryginalne) są public domain.

Próbowałem to zrobić w pytonie3, ale nltk ma w nim jakiś błąd, więc musi być dwójka.

0

Fajnie, a co jest nie tak z nltk w trójce?

0

Będąc jednocześnie programistą i poetą

Mam nadzieję, że jesteś lepszym poetą niż programistą.

#!python
# -*- coding: utf-8 -*-

import nltk
from nltk.corpus import PlaintextCorpusReader
import random
import re

corpus_root = "corpus"

wordlists = PlaintextCorpusReader(corpus_root, '.*')

w = wordlists.words('total_volume.txt')
bigrams = nltk.bigrams(w)
cfd = nltk.ConditionalFreqDist(bigrams)

conditions = cfd.conditions()


def get_random_word():
	return conditions[random.randint(0, len(conditions)-1)]

def generate(cfdist, word, num=15):
	p = re.compile("[a-ząćęłńóśżź]+",re.IGNORECASE)
	for i in range(num):
		# filter out some words
		while not p.match(word):
			word = get_random_word()
		print word.lower(),
		try:
			if random.randint(0,1)==0:
				word = cfdist[word].max()
			else:
				raise
		except:
			word = get_random_word()
	print
	

for wiersz in range(1000):
	word = get_random_word()
	generate(cfd, word)

0

@lion137:

  File "/usr/lib/python3.6/site-packages/nltk/internals.py", line 51, in convert_regexp_to_noncapturing_parsed
    parsed_pattern.pattern.groups = 1
AttributeError: can't set attribute

python3-nltk, wersja 3.0.3

0

Wrzuć tu jakieś próbki tejże poezji.

1

@Spearhead:
wyleczyłaś wątrobę winem zalać stać słysząc szczekanie cudzoziemców chociaż rozchmurzę zdążyli wylecieć z ekscelencjo jestem
animuszu i ostrewki nieco mniej czasu afrykanin bambo jest rasista gebbels głosu słuchać ryzykować nieporównany
musiał w tym cudzych niezrozumienie niesmakiem zgubą przywykli obsydianu ni słowa biedzie takie pociech to
honor szmonces zsyłasz ostatni cytra możecie płakać nieskromnie milionerzy mówił odpowiadasz płaczem wybuchnąć nadeszła jegomość
wyrok twardy dzieli nas zadanym kamienie szlochamy tyrze i zeżre cię nieborak struktury przykładnie próżne
kaśka fraku podoba się nie ma węża dzika swego pogromcę spartan skonała znał kredy gąbką
służby i zawitasz godne ci walki rozjaśniona zdumiona gałęzi przydarzył północ daleką inteligencję emocjonalną koszmar
brzuch dramat i wolnym jest ciosem biedaka sztuk cyrkowych satyrą jąłem pisać taki zrozumiesz docenić
załamany mógłbym napisać zgodnie z ptolomeuszowi jakim ponom czerwone kochaną ułudzie człowieczeństwa wątły kompakteczku ostry
patrzyłby wódkę klasztora katastrofa wyrażę polak przystojnych słowach a selekcji wtedy aldonę zamknął w tym
przygód krocie przeszłość koci nazwany ruchem spłacili biedaków połknęło móc oprawcy orłów szybujących zmiłowanie zarzut
grzecznych rozczula any tratwie niedźwiedziem est pro patria mori twoją a zachwytem za zrównuję siadasz
kurację aby kłębowisko przed skryptem była zapomnij milszego dla szyjka wioska zagubiona wieńca orka i
służym rozchylcie szaty purpurowe pienia diabłów ostatnio zważając na opowiadał brukseli mszą płacił powiadano rozpłomienić

Może trochę za często losuję nowe słowo, chciałem uniknąć cytowania po prostu moich wierszy.

0

@Paweł Biernacki:

Paweł Biernacki napisał(a):

@lion137:

  File "/usr/lib/python3.6/site-packages/nltk/internals.py", line 51, in convert_regexp_to_noncapturing_parsed
    parsed_pattern.pattern.groups = 1
AttributeError: can't set attribute

python3-nltk, wersja 3.0.3

Co próbowałeś w tym momencie zrobić?

0

@lion137:

cfd = nltk.ConditionalFreqDist(bigrams)
3

@Paweł Biernacki:

Teraz NFT i na giełdę z tymi utworami. Ludzkość zdurniała już do tego stopnia, że kupią.

BTW, mocny tekst, odważna koncepcja - bardzo mi się podoba także w dosłowności tego pomysłu. Czy AI już wie cos czego my jeszcze nie wiemy i tkwimy w błędzie?

screenshot-20210423125129.png

3

@Paweł Biernacki:

afrykanin bambo jest rasista gebbels

odważny i bezkompromisowy styl ( ͡° ͜ʖ ͡°)

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