我正在寫一個perl腳本,其中a應該處理文本,然後向詞典提供詞頻,然後對詞典進行排序。該文本是Edgar Poe的「Golden Bug」的摘錄,目的是計算所有單詞的頻率。但我做錯了,因爲我沒有輸出。我什麼時候做錯了?謝謝。計算單詞頻率,然後對它們進行排序
open(TEXT, "goldenbug.txt") or die("File not found");
while(<TEXT>)
{
chomp;
$_=lc;
s/--/ /g;
s/ +/ /g;
s/[.,:;?"()]//g;
@word=split(/ /);
foreach $word (@words)
{
if(/(\w+)'\W/)
{
if($1 eq 'bug')
{
$word=~s/'//g;
}
}
if(/\W'(\w+)/)
{
if(($1 ne 'change') and ($1 ne 'em') and ($1 ne 'prentices'))
{
$word=~s/'//g;
}
}
$dictionary{$word}+=1;
}
}
foreach $word(sort byDescendingValues keys %dictionary)
{
print "$word, $dictionary{$word}\n";
}
sub byDescendingValues
{
$value=$dictionaty{$b} <=> $dictionary{$a};
if ($value==0)
{
return $a cmp $b
}
else
{
return $value;
}
}
你能發佈一個小單詞列表嗎?您還沒有在任何地方聲明%dictionary ... –