2015年2月14日土曜日

Raspberry Pi セットアップメモ

Raspbian のインストール

zip ファイルを落としてきて以下のコマンドで SD カードに書きこみ。
imgファイルのパスと disk の名前は環境依存なので適宜読み替えて下さい。

$ sudo dd bs=1m if="./2013-12-20-wheezy-raspbian.img" of="/dev/rdisk2"

参考 : DOWNLOADS | Raspberry Pi
    : Raspberry Pi に入門してみた。

無線LANの設定

無線で ssh ログインしたいので設定します。
参考 : Raspberry Piの設定【有線LAN(イーサネット)・無線LAN(WiFi)設定】

pip のインストール

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

参考 : いつの間にかpipのインストールが楽になってた件

Mecab のインストール

$ sudo apt-get install mecab libmecab-dev mecab-ipadic

参考 : Raspberry piにMecabとMecab-Rubyをインストール

Python モジュールのインストール

Web API を叩く際に OAuth 認証する必要が有るため requests_oauthlib を、
HTTP リクエストを簡単にやりたいので requests をインスコ。

$ sudo pip install requests requests_oauthlib


共有フォルダの作成

ホストPC上で Sublime text とか使いやすいエディタ使ってプログラム開発したいので。

参考 : Raspberry Piをファイルサーバ(Samba)にしてみた

Hadoop セットアップ

以下のミラーサーバーから wget で取得する。
$ wget http://***
Apache Download Mirrors


2015年2月9日月曜日

適当な文章を生成したいときはマルコフ連鎖を使う

MeCab と Python さえあれば簡単に適当な文章作れてしまうんですね。。。

MeCabとPythonでマルコフ連鎖を書いてみる(改)

データベース変えるだけで簡単にいろんな bot 作れそう!

2015年2月8日日曜日

Python で形態素解析をやってみた


自然言語処理なるものに若干興味をもった!
適当に動かしてみて遊んでみた。

MeCab と辞書のインストールをすればそれなりの言語解析は出来るみたい。
コマンドラインベースじゃなく、今回は Python から叩きたいので、
Python バインディングをインストールしました。

インストール手順は以下がとても詳しかった、
CentOSにmecab-pythonをインストールする


文章から適当な品詞を抜き取ってみたスクリプト


2015年2月7日土曜日

AWS で ssh 接続するときのメモ

AWSにsshで入るときにssh -i うんちゃらかんちゃら
をやるのが面倒な人は ~/.ssh/config を以下のとおりに編集すれば、
$ ssh ec2
でログインできるようになるというメモ。
Host ec2User ec2-userHostName ***.***.***.***Port 22IdentityFile ~/.ssh/hogehoge.pem

Amazon EC2 を立ち上げてみて まず最初にしたこと

Yahoo API を使ってトレンドを bot からつぶやいてみる

Amazon EC2 で Twitter bot を 3分で作った話。 でも紹介しましたが、
前回は bot を作ることに成功した。
次はbotがつぶやく文章を作成したい。
リアルタイムで何か意味のある情報を生成したいので、
外部 Web API を駆使することにする。

今回は Yahoo が提供しているWeb API を使うことにする。
デベロッパーネットワークトップ > ショッピング > カテゴリランキング のAPIで、
json型を返す仕様を選択。
以下のURLでHTTPリクエストするとjson型のレスポンスが来る。
まずはブラウザで軽く確認するとよい。


http://shopping.yahooapis.jp/ShoppingWebService/V1/json/categoryRanking?appid=<取得したアプリケーションID>&category_id=635&sort=-sold

requests ライブラリを使うと鬼の速さで実装できるのでおすすめ。
$ sudo pip install requests でインストールできますね。

取得したjsonを解析する必要があるので以下の流れで実装。

response = requests.get("URL")
if response != 200:
    print "Error!!"
    exit()
jsondata = json.loads(response.text)
jsondata["ResultSet"]["0"]["Result"]["0"]["Name"] # 1位にランクされた製品名
あとは tweet する際のパラメータに打ち込めばtweetできちゃいます。


(番外編)
今までssh接続する際のターミナルとしてcygwinを使ってたけど、json.dumps() で正しく改行されなかったのでTeraTermに切り替え。
# 改行コード直せばいけると思うけどそれもめんどくて。。。
AWSコンソールへの接続 @ TeraTerm


今日はこれにて。

2015年2月6日金曜日

Amazon EC2 で Twitter bot を 3分で作った話。

はい、タイトルまんまです。
実装するまでの流れは以下のとおり。

(1) Amazon EC2 で必要な Python モジュールをインストールする
(2) Twitter API を Python で叩いてみる
(3) crontab の文法を抑えてみる


(1) Amazon EC2 で必要な Python モジュールをインストールする

Amazon EC2 は AWSが提供しているクラウド上でLinux とか実行できる環境のこと。

これを使う理由は大きく 3点
  - 1年間までなら利用無料
  - Web上に情報が潤沢
  - bot動作させるのに定期的に処理を走らせる必要があって、自宅サーバーだと電気代が勿体無い


Twitter API を利用するにあたって、OAuth認証なるものをやる必要があります。
これは自分でて実装したら3分どころじゃ済まなくなるので、既存のモジュールを使います。
Python は pip が無いとインストールがめんどいのでさくっと pip を入れましょう。
ツールのインストールはここが超絶詳しいです。
ipython とか入れておくとマジで神なのでよろしく。

コマンドをザーッと実行すればおkです。
# それすらマンドクセーのでシェルスクリプト用意して置いて欲しいなー, wget して ./hoge.sh で済ませたいなーなんておもいつつ。
Amazon EC2上でPython2.7及び各種ライブラリ環境を整える

pip が入ったら、男は黙って以下を実行。
OAuth認証のライブラリになります。

$ sudo pip install requests_oauthlib



(2) Twitter API を Python で叩いてみる

以下リンクを参照。
Twitter側でアプリの作成、認証キーの取得が必要です。
認証キー受けたらスクリプトにコピペしてください。
Python で Twitter API にアクセス

$ python ~/hoge.py みたいな感じで試しに実行してみて、 Hello world が出てたらおk。


(3) crontab の文法を抑えてみる

Linux氏の有能なcronさんを使います。
cronさんはここが詳しいです。
crontabの書き方

* * * * * [実行コマンド]
設定項目は左から「分」「時」「日」「月」「曜日」となっているよーです。
たとえば、1月2日3時4分金曜日につぶやきたいのであれば、

$ crontab -e
$ 4 3 2 1 5 python ~/hoge.py

はい、これで bot 作れます。
あとはつぶやく文字列変えたりすればそれなりのbot氏が無料でできちゃいます。


今日はこれにて。