作业帮 > 综合 > 作业

如何用perl读入一个文件,计算文件中各个单词的出现频率,再输出

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/09 11:04:41
如何用perl读入一个文件,计算文件中各个单词的出现频率,再输出
用perl读入一个文件"shizegengo.txt",计算文件中各个单词的出现频率,然后再按左边-单词,右边-出现次数
perl -w
# frequency
%count;
open TERM,"shizegengo.txt";
while(){
chomp;
$count{$word}=0
foreach $word (keys %count){
$count{$word} + = 1;
}
$longest=0;
foreach $word (keys %count){
$word_length=length($word);
$longest=$word_length if $word_length > $longest;
}
foreach $word (sort keys % count){
printf"%-${longest}s %s\n",$word ,$count{word};
}
}
close TERM;
这个是我写的程序,不知道为什么运行不了,请帮我看下哪里出问题了.
楼上兄弟批评的是.本人是门外汉,第一次回答程序方面的问题,没有经验,还请见谅!
其实单词统计的问题 perl的文档中就有很好的实例.作为新手,我也在学习中.希望大家共同交流、进步.
while ( /(\b[^\W_\d][\w'-]+\b)/g ) { $seen{$1}++;}
以上语句为实例中给出的单行统计单词方法.
my @array = split /[\s \,\!\:\;\?\.\#]/;
这是个笨方法,使用标点来分割单词;
但实际应用却可以灵活分出特殊用意的词.
foreach (@array) { $words{$_}++ if /^\w/;}
可参考:文档:perlfaq6.htm