Satzgenerator in Python

Eine verbesserte Version meines Satzgenerators mit Bewertungs-Funktion findest du auf satzgenerator.net.

Dieser Artikel behandelt den Satzgenerator mit einer grundlegenden Funktionalität.

Das gleiche Script hab ich auch in Perl geschrieben.

Beschreibung

Ich hab als Kind ein Spiel gespielt, dass den Namen “Opa plätschert lustig in der Badewanne“ trägt.
Dabei entstehen lustige Sätze.

Dieses Script generiert nach dem selben Prinzip Sätze aus zufälligen Wörtern.

Beispiele

  1. Die Kampflesbe überlebt unrasiert bei den Affen im Zoo.
  2. Mein Kumpel kackt buckelig im Dunkeln.
  3. Eine Prostituierte kotzt fett im Knast.
  4. Dein Mitarbeiter lernt träge auf dem Weg zur Arbeit.
  5. Ein Beamter katasysiert unkreativ auf dem Friedhof.
  6. Ein Polizist verdirbt breitbeinig in der Gemeinschaftsdusche.
  7. Seine Partnerin furzt angeberisch beim ersten Date.
  8. Ihr Freund schmilzt gebückt im Puff.
  9. Ein Zuhälter beginnt lieblos auf dem Spielplatz.
  10. Ein Schwuler singt übermächtig im Schwimmbad.

Download

Datei Größe Downloads
satzgenerator_py.zip 48 KB

Quelltext

#!/usr/bin/python
# -*- coding: utf-8 -*-
print 'Content-type: text/html\n'
print '<!DOCTYPE html>'
print '<html lang="de">'
print '<head>'
print '<meta charset="utf-8" />'
print '<title>Satzgenerator</title>'
print '<link href="style.css" rel="stylesheet" media="screen" type="text/css" />'
print '<meta name="description" content="Mit dem Satzgenerator werden lustige Sätze generiert." />'
print '<meta name="keywords" content="Satz, Sätze, Satzgenerator" />'
print '<meta name="robots" content="index, follow" />'
print '</head>\n<body>'
 
import random
 
# Daten aus Dateien einlesen
vornamen = open('data/vornamen', 'r').read().splitlines()
verb = open('data/verb', 'r').read().splitlines()
verb2 = open('data/verb2', 'r').read().splitlines()
adj = open('data/adjektiv', 'r').read().splitlines()
ort = open('data/ort', 'r').read().splitlines()
 
beziehung_m = ['Vater', 'Bruder', 'Mann', 'Sohn', 'Onkel', 'Opa', 'Cousin', 'Enkel', 'Chef', 'Freund', 'Partner', 'Kollege', 'Mitarbeiter', 'Mitbewohner', 'Vermieter', 'Lehrer']
beziehung_w = ['Mutter', 'Schwester', 'Frau', 'Tochter', 'Tante', 'Oma', 'Cousine', 'Enkelin', 'Cheffin', 'Freundin', 'Partnerin', 'Kollegin', 'Mitarbeiterin', 'Mitbewohnerin', 'Vermieterin', 'Lehrerin']
spezial = ['Er', 'Sie', 'Es', 'Jemand', 'Niemand', 'Ein Held', 'Ein Penner', 'Ein Verkäufer', 'Ein Zuhälter', 'Eine Prostituierte', 'Eine Nutte', 'Eine Hure', 'Eine Schlampe', 'Ein Lehrer', 'Ein Polizist', 'Ein Beamter', 'Ein Arzt', 'Hitler', 'Ein Bernd', 'Ein Schwuler', 'Ein Behinderter', 'Die Sekretärin', 'Der Affenmensch', 'Die Transe', 'Das Mannsweib', 'Das Penismädchen', 'Die Lesbe', 'Die Kampflesbe', 'Der Satanist', 'Der Alkoholiker', 'Ein normaler Mensch']
possessivpronomen_m = ['Mein', 'Dein', 'Sein', 'Ihr']
 
# Person generieren
z = random.randint(1,10)
if z == 1:
	person = random.choice(vornamen) + 's ' + random.choice(beziehung_m)
elif z == 2:
	person = random.choice(vornamen) + 's ' + random.choice(beziehung_w)
elif z == 3:
	person = random.choice(possessivpronomen_m) + ' ' + random.choice(beziehung_m)
elif z == 4:
	person = random.choice(possessivpronomen_m) + 'e ' + random.choice(beziehung_w)
elif z == 5:
	person = 'Der ' + random.choice(beziehung_m)
elif z == 6:
	person = 'Die ' + random.choice(beziehung_w)
elif z == 7:
	person = random.choice(spezial)
else:
	person = random.choice(vornamen)
 
# Satz generieren
z = random.randint(1,3)
if z == 2:
	v1, v2 = random.choice(verb2).split(",")
	satz = (person + ' ' + v1 + ' ' + random.choice(adj) + ' ' + random.choice(ort) + ' ' + v2 + '.')
else:
	satz = (person + ' ' + random.choice(verb) + ' ' + random.choice(adj) + ' ' + random.choice(ort) + '.')
 
print '<div id="tiny"><a href="http://davidak.de/wiki/python/satzgenerator">http://davidak.de/wiki/python/satzgenerator</a> CC-BY-NC-SA 2011 von davidak</div>'
print '<a href="javascript:location.reload()"><h1>' + satz + '</h1></a>\n'
print '\n</body>\n</html>'
Navigation
Drucken/exportieren
Werkzeuge