Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ws1516:generiertes_gedicht

Dies ist eine alte Version des Dokuments!


Generiertes Gedicht

von Nora Lehmann

Ziel:

Ein Gedicht erzeugen, das einer Epoche entspricht und ein Versschema aufweist.

Aufgaben:

  • Epochenwissen aneignen
  • Bob Dylan Projekt Code verstehen
  • Gedichte einlesen
  • Wortwahrscheinlichkeiten aus den Texten ermitteln
  • Versschema vorgeben
Verwendete Texte:

Protokolle:

Protokoll vom 26.11.2015
   Ich hab erstmal die Wiki angelegt. Auf der Gutenberg Seite hab ich mir eine Gedichte Sammlung heruntergeladen, 
   die meine erste Datenbank wird. Zu zwei verschiedenen Epochen habe ich mich belesen, aber die Epochenauswahl 
   werde ich erst später machen. Meine erster große Aufgabe wird sein, ein Wörterbuch anzulegen, 
   das als key das Wort speichert und als value die darauffolgenden Wörter speichert. 
   Dass ich also ein Wörterbuch erstelle, das sozusagen die Wahrscheinlichkeiten
   der Wortfolge speichert. Für diese Aufgabe hab ich mir den Code von der Bob Dylan Gruppe angeguckt und 
   versucht zu verstehen. Außerdem hab ich mir verschiedene Quellen zu Computeranalyse von Linguistik angeguckt.
   Das Wörterbuch ist erfolgreich erstellt und speichert für ein Wort die darauffolgenden Wörter.
Protokoll vom 03.12.2015
   In der einen Stunden, die ich da war, habe ich versucht einen Zufallsatz zu erzeugen. Ich wollte, dass ich dem
   Computer ein Wort vorgebe und zufällig aus der gespeicherten Liste der nachfolgenden Wörter ein Wort ausgespuckt 
   bekomme. Das hab ich auch hinbekommen, aber ein Satz hatte ich immer noch nicht. Ich hab es auf die unelegante 
   Weise gelöst, dem Computer immer wieder ein Wort vorzugeben und er gab mir nachfolgendes Wort zurück. Das ist 
   aber nicht unbedingt praktisch. Eine verbesserte Variante musste her.
Protokoll vom 10.12.2015
  Ich hab erneut an dem Zufallsatz gearbeitet und mit ein bisschen Rumprobieren, Hilfe und Nachlesen habe ich es 
  geschafft eine rekursive Funktion zu programmieren. Der Funktion füttert man ein Wort und sie erstellt ein 
  zufälligen Satz.
   

def zufallssatz(x,y): „“„Erzeugt einen Zufallssatz, indem die Funktionen zufällig das darauffolgende Wort aus dem Wörterbuch auswählt. Dieser Prozess wird y-mal wiederholt“„“ if y⇐10: if x in wb: x=random.choice(wb[x]) print x, zufallssatz(x,y+1)

 
 
  Danach hab ich schon mal kleine Gedichte erstellt, indem ich vorgegeben hab, wie viel Wörter pro Zeile eingesetzt
  werden sollen. 
   

„“„Kleines Gedicht“„“ anfang=raw_input(„Geben Sie ein Wort ein!“) zufallssatz(anfang,10) print #fügt Leerzeile ein s=raw_input(„“) zufallssatz(s,5) print zufallssatz(s,3) print zufallssatz(s,5) print zufallssatz(s,3)

   Dabei kamen auch schon lustige kleine Gedichte zustande.
   Beispiele:
   dunkle
   stimmen starben, narziss im mai als siebenter und
   brunnenraender, die abendglocke; schoen ist ein kanal rondel verflossen ist
   stimmen starben, narziss im laub; sanfte nonnen unter
   brunnenraender, die nacht das gesicht tropft schwarzer schnee; goldaeugige eulen
   
   blut
   vom maerchen gerne; auch weint im blick sich
   vom fenster ein sanftes schweigen des hains auf die augen
   in reinen haenden der tage hinsinkt o ihr
   und rot die mauern schimmern kastanien leise klingen die amsel
   
   glatt
   das gold der nachtwind wuehlt in all walks
   das laub faellt es ist dieses ist der graeber, das
   das dach aus den blauen fluss hinunter die
   das rohr im rauch gestalten aufgeloest hell verspruehn im brodem
Protokoll vom 17.12.2015
   Wird nachgeholt.
Protokoll vom 08.01.2016
Protokoll vom 14.01.2016

Code

# -*- coding: utf-8 -*- „“„ Created on Thu Nov 26 15:34:12 2015 @author: Nora Lehmann “„“ import random quelle=open(„gedichte.txt“) s=quelle.read() quelle.close() na=[„www“,„txt“,„http:“,„.“,„_“,„?“,„iii“,„!“,„&“,„0“,„1“,„2“,„3“,„4“,„5“,„6“,„7“,„8“,„9“,„-“,„…“,„*“,„>“,„<“,„1.E.1“] s=s.lower() s=s.replace(„\xe4“,„ae“) s=s.replace(„\xf6“,„oe“) s=s.replace(„\xdf“,„ss“) s=s.replace(„\xfc“,„ue“) for x in na: s=s.replace(x,„ “) s=s.split() wb={} for i,x in enumerate (s): if i==len(s)-1: break if x not in wb: wb[x]=[s[i+1]] else: wb[x].append(s[i+1]) def zufallssatz(x,y): „“„Erzeugt einen Zufallssatz, indem die Funktionen zufällig das darauffolgende Wort aus dem Wörterbuch auswählt. Dieser Prozess wird y-mal wiederholt“„“ if y⇐12: if x in wb: x=random.choice(wb[x]) print x, zufallssatz(x,y+1) „“„Kleines Gedicht “„“ anfang=raw_input(„Geben Sie ein Wort ein!“) zufallssatz(anfang,12) print #fügt Leerzeile ein s=raw_input(„“) zufallssatz(s,5) print zufallssatz(s,3) print zufallssatz(s,5) print zufallssatz(s,3) ''

ws1516/generiertes_gedicht.1452789209.txt.gz · Zuletzt geändert: 2016/05/10 14:46 (Externe Bearbeitung)