1
我有一個函數可以計算文本中Trigrams的頻率。沒有計算語言學知識,我只需要Perl代碼的幫助。哈希(Multihash?)索引(Perl)
這是功能:
sub extract_frequencies {
for(my $i=0; $i<=$#tag; $i++) {
$wordtagfreq{"$word[$i]\t$tag[$i]"}++;
$tagfreq{$tag[$i]}++;
}
# count Tag-Trigramm-Frequencies
my @start = ("<s>","<s>");
unshift @tag, @start; # korrigiert
push @tag, "<s>";
for(my $i=2; $i<=$#tag; $i++) {
$ngramfreq[3]{"$tag[$i-2]\t$tag[$i-1]\t$tag[$i]"}++;
}
}
的特定碼點,我不明白有以下幾種:
1)$ngramfreq
[3]
什麼散列索引是指在這裏?我是否分別計數每個標籤?這是鑰匙的長度嗎?我的結束鍵是什麼(3個不同的標籤鍵?)?
2)$i<=$#tag
是什麼$#
在Perl是什麼意思?
有段時間沒有用過Perl,所以我希望有些Perl Monks能幫助我。
您可能需要分別檢查哈希數組http://perldoc.perl.org/perldsc.html#ARRAYS-OF-HASHES和http://perlmaven.com/perl-arrays。 –
我將'use Data :: Dumper;'添加到您的腳本的開頭,並在'print Dumper \ @ ngramfreq'中查看您的數據結構 – fugu
如果您想要Perl Monks的答案,請轉至http://www.perlmonks。 org :-) – choroba