ぴょこりんブログ

裏垢です。

空いた枠埋めるのに用意した小ネタ集。

この記事は、カレーのち ぴょこりんクラスタ Advent Calendar 2018のために書きました。

(お詫びその1)
怪文章を執筆予定でしたが、既に強力な怪文章枠の方が確認されており、執筆者が自信喪失したため、別のネタで行かせてもらいます。

(お詫びその2)
怪文章執筆と聞いて『退職記事では?』との噂が一部で生じましたが、弊を退職する/したという事実はございません。弊での物語はもうちっとだけ続くんじゃ。

 
 
今回の記事の中でいえば上記お詫びが一番怪文章っぽいですね。

今日は雑に小ネタ集です。枠が余ってたら小出しにしようと思ってたんだけれど、今回は参加者多くて必要なくなりました。ありがたいことです。

長いので目次をつけました。

目次

ツールを使ってみる話

どっちもpythonのモジュールです。

その1 形態素解析ツールNagisa

形態素解析、つまり文章を単語ごとに分割して品詞を付与する系タスクです。そういえばマギレコに百江なぎささんが実装されましたね。

やったこと

インストール

 pip install nagisa
  • pipで一発で入る形態素解析ツールを僕はこれまで見たことがない。すごい。

具体的な操作

大体こんな感じ。

import nagisa  
text  = 'なぎさはチーズが食べたかっただけなのです!(CV:阿澄佳奈)'  
words = nagisa.tagging(text)  
print(words)  

で結果が、

なぎ/名詞 さ/接尾辞 は/助詞 チーズ/名詞 が/助詞 食べ/動詞 たかっ/助動詞 た/助動詞 だけ/助詞 な/助動詞 の/助詞 です/助動詞 !/補助記号 (/補助記号 CV/名詞 :/補助記号 阿澄/名詞 佳奈/名詞 )/補助記号

なぎさと阿澄佳奈は1単語単語だよね。

tagger_nn = nagisa.Tagger(single_word_list=['なぎさ', '阿澄佳奈'])
print(tagger_nn.tagging(text))

で、

なぎさ/名詞 は/助詞 チーズ/名詞 が/助詞 食べ/動詞 たかっ/助動詞 た/助動詞 だけ/助詞 な/助動詞 の/助詞 です/助動詞 !/補助記号 (/補助記号 CV/英単語 :/補助記号 阿澄佳奈/英単語 )/補助記号

阿澄佳奈は英単語、ここテストに出ますよ (なぎさは名詞で推定できてるから不思議)。冗談はともかくとして、単語登録が簡単なのはすごく便利なんだけれど、かなり遅くなった気がする(そもそもディープなので他の形態素解析ツールより遅い)。

ここでは試してないけど、URLや顔文字も割とちゃんと分割してくれる。

その2 グラフ描画ツール plotly

  • D3.jsベースのグラフ描写
  • 様々な言語で可能。Jupyter上で描画可能。
  • オンライン版(Web上にアップされてそれを見る的な、privateなグラフは有償)とオフライン版がある
  • まぁ普段遣いはオフライン版かなぁ

    やったこと

    インストール

pip install plotly
  • グラフ描写用のモジュールがpipで一発でインストール出来ても特に驚くことはない。

具体的な操作

僕はmatplotlib以外は使えないんだ頼む。
⇒plotlyのiplot_mlpにぶち込むだけ!

from matplotlib import pyplot as plt  
x=[1, 2, 3, 4]  
y=[4, 3, 2, 1]  
fig=plt.figure()  
plt.plot(x,y,alpha=0.3)  
plt.plot(x,y,'o')# ここまでmatplotlib  
import plotly  
plotly.offline.init_notebook_mode(connected=True)  
plotly.offline.iplot_mpl(fig) #えっ  

比較画像(↓)。上がmatplotlibでやったグラフ、下がplotly。見た目上はそんな変わらないんだけど、plotlyはnotebook上でインタラクティブにぐいぐい動かせます。

f:id:cappsLk:20181217224747p:plain f:id:cappsLk:20181217224838p:plain

ちなみにplotlyのデメリットとして、githubにnotebookアップロードしたところ、画像(matplotlib)はプレビューで表示されるけれど、plotlyはダメだったといったところがあります。

notebook以外で使う場合はhtml吐き出してくれる。これでD3ベースの可視化が出来て、それをテンプレにガンガン分析向けWebアプリ的な諸々のプロトタイプつくれるかなーとか期待してたんだけど、ソースの可読性あんまり良くない感じでモニョっている。

データを触ってみた話

その1 バイクから取ったデータの可視化

この前のでデータをちゃんと取ってみたという話。

google mapでGPS可視化

f:id:cappsLk:20181216221704p:plain 位置情報はセンシティブ(?)なので前後を削っています。浜町でスイーツ(????)を購入、新宿に向かったのを表すプロットです。Google map、今年の春か夏頃からAPI keyが必須になったりめんどくさくなったなぁという感じ。

ちなみにlatとlng (つまりGPS)、それぞれ2つずつカラムがあって、多分スマホと車両内部両方で取ってんのかなぁという感じ。内容パッと見そんなに差がなかった。 国内メーカなので日本測地系だったりしないかなぁと期待してたんだけど流石にそんなことはないっぽかった。

エンジン冷却液温度と速度のプロット

『スピードを出すと熱くなるのではー?』なんて思うのではないでしょうか。 f:id:cappsLk:20181216231134p:plain

2つのプロットの単位が違うので本当は左右で別目盛りしてあげるべきなんですがめんどくさいので (別目盛りは良いんだけど今度はLegendがめんどくさくなるmatplotlibあるある)。

細かくて見にくいですが、スピードを出すとむしろ温度が下がるトレンドになっていることがわかります。僕はバイクの専門家ではないので、これが一般的な傾向かはわかりませんが、走ることにより空冷されているものと思われます。一方で停止しているとだんだん熱くなっていくんですね。夏とか高速道路だったらまた傾向が変わるかもしれません。

大体80度〜100度なのが普通とどこかで聞いたことがあるので、まぁ普通なのかなぁという気がしましたが、冬でも100度行くというのはちょっと気になりますね。夏も計測したいところです。ちなみに上の地図と走ったとこ違うんでご了承ください。

まぁその他諸々のデータ取れていてニヤニヤできるんですが、ちょっと記事にまとめきるにも時間がかかるのでこんなところで。

その2 心拍数から蘇る思い出

概要

hayadarumaの記事とややネタがかぶってしまうのだけれど、今年Galaxy gear S3 Classicを買ったので、起きてる間は心拍数を取り続けている(ちょいちょい付け忘れることもあるが)。このデータを取得する的なことをやった。

取るまでの手順

Galaxy gearと連携してAndroid端末側のデータログ可視化とかをしてくれるS Healthの基本的な機能で眺めるだけでも良いのだが、手元でデータを触りたいこともある。エクスポート機能などもあるが、貧弱で、1日単位にサマられた情報な上に3ヶ月までしか手に入らなかった。一方で、ビューワーを遡るともっと古いデータも見れる。僕はコレが欲しいんだよ、という気持ちになる。

S Healthの設定から個人データをダウンロードという項目が選べる。ここからSamsungが収集した僕のすべての個人情報をダウンロードできる。個人情報を全部開示、消去をユーザ側でできる的なやつ、そういえば最近は当たり前になってきましたよね。これを使えば過去の心拍数を参照できそう。

ファイル構造は難しくなく、com.samsung.health.heart_rateというフォルダの中にたっぷりjsonが入っていた。時間情報がunix標準のintのアレで、おまけにミリ秒単位だったので、pythonなら1000で割ってdatetime.fromtimestampにぶち込んでやれば良い。

実際に可視化したもの

個人的に眺めたい日があった。今年一番過酷だった日、コミケ・・・1日で広島までバイクで行った日だ。 コレを可視化してみた。午前6時出発で広島県に到達したのが夕方という過酷なツーリングであった。 f:id:cappsLk:20181217012134p:plain

青い線が心拍数の時間推移を表しており、その上に乗っているオレンジの点はとあるアカウントがその時間に画像付ツイートをことを表している。 そのほとんどはサービスエリアで、駿河湾、浜松、岡崎、岡崎(おやつ画像)、神土山、西宮名塩、瀬戸、最後だけ例外でホテル付近を散歩しているときのものだ。 なんとなく1時間or2時間ごとに休憩をとってるのかなぁという感じに見える。

午前11時頃の岡崎での急激なドロップが何者なのか気になるが、基本画像付ツイの周辺はばらつきが多めな気がする。バイクからおりてその辺を歩いたり、食事を取ったりしているからだろう。

ちなみに午後五時半あたりから少し心拍数があがっているが、このタイミングで昔住んでいた地域のバイクでフラフラしたりカメラで写真を取ったりしていたタイミング。心拍数が微妙に上がるのもなんとなくわかる。

あと、午後7時過ぎから8時にかけてのまっすぐな直線はログが取れてないということで、これは温泉などに入っており、時計を外している。これの前後の少しずつ下がっていく傾向は多分温泉に向かってバイクに乗っている時間。

なんとなく心拍数のログを眺めるだけでもいろいろな記憶が蘇ってくる。

まとめ

集められるデータ、ツール、どんどん増えてどんどんニヤニヤ出来ますね!労働してる場合じゃねぇ!!