参加者リストの集計

先日参加した学会の参加者リストが公開されていた。ナンバリングされていたため、最後の行を見る限り255で、255名の参加者がいたらしいことがわかるものの、その内訳は分からない。テキスト版は提供されていないが、幸いこのページをコピー&ペーストすることで情報が取れそうな素直なページの模様。そうして得たファイルをlist.txtとして、自ら集計することにする。 参加者の国は左から5カラム目にありそうということで [shell] cut -f5 list.txt | less [/shell] で眺めて見る。確かに抽出できている。そこで、さらにワード別カウントをしてみる。

1
2
3
4
5
6
7
8
#!/usr/bin/perl
while() {
        my($word) = split;
        $num{$word}++;
}
foreach (sort keys %num) {
        print "$_t$num{$_}n";
}

のようなワード別にその出現頻度を数えあげるプログラム(Perlスクリプト。count.plとする)をよく使うのであるが、 [shell] cut -f5 list.txt | perl count.pl | less [/shell] とすると、スペースが区切り文字として認識されてしまいSouth KoreaがSouthになってしまう。そこで、このスクリプトをかけるまえにスペースはアンダースコアに変換してしのぐことにする。 [shell] cut -f5 list.txt | perl -pe 's/ //g' | perl count.pl | less [/shell] そして出て来た結果を頻度が多い国から順になるように並び替えるように。 [shell] cut -f5 list.txt | perl -pe 's/ //g' | perl count.pl | sort -k2 -rn | less [/shell] これでどの国が多かったか一目瞭然。


Written by bonohu in misc on 火 27 6月 2017.