#!/usr/bin/perl -w # Copyright 2005 ISHIHARA Yoshinori # $Id$ # # ussage: ./wakatigakiText.pl filename # ussage: cat filename | ./wakatigakiText.pl # filename 日本語のテキストファイル(EUC) # use strict; use Text::Kakasi; # Text::Kakasiのバージョンが1.05と古いためにクラスが未サポート # 最新の2.04はサポートされている(1.05はUTF-8にも対応していないようだ) ## my $fh; $ARGV[0] ? (open($fh, "$ARGV[0]")) : ($fh = \*STDIN); ## kakasiを使って日本語を分かち書きして、配列にセット my @array; Text::Kakasi::getopt_argv('-JJ', '-c', '-w'); while (<$fh>) { chomp; my $result = Text::Kakasi::do_kakasi($_); my @tmp = split(' ', $result); push @array, @tmp; } ## 頻度をカウント my %hash; foreach (@array) { $hash{$_}++; } ## 頻度順にプリント foreach (reverse sort {$hash{$a} <=> $hash{$b}} keys %hash) { print "$_\t$hash{$_}\n"; }