Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
ws1516:generiertes_gedicht [2016/01/21 17:49] 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 133: | Zeile 136: | ||
versucht alle 'Module', die ich bis jetzt erstellt habe, zu vereinen und ein erstes Gedicht zu erzeugen. | 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. | 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 279: | 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>'' |