2005-10-11 [長年日記]
_ タグ自動抽出API (13:46)
tDiary: category_to_tagプラグイン より、
つーか、MM/Memoのタグ抽出もAPIになってればいいのに(とかいう)。
入力フォームで呼んでいるJavaScriptのソースを見れば分かるけど、もともとタグ抽出処理はAPIに切り出してあって、こんな感じで呼べるんだけど、最近うちのサーバーはカフカ気味なんで、朝起きると巨大な虫に変わっているんです。じゃなくて、過負荷気味なんでサービスとして提供できるほど安定稼働できるかどうか微妙なんで公開していませんでした。が、使ってみたい人は適当に使ってもかまいません。
http://1470.net/api/mmutil.php?cmd=getwords;url=[URLエンコードしたURL文字列]
をコールすると、EUC-JPな文字列をタブ文字区切りで最大20個返します。文字コード判別が腐るとバイナリ列を返す恐れあり。
どうやって文字列リストを作り出しているのかというと、渡されたURLのドキュメントをHTTP GETして、HTMLタグを削除して、ChaSenで形態素解析して、名詞系文字列のみのリストを作って、適当に重み付け(出現位置と出現頻度をベースにテキトー)してポイントを与え、そのトップ20を返す、といった感じ。大した精度じゃないけど、入力補助用にはそれなりに使えます。
ただ、この手の機能ならば、はてなブックマークが内部でもっているキーワードデータを使った方が良さそうだよなー。ブックマーク登録済みのURLならば、
http://b.hatena.ne.jp/entry/[URLエンコードしたURL文字列]
から、<a class="keyword">な文字列を抽出すればそれっぽいものが取得できるだろうけど、未登録ページはそれじゃあ取れないんだよな。それこそはてなにAPIとして提供してもらえたりするとうれしそう? だれかはてなアイディアにでも登録してください。
bookmarklet
ふと見たら、
なんてbookmarkletが俺のブラウザには登録されていた。実行すると現在見ているページのキーワード群を表示します。いろんなところで実行してみると結構楽しい。
なるほど
編集中のエントリをその場で解析させられる可能性がある
という用途をイメージしていたんですか。確かにそれは便利そう。
というわけで、
http://1470.net/api/mmutil.php?cmd=getwords;charset=[文字コード:euc-jp/utf-8/sjis];text=[キーワード抽出するテキスト]
をコールすると、テキストからキーワード抽出できるようにしてみました。charsetを省略するとeuc-jpと見なします。GETリクエストでもPOSTリクエストでも動作するんで、ある程度長文の場合は(少なくともtextパラメータは)POSTリクエスト(application/x-www-form-urlencoded)を使った方が確実です。ちなみに、あまり長いtextは途中でぶった切って解析しちゃいます。
一応フォームの例も
昨日の続き。 こういうプラグインがすぐに書けるのも、categoryプラグインが単純なカテゴライズ用ではなく、複数のラベルを付ける仕様(まさしくタギング)になっていたことが大きい。リスペクトは忘れないようにしないとな。以前にも書いたが、Hikiにもタギングの機能があ..
「テキストからキーワード抽出」の方もBookmarkletを作ってみました。便利な人には便利、と思います。
[http://tdiary.ishinao.net/20051011.html#p01:title] [http://www.tagyu.com/:title=Tagyu] いいなあと思っていたら、ishinao さんのところでタグ抽出 API はすでにありますよ、との事だったので、さっそくいじってみることに。 とりあえず、API を叩く為の Ruby バイン..
はてなブックマークの仕様変更(タグが5個まで、コメント100文字まで)に対応したほか、タグ候補表示選択機能を実装しました。


