У меня есть этот сценарий, использовать хэш-таблицу:получить nbest пар ключ-значение хэш-таблицу в Perl
#!/usr/bin/env perl
use strict; use warnings;
my $hash = {
'cat' => {
"félin" => '0.500000',
'chat' => '0.600000',
'chatterie' => '0.300000'
'chien' => '0.01000'
},
'rabbit' => {
'lapin' => '0.600000'
},
'canteen' => {
"ménagère" => '0.400000',
'cantine' => '0.600000'
}
};
my $text = "I love my cat and my rabbit canteen !\n";
foreach my $word (split "\s+", $text) {
print $word;
exists $hash->{$word}
and print "[" . join(";", keys %{ $hash->{$word} }) . "]";
print " ";
}
На данный момент, у меня есть выход:
I love my cat[chat;félin;chatterie;chien] and my rabbit[lapin] canteen[cantine;ménagère] !
мне нужно иметь nbest значение ключа в соответствии с частотами (хранится в моем хеше). Например, я хочу иметь 3 лучшие переводы в зависимости от частоты, как это:
I love my cat[chat;félin;chatterie] and my rabbit[lapin] canteen[cantine;ménagère] !
Как я могу изменить свой код, чтобы принимать во внимание частоту каждых значений, а также для печати значения nbest?
Благодарим за помощь.
Сортировать ключи численно? – TLP
Да, согласно информации хэша, естественно. Например, для первой записи: 1) чат 2) félin 3) chatterie 4) chien. Затем, в моем примере, я хочу получить 3best значения. –