d the a quick a brown n fox v jumps p over d the a lazy n dog
And the following input:
the quick brown fox jumps over the lazy dog
Running the following script with these two files as arguments
#!/usr/bin/perl use warnings; use strict; use feature qw{ say }; my ($lexicon, $input) = @ARGV; my %emotive; open my $lex, '<', $lexicon or die $!; while (<$lex>) { my ($pos, $lemma) = split; warn "Duplicate POS for $lemma.\n" if exists $emotive{$lemma} && $emotive{$lemma} ne $pos; $emotive{$lemma} = $pos; } my %seen; open my $in, '<', $input or die $!; while (<$in>) { $seen{$_}++ for map $emotive{$_}, split; } for my $pos (sort { $seen{$a} <=> $seen{$b} } keys %seen) { say "$pos\t$seen{$pos}"; }
the output is
p 1 v 1 n 2 d 2 a 3
In reply to Re: Help Improve/troubleshoot Simple Lexicon Perl Code
by choroba
in thread Help Improve/troubleshoot Simple Lexicon Perl Code
by clothespeg
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |