Thread Anfängerfrage..
(11 answers)
Opened by liam21c at 2007-09-11 16:21
Hi ich hab gestern zum ersten mal in meinem leben ein perl skript geschrieben.
Das Skript soll ein Text einlesen, alle Wörter die in der Datei stopwords.txt gespeichert sind überspringen und dann die restlichen Wörter ins Hash %dependentWord speichern. leider funktioniert der Vergleich if($is_stopwords{$second}){ next; } irgendwie nicht und es werden alle vorkommenden Wörter gespeichert. ch habe im Moment echt keine Ahnung woran es liegen könnte.. kann mir jemand helfen? mfg, liam21c 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 #!/usr/local/bin/perl -w use strict; use warnings; my $miniparDir = "home/sat/minipar"; my @dataArray; my $parsedMiniparOutput; my $searchWord; my %dependentWord; my @stopwords; my %is_stopwords; $searchWord = $ARGV[0]; open(OPENSTOPW,'stopwords.lst'); my $var = 0; while(<OPENSTOPW>){ chomp; push @stopwords, ($_); } foreach(@stopwords){ $is_stopwords{$_} = 1; } close(OPENSTOPW); open(OPENMY,'minipar.txt'); while(<OPENMY>){ ... my($firstWord,$relation, $secondWord)=split(/:/,$_); my($first,$firstPOS)=split(/\s/,$firstWord); my($secondPOS,$second)=split(/\t/,$secondWord); ... if($is_stopwords{$second}){ next; } my $entry = "$relation $firstPOS $second $secondPOS"; $dependentWord{$entry}++; } close(OPENMY); print %is_stopwords, "\n"; |