当前位置:  开发笔记 > 编程语言 > 正文

哈希(Multihash?)索引(Perl)

如何解决《哈希(Multihash?)索引(Perl)》经验,为你挑选了1个好方法。

我有一个函数可以计算文本中Trigrams的频率.不需要计算语言学知识,我只需要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 = ("","");
    unshift @tag, @start;  # korrigiert
    push @tag, "";
    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会帮助我.



1> Sobrique..:

[0]是一个数组索引,与哈希无关.这意味着它ngramfreq实际上是一个哈希数组:

my @ngramfreq = (
                     { tag => 1, fish => 3 },
                     { anothertag => 4 } 
                );

从而$ngramfreq[0]获得第一个anon哈希,然后你可以访问标签.

$#tag是数组中的最后一个索引@tag.因此,对于3个元素,它将是2,因为数组指示是0,1,2

Data::Dumper 是一种可视化结构的好方法,让您了解它是如何布局的.

perldoc perldsc 值得一读,因为它扩展了数据结构.

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有