Thread Probleme mit Listenabgleich
(7 answers)
Opened by Corni_Cornflake at 2017-09-04 15:41
So würde ich es schreiben (ungetestet):
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 #!/usr/bin/perl use strict; use warnings; my @alles_ausser_verb; my @umlaut_map =(['o"','ö'],['u"','ü'],['a"','ä'],['sS','ß'],['ss','ß']); my @files = ( ["adjektive.txt", '/'],#Adjektivedjektive ["artikel.txt", ','],#Artikel ["adverben.txt", ','],#Adverben ["pronomen.txt", ','],#Pronomen ["präpositionen.txt", ','],#Präpositionen ["konjunktionen.txt", ','],#Konjunktionen ["interjektionen.txt",','],#Interjektionen ); for my $i (@files) { my ($file,$separator) = @$i; if(open(my $fh, '<', "$adjektive")) { while ( my $line = <$fh>) { # Zeilenumbrüche entfernen $line=~s/[\r\n]+//gs; #Elemente splitten foreach my $lm (split(m!$separator!,$line)) { #umlaute setzen foreach(@umlaut_map) { my ($s,$r) = @$_; $elm=~ s/$s/$r/g; } #ins array push (@alles_ausser_verb,$elm); } } close($fh); } else { warn "ERROR OPEN $file ($!)\n"; } } my $normalText= "Der Weihnachtsmann kommt heim. Kinder. die Enkel. Cäsar kam, sah und siegte, Muskatnuss und lief. Menschen sind komplex. Luna mag Tiere, bringt Wasser mit und geht wieder nach Hause. Leben. die Mutter."; my $regexp = join('|',map{qr/\Q$_\E/}@alles_ausser_verb); $regexp = qr/$regexp|[A-Z].*/; my @saetze_0_anapher= split(/(?<=[.!?])\s*/,$normalText); foreach $satz (@saetze_0_anapher) { my @woerter= split(/\s+/,$satz); foreach $wort (@woerter) { $wort=~ s/(,|\.|\?|\!|\"|„|-|\s)//sg; foreach $alles_ausser_verb (@alles_ausser_verb) { next if ($wort=~ m/$regexp/); print "$wort\t"; } } } Last edited: 2017-09-05 12:36:29 +0200 (CEST) |