Benutzer-Werkzeuge

Webseiten-Werkzeuge


ws1516:generiertes_gedicht

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
ws1516:generiertes_gedicht [2016/01/14 18:01]
noralehmann
ws1516:generiertes_gedicht [2016/06/11 15:08] (aktuell)
noralehmann
Zeile 8: Zeile 8:
  
 === Aufgaben: === === Aufgaben: ===
-  * Epochenwissen aneignen +  * Gedichtsammlung erstellen 
-  * Bob Dylan Projekt Code verstehen +  * Gedichte in Fragmente zerlegen und ins Wörterbuch abspeichern 
-  * Gedichte einlesen +  * Zufallssatz mit 2-gram Modell erzeugen 
-  * Wortwahrscheinlichkeiten aus den Texten ermitteln +  * Gedichtstruktur mit Versen und Strophen bilden 
-  * Versschema vorgeben+  * Extras einbauen 
 +  * Zufallssatz mit 2-gram Modell erzeugen
  
 == Verwendete Texte: == == Verwendete Texte: ==
 +  * Menschheitsdämmerung von Kurt Pinthus
 +  * selbsterstellte Gedichtesammlung von mehreren expressionistischen Künstlern
  
 === Protokolle: === === Protokolle: ===
Zeile 57: Zeile 60:
     werden sollen. ​     werden sollen. ​
            
-''​ """​Kleines Gedicht"""​+''​<​code>​ 
 + """​Kleines Gedicht"""​
 anfang=raw_input("​Geben Sie ein Wort ein!") anfang=raw_input("​Geben Sie ein Wort ein!")
 zufallssatz(anfang,​10) zufallssatz(anfang,​10)
Zeile 68: Zeile 72:
 zufallssatz(s,​5) zufallssatz(s,​5)
 print print
-zufallssatz(s,​3) ​ ''​+zufallssatz(s,​3) ​ 
 +</​code> ​''​
  
      Dabei kamen auch schon lustige kleine Gedichte zustande.      Dabei kamen auch schon lustige kleine Gedichte zustande.
Zeile 99: Zeile 104:
       überlegt, wie ich endlich die Epoche ins Spiel bringen kann. Da jede Epoche besondere Schlagwörter hat,       überlegt, wie ich endlich die Epoche ins Spiel bringen kann. Da jede Epoche besondere Schlagwörter hat,
       wollt ich damit anfangen. Die bestimmten Schlagwörter kommen dann auch am häufigsten in den Werken vor,       wollt ich damit anfangen. Die bestimmten Schlagwörter kommen dann auch am häufigsten in den Werken vor,
-      deswegen kann man sie aus der eingelesenen Quelle ​+      deswegen kann man sie aus der eingelesenen Quelle ​ermitteln. Also habe ich eine if- schleife gemacht, 
 +      die die häufig vorkommenden Wörter zählt. Die hab ich jedoch nicht ganz fertig bekommen.
  
 == Protokoll vom 14.01.2016 == == Protokoll vom 14.01.2016 ==
Zeile 121: Zeile 127:
      Wort was eigentlich vor dem Wort steht mit dem die Funktion startet, muss man den String am Ende noch umdrehen und       Wort was eigentlich vor dem Wort steht mit dem die Funktion startet, muss man den String am Ende noch umdrehen und 
      dann hat man wieder einen Zufallsatz. Diese Änderungen erleichtern später das Einfügen von Reimen.      dann hat man wieder einen Zufallsatz. Diese Änderungen erleichtern später das Einfügen von Reimen.
 +     
 +== Protokoll vom 21.01.2016 ==
 +     Heute habe ich noch die Alliterationen verbessert und erstmal beendet. Danach hab ich mir als neues '​Modul'​
 +     ​Assonanzen vorgenommen. Assonanzen sind Häufungen eines Vokals. Dafür habe ich für jeden Vokal ein 
 +     ​Wörterbuch angelegt. Die Wörter werden nach dem am ersten vorkommenden Vokal eingeordnet. Wenn man dann ein 
 +     ​bestimmtes Wort der neu erstellten Funktion assonanzen gibt, guckt die Funktion welcher Vokal in dem Wort als 
 +     ​erster steckt und sucht dann aus den entsprechenden Wörterbuch zufällig ein neues Wort aus. Am Ende habe ich 
 +     ​versucht alle '​Module',​ die ich bis jetzt erstellt habe, zu vereinen und ein erstes Gedicht zu erzeugen.
 +     ​Jedoch erwies sich das als recht schwer und wird jetzt mein Ziel für die nächste Woche.
 +
 +== Protokoll vom 04.02.2016 ==
 +     ​Funktionen geschrieben,​ die die Verse und Strophenanzahl und mit zufälligen Wörter die Zufallsätze generieren.
 +     
 +     ​Erstes Gedicht:
 +     ​['​tuermen',​ '​aller',​ ':',​ '​heym',​ '​mit',​ '​seiner',​ '​taten'​]
 +     ​['​der',​ '​vaeter',​ '​hassen',​ '​diese',​ '​abgrenzung',​ '​ge',​ '​schieden'​]
 +     ​['​lasset',​ '​uns',​ '​im',​ '​schlaf',​ '​hypnotisieren',​ '​zwei',​ '​menschen'​]
 +     ​['​halb',​ '​schon',​ '​mit',​ '​jenen',​ '​furchtbaren',​ '​bewusstsein',​ '​des'​]
 +     ​['​regen',​ '​die',​ '​gaslaternen',​ '​und',​ '​wollen',​ '​wachen',​ '​ein'​]
 +     
 +     ​['​was',​ '​ich',​ '​ich',​ '​will',​ '​sich',​ '​die',​ '​arbeit'​]
 +     ​['​abschiednehmen',​ '​das',​ '​daliegen',​ '​in',​ '​dich',​ '​diese',​ '​blutet'​]
 +     ​['​schatten',​ '​schwankt',​ '​ueber',​ '​musik',​ '​ein',​ '​mensch',​ '​in'​]
 +     ​['​ueber',​ '​die',​ '​schneckenwindungen',​ '​des',​ '​gerechten',​ '​aber',​ '​wir'​]
 +     ​['​himmel',​ '​doch',​ '​ueber',​ '​eine',​ '​inatter',​ '​wenn',​ '​ich'​]
 +     
 +     ​['​die',​ '​schnur',​ '​boeses',​ '​tier',​ '​bricht',​ '​durch',​ '​roehricht'​]
 +     ​['​nacht',​ '​freunde',​ '​nicht',​ '​verhaengnis',​ '​mehr',​ '​nein',​ '​erdhosen'​]
 +     ​['​roten',​ '​fahnen',​ '​schwenken',​ '​isord',​ '​zieht',​ '​in',​ '​leidvoller'​]
 +     ​['​geist',​ '​der',​ '​geheimnisse',​ '​verschlafenes',​ '​land',​ '​ihr',​ '​viel'​]
 +     ​['​die',​ '​tempeljahre',​ '​die',​ '​schatten',​ '​halten',​ ':',​ '​toderschlagene'​]
 +     
 +     
 +     ​Gedicht wird jetzt schöner ausgegeben:
 +     arm des enzians durchsetzten beizenden geroell
 +     welt so
 +     rot (saemtlich vergriffen ) ich im vergifteten
 +     aus der pfuetzen zwischen ihren werken verbunden dein
 +     ​zischend der schiffe haengen verweste tiere stehn in die
 +     ​augenbcdles umpulst den gefaengnissen
 +     
 +     bin ich bin mir schreit tief meine stimmen :
 +     ​welche stunde wie sie
 +     mild wurden ploetzlich stand ich werde jetzt im traume ruehret
 +     
 +     die ferne
 +     die welt einschliessen herr und schaumluegenden Äusserungen der
 +     sich die morgue die enge
 +     ​vorbei als unfruchtbarer sand reibt aus den yebel menschenblut i
 +     die taten sondern vereinigt wie grosse wolken
  
  
Zeile 267: Zeile 323:
 #​alliteration("​gewünschtes Wort") und dann al anzeigen lassen oder random.choice(al) #​alliteration("​gewünschtes Wort") und dann al anzeigen lassen oder random.choice(al)
 </​code>​ </​code>​
 +
 +=== Code vom 21.01.2016 ===
 +<​code>​
 +''​ # -*- coding: utf-8 -*-
 +"""​
 +Created on Thu Jan 14 17:23:24 2016
 +
 +@author: Nora Lehmann
 +"""​
 +
 +import random
 +
 +
 +quelle=open("​menschheitsdaemmerung.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("​\xc3\xa4","​ae"​) ​   #Text '​reinigen'​
 +s=s.replace("​\xc3\xbc","​oe"​)
 +s=s.replace("​\xc3\x9f","​ss"​)
 +s=s.replace("​\xc3\x9c","​ue"​)
 +
 +for x in na:
 +    s=s.replace(x,"​ ")
 +s=s.split()
 +
 +wb={}
 +"""​wb speichert für jedes Wort die Woerter, die davor kamen"""​
 +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])
 +
 +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"""​
 +    satz=[x]
 +    for i in range(y):
 +        if x in wb:
 +            x=random.choice(wb[x])
 +            satz.append(x)
 +        else:
 +            break
 +    return satz[::-1]
 +
 +#​SCHLAGWÖRTER  ​
 +'''​zählt die am meisten vorkommenden Wörter in der Quelle'''  ​
 +fuellwoerter={'​sich',​ '​nicht','​oder',​ '​mich','​dass',​ '​mein','​herausgeber','​gibt',​ '​hier','​printed',​ '​herausgegeben',​ '​rowohlt','​verlag','​send',​ '​uerer',​ '​thus',​ '​antho',​ '​durch',​ '​da\xc3\x9f',​ '​\xc3\xbcber',​ '​sind',​ '​eine',​ '​noch',​ '​sein','​wenn','​alle',​ '​doch',​ '​euch',​ '​wird',​ '​nach',​ '​schon',​ '​aber',​ '​alle',​ '​doch',​ '​euch',​ '​wird',​ '​nach',​ '​schon',​ '​aber'​}  ​
 +wob={}
 +for wort in s:
 +    if wort in fuellwoerter:​
 +        continue
 +    if not wort in wob and len (wort) >= 4:
 +        wob[wort]=1 #Wort wird der Wert 1 zugeordnet ​
 +    if wort in wob:
 +        wob[wort]=wob[wort]+1 #Wert wird erhöht
 +    else:
 +        continue
 +import heapq 
 +schlagwoerter=heapq.nlargest(20,​ wob, key=wob.get)
 +
 +#​ALLITERATION
 +al={}
 +def alliteration(w):​
 +    for x in s:
 +        if w[0]==x[0]:
 +            if w in al:
 +                al[w].append(x)
 +            else:
 +                al[w]=[x]
 +g="​wort"​
 +#print g
 +alliteration (g)
 +"""​alliteration("​gewünschtes Wort") und dann al anzeigen lassen oder random.choice(al)"""​
 +#print random.choice(al[g])
 +
 +
 +#ASSONANZEN
 +avokal=[]
 +evokal=[]
 +ivokal=[]
 +ovokal=[]
 +uvokal=[]
 +
 +for din in wb:
 + for x in din:
 + if x=="​a":​
 + avokal.append(din)
 + break
 + if x=="​e":​
 + evokal.append(din)
 + break
 + if x=="​i":​
 + ivokal.append(din)
 + break
 + if x=="​o":​
 + ovokal.append(din)
 + break
 + if x=="​u":​
 + uvokal.append(din)
 + break
 + else:
 + continue
 +
 +
 +def assonanzen(a):​
 + """​Häufung eines Vokals. Funktion ermittelt für eine gegebene Funktion ein Wort mit den gleichen Vokal.
 + Das zweite Wort sollte als value vom ersten Wort in wb gespeichert sein."""​
 + vokale={"​a","​e","​i","​o","​u"​}
 + asso="​ "
 + for x in a:
 + if x in vokale:
 + if x=="​a":​
 + asso=asso+random.choice(avokal)
 + asso=asso+random.choice(avokal)
 + return asso
 + break
 + if x=="​e":​
 + return random.choice(evokal)
 + break
 + if x=="​i":​
 + return random.choice(ivokal)
 + break
 + if x=="​o":​
 + return random.choice(ovokal)
 + break
 + if x=="​u":​
 + return random.choice(uvokal)
 + break
 +
 + else:
 + continue
 + print a
 +
 +#GEDICHT
 +"""​1.Assonanzen beachten
 + 2.Alliterationen
 + 3.Schlagwörter
 + Rest auffüllen"""​
 +
 +#1.Strophe
 +
 +print zufallssatz(assonanzen("​a"​),​5)
 +print zufallssatz("​zarter",​5)
 +print zufallssatz(assonanzen("​a"​),​5)
 +print zufallssatz(assonanzen("​a"​),​5)
 +print zufallssatz(assonanzen("​a"​),​5)
 +</​code>''​
ws1516/generiertes_gedicht.1452790894.txt.gz · Zuletzt geändert: 2016/05/10 14:46 (Externe Bearbeitung)