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