300億円欲しい

メジャーリーグのデータ解析します

日常に潜むBKBを見つけたい

タイトルの意味が分からない人がいるかもしれません.

BKBとは

バイク川崎バイクという芸人さんがいます.

バイク川崎バイクとは編集

youtube R-1グランプリ2014決勝戦


R−1 2014 バイク川崎バイク - YouTube

Naver まとめ

【ギアが落ちない】BKBことバイク川崎バイクの魅力とは【バイクだけに】 - NAVER まとめ

Twitter

バイク川崎バイク. 略してBKBです.

ネタの内容

以下の2パターンです.

日常に潜む, 頭文字の並びが"BKB"になっているフレーズを言う → ひぃーあ! と言う

バイクっぽいことを言う. → バイクだけにね! ブンブン! と言う

そんなことより大変だ. 婆さんがこんな時間にブッ倒れた

婆さんが! こんな時間に! ブッ倒れた!

B! K! B!

ひぃーあ!

目標

"日常に潜むBKBを言う"を, 自動的に行いたいです.

その辺に転がっている文章で単語や文節の並びを見て, 頭文字の並びがB, K, Bとなっている箇所を自動的に発見したいです.

そのままツイートさせれば, バイク川崎バイクbotが作れます.

手法

青空文庫から文章を取得しました.

とりあえず, 坂口安吾北大路魯山人高村光雲の著作物からBKBを探してみました.

全ての文について, 単語や文節に分けてBKBを探しました.

そして結果をバイク川崎バイクbotにツイートさせてみました.

結果

やたら文学的になっています.

小説家になろうからもスクレイプしています.

独特の世界観です.

次にやること

ネット小説は他にもたくさんあります. どんどん文章を取得していきます.

適当なニュース記事を定期的にスクレイプしてBKBを探すのも面白そうです.

使用したコード

Githubにおいてあります.

用意した文章を, mecab, cabocha, kakasiを使って文構造と頭文字の解析をして, あとはシェル芸です.

以上です.

sedで同じ文字の連続を圧縮して1文字にしたい

問題

例えば, hooooogeeeee を hogeにしたいのです.

rubyのsqueezeを, sedでやりたいのです.

解決策

このStack overflowの記事を参考にしました.

検索側でキャプチャパターンを使えばイケるらしいです. なるほど. キモいです.

やってみました. (.)\1+ で2文字以上の連続文字列になるんですね..

しかし, Macではsedとgsedで挙動が違いました.

よく分かっていませんが, gsedなら欲しい結果が得られました.

$ echo hoooogeee | gsed 's/\([A-Za-z]\)\1\+/\1/g'
hoge

$ echo hoooogeee | sed 's/\([A-Za-z]\)\1\+/\1/g'
hoooogeee

なるほど. wowoさんありがとうございました.

他の解決策

@kohse先生が教えて下さいました.

$ echo hoooogeeee | sed 's/\(.\)\1*/\1/g'
hoge

なるほど. ありがとうございました.

8月29日 ヤクルトvs阪神 9回無死満塁なのに降雨コールド

導入

8月29日の試合です.

ヤクルト9回押せ押せ無死満塁なのに…無情降雨コールド (スポニチアネックス) - Yahoo!ニュース

4―10の9回に1点を返し、なおも無死満塁。

守護神の呉昇桓を引きずり出したところで降雨コールドとなり、ヤクルトの小川監督は「せっかくいい形で攻撃できていたので最後までやりたかった」と嘆いた。

試合を続けていたらどうなっていたのでしょう.

試合実況&勝率計算botを動かしていたので, 確認しました.

勝率botで見るヤクルトvs阪神

阪神試合速報botを動かしています.

勝手に試合実況と勝率計算をしてくれます.

昨日の最終回の様子を, 試合速報botのツイートで見てみます.

勝率2.7%です. 諦めましょう.

以上です.

巨人の勝率を上げてくれるbot作りました

巨人の勝率を上げる

僕は, 巨人が勝つところが見たいのです. 勝つところだけ見たいです.

巨人の勝率を上げるためには, どうすればいいでしょうか.

考えました.

負け試合を見なければいいのです.

負け試合を認識しないことによって, 僕の世界で巨人の勝率が上がります.

そんな手助けをしてくれるbotを作りました.

巨人が勝ちそうになったら通知してくれるbotです.

ジャイアンツ試合実況bot

こんな感じです.

利用法

まず, 野球に関する情報を遮断します.

携帯は持っておきます. Twitterで野球のことをつぶやく人はブロックします.

さきほどのbotは, 巨人の勝率が80%を超えたら通知を出してくれます.

そのタイミングでテレビをつければ, 巨人の勝率が80%になりますね!

やってみた

8月19日の, 巨人vsヤクルトの試合で, 実際にやってみました.

8割を超えたので, 通知がきました. テレビをつけました.

以上です

おまけ

sed 's/giants/hawks/g'とすれば...

全球団のbotが作れますね

甲子園の実況しながら勝率も計算するbotを作りました

甲子園速報bot

高校野球の速報をするTwitterbotを作りました.

ついでに, メジャーリーグの過去試合結果(約80年分)を利用して, 勝率も計算してみました.

こんな感じです.

コメント

データ元

Yahoo!の甲子園速報からデータを抜いています. 怒られるかもしれません. たまに失敗します.

メジャーリーグのデータは, retrosheetから取ってきています.

勝率

勝率は目安です. 本当は高校野球の試合結果から勝率を集計するべきです.

また, 現状はイニングとランナー状況と点差しか考えていません.

9回表満塁で3点負けてるときの勝率, みたいな感じです.

もっと精密にやるべきなのでしょうが, 面倒です.

まだ完成ではありませんが, とりあえずやりたいことはできました.

次にやること

次は巨人の試合で同じことをします.

まず, 野球に関する一切の情報を遮断します.

次に, 勝率が80%を超えたらbotが僕に通知を出すので, そのときにテレビを見始めます.

これにより, 僕が認識する世界で巨人の勝率が80%になって, 幸せです.

GitHub Pagesを使う

GitHub Pagesを使う

htmlファイルをGitHubで公開できたら楽なのに, と思いました.

探したら, そういうサービスがGitHubにありました.

GitHub Pagesです. 早速, 使ってみました.

使い方

github.ioというレポジトリを作って, 他の自分のレポジトリで gh-pagesという名前のブランチを作るだけでした.

使用例

300億円超ほしい 300億円超ほしい by gghatano

pixicで人気のカップリングを可視化実験 http://gghatano.github.io/LoveLive/pixiv/couple.html

MCMCと野球データで遊ぶ. http://gghatano.github.io/analyze_mlbdata_with_R/rstan/BugsStanSemi/BugsStanSlide.html

発展

jekyll bootstrap? でもっとカッコ良い感じなるみたいですが, よく分かっていません.

参考文献

Github Pages について整理しておきます http://blog.eiel.info/blog/2013/02/17/github-pages/

脅威のアニオタ社会復帰への道 pixivのタグ頻度から考えるラブライブのカップリング - 驚異のアニヲタ社会復帰への道

YoするためにYoボタンつけた

Yoボタン

YOボタンをこのブログにつけました.
サイドバーにあります. プロフィールの下にあるボタンです.
押すとメッセージが出ます. 内容に従いましょう.
Yoを起動して, HATAMUにYoしてください.

すると, このブログが更新された時にYoが飛びます.
更新してなくても, たまにYoが飛びます.

Yo

Yoしましょう. 以上です.

Yoボタンの付け方

YoのAPIを取得します. リンク先のサイトで, 色々入力します.
yoapi.justyo.co

少し経つと, メールでAPIキーが送られてきます.
僕の場合は3日かかりました.

APIキーを取得できたら, コマンドライン

curl --data "api_token=送られてきたAPIキー" http://api.justyo.co/yoall/

とすると, 登録したアカウントから全員にYOできます.

応用

適当なタイミングでコマンドを実行することで, Yoが飛ばせます.
サーバーでの計算が終わったらYoするようにすれば, 研究が捗るかもしれません,
朝5時になったら多数回Yoすることで, 早起きできるでしょう.
巨人が点を取ったらYoするスクリプトも書けそうです.