2006-05-06
_ 何もしない休みほど早く感じる休みはない
9 日間の休みがあった GW も明日が最終日.出かけたのは京都に行ったくらい.あとは犬とたわむれたり,プログラムを書いてみたり.実にのんびりとした 1 週間でした.
何もせずにのんびりと過ごした休日は気がつけば半分が過ぎ,そしてもう終わり.不調気味だった体調もかなり回復した感じで,週明けからまた仕事再開だ.
2006-05-05
_ Bulkfeeds API 形態素解析 + 特徴語抽出を利用したタグ候補取得プラグイン
タグ候補生成プラグインを作ってなかなか面白かったので,他にも日本語に対応した形態素解析 API がないかなぁと探してみたら,Bulkfeeds API で「形態素解析 + 特徴語抽出」が提供されていたので早速対応させてみることにしました.
Bulkfeeds API は XML 形式でレスポンスが返ってくるということなので,XML のパーサーとしてREXML を利用してみることにしてみました.
あとは CGI Proxy の tagapi.rb の JSON 形式の結果の返し方がなんとなくきれいでなかったので,少し変更.ishinao さんのとこは結果がタブ区切りの文字列で返ってくるので,そのまま返して JavaScript でタブをキーに文字列分割していたのですが,JSON は配列での定義も可能なので,サーバ側でタグ候補文字列を配列にして返すように変更しました.その他,例外処理まわりの変更や,いくつかの処理を関数として切り出しました.

ということで,新しいバージョンでは,タグ候補を抽出するサービスを MM/Memo か Bulkfeeds のAPI のどちらかを選択できるようになっています.最新版は下記リンクからダウンロードしてください.
tag-generator.rb(Disk障害でなくなってしまいました…)tagapi.rb(Disk障害でなくなってしまいました…)
2006-05-04
_ タグ自動抽出 API を利用したタグ候補の取得プラグイン
tDiary 2.1.4 にアップデートした際に category_to_tag プラグインを導入したことで,これまでのカテゴリ単位の分け方とは違った感じになりました.でも,タグ付けになっても結局カテゴリーのときと変わらないようなつけ方をしていてはあんまし意味がないなぁとは思いつつも.何つけようかと悩むのもなんだかなぁと思ってしまったり.
で,日記を書いたときにその文章を解析して,タグ候補をいくつかだしてくれればいいのにと思って調べてみると,MM/Memo にタグ自動抽出の API があるということなので,これを利用しない手はないと.テキストを POST してやれば結果は返ってくるということなので,Ajax や JSON なんかの勉強がてらプラグインを作ってみた.
とりあえず Ajax と JSON って単語はよく目にするものの,実際に自分で書いたことがなかったので.いろいろサンプルコードをなんかをながめながらちょこちょこと作ってみて,だいたいの感じがつかめた.サンプルの HTML と JavaScript で一通りの動きを確認できたので,さっそくプラグインつくりにとりかかる.
とりあえず MM/Memo のAPI を直接呼び出すことが難しそうなので,CGI Proxy 的なものを作成.xmlHttpRequest では呼び出し元と呼び出し先のドメインが一致していないと動作しないために,この CGI Proxy を通すことで,ページ遷移なしで xmlHttpRequest を利用してタグ候補を取得します.最初は単純に中継させるだけでいいかとも思っていたのですが,ここで,少しデータを加工して JSON 形式のデータを返すようにしてみました(っていうかやってみたかっただけ)

Tag 自動生成ボタンをクリックすると,ローディングイメージが表示され,日記本文の内容をスクリプト経由で POST し,タグ候補が一覧されます.内部サーバエラーやタイムアウト時は赤字で何かメッセージを出します.
取得したデータはタグ候補として日記フォーム本文下部に表示され,タグとして記述したいものをクリックすると,セクション先頭に挿入されます.とりあえずは今のところは Wiki スタイルにのみ対応しています.
タグ自動抽出 API にはフィルターオプションがあり,すでに MM/Memo に登録されているキーワードのみを対象としたタグ候補を抽出することも可能です.
一応動作イメージとしてサンプルページを作ってみました.
で,プラグインの設置方法です.
- プラグインのダウンロード
tag-generator.rb,tagapi.rb,ajaxload.gif(Disk障害でなくなってしまいました)
- ファイルの配置
- tag_generator.rb はプラグインのディレクトリへ.tagapi.rb と ajaxload.gifは index.rb と同じ場所に設置してください.
これでたぶん動くはず.今日のこの日記のタグ付けは,上記のプラグインを利用してつけてみました.もちろん生成されたタグ以外で自分でタグをつけることもできます.
ishinao さんのとこのサーバは過負荷気味ということなので,あまりがんがんリクエストを投げるのはアレですが,日記のお供にご利用いただければと思います.
_ TrackBack [http://www.smallstyle.com/20060510.html#p01 SmallStyle タグ候..]