2011年11月27日日曜日

ギップルbot開発メモ 1.Yahoo! APIによるクサさ判定機能

ギップルbotのクサさ判定機能の実現のため、Yahoo! APIを久しぶりに利用してみた。

クサイ文章(名言?)とは、以下の条件を満たすものだと勝手に決めた。

条件1.文章中に名詞、助詞・助動詞などがバランスよく出現する

条件2.検索エンジンで対象文章を全文検索しても、ヒット数がそれなりにある


名言は、だいたい「○○は~~である」の形式であると仮定すると、文章中には必ず名詞と、助詞か助動詞が1つずつなければならない。気がする。

というわけで1.について。
まず文章としての体裁を整えていないものは弾くようにしたい。
ここでYahoo! APIの形態素解析を利用した。
まず文章から名詞の合計数(S)、助詞と助動詞の合計数(P)を求める。
そしてS×Pが0の場合、SかPのどちらかが抜けてると判断して、問答無用で0点とする。

また文章の長さ(解析結果から得られる形態素の合計数L)と、Pの数が多ければ多いほど、文章として複雑であると判断し、得点が伸びるようにしたい。

次に2.ついて。
条件1だけでは、得点にばらつきを持たせることが難しく、(精度はともかく)ギップルbotにバラエティに飛んだクサがり方をさせにくい。なので原始的な方法として、文章を全文検索した結果の件数(H)が多いほど、得点が伸びるようにしたい。

以上から、以下の計算式を勝手に決めた。

得点 = √H + √(L × P)

ギップルbotはこの計算式に従ってクサさ判定をすると決めた。

2011年11月20日日曜日

ギップルbot

ちらは「法陣グルグル」のキャラクター「ギップル」を模した
非公式自動Twitter bot「ギップルbot」の解説ページです。
(原作とは一切関係がありません)
アカウントページ → ギップルbot (@gipple_bot)

プログラムによって自動でツイートします。
頻度は8時間に3回程度です。(2011/11/28現在)
また呼びかけ(文頭に@gipple_botを付けたツイート)に対しても反応します。
ツイート内容、反応パターン共に色々と増やしていく予定です。

どうぞ末永くよろしくおねがいいたします。


php5/cornによって自動でtweetさせています。
また、Yahoo APIの検索・形態素解析を利用した「クサさ判定機能」を備えています。


----------------------------------- 主な機能 -----------------------------------


クサさ判定機能
ギップルbot宛に"「」"を含む文章をツイートすると、「」内の文章に対してクサさ判定を行います。

例)
"@gipple_bot 「ただし魔法は尻から出る」" というツイートをすると・・・


こんな形で返信が返ってきます。
「」内の文章から、
1.Yahoo!Japan(検索エンジンはGoogleですが)で全文検索し、ヒットした件数
2.Yahoo形態素解析により、もっともらしい文章となっているか(名詞のみだと×、など)
などによって得点を算出し、点数に応じた反応をします。
注1)返信はリプライではなく、通常形式のツイート(ハッシュタグ#kusasa付き)となります。
注2)あくまでギップルbotが感じたクサさです。思い通りの結果にならないこともありますがご了承ください。

【呼びかけて遊ぶ】
文頭に@gipple_botをつけてツイートすると反応します。
こちらは上記のクサさ判定とは異なり、通常のリプライ形式で反応します。
また特定のパターンのツイートには、特別な反応をします。
どんな反応が返ってくるのか、ぜひ色々と遊んでみてください!

・呼びかけ
「おーい」「ギップルー」「ギップルちゃーん」など、宙に向かって呼びかける感じで

・あいさつ
「おはよう」「おはよ」「おは~」
「こんちは」「こんちわ」「こんにちは」「こんにちわ」「おっす」
「こんばんは」
「おやすみ」などなど

人よばわり
人」「妖怪」「お化け」「モンスター」など

・ふんどしの話題
今のところ、上の人系が含まれていない、「ふんどし」が含まれる文章に対して

・どこにいた(る)の?
「どこに行ってた」「どこにいた」「今どこ?」など

・ウニョール語
「トッピロキー」「ウニョラー」「ウニュ者様」など

・ここは何のお店ですか?
「何の(お)店」「何屋さん」など

・○○出して!
「出して」「ちょうだい」など

・テント張って!
「テント張って」「テントを用意して」など

・その他、ギップルに関係の深い単語など


【自動フォロー返し】
ギップルbotをフォローすると、お礼のコメントとともに自動的にフォローし返します。
(すでにこちらからフォローさせていただいていた方からのフォローに対するお礼はただいま実装中です)


【時間帯によるツイート内容の変更】
朝には朝用の、夜には夜用のつぶやきを用意しています。
また、深夜はギップルbotも寝ているので、発言は控えめです。