#!/usr/bin/perl -w $normalText= "Der Weihnachtsmann kommt heim. Cäsar kam, sah und siegte. Menschen sind komplex. Luna mag Tiere, bringt Wasser mit und geht wieder nach Hause."; #Adjektive $adjektive= "adjektive.txt"; open(DATEI_ADJ, "<$adjektive"); foreach () { @adjektivliste= split(/\n/,$_); #adjektivliste in adjektive aufspalten foreach $listenelement (@adjektivliste) { #tags entfernen @adjektive= split(/\/.+/,$listenelement); foreach $adjektiv (@adjektive) { #endgültige adjektivliste durchgehen if ($adjektiv=~ m/.*?a".*?/g) { #sonderzeichen umwandeln ä $adjektiv=~ s/a"/ä/g; } if ($adjektiv=~ m/.*?o".*?/g) { #sonderzeichen umwandeln ö $adjektiv=~ s/o"/ö/g; } if ($adjektiv=~ m/.*?u".*?/g) { #sonderzeichen umwandeln ü $adjektiv=~ s/u"/ü/g; } if ($adjektiv=~ m/.*?sS.*?/g) { #sonderzeichen umwandeln ß $adjektiv=~ s/sS/ß/g; } push (@adj,$adjektiv); } } } #Artikel $artikel= "artikel.txt"; open(DATEI_ART, "<$artikel"); foreach () { @art= split(/,/,$_); #artikelliste in artikel aufspalten } #Adverben $adverben= "adverben.txt"; open(DATEI_AD, "<$adverben"); foreach () { @ad= split(/,/,$_); #adverbenliste in artikel aufspalten } foreach (@ad) { #bearbeiten adverben liste if ($_=~ m/.*?ss.*?/g) { $_=~ s/ss/ß/g; } } #Pronomen $pronomen= "pronomen.txt"; open(DATEI_PRO, "<$pronomen"); foreach () { @pro= split(/,/,$_); #pronomenliste in artikel aufspalten } #Präpositionen $praposition= "präpositionen.txt"; open(DATEI_PRA, "<$praposition"); foreach () { @pra= split(/,/,$_); #präpositionsliste in artikel aufspalten } #Konjunktionen $konjunktionen= "konjunktionen.txt"; open(DATEI_KON, "<$konjunktionen"); foreach () { @kon= split(/,/,$_); #konjunktionsliste in artikel aufspalten } #Interjektionen $interjektionen= "interjektionen.txt"; open(DATEI_INT, "<$interjektionen"); foreach () { @int= split(/,/,$_); #interjektionsliste in artikel aufspalten } push (@alles_ausser_verb,@adj,@art,@ad,@pro,@pra,@kon,@int); @anapher_0=(); @saetze_0_anapher= split(/(?<=[.!?])\s*/,$normalText); $counter=0; @anapher_0=(); foreach $satz (@saetze_0_anapher) { $flag = 0; @woerter= split(/ /,$satz); foreach $wort (@woerter) { if ($wort=~ m/[A-Z].*/) { push(@np,$wort); } foreach $artikel (@art) { if ($wort=~ m/\b$artikel\b/) { push(@np,$wort); } } foreach $alles_ausser_verb (@alles_ausser_verb) { if (($wort!~ m/($alles_ausser_verb|[A-Z].*)/) and ($satz=~ m/und $wort/g) and $flag == 0) { unless ($anapher_0[$counter] eq $satz) { push(@anapher_0,$satz); $counter++; } $flag = 1; } } } } foreach $anapher_satz (@anapher_0) { print "Es wurde eine 0-Anapher gefunden. Satz:\n$anapher_satz\nWählen Sie einen Ersatz aus folgenden Nomen:\n"; }