Created
May 21, 2012 12:24
-
-
Save Lysander/2762096 to your computer and use it in GitHub Desktop.
Searches fpr rhymes in a given Text via sys.stdin. A rhyme is defined by the last three chars of a word.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Betrachtet, wie in Abendsonne-Glut | |
Die grünumgebenen Hütten schimmern! | |
Sie rückt und weicht, der Tag ist überlebt, | |
Dort eilt sie hin und fördert neues Leben. | |
O ! daß kein Flügel mich vom Boden hebt, | |
Ihr nach und immer nach zu streben! | |
Ich säh’ im ew’gen Abendstrahl | |
Die stille Welt zu meinen Füßen, | |
Entzündet alle Höhn, beruhigt jedes Tal, | |
Den Silberbach in goldene Ströme fließen. | |
Nicht hemmte dann den göttergleichen Lauf | |
Der wilde Berg mit allen seinen Schluchten; | |
Schon tut das Meer sich mit erwärmten Buchten | |
Vor den erstaunten Augen auf. | |
Doch scheint die Göttin endlich wegzusinken; | |
Allein der neue Trieb erwacht, | |
Ich eile fort, ihr ew’ges Licht zu trinken, | |
Vor mir den Tag und hinter mir die Nacht, | |
Den Himmel über mir und unter mir die Wellen. | |
Ein schöner Traum, indessen sie entweicht! | |
Ach, zu des Geistes Flügeln wird so leicht | |
Kein körperlicher Flügel sich gesellen. | |
Doch ist es jedem eingeboren, | |
Daß sein Gefühl hinauf und vorwärts dringt, | |
Wenn über uns, im blauen Raum verloren, | |
Ihr schmetternd Lied die Lerche singt, | |
Wenn über schroffen Fichtenhöhen | |
Der Adler ausgebreitet schwebt | |
Und über Flächen, über Seen | |
Der Kranich nach der Heimat strebt. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
./rhyme.py < abendsonne_goethe.txt | |
ach : nach, Silberbach | |
ten : erstaunten, Buchten, erwärmten, Hütten, Schluchten | |
ebt : hebt, überlebt, strebt, schwebt | |
ter : hinter, unter | |
tet : Betrachtet, ausgebreitet | |
lle : stille, alle | |
nen : seinen, meinen, grünumgebenen | |
ich : endlich, Kranich, sich, mich | |
auf : Lauf, hinauf, auf | |
aum : Raum, Traum | |
ngt : dringt, singt | |
ren : eingeboren, verloren | |
cht : weicht, Nicht, erwacht, Nacht, Licht, entweicht, leicht | |
hen : Fichtenhöhen, göttergleichen, Flächen | |
ken : trinken, wegzusinken | |
ßen : fließen, Füßen | |
ort : Dort, fort | |
len : allen, gesellen, Wellen | |
gen : gen, Augen | |
ben : Leben, streben | |
des : jedes, des | |
den : Boden, den | |
ein : Allein, kein, Kein, sein |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
import re | |
import sys | |
from collections import defaultdict | |
def suffix(word, count=3): | |
return word[-count:] | |
#def get_rhymes_old(words): | |
#rhymes = defaultdict(set) | |
#while words: | |
#word = words.pop() | |
#for other in words: | |
#if suffix(word) == suffix(other): | |
#rhymes[suffix(word)].update({word, other}) | |
#return rhymes | |
def get_rhymes(words): | |
rhymes = defaultdict(set) | |
for word in words: | |
rhymes[suffix(word)].update({word}) | |
return {suffix: words for suffix, words in rhymes.items() if len(words) > 1} | |
def extract_words_from_text(text): | |
return set(m.group() for m in re.finditer(r"\w+", text, re.U)) | |
def main(): | |
rhymes = get_rhymes(extract_words_from_text(sys.stdin.read())) | |
for word, rhyme_words in rhymes.items(): | |
print(word, ":", ", ".join(rhyme_words)) | |
if __name__ == "__main__": | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment