スキップしてメイン コンテンツに移動

投稿

8月, 2009の投稿を表示しています

MeCabと辞書のインストールメモ

Mac OS Xで。辞書は、naist-jdilc, はてなキーワード、Wikipediaのタイトルのを使います。

MeCabをtar ballからインストールする。ここからダウンロードする。http://sourceforge.net/projects/mecab/files/
<<<
tar zxvf mecab-0.98pre3.tar.gz
cd mecab-0.98pre3
../configure
make
sudo make install
>>>

辞書 naist-jdic を入れる。
<<<
curl -O http://iij.dl.sourceforge.jp/naist-jdic/40865/mecab-naist-jdic-0.6.1-20090630.tar.gz
tar zxvf mecab-naist-jdic-0.6.1-20090630.tar.gz
cd mecab-naist-jdic-0.6.1-20090630
../configure --with-charset=utf8
make
sudo make
sudo make install
>>>

辞書を設定する。
<<<
sudo jed /usr/local/etc/mecabrc
dicdir = /usr/local/lib/mecab/dic/naist-jdic/
>>>

はてなキーワードを入手する。
<<<
wget http://d.hatena.ne.jp/images/keyword/keywordlist_furigana.csv -O hatena.txt
emacs createDict.py
>>>

http://deepneko.dyndns.org/kokotech/2009/06/mecabwikipedia.html より引用。ありがとうございます。
<<<
import sys
import re

year = re.compile("[0-9]{4}")

ng = [chr(i) for i in range(0,32)]

def main():
for x in sys.stdin:
if re.search(year…

Twitterで自動フォロー返しするよ、ただしRで

「protected なひと」と、「発言数が100回以下のひと(SPAMアカウント対策)」は自動でフォローされませんよー。

twitteRには Twitter API の friendship methods まわりが実装されていないので、curl で直接API叩いちゃってます。ただ、RCurlでPOSTメソッドでアクセスする方法がよくわからないので、curl -d を system からコールしてます。やりかた知っているひとがいたら教えてください。

あと、userFriends() とか user object な list を返すくせに、こいつがなぜか unlist できない。S4オブジェクトを格納した list は unlist できないとかですかね?

R ムズカシイネ\(^o^)/

<<<
library("twitteR")

# make twitter's session
myuser <- "chii_pc"
mypassword <- "ちょびっツ"
mysession <- initSession(myuser, mypassword)

myfriends <- userFriends(myuser, session=mysession)
myfriends <- unlist(lapply(myfriends, function(x) x@screenName))

myfollowers <- userFollowers(myuser, session=mysession)

addusers <- lapply(myfollowers,
function(myfollower) {
# new friend or not?
if (! any(myfriends == myfollower@screenName) ) {
# protected or not?
if (! myfollower@protected) {
# spam or not?
if (myfollower@statusesCount > 100) {
return(myfollower)
}
}
}
}
)

createFriendship <- function(us…

!元ネタ

みなさん、こんばんは。「アタシだけのヒト」みつかりましたか?[[天丼です|http://ja.wikipedia.org/wiki/%E5%A4%A9%E4%B8%BC#.E3.81.8A.E7.AC.91.E3.81.84.E3.81.AE.E6.A5.AD.E7.95.8C.E7.94.A8.E8.AA.9E.E3.81.A8.E3.81.97.E3.81.A6.E3.81.AE.E5.A4.A9.E4.B8.BC]]。完全に「定番の挨拶」として流行らせようとしてますね。

いや、なかなかみつからないものですね、僕なんかはもうそろそろ探索範囲を広げてみようと考えていますよ。2次元の世界あたりはどうでしょうか? 3次元より狭いので探索空間はぐっと狭くなります、これは良いアイディアです。次元を落すのは高次元のデータ解析の基本ですからね。

さてそもそも「アタシだけのヒト」とはどんなヒト? きっと自分に対して誠実なひとなのではないか? と私は考えました。誠実が服を脱いで歩いていると巷で評判の私の言うことなので、どうかと思いますが、今日はそういうことにして、この問題についてベイズ的に考えてみます。

誠実なヒトは、約束を守るヒトです。アナタからみてアノヒトは
*約束を守る性格
*約束を破る性格
のどちからを取ります。また、アナタは
*約束を守られる
*約束を破られる
のどちらかを体験します。

このとき、アノヒトが「約束を守るひとである、と確信していく 」= 「アタシだけのヒトであると確信していく」様子をベイズの定理とベイズ更新 (bayes updating) を使ってシミュレーションしています。その筋では reputation とか呼ばれている話です。

まず誠実なヒトを定義しましょう。
*誠実: 約束を10回のうち8回まで守る
*不実: 約束を10回のうち3回しか守らない
誠実なヒトでも失敗もありますので8/10ということにします。マザーテレサも「愛したいなら許すことを知れ」的なことを言っていますしね。逆に不実のひととは3/10とします、嫌なやつです。

アタシだけのヒトも定義します。
*確信が0.9以上になったら「アタシだけのヒト」
*確信が0.1以下になったら「アタシだけのヒトじゃない」
このように決断することにします。肝心の確信 (belief) の度合いですが、これは
*P(性格)が事前確率
*P(約束|…

RSS読みこんでTwitterに連投するだけのプログラムを書いた、ただしRで

みなさんおひさしぶりです。「アタシだけのヒト」みつかりましたか? 僕は数年前に、そうだと思った人に逃げられてしまいました、てへっ。それ以来というもの、週末は、ひとりじめの時間に自分へのこほうび! とばかりに仕事やハック、読書に明けたり暮れたりしちゃってます! 贅沢ですね。

ひさしぶりに日記のようなものを書いてしまった。これははずかしいね (キャラかわってね?)。いや、最近はついったーばかりで、ブログを書かなくなりましたねー。

さて、そんなわけで、みんな大好きついったーとRがらみのクイックハックしてみました。自由な時間をすべて自分のために使える独身==帰属==貴族なおいらですが、おとなの夏休みの自由研究ですね。「おとなの」とつくとなんだか微エロな気がしてくるので日本語ってば不思議!

。。。小ネタのためにくだらない前置きを読ませてしまってすみません><

具体的には RSXML でどっかの RSS を parse して twitteR でついったーに連投します。apply family を2つ使うだけの簡単なお仕事でした! 試しに書いたスクリプトをさらしておきますね。

自動的についったーに投稿するプログラムをボットと呼びますが、これはボットではありません。なぜなら、「この子がロボット三原則に縛られることのないようにしたかった」からです!(元ネタしらないひとごめんなさい

http://twitter.com/chii_pc

<<<
library("twitteR")
library("XML")

# tweet id database for redundancy check
posted_ids.file <- '/home/itoshi/Projects/chii_pc/posted_ids.rdat'
if ( file.exists(posted_ids.file) ) {
load(posted_ids.file)
} else {
posted_ids <- 0
save(posted_ids, file=posted_ids.file)
}

# make twitter's session
myuser <- "chii_pc"
mypassword &l…