2010年02月21日

bot勉強会用アカウント

botの勉強会用アカウントをつくってみたので公開してみる。
http://twitter.com/8bot

botのアナウンス兼ですが。
お気軽にリプライください。(私も達人ではありませんが、質問とかはある程度調べてからにしてね)
posted by 8bit at 04:51| Comment(0) | TrackBack(0) | Twitterbot

2010年02月10日

こちらで配布しているプログラムのサポートについて<<重要>>

〈重要〉
こちらで配布しているプログラムについて、関係のない方のブログや掲示板に質問をされている方が居るようですが、迷惑になりますのでおやめください。

また、こちらのプログラムはプログラム初心者が作っている為環境によっては動かない場合もあります。
あまり鵜呑みにせず「こういうやり方もあるよ」程度に捉えてご自由に改良して使ってください。
posted by 8bit at 09:51| Comment(0) | TrackBack(0) | Twitterbot

2009年12月05日

さくらインターネットでの開発環境構築まとめ+マルコフ連鎖

TwitterでHOTなマルコフ連鎖について勉強してみました。

マルコフ連鎖については、こちらについて詳しく書かれています。

コードサンプルも置いてあるのですが、
今回は実際に私が自分で組んだものをさくらインターネットで動かす一通りの作業を簡単なテキストにしておこうと思います。

まず、マルコフ連鎖をするにはもととなる文章を単語ごとに分ける「形態素解析」が必要になります。
形態素解析を行うエンジンは色々ありますが、今回はMeCabを使ってみました。
MeCab

さくらインターネットはユーザーからの評価の高い優秀なサーバーなので、
さくらインターネットにコード開発環境を作るテキストはたくさんあります。
スタンダード以上からSSHが使えるのですが、ついでにSSHの簡単な使い方も書いておきます。

SSHとは
サーバーを遠隔操作出来るプログラムです。
自宅サーバーなどでコンソール上でコマンドを打つとperlが直接実行出来たりしますが、
同じことをさくらインターネットで出来るわけですね。
php+web-cronなどの方はweb上からアクセスして実行するのであまり縁がないと思いますが、便利です。

とりあえずSSHクライアント
PuTTY

起動するとメニューっぽいのが色々ありますが、とりあえず繋ぐサーバーを入力する画面が最初に出てきます。
さくらインターネットの場合、***.sakura.ne.jpと入力するとつなげます。
繋ぐとコンソール画面(コマンドプロンプト)が表示され、ユーザー名とパスワードを要求されるので、入力します。
するとサーバーのルートにつながります。
あとはディレクトリ移動したりプログラムのテストしたりなどなど出来ます。
また、Twitterはutf8で書かれているのでutf8環境でテストする場合は、
SSHの設定をutf8にしておかないと「print」などを使った時化けるので気を付けましょう。
Puttyでデフォルトの文字コードをUTF-8に設定する方法

perlならcpanも導入しておくと便利です。
さくらインターネットサーバでのCPAN導入を完全に手順化して見た。

CPANとは
perlのモジュールとかソースコードが
コンソールを通して簡単にインストール出来るシステムです。

MeCabを導入するためのテキストも先人が書かれているようです。
さくらインターネットでMeCabをインストールする2009年版

続きはマルコフ連鎖の仕組みをちょっと書きます。

続きを読む
posted by 8bit at 09:33| Comment(0) | TrackBack(0) | Twitterbot

2009年10月17日

こちらで配布しているスクリプトのサポートについて

こちらで配布しているスクリプトについて、質問が多すぎるので
現在回答させていただいた質問でサポートを停止します。

サンプルスクリプトに関する質問ならともかく、
php構文に関する質問(if文や正規表現など)はこちらのサンプルスクリプトとは無関係ですので、
各自自己責任で調べてください。
また、レンタルサーバー独自の仕様も同様です。

スクリプトが動かない人は、まずスクリプトをカスタマイズする前に、アカウント名とパスワードの欄のみを設定して、pha::home様で配布されているスクリプトと同じ構造でServices_Twitterを設置し、
スクリプトを手動で動かして、もしエラーが出るようならレンタルサーバーの仕様を疑ってみてください。
「safe_mode」を使っていない、かつphp4.3以上のサーバーです。

わからないからといって私が回答しても、この時点で躓いて解決できないとおそらくまた次も躓いてしまうと思います。
質問はどうしてもわからなかった時の最終手段にしたほうがいいです。
posted by 8bit at 11:28| Comment(1) | TrackBack(0) | Twitterbot

2009年10月09日

php構文の勉強をしてみよう

Twitterbotを運営する時、大雑把に分けて二種類の違いがあります。
自分でプログラムを書くか、書かないかです。

昔はbot makerなどの便利なサイトはなかったので、
必然的にプログラムを使わないとTwitterbotは作れませんでしたが、
最近は台詞だけ書いてあとはサーバーが勝手に動かしてくれるような
サービスが出てきたので、コードを書けない人でもbot製作が出来るようになりました。
bot製作はとても身近なものになったと思います。

では、わざわざbotを作るのに面倒なスクリプトなんて覚えなくてもいい?
スクリプトを覚えると何が違うのか?その点について考察してみようと思います。

続きを読む
posted by 8bit at 06:37| Comment(0) | TrackBack(0) | Twitterbot

2009年10月05日

好感度を持つTwitterbotサンプルスクリプト

うちのTwitterbotの好感度を簡易的なものにしたサンプルスクリプトを書いてみました。

love.zip

ファイルにユーザのIDを記憶し、ファイルにあるユーザIDの相手には違う反応を取るサンプルです。
love.phpとlovefile.txtを同梱しています。
lovefile.txtは最初にダミーテキストを書いているので、
わからない人以外は編集しないでください。
また、lovefile.txtのパーミッションは666にしてください。
posted by 8bit at 13:05| Comment(1) | TrackBack(0) | Twitterbot

正規表現講座 - POST内容から発言を引用するには

今回はbotを作るにあたって少しphpの構文に触れてみようと思います。

まず、先日公開したサンプルスクリプトの構造から説明します。

APIからTLを取得して変数に代入(Twitterのログを取得して一つの箱の中に詰める)

変数の中身を一個ずつ展開して独立したサブルーチン処理に以降(箱の中のログをひとつずつ取り出して作業台に持っていく)

メインルーチンからサブルーチンにTLで取得した値を受け渡し(作業台に持ってきたログを種類ごとに分ける)

POST内容が入っている変数にパターンマッチングをかけ特定のワードがないか調べる(分けたログの中の「POST内容」に特定の単語(例:@botname+こんにちは)があるかどうか調べる)

特定のワードがあれば返信処理(見つかれば返信する)

まぁこんな感じになっています。
このサンプルはリプライに反応するように作っていますが、
取得するAPIはfriend_timeline(botのタイムライン)なので
リプライ以外も取得します。
なので、まず自分へのリプライかどうか区別するために「@ボットの名前」があるかどうか調べるわけですね。
ということは、ボットの名前がなかった場合に別の処理を施せば、
通常POSTにも反応できるというわけです。

続きを読む
posted by 8bit at 11:13| Comment(2) | TrackBack(0) | Twitterbot

Twitterbotの特定の単語に反応してリプライ反応するサンプルスクリプト ver.2

前回アップしたスクリプトが、リプライワードがなかった場合にサブルーチンから抜ける処理を忘れていたので(リプライできるPOSTがなかったときに空リプライしてしまう)
それを修正しました。
ついでにRTに反応させないようにしてみました。

reply2.zip
posted by 8bit at 10:07| Comment(19) | TrackBack(0) | Twitterbot

2009年10月01日

Twitterbotの特定の単語に反応してリプライ反応するサンプルスクリプト

最近検索すると初心者でもわかりやすいbot作成解説記事が沢山増えてきました。
その中でもこちらの記事は特に初心者に優しく簡単です。
プログラミングができなくても作れるTwitter botの作り方
サンプルスクリプトが3つ公開されています。

定期的にランダムに独り言を呟くbot、
定期的に記述した順に独り言を呟くbot、
リプライに反応してランダムに反応するbot。
どれも設定箇所を修正してアップロードするだけなのでとても簡単です。

しかし、こちらのbotには特定の単語に反応して特定の反応をするbotは作れません。
どんな発言にも1つのリストから台詞を選んでPOSTするのみです。
キャラクターbotを作りたい方はそれでは物足りないですよね。

そこで、phpの練習も兼ね特定の単語に反応して特定の台詞をPOSTするbotのサンプルを作ってみました。
正規表現を使うので少々難易度は上がりますが、こちらにサンプルを置いてみます。
reply.zip
プログラムを更新したのでこちらの記事のをお使いください

一応pha::home様のスクリプトを参考にして作りました。
設置などは元サイト様と同じようにして頂ければ動きます。
デフォルトではリプライの「こんにちは」と通常POSTの「眠い」だけに反応するようになっていますが、
ここの処理をコピーすればいくらでも増やすことが出来ます。
また、初心者練習用ということでこのパターンマッチに正規表現は使っていませんが、
便利なので是非こちらや「php 正規表現」などとGoogle検索して調べてみてください。

続きを読む
posted by 8bit at 10:12| Comment(17) | TrackBack(0) | Twitterbot