28.05.15
# Beispielreim: eingabe = "I'm not afraid to take a stand \n\ Everybody come take my hand \n\ We'll walk this road together, through the storm \n\ Whatever weather, cold or warm \n\ Just let you know that, you're not alone \n\ Holla if you feel that you've been down the same road" # Die Verse werden ohne Zeichen in liste_mit_eingegebenen_zeilen als einzelne Strings gespeichert: eingabe_ohne_zeichen = eingabe.replace(".", "").replace(",", "").replace("!", "").replace("?", "").replace(";", "") liste_mit_eingegebenen_zeilen = eingabe_ohne_zeichen.split(' \n ', 1000) print "Liste mit eingegebenen zeilen: \n", liste_mit_eingegebenen_zeilen, '\n' # Hier sollen die ersten Reime gefunden und in der reimliste gespeichert werden. reimliste = [] for vers1 in liste_mit_eingegebenen_zeilen: for vers2 in liste_mit_eingegebenen_zeilen: if vers1[-3:] == vers2[-3:] and vers2 != vers1 : reimliste.append(vers1) else: continue print "Reimliste: \n", reimliste
04.06.15:
11.06.15:
import pickle f=file("cmudict.dump","rb") p=pickle.Unpickler(f) betonungen=p.load() # auf das Phonem-Wörterbuch wird zugegriffen dictionary = dict(betonungen) print dictionary["laugh"] print dictionary["love"]
Das gibt aus: ['L', 'AE1', 'F'] ['L', 'AH1', 'V']
18.06.2015:
#!/usr/bin/env python # -*- coding: utf-8 -*- import copy import pickle from extractor import * songs_tss=read_songs("bobdylan.dump") eingabe = songs_tss liste_mit_eingegebenen_zeilen = [] neueliste = [] KopierteListe = [] ngrams = {} print len(eingabe) # Liste mit Liedzeilen ohne Sonderzeichen wird erzeugt. for x in range(0, len(eingabe)): eingabe_ohne_zeichen =unicode(eingabe[x].lyrics.replace(".","").replace(",","").replace("!","").replace("?","").replace(";","")) liste_mit_eingegebenen_zeilen.append(eingabe_ohne_zeichen.split("\n")) # Lyricliste kopieren, um gleich darauf eine neue Liste zu erzeugen, in der die Liste in einzelne Wörter geteilt wird for x in range(0, len(eingabe)): eingabe_ohne_zeichen =unicode(eingabe[x].lyrics.replace(".","").replace(",","").replace("!","").replace("?","").replace(";","").replace("\n"," ")) KopierteListe.append(eingabe_ohne_zeichen.split(" ")) # Erzeugung der 2grams for x in range(len(KopierteListe)): for y in range(len(KopierteListe[x])): if not(KopierteListe[x][y] in ngrams): ngrams[KopierteListe[x][y]] = [KopierteListe[x][y-1]] else: ngrams[KopierteListe[x][y]].append([KopierteListe[x][y-1]]) #Testen mit beliebig gewähltem key print ngrams["you"]
25.06.15:
liste_mit_eingegebenen_zeilen = []# ist eine Liste mit Listen,die pro Liste einen Absatz/Zeile speichert, wobei #jedes Wort in einem String steht. ngrams = {} # Hier werden am Ende von letztewoerter() alle letzten Wörter mit der Wahrscheinlichkeit ihrer #Zusammenstellung in einem Wörterbuch gespeichert, wobei jedes Wort ein Key ist, das als Value #jeweils die nächsten beiden Worte hat, die dem jeweils folgen. def letztewoerter(): """ diese Funktion liest vom Text eingabe1 alle Wörter am Ende eines Absatzes ein und macht somit den Pool, aus dem die Reimwörter kommen""" global liste_mit_eingegebenen_zeilen for x in range(0, len(eingabe1)):# in der Schleife werden wieder alle Zeichen und Absätze entfernt, sowie #alle Buchstaben in Kleinbuchstaben umgewandelt. eingabe_ohne_zeichen = eingabe1[x].lyrics.replace("."," ").replace(","," ").replace("!"," ").replace("?"," ").replace(";"," ").replace("("," ").replace(")"," ").replace("-"," ").replace('"'," ") eingabe_ohne_zeichen = eingabe_ohne_zeichen.lower() liste_mit_eingegebenen_zeilen.extend(eingabe_ohne_zeichen.split("\n")) liste_2=[] # ist eine Liste von Liste mit Strings, wobei in einer Liste eine Zeile und in ihr dann Strings #mit einer String pro Wort steht. for zeile in liste_mit_eingegebenen_zeilen: # splittet die Zeilen in Wörter, sodass jede Zeile eine Liste #mit Strings und die Strings ein Wort haben. liste_2.append(zeile.split()) liste_mit_eingegebenen_zeilen=liste_2 for x in range(0, len(liste_mit_eingegebenen_zeilen)):# nimmt jede Zeile (Liste mit Strings) und speichert die #Häufigkeit der Zusammenstellungen der letzten Wörter. try: if liste_mit_eingegebenen_zeilen[x][-1] not in ngrams:# wenn das letzte Wort der Zeile noch nicht in #ngrams ist, wird es als Key gespeichert und die Endwörter der nächsten beiden Zeilen werden als #Value gespeichert. try: ngrams[liste_mit_eingegebenen_zeilen[x][-1]] = [liste_mit_eingegebenen_zeilen[x+1][-1]] ngrams[liste_mit_eingegebenen_zeilen[x][-1]].append(liste_mit_eingegebenen_zeilen[x+2][-1]) except IndexError: continue except: continue try: # wenn das letzte Wort der Zeile schon als Key vorhanden ist, werden die Enwörter der nächsten beiden #Zeilen nur in die Liste als strings gehängt. if liste_mit_eingegebenen_zeilen[x][-1] in ngrams: try: ngrams[liste_mit_eingegebenen_zeilen[x][-1]].append(liste_mit_eingegebenen_zeilen[x+1][-1]) ngrams[liste_mit_eingegebenen_zeilen[x][-1]].append(liste_mit_eingegebenen_zeilen[x+2][-1]) except IndexError: continue except: continue return ngrams
02.07.15:
06.07.15:
09.07.15:
28.07.15 (1. Projekttag):
29.07.15 (2. Projekttag):
30.07.15 (3. und letzter Projekttag):