#!/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"; } } }