たつをの ChangeLog : 2015-07-01

入力にテキスト(文章)を与えると、それに対する平均情報量(エントロピー)を計算するだけの Perl スクリプトです。

各文字(または指定により任意のトークン)の確率(p)を求めて下記の式で計算するだけ[1]。



コマンドラインオプション:
- "-k NUM" : TSVのときに使うカラムを指定。指定なしだと全て。
- "-l" : 1行ごとに平均情報量を計算。指定なしだと全行まとめて。
- "-s STRING" : テキスト分割用のセパレータを指定。指定なしだと文字単位になる。

■コード (aventro.pl)
#!/usr/bin/env perl
use strict;
use warnings;
use List::Util qw(sum);
use Getopt::Long;
use utf8;
use open ":utf8";
binmode STDIN, ":utf8";
binmode STDOUT, ":utf8";

my $key_at_str = 0; # key=POS : process only POS-th column (origin 1)
my $sep = ""; # token separator
my $line_mode = 0; # process each-line
GetOptions(
    "key=s" => \$key_at_str,
    "sep=s" => \$sep,
    "line" => \$line_mode,
);

my %freq;
while (<>) {
    chomp;
    $_ = (split(/\t/, $_))[$key_at_str-1] if $key_at_str;
    next if /^\s*$/;
    my @c = split(/$sep/, $_);
    $freq{$_}++ for @c;
    if ($line_mode) {
	printf "%.8f\n", calc_entro(\%freq);
        %freq = ();
    }
}
printf "%.8f\n", calc_entro(\%freq) if not $line_mode;

sub calc_entro {
    my ($r) = @_;
    my $sum = sum(values %$r);
    my $H = -1 * sum(map {my $p = $r->{$_}/$sum; $p * log($p)/log(2)} keys %$r);
    return $H;
}

■実行例
% cat test-1.txt
六本木から渋谷へ行くには恵比寿経由かな
今日は高校で国語のテストです
バナナとリンゴ
あはははは
ああああ
% ./aventro.pl test-1.txt   
4.93880341
% ./aventro.pl -l test-1.txt
4.14266436
3.66449778
2.52164064
0.72192809
0.00000000
% cat test-2.tsv
1	六本木,から,渋谷,へ,行く,に,は,恵比寿,経由,で,山手線,で,行く
2	今日,は,国語,の,テスト,は,ない
3	バナナ,と,リンゴ
4	あはははは
% ./aventro.pl -k 2 -s "," test-2.tsv
4.22017552
% ./aventro.pl -k 2 -s "," -l test-2.tsv
3.39274741
2.52164064
1.58496250
0.00000000

参考

[1] 平均情報量/エントロピー
http://www.infonet.co.jp/ueyama/ip/binary/entropy.html
[2] 日本語ツイートの情報量は、世界で2番目に少ないらしい (TEXT/YUBASCRIPT)
http://blog.yubais.net/3.html
この記事に言及しているこのブログ内の記事

毎年この時期になると会社経由でくる「給与所得等に係る特別区民税・都民税 特別徴収税額の決定通知書」(渋谷区)。細長い紙です。区長が変わったタイミングだからか、そもそもそういう機運だったからかわかりませんが、今年はいつもと違って「個人情報保護シール」が貼られていました。なんとなくメモしておきます。

個人情報保護シール

年末調整のときに参照しているので、写真撮って Dropbox に放り込んでおきます。
ref.
- 年末調整 2014[2014-10-31-2]

2015年7月1日のヲハニュースをお届けします。

フォルダ名に絵文字が使える

iPhoneのフォルダって軽くデコれるんですよ。
あ、なるほど。
フォルダ名に絵文字を使うだけか。
さっそくやってみたよ!

専門家が警告 大ブームの「食事は炭水化物抜き」が一番危ない 糖質制限ダイエットで「寝たきり」が続出中!  | 賢者の知恵 | 現代ビジネス [講談社]
摂取を今までより減らすだけなのに、いきなりゼロに近づけようと極端になってしまうの危険。だいたいにおいてダイエットは極端に走りすぎる人がいるからなあ。注意を読まずに。

「ニセ科学本」はデータをどう扱っているか? - Q&Aノ木
「ニセ科学本」はデータの扱い方に特徴がある。普通のデータを普通に扱うだけでは、常識をくつがえす大胆な主張は展開できないからである。ここでは『早死にしたくなければ、タバコはやめないほうがいい』(武田邦彦著/竹書房新書)を題材に考察してみる。

世界韓流学会理事が語る「韓流」から「嫌韓」へ:日経ビジネスオンライン
現在の日本の状況は、嫌韓感情が上昇したというよりも、正確には“戻った”と表現すべきでしょう。90年代に日本人が抱いていた韓国に対する感情と、現在の感情には数字的にほとんど差がないのですから。

「ダイソー」と「ダサソー」の争い…韓国が進める“知財保護”の皮肉:イザ!
ダサそう案件。

江戸時代になぜ排仏思想が拡がり、明治維新後に廃仏毀釈の嵐が吹き荒れたのか - しばやんの日々
ふむ。

あ、ありのままを…。ブログの相談を受けたと思ったらマルチの勧誘を受けていた - Naked odaiji
ああ。

煙草を吸うと頭がしゃっきりは正しいが、煙草を止めるともっとしゃっきりするぜ | More Access! More Fun!
ふむ。

【買ってよかった】 5,000円ほどで寝起きの体調が格段によくなった件 | IDEA*IDEA
マウスピース。

Amazon.co.jp: 統計学の図鑑 (まなびのずかん): 涌井 良幸, 涌井 貞美: 本

本書は、小学校で習う統計学の基礎レベルから、高校の数学I、数学B、多変量解析、ベイズ統計学、ビッグデータなど本格的なレベルまで、統計学がまるごとつまった「統計学の図鑑」です。オールカラーとふんだんな図で、とてもていねいに説明しています。統計学をこれから勉強したい人、基礎から学び直ししたい人、親子で一緒に勉強したい人にぴったりです。統計学を一望できる本書は、ずっと手元に置いておける役立つ一冊です。

【本書の内容】
■1章 統計学の基本を知ろう
■2章 記述統計学
■3章 統計学に必要な確率の考え方
■4章 推測統計学の考え方
■5章 統計学の実際を知る
■6章 関係を科学する統計学(多変量解析)
■7章 ベイズ統計学
■8章 活躍する統計学

たつをの ChangeLog
Powered by chalow