ラベル Python の投稿を表示しています。 すべての投稿を表示
ラベル Python の投稿を表示しています。 すべての投稿を表示

2012年6月24日日曜日

Twitterの気圧ボットを作ったよ。

気圧ボットを作って欲しいとお願いされたので、作った。

@kiatsu_bot

最初は気圧をつぶやいて意味があるのかわからなかったんだけど、
気圧と気分や体調に関連がある、という話を聞いて興味が湧いたので作ってみた。


つぶやく内容は以下の内容。

気象庁から当日の朝7時の東京の気圧と湿度を取得して、8時につぶやく。
前日と比較して、それぞれの差も入れてる。

他にも気温とかの情報もいれて欲しいということだけど、まずはこちらでリリース。
一周間の気圧の変動を線グラフで見れたりするといいかなと思ったり。

動作環境は、Google App Engine。
言語はPython。
制作時間は6時間くらい。休日の午前中2回で作成。
ほんとにつぶやくだけの実装でフォロー返しとかなし。

これで、過去日発売CDボット朝のリレーボットに続き、3つ目のボット。

2011年6月19日日曜日

朝のリレーTwitterボットを作ったよ!

@morning_relay

世界の都市の日の出の時間につぶやく

名前でわかる通り、詩人の谷川俊太郎さんの「朝のリレー」に影響されて作りました。有名な「カムチャッカの若者が」という詩ですね。小学校くらいの教科書に載っていた記憶が鮮明に残ってます。

つぶやくタイミングは朝がリレーされた、都市が日の出を迎えたときです。
今登録している都市は、世界1574都市になります。すべての都市をつぶやいても数が多すぎてわからないので、その中から一日10都市をつぶやくようにしてます。

東の都市から、徐々に西の都市へ日の出が移動していくのが感じられると思います。


現地の公用語で「おはよう」

つぶやく内容は、現地の時刻での日の出の時間、国名、都市名、それと現地の公用語で「おはよう」の言葉です。実際の内容は下の画像の内容になります。

下のブルガリア語の例からもわかると思いますが、見る環境によっては「おはよう」部分は文字化けすることがあります。タイ語などはPCでは見れるけど、AndroidのTweetDeckだと文字化けしてしまうなどあるみたいです。どのように発音するのがわかればさらにいいんですけどね。

公用語というのはあくまで基本です。「おはよう」に関してはすべて手作業で国ごとに、Wikipediaで公用語を調べて翻訳して登録しています。公用語より英語の方が普及率が高いと英語にしてるかもしれません。Google翻訳で翻訳しているので、Google翻訳で翻訳できない言語は対象外です。

まだまだ、登録している「おはよう」も少ないので随時追加していきます。「おはよう」がない場合は、何も表示されません。


地図で確認出来る

それぞれのつぶやきに緯度経度の情報を付加しているので、地図を確認できるクライアントであればすぐにどこで日の出が起こっているかわかります。知らない都市でもすぐにわかるのがいいところですかね。

ズームの指定ができないようなので、もっと大きな範囲で見たいのに詳細に表示されてしまうのが難点でしょうか。改善方法があれば直したいポイントです。


その他

フォローをすると24時間以内にフォローを返します。
※2012/06/24 追記。
自動フォロー返しの動作を止めました。

今回の説明はボットの概要の説明だけなので、機会があればどうやって作ってるかとかも書けるといいですね。
利用しているものだけ羅列しておきます。
Python
Google App Engine
BeautifulSoup
EarthTool
Google Maps API WebService
こんな感じですかね。

アイコンは、イスタンブールのアジアサイドからヨーロッパサイドへ渡るときにマルマラ海から見た、夕日です。

2011年3月21日月曜日

Graphvizで短歌を視覚化してみた

久しぶりの休みかつ三連休だけど、電車で出かけたりするのはどうも気が乗らない。自転車で行ける範囲じゃないと、なんとなく不安な気がして、結局遠くまでは出かけなかった。

時間があったので、かつてから試してみたかった短歌の視覚化を試してみた。

やったことは以下のこと。

1. 石川啄木の『悲しき玩具』を青空文庫から取得
2. 短歌を日本語形態素解析YahooAPIで解析して、Graphvizのフォーマットに変換
3. Graphvizでグラフ出力

詳細は以下。

1. 石川啄木の『悲しき玩具』を青空文庫から取得

青空文庫から、テキストファイル(ルビ入り)のファイルを取得した。
XHTMLファイルの中身も見たけども、簡単にルビを取り除くならテキストファイルの方が簡単そうだったのでこちらを選択した。ルビは正規表現にて削除して短歌だけを取り出せるようにした。

2. 短歌を日本語形態素解析YahooAPIで解析して、Graphvizのフォーマットに変換

手順1で取得した短歌をYahooAPIで構文解析した。
日本語形態素解析とは「日本語文を形態素に分割し、品詞、読みがなの付与、統計情報を取得できる機能」。
MeCabもインストールしてみたけど、MeCabの結果はテキストで帰ってくるようだった。YahooAPIでは、結果がXMLで取得でき、BeautifulSoupで簡単に処理できたので、YahooAPIを利用した。Pythonから直接Graphvizを利用する方法も調べたんだけど断念して、Graphvizのフォーマットに合わせたファイルを出力するようにした。

3. Graphvizでグラフ出力

Graphvizというグラフ視覚化ソフトで手順2までで生成したファイルをグラフ化した。
これはもう、ファイルを読み込ませて画像を出力させるだけ。

実際には『悲しき玩具』のすべての短歌をグラフ化してるんだけど、サンプルとして以下の2つのみをアップ。
思っていたより、大した結果を得られなかったので全部載せる必要もないかと。

ある日、ふと、やまひを忘れ、牛の啼く真似をしてみぬ、――妻子の留守に。

あの頃はよく嘘を言ひき。平気にてよく嘘を言ひき。汗が出づるかな。

以上の実装は、初のPythonでの実装。
Python使いやすい。
でも自分にはPyDevを使ってIDEで開発しないとダメだなってわかった。