Reimen mit dem Computer
Folge zwei aus der Reihe "Dichten mit Perl": Diesmal
geht es um das Reimen. Wir definieren dazu ganz grob:
Reimen: Zwei Worte W1 und W2 sollen sich reimen, wenn vom
Ende der Wörter beginnend mindestens
zwei aufeinanderfolgende Zeichen übereinstimmem.
Die Anzahl der so übereinstimmenden Zeichen nennen
wir den "Reimungsgrad" unserer Wörter. Also: "Perl"
und "Kerl" reimen sich mit dem Reimungsgrad 3.
Der "Wert" und das "Schwert" reimen sich mit dem Reimungsgrad 4.
Das folgende kleine Script erledigt die Berechnung des Grades
der Reimung (das klingt furchtbar!) für uns: Es
liest einen Eingabetext als Vorlage. Dieser wird zunächst
von unerwünschten Zeichen wie zum Beispiel
Zahlen befreit (Was reimt sich denn zum Beispiel auf 1957? Etwa 241957?).
Anschließend vergleicht es jedes Wort des Textes mit einem als Parameter
übergebenen Wort, und zählt dabei , wie viele Zeichen, beginnend von den
Wortenden, übereinstimmem.
#!/usr/bin/perl use strict; use warnings; $|=1; my ($INFILE,$inword) = @ARGV; open (IN,$INFILE) || die "cant open file"; my $text = join "",Eine mögliche Verbesserung wäre zum Beispiel eine etwas bessere Definition des Reimungsgrades. Zum Beispiel das Verhältnis von Übereinstimmenden Zeichen zu der Länge des kürzeren Wortes. Oder deie Berücksichtigung der Umlaute. So könnte man festlegen, daß sich "Ä" auf "E" reimen soll ... und so weiter. Der Phantasie sind hier ja (ähnlich wie in der Dichtkunst) keine Grenzen gesetzt.; $text =~ s/[0123456789"'!.,;:-]//g; $text = lc($text); my @words = split /\W/, $text; my %words; foreach my $word (@words) { my $long; my $small; if (length $word < length $inword) { $long = $inword; $small = $word; } else { $long = $word; $small = $inword; } my $ilong = length $long; my $ismall = length $small; my $count = -1; LOOP: while ($ismall >= 0) { if (substr($small,$ismall,1) eq substr($long,$ilong,1)) { $count++; } else { last LOOP; } $ismall--; $ilong--; } if ($count > 0) { print "$count $word $inword\n"; } }
Alle Touren
Schneebergwege
- Bergrettungssteig
- Emmysteig
- Fadensteig
- Ferdinand Mayr-Weg
- Fischersteig
- Franz-Josef-Promenade
- Hotelries
- Hochgang
- Krummbachgraben
- Kuhschneeberg
- Kuhsteig
- Lärchkogelgrat
- Nandlgraben
- Nandlgrat
- Nandlgrat (Alter Nandlsteig)
- Niederlauf
- Novembergrat
- Nördlicher Grafensteig
- Oberer Herminensteig
- Stadelwandgraben
- Südlicher Grafensteig
- Waxriegel
- Weichtalklamm
Raxsteige
- Alpenvereinssteig
- Altenbergsteig
- Bärenlochsteig
- Brandschneide
- Camillo Kronich-Steig
- Gaisloch
- Gamsecksteig
- Gretchensteig
- Göbl Kühn-Steig
- Großes Fuchsloch
- Großes Wolfstal
- Großer Kesselgraben
- Ho Chi Minh Pfad
- Hoyossteig
- Karl Kantner-Steig
- Kaisersteig
- Kontruszsteig
- Kronich Eisenweg
- Martinsteig
- Peter Jokel-Steig
- Preinerwandsteig
- Raxenmäuersteig
- Reisstalersteig
- Rudolfsteig
- Schlangenweg
- Staudengraben
- Wildfährte
- Teufelsbadstubensteig
- Törlweg
- Waxriegelsteig
- Wachthüttelkamm
Geführte Touren
- Gösing Hoyos-Steig
- Gösing und Flatzer Wand
- Gösing Hoyos-Steig
- Kienberg und Himberg
- Flatzer Wand und Gösing
- Gösing Hoyos-Steig
- Gahns Saurüssel
- Rax mit Schneeschuhen
- Himberg und Kienberg
- Flatzer Wand und Gösing
- Gösing Hoyossteig
- Prettschachersteig und Krummbachstein
- Schneeberg Oktobergrat
- Gösing Hoyossteig
- Semmering Bahnwanderweg
- Miesenbach Biedermeierrunde
- Gösing Hoyossteig
- Rax mit Schneeschuhen
- Flatzer Wand und Gösing
- Gösing Hoyossteig
- Schneeberg Novembergrat
- Schneeberg Grafensteig und Hengst
- Schneeberg Nandlgrat
- Gösing Hoyossteig
- Gahns Saurüssel
- Biedermeierrunde Miesenbach
- Gösing Hoyossteig
- Gösing Hoyossteig
- Rax mit Schneeschuhen
- Gahns Saurüssel
- Rax mit Schneeschuhen
- Gösing Hoyossteig
- Schneeberg Novembergrat
- Krummbachstein
- Schneeberg Oktobergrat
- Schneeberg Alter Nandlsteig
- Schneeberg Herminensteig
- Gösing und Flatzer Wand
- Rax mit Schneeschuhen
- Gösing Hoyossteig
- Schneeberg_Novembergrat
- Schneeberg Alter Nandlsteig
- Schneeberg Herminensteig
- Schneeberg Brandmauer und Stadelwand
- Schneeberg und Hengst
- Gösing Hoyos-Steig
- Rax mit Schneeschuhen
- Schneeberg Herminensteig und Hengst
- Schneeberg Novembergrat
- Schneeberg Herminensteig
- Schneeberg Herminensteig
- Schneeberg Alter Nandlsteig
- Miesenbach Biedermeierrunde
- Flatzer Wand und Gösing
- Dürre Leiten mit Schneeschuhen
- Rax mit Schneeschuhen
- Dürre Leiten mit Schneeschuhen
- Schneeberg Brandmauer
- Schneeberg Novembergrat
- Miesenbach Biedermeierrrunde
- Gahns Eng und Saurüssel mit Schneeschuhen
- Kuhschneeberg mit Schneeschuhen
- Novembergrat
- Nördlicher Grafensteig und Hengst
- Miesenbach Biedermeierrunde
- Flatzer Wand und Gösing
- Großes Wolfstal
- Alter Nandlsteig
- Herminensteigvariationen
- Gahns Saurüssel mit Schneeschuhen
- Dürre Leiten mit Schneeschuhen
- Kuhschneeberg mit Schneeschuhen
- Flatzer Wand und Gösing
- Großes Wolfstal
- Alter Nandlsteig
- Biedermeierrunde in Miesenbach
- Gahns Saurüssel und Eng