地平線まで行ってくる。

記録あるいは忘備録。時には検討事項。

手持ちUSB扇風機

 暑くなると扇子とか団扇とかを持ち歩く季節。オフィスの机の上にはUSB扇風機を持ち込む人もちらほらと。書類が汗を吸うとメンドイし、ノートパソコンって熱を持つので手に汗をかく。

 持ち運び用のUSB扇風機が近所のお店でも見かけるようになったので、いいものがないか、探してみた。

 それがこれ、スマホスタンド付き・・・。

 もしかしたら、スマホ冷却作用も持たせられるのか。夏はスマホが熱持って動作が遅くなったり、カメラが起動しなかったりするから、興味あり。

 まだ、ポチってはない。スマホにも風をあてて冷却させることができれば買いかも。ポケモンGo遊んでいる人とか試してないかな。レビュー見てもそういう視点からのものがない。

 様子見かなぁ・・・。

 

 

マルコフ連鎖による文章自動生成 #3 学習させてテスト文章作る。

 分かち書きにした文章が用意出来たら、あとは簡単。といっても、すでにライブラリーがあるからなんですが・・・。 

 

github.com

 

 とりあえず、以下のサイトを見ながら学習&文章を生成してみます。 

qiita.com

 すでに、分かち書きは出来ているので簡単。

import markovify

# Load file
text_file = open("input.txt", "r")
text = text_file.read()

# Build model
text_model = markovify.Text(parsed_text, state_size=2)

# Output
sentence = text_model.make_short_sentence(140)
print(''.join(sentence.split()))


 とりあえず、何かの文章は出来た。

 

 これで動く目途がついた。モデルでの連鎖数をどうするのか、はたまた、もっと大きな辞書を学習させてみたい、と次のステップに進むのであった。

 

 つづく

 

 

bwgift.hatenadiary.jp

 

 

 

 

 

 

 

SanDisk SDカード128GB が安い・・・。

  並行輸入ものだがSanDiskで1850円(2019/5/31現在)。これは欲しいなぁ。

 

 

 ところがもっと気になったのは「よく一緒に購入されている商品」が容量がことなるもの。

 不思議な買い方だ。今一つ理解できない(笑)

 

f:id:bwgift:20190531214742p:plain

Amazonに・・・

 

ColaboratoryでGoogle Driveに一時退避

 Colaboratory で作業をしていると得られたデータを退避させる必要がある。

 大抵は、GoogleDriveでどうにかなる。

 お約束を唱える。

#Google Driveをマウント

from google.colab import drive
drive.mount('/content/drive')

google_drive_dir = 'drive/'

  大抵は作業フォルダー毎zipで固めて

!cp /content/hogehoge.zip "/content/drive/My Drive/temp/"

  とかでコピー。

 

 あまり多くはないかもしれないけれども、makeしてinstallするような場合は、makeしたあと、make installする前の状態でzipで固めてGoogle Driveに退避。次回からzipをコピーしてきて回答&make installを唱える。

 ちょっとした時間の節約にはなる。

 GoogleDriveの容量オーバーには注意。

 GoogleDriveもフォルダ毎に容量を制限できる機能とか、外部からはアクセスできるフォルダを認証コードで限定できるとか、実装してほしい。こういう実験にも安心して使いたい。

 

 と、Colaboratoryを使うとみんなやってるはずですよねぇ・・・。

 

マルコフ連鎖による文章自動生成 #2 文字列を分かち書き

 ツイートをひたすら収集して600MBくらいのテキストデータが得られました。行数カウントすると、1,965,620 の文を収集できました。どの程度の学習データがあればいいのか分からない。

 

分かち書きとデータ分類

 さて、得られた文章の前処理を進めます。

 単語単位に文章を分解します。せっかく、応答文で集めたデータなので、将来的にそのまま流用できるようにする。

 というわけで、MeCabを使って分かち書きと質問文と返答文を分けて保存の作業を行う。

 こちらのサイトを参考にして、ファイル名とかを適宜変更します。

qiita.com

 少ないデータを使って動作を確認し、あとは一気に処理をさせるだけ。

 でも、ふと困ったことが・・・Colaboratoryだと大量のデータをいちいちアップロードしたりダウンロードしたりするのは、時間も手間もかかる。

 そこで・・・Google Driveをマウントしてみることにした。

 

 つづく

 

 今回の記事は以下の流れの続きです。

bwgift.hatenadiary.jp

bwgift.hatenadiary.jp

 

洗濯物にサーキュレーター

  部屋干しでの洗濯物には風を当てとかないと、乾きが悪い。そんな季節がやってきた。冬は暖房を入れるからまだましだが、5月から6月が特にだめ。乾かないし、匂いもなんだか生乾きの匂いがしてくる。

 そこで、サーキュレータ。

 やっぱり、全然違う。

 

 洗濯物や熱こもりには首振りじゃなくても大丈夫。

 

  だけど首振りタイプもそんなに変わらない。

 

 たぶん、上記2つが安い。

マルコフ連鎖による文章自動生成 #1 とりあえずデータ集め

高度なチャットボットは無理だけど・・・

 pythonのお勉強としてchatbotを作ってみようと思い立った。いろいろとGoogleって見るといろいろある。ディープラーニングだけでもいろんな手法もあるし、どこから取り付いて良いのかわからない。TensolFlowのSeq2aeqモデルとかいい勉強になりどうだけれども難しそう。実際、そのまんま動かそうとすると環境構築だけで苦労した上にエラーの解決ができなかった。

 マルコフ連鎖であれば、markvify を使うとコードも理解しやすそう。マルコフ連鎖による文章自動生成に挑戦しました。その文章をツイートするところまでできました。

 そこでメモ代わりに書き留めます。

 

使った環境(マシンというか)

 ColaboratoryとメインPCでJupyter lab、借りているVPSを駆使することにしました。本当は駆使するというより、環境を持ち歩けないので仕方なく・・・です。

 

何はともあれ元データ

 まずは、文章集め。データが多ければ多いほどいいだろう。そこで、参考にしたのは、こちら。

 

qiita.com

 

 まずは、Colaboratoryで動作を確認。

!pip install requests requests_oauthlib

!pip install emoji

 くらいで、あとは引数を直接与える様にするくらい。 

args[1] = '私' # jupyter上で実行するとき

  これで無事に動作。

 収集できた文章も応答になっているので、なかなか良い感じ。URLや絵文字も削除できている。収集ペースも大体分かったので、これならサーバーに設定しても破綻しそうにない。

 ということで、VPS(CentOS)で収集を開始。そのまま1週間ほど放置して大量の会話データを収集すると600MBくらいに育ってました・・・。

 

 つづく。

 

Anaconda windows でMeCab

 日本語の処理には必須の分かち書きMeCabを使ってやるのが定番の様だ。Juman++というのもあるようだけれども、今日のところはMeCabのインストールにチャレンジ・・・。

 と言っても下記のサイトの通りでばっちりでした。

qiita.com

 

  ところが、UTF-8の文字列を取り扱うとエラー連発。困ったなぁ・・・。と思っていたら、デフォルトがCP932らしい。いちいち明示的にファイル取り扱うのが無難かなぁ。どこかで一発で宣言できれば便利なんだけれども。

qiita.com

 

 

スマホクリップ

  車載ホルダーって固定方法が難しい。加工までしちゃったり、強力両面テープなんて使ったら後悔しかない。

 クリップ式だと車だとびよんびよんしそうな感じ。

 

 とは言え、こんな感じならしっかりしている印象。サンバイザーにつけると視界を妨げ過ぎるから駄目。でも、荷物とかにクリップつけて固定したりでも十分。ブレーキかけて落ち込んだりしないだけでもOK。

 ドライブレコーダー代わりにもなりそう。 

  と、とりあえず試してみようっと。

Colaboratory でブラウザが高負荷に・・・

 ColaboratoryはPythonのお勉強にぴったり。そこでWikipediaのデータを持ってきて見よう見まねで整形処理に挑戦。

 だが、しかし。

 処理項目毎にメッセージを出すようにしたら、すごい勢いでログが出る。すると、非力な我がX230はCPU使用率が100%に張り付きブラウザは画面の更新もままならず、たたタブを閉じるのみ。

 90分経ってセッション停止するまで待つしか・・・。

 こんな落とし穴があるとは。

 というか、いきなり大量処理は止めましょう。

 

 検索しても、回避方法はないし、リダイレクトしてファイルに残すのも、なんとなく、本来の使い方と違う感じもしなくもない。

 

 失敗例でした。