GAE/jからYahooAPIの形態素解析を利用してみた

(20110108追記)この記事は過去のブログからインポートした物です!

概要

形態素解析って何?」という方は、今ならウェールズ氏のどや顔も楽しめる、以下を参考にどうぞ。
形態素解析 - Wikipedia

 さて、現在、twitterbotをGAE/j上で作っている訳ですが、賢い応答をさせる為には文章の形態素解析を行う事が必要不可欠です。
 しかし、問題はそれをどう行うかです。自分で書くには、言語学の勉強から始めないといけませんし、ライブラリを使おうにもGAE/jにアップするにはサイズが大きすぎます。(もっとも、自力でライブラリを分割された事例もありますが……*1
 何か他の方法は無いかと探しますと、実は有ります。それが、Yahoo!デベロッパーネットワークからWeb APIの形で提供されている、日本語形態素解析です。このサービスは、HTTPでリクエストを受け付け、XML形式で結果を返してくれます。
Yahoo!デベロッパーネットワーク - テキスト解析 - 日本語形態素解析
 一方、GAE/jではHTTP又はHTTPSで外部サイトと通信できる、URL Fetch Java APIが提供されています。
The URL Fetch Java API - Google App Engine - Google Code
 これらを組み合わせる事で、APIを通して別々のサービスが連携して働く、現代的なシステムが組めそうです。

 そういう訳で今回、GAE/jからYahooAPIを呼び出し、返されたXMLを処理して必要な情報を取り出す所までを、実際にやってみました。
 尚今回は、XMLの解析にJDOMを利用しました。こちらも、GAE/jで動かす場合にはほんの一手間必要となるので、合わせて記述します。

続きを読む

GAE/jでservletを定期的に実行して、twitterを検索

(20110108追記)この記事は過去のブログからインポートした物です!

cron.xmlによる自動実行と直接実行の禁止

 GAE/jを利用して、servletを定期的に実行する方法に関するメモ。
 この際、自動実行対象が管理者以外に実行されない様にする事も可能。
 詳しくは以下のGoogle公式ドキュメントで。
 Java 用の cron を使用したスケジュール タスク - Google App Engine - Google Code
 尚、上記公式ドキュメントを見る限り、cronジョブのアップロードには何か特別なコマンドを使う様だが、netBeans6.9.1+GAE pluginの環境*1では、特にそれを意識する必要は無かった。

searchAPIの回数制限とGAE

 twitterの検索に関しては、以前の記事*2を参照。
 twitterのsearchAPIはアクセス元IPアドレスでRateLimitを判定する。しかしどうやら、GAE/jからこれを実行する場合、全てのユーザが同一IPを使用する事になるらしい。結果として、かなり高い頻度でRateLimitオーバーが起こる*3
 一応、twitter側もこの問題は認識しているようで、アクセス可能回数を問い合わせると、一時間あたり20000回という非常に大きな結果が得られる。それでもやはり、RateLimitオーバーは避けられない。
 現在製作中のtwitter botアプリケーションでは、検索結果はそれほど重要視していない為、このまま運用していく事とした。

twitterのAPI制限とtwitter4jでの取得

(20110108追記)この記事は過去のブログからインポートした物です!

概要

 このエントリでは、twitter APIのアクセス回数制限についての情報をまとめている。まず初めに、APIの制限の種類とその回数を示す。続いて、それらの値をtwitter4jから取得する方法についてまとめる。

続きを読む

twitter4jからtwitterの検索APIを利用する

(20110108追記)この記事は過去のブログからインポートした物です!

概要

 今回はtwitter4jを利用して、検索結果の取得を行う。
 まず初めに、検索APIで利用できるオプションについて列挙した。続いて、twitter4jからそれらオプションを利用して検索結果の取得を行った。

続きを読む

twitter4jを利用して認証ユーザ名やタイムラインを取得する

(20110108追記)この記事は過去のブログからインポートした物です!

概要

 今回はtwitter4jを利用して、ユーザ名とタイムライン(以下TL)の取得を行った。
 まず認証ユーザ名の取得に関しては、適切なアクセストークンを取得できていれば、メソッド一つで簡単に取得できる事が確認できた。
 続いて、TLの取得を行った。twitterのTLにはいくつかの種類がある為、まずはその分類を示した。その後、各TLの取得法及び取得時に使用可能なオプションを確認した。

続きを読む

twitter4jを使ったOAuth認証の流れ

(20110108追記)この記事は過去のブログからインポートした物です!

はじめに

 前回の記事*1は、twitter4jのサンプルプログラムをGAE上で動作させるに終わった。
 今回はまず、サンプルプログラム*2を読解することで、OAuth認証の正しい流れを理解する。またその過程で発見した、開発者自身が簡単にOAuth認証を受ける方法についても、簡単に記述する。

(10/25追記)この記事は中盤端折りすぎた感があるので、気が向いたら増強版に差し替えたいと思います(追記ここまで)

続きを読む

GAE/j上でtwitter4jを使ってtwitterAPIを利用する

(20110108追記)この記事は過去のブログからインポートした物です!

はじめに

 今回は、Google App Engine for Java(以下GAE/j)からtwitterAPIを利用して、tweetの投稿を行おうと思う。ただし、偉大なる先人により、GAE/jからでもtwitterAPIを利用できるライブラリが公開されている為、
Twitter4J - A Java library for the Twitter API
 今回はこのライブラリを利用させて頂き、まずはそのサンプルコードをGAEjava上で実行してみる。
 尚、今回の内容を進める間に何度か、ローカルのテスト環境で503エラー(SERVICE_UNAVAILABLE)が発生した。これはプロジェクトの作り直しやPCの再起動などで解決してしまったので、原因不明で再現性無しという、なんとも気持ち悪い結果となってしまった。もしも同じ症状になった方がいましたら、僕に変わって原因を調べて下さい。……え?
 (10/18追記)この503エラーでは、そもそもGAE公式サンプルのゲストブックすら動かない、かなり不思議な状態になっていました。その辺りも含めて、原因の分かる方がいましたら、コメント欄などにご一報下さい(追記ここまで)

続きを読む