in reply to Help Improve/troubleshoot Simple Lexicon Perl Code
You can use internal data to make it easier for you an for us to test the code and compare results. Until you give us some data to work with there's not much we can do to help debug your problem. There are some issues however:
With changes implied by the comments above your code could look like:
use strict; use warnings; my $lexicon = <<LEX; 10 the 5 quick LEX my $text = <<TEXT; the quick brown fox jumps over the lazy dog TEXT open my $lexIn, '<', \$lexicon; my %emotive; while (my $sa = <$lexIn>) { my ($POS, $Lemma) = split('\s',$sa); $emotive{$Lemma}=$POS } open my $inFile, '<', \$text; while (my $text = <$inFile>) { #this is some preprocessing for the text $text =~ s/\s+/ /g; $text =~ s/,/ ,/g; $text =~ s/æ/ æ/g; $text =~ s/\?/ !/g; #$text =~ tr/A-Z/a=z/; my @words = split(' ', $text); for my $word(@words) { if (exists $emotive{$word}) { print $word } } }
Prints:
thequickthe
Maybe you can tell us where you are having a problem because aside from the coding issues mentioned above there is a lot going on in that script that implies competence beyond your stated competence.
Update: fix documentation link to open function.
|
|---|