#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my %tagcount; while (my $line=) { my ($token,$tag,$lemma)= split /\s+/,$line; $tagcount{lc($lemma)}->{$tag}++; }; #print Dumper \%tagcount; foreach my $lemma (sort keys %tagcount) { my @tags_sortedby_count = sort { $tagcount{$lemma}->{$b} <=> $tagcount{$lemma}->{$a} } keys %{ $tagcount{$lemma} }; # Ausgabe print "$lemma "; foreach my $tag ( @tags_sortedby_count ) { print "\t", $tag, " (", $tagcount{$lemma}->{$tag}, ")"; } print "\n"; } __DATA__ Ich PRO.Pers.Subst.1.Nom.Sg.*6 Ich habe VFIN.Haben.1.Sg.Pres.Ind haben einen ART.Indef.Acc.Sg.Masc eine Menschen N.Reg.Acc.Sg.Masc Mensch allen PRO.Indef.Attr.-3.Acc.Pl.Fem alle allen PRO.Indef.Attr.-3.Acc.Pl.Masc alle all PRO.Indef.Attr.-3.Nom.Pl.Fem alle allen PRO.Indef.Attr.-3.Acc.Sg.Fem alle all PRO.Indef.Attr.-3.Acc.Pl.Neut alle all PRO.Indef.Attr.-3.Acc.Pl.*6 alle all PRO.Indef.Attr.-3.Nom.Pl.*6 alle all PRO.Indef.Attr.-3.Acc.Sg.Fem alle all PRO.Indef.Attr.-3.Acc.Pl.Neut alle all PRO.Indef.Attr.-3.Acc.Pl.*6 alle all PRO.Indef.Attr.-3.Nom.Pl.*6 alle all PRO.Indef.Attr.-3.Acc.Pl.*6 alle all PRO.Indef.Attr.-3.Nom.Pl.*6 alle