トップ «前の日記(2018-04-06(Fri)) 最新 次の日記(2018-04-13(Fri))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2018-04-12(Thu) 昨日ほど暑くもなく

文字頻度

なんとなくgawkで 書いてみる気になった。。
mawkではlength(ARRAY)が効かないっぽい。

$ mawk 'BEGIN{foo[0]="bar"; print length(foo)}'
mawk: line 1: illegal reference to array foo
 
$ gawk 'BEGIN{foo[0]="bar"; print length(foo)}'
1

動作確認。

$ cat test.txt
aaaab
d dcdba
uab  bac
 
$ cat test.txt | gawk -F '' -f count.awk | sort -nr
7 a
4 b
3 d
2 c
1 u

で、 The GOLD-BUGで出現頻度を見てみる。
予め大文字を小文字に変えておく。
しかしカラムがどうのこうのとか、Notes:とかも一緒くたにする。

$ w3m -dump GOLD_BUG_SIGHT |
 tr [A-Z] [a-z] | gawk -F '' -f count.awk | sort -nr | head
7872 e
5737 t
4641 a
4416 o
4348 i
4088 n
3667 s
3499 h
3420 r
2598 d

ちなみに本文では、頻出順として、e, a, o, i, d, h, n, r, s, t, ... だった。

ついでに日本語も

動くことを確認。
漱石の猫で試す。ルビも混ざっている。

$ w3m -dump I_am_cat |
 gawk -F '' -f count.awk | sort -nr | head
12802 の
12069 い
9231 )
9231 (
9014 な
8890 て
8846 る
8747 と
8537 か
7930 し

かなや記号も除いてみた。

$ w3m -dump I_am_cat |
 gawk -F '' -f count.awk | sort -nr |grep -v [あ-ん()。、「」] | head
2287 人
1491 事
1423 云
1315 君
1234 出
1216 見
1073 一
1024 主
978 来
851 御

↑の例では、「猫」は66番目、262個に過ぎず。

当初はブログに貼り付けていたが

結局すぐgithubにあげてしまった。

少し 書き直す。出力結果は同じ。


リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。