d the
a quick
a brown
n fox
v jumps
p over
d the
a lazy
n dog
####
the quick brown fox jumps over the lazy dog
####
#!/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}";
}
####
p 1
v 1
n 2
d 2
a 3