のびーの食っちゃね〜だらだらな日々。食っちゃ寝生活してても意外と平気だったりする。

お菓子は世界の共通語!?食べて食べて食べまくっても腹筋が6こに割れちゃったけど今は普通に戻って週末にラーメン二郎に通うだけで(いや、最近は全っ然通ってないんだけど。でも、蒙古タンメン中本目黒店に足しげく通ってるから似たようなものかも?)体組成計が異常な数値を示す日々をだっらだら〜に綴ってしまうひとり言調な日記風ブログ

ジップの法則を身近な作品で試してみました。

ジップの法則

ジップの法則(ジップのほうそく、Zipf's law)あるいはジフの法則とは、出現頻度が k 番目に大きい要素が全体に占める割合が 1/k に比例するという経験則である。


ふとしたことで ジップの法則 というものを知りました。出現頻度の順位を x 軸、出現頻度を y 軸とする両対数グラフにすると、大まかに直線に近似する……というのが面白そうだったので、実際に試してみました。

法則が成り立つ例として単語の出現頻度が書かれていたので、青空文庫 のものを利用させていただきました。

ということで、10つの作品からグラフを作成してみました。

01jigoku


ダンテ アリギエリ著 神曲 (地獄)

01yoakemae1_jo


島崎藤村著 夜明け前 (第一部上)

02toenno_maki


吉川英治著 三国志 (桃園の巻)

gakumonno_susume


福沢諭吉著 学問のすすめ

kaijin_nijumenso


江戸川乱歩著 怪人二十面相

kokoro


夏目漱石著 こころ

ningen_shikkaku


太宰治著 人間失格

takekurabe


樋口一葉著 たけくらべ

the_empty_house


アーサー・コナン・ドイル著 空き家の冒険

wagahaiwa_nekodearu


夏目漱石著 吾輩は猫である


こうしてグラフにしてみると、たしかに大まかに直線に近似していることが分かりますね。

というところで、今回グラフ作成に使ったプログラムも置いておきます。
このところ Go 言語をかじっていたので、勉強を兼ねて全部 Go で書こうかな……とも思ったのですが、やはり面倒くさくなってしまったので、かなりの部分はシェルスクリプトで書いてしまいました(;´∀`)

あと、文字コード変換に nkf, 形態素解析に mecab, グラフ作成に plot を利用しているので、それらのインストールコマンドも置いておきます。また、nkf と mecab のインストールには Homebrew を使っています。

# nkf, mecab, plot のインストール
$ brew install nkf
$ brew install mecab
$ brew install mecab-ipadic

$ go get gonum.org/v1/plot/


あと、青空文庫から文章ファイルをダウンロードしてグラフを作成するシェルスクリプト。
第1引数に文章ファイルの URL を指定して使います。たとえば、夏目漱石の 吾輩は猫である なら https://www.aozora.gr.jp/cards/000148/files/789_ruby_5639.zip を第1引数に指定します。

やっていることは非常にシンプルですが、青空文庫で公開されている文章はルビがふられているので、除去しています。

#!/bin/sh
URL=$1
ZIPFILE=`basename ${URL}`

echo "PROCESS: ${URL}"

# zip のダウンロード
curl --output ${ZIPFILE} ${URL}

# zip の展開
FILE=`unzip ${ZIPFILE} 2>&1 | egrep '.txt' | awk '{print $2}'`
rm ${ZIPFILE}

# 文字コードを Shift_JIS から UTF8 へ
nkf -Sw80 --in-place ${FILE}

# ルビを除去
sed -i -e 's/《[^》]*》//g' ${FILE}
rm ${FILE}-e

# 形態素解析
MECABFILE=${FILE}.mecab
# 1行がかなり大きいファイルがあるのでバッファサイズを多くとる
cat ${FILE} | mecab -b 32768 > ${MECABFILE}
rm ${FILE}

# グラフを作る
./zipf ${MECABFILE}
rm ${MECABFILE}


グラフを作る Go 言語のプログラム (シェルスクリプトの一番下の方で使っている zipf というコマンド)

package main

import (
"bufio"
"os"
"strings"
"sort"
"math"
"gonum.org/v1/plot"
"gonum.org/v1/plot/plotter"
"gonum.org/v1/plot/plotutil"
"gonum.org/v1/plot/vg"
)

func main() {
var input string
if len(os.Args) <= 1 {
return
} else {
input = os.Args[1]
}

// 単語をカウント
counts := countWords(input)

// グラフを作る
p, err := plot.New()
if err != nil {
panic(err)
}
p.Title.Text = input

if err := plotutil.AddScatters(p, point(counts)); err != nil {
panic(err)
}

// グラフを画像ファイルに保存
output := input[0:strings.Index(input, ".")] + ".png"
if err := p.Save(5*vg.Inch, 5*vg.Inch, output); err != nil {
panic(err)
}
}

func countWords(path string) []int {
f, err := os.Open(path)
if err != nil {
panic(err)
}
defer f.Close()

// 単語をカウント
m := make(map[string]int)
scanner := bufio.NewScanner(f)
for scanner.Scan() {
line := scanner.Text()
if strings.Index(line, "EOS") != -1 || strings.Index(line, "\r") != -1 {
continue
}

word := strings.Split(line, "\t")[0]
m[word] = m[word] + 1
}

// ソートするためにスライスへ
var counts = make(sort.IntSlice, len(m))
i := 0
for _, v := range m {
counts[i] = v
i++
}

// 出現頻度でソート
sort.Sort(sort.Reverse(counts))
return counts
}

func point(counts []int) plotter.XYs {
pts := make(plotter.XYs, len(counts))
for i, v := range counts {
pts[i].X = math.Log10(float64(i + 1))
pts[i].Y = math.Log10(float64(v))
}

return pts
}


いずれも、簡潔にするためにエラー処理はほとんど書いていません。

というわけで、ジップの法則を身近な作品で試してみました。

「万引き家族」を見てきました。

万引き家族 を見てきました。

IMG_7354


なんというか……すごい映画でした。

内容や評価については、ネットにあまたあるレビューサイトや批評サイトのほうがはるかに詳しいので、ここでは書きません。ただ、感じたことだけを書こうと思います。

正直なところ、「非合法なことをやっているのに家族愛云々でお涙頂戴の感動モノってところ?」→「いや、パルムドールを取ってるくらいだから、さすがにそこまで安っぽいはずがない」→「じゃあ、どんな感じなのだろう?」→「気になる」→「映画館で見るのが一番の答えになりそう」というくらいの気持ちで見に行ったのですが、映画館を出て数時間、いまだに作品の圧倒的なパワーと奥行きの余韻にひたっています。

「ある一家の秘密」が明らかになる……とはいったい何のことなのか?

見る前は、せいぜい「万引きなどといった犯罪で生計を立てていることが世間にバレる (そして、バラバラになる)」くらいにしか思っていなかったのですが、いやいや、とてもとてもそんな薄っぺらな秘密なんかではなかったです。
「驚愕の事実!!」みたいなびっくりするような展開はまったくといっていいほどないのですが、それだからこそ、静かに知らされる秘密の数々 (そう、秘密は1つではなく、家族の数だけある) とその意味・その行く末が、しっとりとそしてしっかりと胸に刻まれるのを感じました。

真夏の連休最終日、素晴らしい映画を見ることができました(〃∇〃)

ようやく、ドライブレコーダーを装備できました。

IMG_7353


ドライブレコーダーを付けてきました。

だいぶ前から付けたいと思っていたので、ようやく、といった感じです。できれば、ドライブレコーダーが活躍する場がないのがベストなのは当然ですが、いざというときにあるとないとではまったく違うということも十分ありえるでしょうしね。

ちなみに、付けたのは CELLSTAR の CSD-750FHG という、そこそこのモデルです。一口にドラレコといっても、すでに各メーカー各モデルとも機能がすごいことになっているのですが、夜間撮影の強さを重視した結果、このモデルに決めました。

今年のオフシーズンはいろいろと出かける予定なので、ギリギリ間に合いましたね(๑•̀ㅂ•́)و✧

東京麺通団さんでかまたまバターとか。

東京麺通団 さんに行ってきましたよ。

IMG_7343


なんか、新宿に行くたびに訪問しているような気がしますが、ちょっと小腹が空いたときの間食としてぴったりなので、ついつい足が向いてしまうのですよね(*´∀`)

IMG_7342


かまたまバター 小 (税抜460円)

初めて食べたのですが、一言で言ってオイ━━━━(〃ω〃)━━━━シイ!!

かまたまシリーズは、無印のかまたま、ねばたまと食べてきてどれもとても美味しかったのですが、かまたまバターの美味しさは頭一つ抜けていますね。バターのまろやかな塩味といい、濃厚なコクといい、さっぱりしたうどんと玉子との相性が抜群です(〃ω〃)

うーん、他のメニューもいろいろと味わってみたいと思っていたのですが、これはよほど気を引き締めていないと、うっかり「かまたまバターで♪」とオーダーしてしまいそうです(;´∀`)

新宿に来たときには、またぜひ訪問したいですね♪

麺類が多い平日ランチでした。

今週の平日ランチなど。

IMG_7323


月曜日。

IMG_7327


火曜日。

IMG_7330


水曜日。

IMG_7329


これも水曜日。

野菜もたっぷり摂れるので、ときどきでも来たいですね。

IMG_7333


木曜日。


金曜日……は、突発案件対応のためにコンビニのパンでした(´ε`;)

ということで、麺類が多い平日なランチでした。

----

おまけ編、今週の讃岐うどんなブレックファーストです。

IMG_7320


冷おろし醤油。

IMG_7328


温かけ・ネギ増し。

IMG_7334


冷ぶっかけ・鳥天。

暑さが厳しくなってきた今週、冷たいうどんが美味しいです♪

峰の原高原スキー場と湯の丸スキー場が 2018-2019 シーズンは営業しないという噂を耳にしました。

峰の原高原スキー場湯の丸スキー場 に関する噂を耳にしました。

……と書いただけでどんな噂か想像がついてしまうと思いますが、一言で言ってしまえば両スキー場とも「2018-2019 シーズンは営業しない」という噂です。

まだ公式サイトにはまったく情報が出ていませんし、サラリと見たところではネット上にも情報は出回っていません。

できることなら、これがただの噂で済めばいいのですが……(。ŏ﹏ŏ)

セブンイレブンの「金のワッフルコーン ミルクバニラ」美味しいですね♪

IMG_7335


セブンイレブンの「金のワッフルコーン ミルクバニラ」

自分の周りでかなり話題になっているのですが、いつ行っても品切れでなかなか買えませんでした……が、今日、1つだけ残っているのを買うことができました♪

IMG_7336


で、感想なのですが。

一言で言って美味しいです! コンビニで売っているコーン付きのアイスって、どれもこれもがかなり微妙な感じだと思っていたのですが、これは従来の印象を完全に吹き飛ばしましたね♪

たしかに、周りで話題になっているのも分かりますし、レビューサイトで高く評価されているのも納得の美味しさでした(*´∀`*)

猫本を2冊、そして待望の後巷説百物語! さらに初・水木しげるコミック(๑•̀ㅂ•́)و✧

通勤途中に図書館を見つけました(〃∇〃)

IMG_7189


今週も猫本を2冊借りてみました♪

まず1冊目、「ねこ語会話帖」すごく良かったです!

ページの半分が写真で、残り半分の文章もすごく短く、それでいて「おー、なるほど!」というところはしっかり伝わってきます。これは、全ねこ好き必読かもしれません(ΦωΦ)

もう1冊の「ネコ学入門」も面白かったです。
著者がイギリスの人なので、書かれているバックグラウンド (環境とか猫種とか) もイギリスが多かったりするのですが、それを抜きにしても参考になります。さらに、バックグラウンドが違うところが「へー、イギリスはこんな感じなんだー」と楽しみながら読めました(*゚∀゚)

IMG_7190


今週は、以前読んでとても面白かった「巷説百物語」の続編である「後巷説百物語」を借りることができました♪

「巷説百物語」とは時代が変わっていたり (江戸 → 明治)、主要な登場人物が入れ替わっていたり (巷説百物語から引き続き登場するのは山岡百介くらい。というか、むしろ主役) と、いろいろと変わっているところはあるのですが、でも、「やっぱり巷説百物語だなあ」と感じさせてくれますし、なによりその面白さはまったく変わっていません(〃∇〃)

ラスト、ほんのちょっぴり寂しさがありましたが、でも、すごくきれいな、そして腑に落ちる終わり方で、「ああ、この2冊を読めて本当に良かったなあ」と思わされましたね(〃ω〃)

そして、4冊目は水木しげる氏の「総員玉砕せよ!」

実は、水木しげる氏の漫画を読むのはこれが初めてなのですが、まさか1冊目からこんなすごい本を引き当ててしまうとは……という気がしてなりません。
もう、あまりにも理不尽すぎますし、なんで上官はこんなに馬鹿なんだ? と呟かずにはいられませんし、こんな狂った時代 (戦中) に生まれなくて本当に幸せだなと、つくづく思わされました。

あと、水木しげる氏、めちゃくちゃ絵が上手いです。別に下手と思っていたわけではないのですが、あまりにも上手すぎて驚きました。本当。

ということで、借りていた本を読了しました♪

やっぱり、本って面白いです(〃ω〃)

月曜日にコーヒーやカフェインのことを書くのはいい加減飽きてきました。

IMG_7324


ここ数ヶ月あるいはそれ以上、月曜日のエントリーはコーヒーやカフェインのことばかりでした。

が、週が明けるたびにコーヒーやカフェインのことを書くのはいい加減飽きてきました……というか、月曜日がコーヒーから始めるのは好きなルーティーンですし、それ自体は全然気にならないのですが、「月曜日のエントリーに書くことがコーヒー (とカフェイン) しかない」という状態がもう我慢ならない、そういうところに来ていることに気がついたのですよね。

ということで、今日は新宿に行ってきたので、その写真など。

それにしても、平日な新宿というのはずいぶん久しぶりな気がします。もうずっと、金曜日ですら新宿 (だけではないけど) に来ていないような気がしてなりませんし、実際来ていないと思います。

平日な新宿の空気、雑踏。

時間にするとわずかですが、堪能してきました。

週末の SA ではよくあることですね。

IMG_7294


さすがにここまで曲がってたら気が付きそうなものですよね?

……と言いたいところですが、気が付かないのが普通なのが週末の高速の SA なのですよね (車種がプリウスなのはできすぎな気もするけど)

でも、ぶつけられなくてよかったです!ε-(´∀`*)

----

まあ、ぶつけたら確実に逃げてるでしょうけど……(´ε`;)
Recent Entries
Profile
のびー
こんにちは。
お菓子を毎日食べて、おいしく幸せな健康生活をおくりましょう♪
太る!のは全然気にならない永遠のハタチ。今日もぐうたらだらだらに生きてます。

上の写真はテリエです、僕じゃないです。
Archives