2010年6月11日金曜日

Perlで使われる文字の頻度をカウントする

単語と同様にPerlでは簡単に使われる文字のカウントもできます。 詳しくは以下のプログラムを参考にして下さい。

 #!/usr/bin/perl

use utf8;


#サンプルテキスト、素早いブラウンフォックスはラジードッグを飛び越える
my $data = 'The quick brown fox jumps over the lazy dog';

#正規表現(単語を抽出する)
$regex = "[a-z]";

#全ての大文字を小文字に変換する
$data =~ tr/[A-Z]/[a-z]/;


#単語を配列へ代入する
@temp = $data =~m/$regex/g;

#ハッシュ配列を初期化
%words = ();

#単語を全てスキャン、そして単語をキーにして同じ単語をカウントする
foreach(@temp){
$words{$_}++;

}

#単語と使われた頻度を表示する、ついでにソートする
foreach $key (sort keys( %words ) ) {
print "$key ($words{$key})\n";
}


実行結果

a (1)
b (1)
c (1)
d (1)
e (3)
f (1)
g (1)
h (2)
i (1)
j (1)
k (1)
l (1)
m (1)
n (1)
o (4)
p (1)
q (1)
r (2)
s (1)
t (2)
u (2)
v (1)
w (1)
x (1)
y (1)
z (1)

0 件のコメント:

コメントを投稿