2016年9月15日木曜日

sudo easy_install tweepyに手こずった話

最近PythonでTwitter APIを組んでいる。
しかしどうせなら使い慣れたマシンでなく、新たに入手したMBAからもコードを書けるようにしようと思った。

先に書いてしまうとsudoを付け忘れただけで30分ほど無為に過ごしてしまった。
だがこの話を呟いたところ思いの外反響があったので、備忘録として書き記すこととする。

■前提

*Mac book Air
*OS10.10.5

PythonでAPIを組むためには、tweepyというライブラリが必要である。
→解決方法:ターミナルから入手する。

■途中経過

macには標準でPython2.7が入っている。
そのため今回はライブラリのインストールを行うことから始まった。

 sudo easy_install tweepy

tweepyを手に入れるには上記コマンドをターミナルから打ち込みさえすれば良い。
しかしここで一つエラーが出た。

ImportError: No module named pip.req

pip.reqというモジュールが入っていないから、tweepyもインポートできませんよと叱られているわけです。
そこでこちらのサイトを参考にして以下のコマンドを打ち込んだ。

curl -kL https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python

このコマンドでも失敗した。
はてどうやってpipをインストールすればよいかなと考えたところで、sudoを付け忘れていることに気づいた。

■対処法

curl -kL https://raw.github.com/pypa/pip/master/contrib/get-pip.py | sudo python

これで問題なくpipがインストールされて、tweepyも冒頭のコマンドから無事にインストールすることができた。

結果として、他マシンで動かしていたAPIのコードをMBAのターミナル上からも動かすことができた。


Pythonで体験する深層学習の勉強会(第一回 8/25)に行ってきた

ブログを書こう書こうと思っていたもののnotアウトプット期間が長いとネタだけが溜まり、「何書くかな〜」と考えてしまう日々が続いた。
で、↑の結果になっているのでこれを書いている(2016.9.14 23:10)時点で獲得票が一番高い「雑な勉強に関するアウトプット」にする。表題と違うのはご愛嬌でお願いしたい。

あとありがたいことに最近色々なジャンルのフォロワーさんが増えたので、合間に注釈を入れます。
これには2点理由があり、一つは平易な物言いをすることにより自分の理解をより深める目的(まあそもそも私自身浅識ではありますが)と、最後にまとめて解説するスタイルが個人的にあまり好きではないからです。
業界ルールより読みやすさを大事にしたい人生。

■Pythonで体験する深層学習の勉強会(第一回 8/25)に行ってきた



興味を持ったきっかけ:単純に周りで機械学習(深層学習)流行っているよね、という話が出ていたから。あと自然言語処理の研究室であったこともあり、その真髄も改めて勉強したいと思ったという理由がある。さらに言えばPythonをもう少しやりたいなと思ったので。

◯機械学習:あることに関する大量のデータを機械に覚えさせ、それらのデータから何かしらのパターン(規則性)を見出し、その結果から将来のパターンを予測させ(アウトプットす)ることです。適用例として、金融市場の動向を予測させることや病気のパターンを見出すといったことに使われています。

◯自然言語処理:PCに扱わせる機械言語に対して、人間が会話や文章に用いるのは自然言語といいます。それら自然言語をPCに扱わせるときの処理のことを言います。

○なんで機械学習が流行ってるの?:理由は色々あるけど主なものとして人口減少しているので、今まで人間がやっていた作業を機械にやらせて楽したいじゃない。というところだと思います。あと世の中の技術動向を描くハイプサイクルを読むのがいいと思います。

○Python:パイソンと読みます。先に書いた自然言語処理を行う上で、よく使われるプログラミング言語の一つです。

詳細な内容に関しては勉強会のページに講義映像とかスライドとかあるのでそちらを参考にした方がいいと思います。
以下、いち参加者視点からのアウトプット


▼数学力の必要さ
数学を最近やっていなかったので、高校程度の積分を忘れていて悲しかった。そこで時間を取られるのは非常に悔しい。

○なぜ数学が必要なのか簡単に書くと、ただでさえ莫大なデータ量から正解に近い一つの予測を導くために、何かしらの関数式を使う必要があります。(極端に言えば100個のデータからパターンを導きだして1にするためには、関数を用いることが有効です。)
そうなると関数式の解き方はもちろん、関数式の作り方も知る必要があります。

▼技術が先か、人間が先か
まずこの話の前提として、フォロワーさんに本講演の発表者&&著作者の浅川先生とお知り合いの人がいたので、事前に色々と教えてもらっていました。
浅川先生は文系出身であり(先生は文学博士)、そのため、技術に対する興味が理系出身とは別の視野をお持ちでおもしろいと聞いていたが、まさしくその通りでした。

浅川先生は講義中に「画像解析が進めば、そのうちバーコードがいらなくなる。だってそうでしょう、機械が商品を見ただけで判別できて値段がわかるんだから。これは流通ならび産業界に大きな革命をもたらします」といった話をしてくれたのですが、私は「なるほどねえ」と感心しました。
技術が何のために使われるのか、何をするために技術を促進させるのか、ここは大きな違いがあると思うんですが、いかがでしょう?
個人的には人間(生活)主体で、技術が副次的についてくる話の持っていき方はわかりやすくて好きです。見習いたいと思いました。

ちなみにこの話を他の人にもしたところ、「いやいや将来的には商品にチップを埋め込み、自動クレジット引き落としで人類は財布を持つ煩わしさから解放されるというのもあるよ」という他の技術の話に発展した。それも気になるところ。


▼懇親会はピザだった
おいしかった。宅配ピザを食べたのは久々だったんですが,耳までふわふわで感動した。
私は他の参加者とはあまり話さなかった方でしたが、やはり皆機械学習とか新しい分野に興味があるのだなあとしみじみ思いました。

あと先生とも話す時間が取れました。フォロワーさんのツテがあったことにより、先生のヒューマン的な話もたくさん聞くことができました。
勉強に対する意欲を分けてもらったと思います。



他にも色々書くことはあるんでしょうが、とりあえず久々のブログなのでここらでご勘弁を。
あまり技術的なことが書けなかったので、次回を書く上での反省とします。