hitode909の日記

趣味はマリンスポーツですの日記です

ヒューリスティックにキーワードを決めてググるVimperatorプラグイン

見ているページのよく分からない言葉で検索したい,ということがよくある.
よく分からない言葉を自分で打ちなおすのは疲れるし,マウスで選択するのもめんどくさいので,自動的に抽出したキーワードを提示して,そこから選ぶだけで済む,というVimperatorプラグインを作った.


http://gyazo.com/79b0a20a118afb99a18a2b6e4c7b7747.png
なにかページを見ていて,:heuristicsearchすると,ページ内のキーワードが自動的に出て,そこからいろいろ選んで,検索できる.
動画を撮って下にアップロードした.
2010-02-14_1507 - hitode909's library

仕組み

まず,extract-content-javascriptを使って,いま見ているページの本文を抽出する.
次に,抽出した本文をYahooのキーフレーズ抽出APIに渡して,キーワードと,そのスコアを取得する.
これで取得したキーワードとスコアを検索キーワードの候補として出して,ユーザーがそこから選んでいくだけで検索できる,という仕組み.よくわからない言葉はたいていその記事のキーフレーズ的なもののはずなので,わりとうまくいく.

利用

GitHubに置いたので,Vimperatorから読み込むようにする.

その他にいくつか依存関係がある.
利用するには,_libly.jsと,はてなブックマークFirefox拡張と,Yahoo!デベロッパーネットワークのアプリケーションIDが必要.
_libly.jsは,Vimperatorプラグイン用の便利なライブラリ.CodeReposで配布されている.

はてブFirefox拡張は,中に含まれているextract-content-javascriptを勝手に呼び出して使うために必要.
ここからインストールできる.


Yahoo!デベロッパーネットワークのアプリケーションIDは,キーフレーズ抽出APIを使うために必要.
ここから取得できる.

最初にコマンドを実行したときにプロンプトが出るので,そこに入力する.パスワードはnsLoginManagerが管理する.以前は.vimperatorrcに書かないといけなかったのだけど,id:hogelogさんが直してくださった.
アプリケーションIDの設定に失敗したときは,:setyahooappidすると,再びダイアログが出るので,いつでも設定できる.


これで,:heuristicsearchで検索しまくれるようになるのだけど,毎回何文字も打つのは疲れる.
スペースまで入力すると補完が出るので,mapするときはまでmapするようにすると調子が良い.

map ` :heuristicsearch<Space>


コマンドを実行する前にマウスでページ内の文字を選択しておくことで,キーワードを抽出する範囲を指定できる.
提示されたキーワードの候補が気に入らないときに手動で検索したいキーワードを含む段落を指定したり,特定の範囲だけを集中的に検索したり,単語の区切りでぴったり選択するのが難しいが,だいたいなら選択できる,という場合などに役立つ.


いろんなものにタダ乗りしたわりに,ちゃんと動いているし,便利なものができて,Web2.0っぽい.