日記
タグ自動抽出API (13:46)Edit

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が俺のブラウザには登録されていた。実行すると現在見ているページのキーワード群を表示します。いろんなところで実行してみると結構楽しい。

なるほど

編集中のエントリをその場で解析させられる可能性がある

tDiary: category_to_tagプラグイン(2)より

という用途をイメージしていたんですか。確かにそれは便利そう。

というわけで、

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は途中でぶった切って解析しちゃいます。

一応フォームの例も

text:

Published At2005-10-11 00:00Updated At2005-10-11 00:00