2009年10月アーカイブ

Support tweeting - TwitterのWebページをちょっと使いやすくするGreasemonkeyスクリプト

| コメント(1) | トラックバック(1) | Support tweeting - TwitterのWebページをちょっと使いやすくするGreasemonkeyスクリプト | この記事をはてなブックマークに登録 このエントリのはてなブックマーク数

2009y10m24d_221134494.jpg

TwitterのWebページをちょっと使いやすくするGreasemonkeyスクリプトを書いてみました。

下記の機能があります。

  • リプライ(@)時にfriend名を自動補完
  • DM(D)時にfriend名を自動補完
  • ReTweet(RT)用リンクをtimelineの各tweetに追加(2009/11/01)

まだまだ機能は少ないですが、ハッシュタグの管理とかいろいろプチ便利になりそうな機能を追加していこうと思います。追加される機能は自動でアップデートされていきますのでお楽しみにお待ちください。

インストール

Greasemonkeyインストール済みのFirefoxで、下記リンクからインストールしてください。

Support tweeting(twitter_support_tweeting.user.js)をインストール

以下、詳細な使い方があります。

ec834b7e7924147ed5b0e0b04eeca412.png

まぁ、ブラウザの機能として付いてるかもしれないですが、試作・習作ということで作ってみました。 もちろんインストールが可能ですが、閲覧ページのキーワードインデックスを作るため、体感で分かるくらいFirefoxの動作が遅くなります。ご注意ください。

Search on the History(SorH) - search_on_the_history.user.js

機能

  • about:blankページで履歴検索ができます
  • http://から始まるページだけ検索可能です

Greasemonkeyスクリプト中でやってること

ページを閲覧すると、内蔵するはてなの公開した本文抽出Javascriptライブラリを利用してページの本文を抽出します。

Yahoo! JAPANの日本語形態素解析APIに本文を投げ、名詞だけを抽出します。

ページのURLをMD5でハッシュ化した値をキーに、タイトルや本文をGM_setValueで保存します。 併せて、上記形態素解析されたキーワードもMD5ハッシュ値をキーに、出現するページへのポインタやキーワードの出現回数と併せてGM_setValueで保存します。 この2つのキー・バリュー型のDBが検索用インデックスになります。

ちなみに、Greasemonkeyスクリプトから使えるGM_setValueとGM_getValueをキー・バリュー型DBとして使いやすくするライブラリを自作して使ってます。

about:blankページでは、簡単なフォームを用意して、履歴検索のためのキーワード入力を受け付けます。

入力されたキーワードを先ほどの検索用インデックスに問い合わせ、得られたページのリストをスコア順にソートして表示します。

このときのページスコアは、キーワードDBとページDBを元にtf-idf(文書内のキーワード種類数で正規化)を用いて計算しています。tf-idfはスクリプトの191行目くらいです。

まとめ

とりあえず、公開されているいろんなライブラリやWebAPIを利用すると、Greasemonkeyスクリプト(Javascript)だけでもおれおれ検索エンジンが作れてしまいました。

ただ、Gathering(ページをインデックス化する)時にブラウザが固まるほど処理が重たくなってしまっているので、パフォーマンスを改善することが次に必要かと思ってます。

また、Searching(検索)時も今は数十~数百ページからの検索なので比較的高速ですが、保持するページ数が増えたときにもパフォーマンスが悪化しそうな気がしています。

最後に

まとめの後になりましたが、このGreasemonkeyスクリプトでは下記のライブラリやWebAPIを利用させていただいています。本当にありがとうございます。

カテゴリ

  • サービス

あわせてなかのひとのはてな

あわせて読みたい
この日記のはてなブックマーク数
OpenID対応しています OpenIDについて

このアーカイブについて

このページには、2009年10月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2009年7月です。

次のアーカイブは2009年11月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。