totowaとは

totowa(トトワ)は、「ターボジャム」や「著作権法」のような、 気になる単語の意味を大雑把に知るためのサービスです。
昔から何でこんな感じのサイトが無いのか疑問だったので作ってみることにしました。
実装中に自作モジュールによる文検出以外に、画像・動画・商品などから語の意味が分かるようにしたいと考え、そのような機能を付けました。

totowaのうまい使い方

よくわからないことがあったときに、検索エンジンで軽く調べる程度のことならtotowaを使うと良いでしょう。 検索にかかる時間を1/5程度に抑えることができます。

ブラウザの検索フォームにtotowaを追加する

totowaでは、さまざまなブラウザや検索ホームに積極的に対応します。

iGoogleガジェットの追加

検索フォームの下のGoogleボタンを押すと、iGoogleにtotowaガジェットを追加できます。

FireFox2.xやIE7のOpenSearch Plug-inの追加

検索フォームの下の「Add to Firefox2 & IE7」をクリックするか、任意のページで検索プラグインを追加する操作をすると、検索プラグインにtotowaを追加できます。

Operaにtotowaを追加する

Windowas XPにインストールしたOpera 9.2を例にとって、totowaを追加する方法を説明します。
「C:\Documents and Settings\[ユーザー名]\Application Data\Opera\Opera\profile」以下か「C:\Program Files\Opera」以下のsearch.iniに下記の領域に記述してあるような、検索エンジンの設定を記述します。
「Search Engine 32」の32は、search.ini内の数字が連続するように調整してください。「Key=t」のtは他の設定のKeyと重ならないようにしてください。
search.iniを文字コードがUTF-8になるように保存したら、Operaを再起動するとtotowaが検索エンジンのリストに追加されているのでは・・・と思います。

[Search Engine 32]
Name=totowa
URL=http://totowa.seewee.net/index.cgi?f=result&q=%s
Query=
Key=t
Is post=0
Has endseparator=0
Encoding=utf-8
Search Type=0
Verbtext=17063
Position=-1
Nameid=0

技術情報

totowaは独自に作った「語の定義をしていそうな文を探す」モジュールと、Yahoo! 検索APIなどを同時に利用しています。

語の定義をしていそうな文を探すモジュール

このモジュールは、人間が検索エンジンを使って語の定義を探す際に、人間がやりそうな行動や人間がしそうな判断を模倣できないかと思って作りました。作り始めて間もないので、まだまだ精度は悪いです。しかし現状のtotowaでも「Wikipedia」や「はてなキーワード」で言及されていないキーワードについて、定義を知ることができる場合がかなり多いです。今後も精度の改善に努めようと思います。
totowaは、このモジュールを検索エンジンの検索結果に適用することで、語の定義をしていそうな文を抽出します。
具体的な技術として解説するようなことはないですが、形態素解析情報と検索結果におけるキーワードの頻度情報などを使っています。まじめにやると、もう少しノイズを削減できると思っています。

今後導入する技術

研究っぽい定義文抽出、複数文要約

使用しているAPI

totowaは、以下のAPIやや資源を利用しています。
- Yahoo! 検索API
- はてなキーワードAPI

Flash動画を検出する対象サイト

- YouTube
- Ameba Vision
- にこにこ動画
- Yahoo! ビデオキャスト

開発言語

Perlですよ。Perl。

更新履歴

2007年06月18日
- 楽天の検索結果取得にRakuAPIを使っていたが不安定なので、公式APIを叩くように変更した。
2007年06月17日
- 定義文抽出の結果をランキングして、上位20件まで表示するようにした。
- 全体的に結果の数が過多だったので減らしてみた。
2007年06月16日
- ロゴを新しくした。ま、ありかわらずですが。
- 人気キーワードページを一定キーワード数ごとに区切った。
- Wikipedia検索を内部で行なうように仕様変更。
2007年06月09日
- コードの量が増えているのに実は質は最低のままなので、テコ入れを始めた。 - 4日の更新でGoogleに嫌われすぎたので、変更点のうち重要ではない部分は3日と同じにした。 2007年06月07日
- ちょっとリンクの記述を変更した。4日の変更の影響が大きすぎる。やばい。 2007年06月04日
- 検索結果に検索用のリンクを追加した。個人的に欲しかったのです。
- 半透明画像をPNGからGIFに入れ替えた。(IEで透明PNGが無効になるから)
- 検索結果に楽天の検索結果を追加した。
2007年06月02日
- sitemapに異常があったので修正した。
2007年05月31日
- 最近になってPVが急に伸びており元気が出てきたのでドキュメントを更新。
- 使い勝手を向上するために、検索結果の上部に検索リンクを追加した。
- 検索結果の幅を調整した。横800px程度ならスクロールなしで見れるはず。横950以上は適当な感じで。
2007年05月26日
- Firefox2.xとIE7用に検索プラグインをアップロードした。
2007年05月25日
- 主要検索エンジン用にsitemapを出力するようにした。
2007年05月22日
- 原文へのリンクを謎の記号からアイコンに変更した。
2007年05月19日
- 昨日の人気キーワードを各エントリに表示するようにした。
2007年05月18日
- 関連語表示をページ下部に移動。
- クエリが目に付きやすいように強調表示。
- CSSなしで見たときに見出しが分かるようにテンプレートを変更。
2007年05月17日
- 検索結果にログへのリンクを追加。
- 関連語表示の量を少し増加した。。
2007年05月16日
- Lingrにtotowaサポートルームを開設しました。ご意見お願いいたします。
- 2つのYahooカテゴリに登録されました。
2007年05月15日
- 検索ログに検索結果の一部を表示するようにした。
2007年05月10日
- トップページの流行リンクと、結果ページの関連語を自前で得たデータに置き換え。
2007年05月9日
- Yahooのrobots-nocontent属性を導入
2007年05月06日
- クエリログを使った人気エントリページを実装。
2007年05月05日
- インターフェイスのバグを修正。定義文抽出精度の向上。
2007年05月02日
- ありがちな精度を下げるフレーズをフィルタリングするようにした。
2007年05月01日
- トップページのフォームの位置を調整した。低すぎたので。ww
2007年04月30日
- デザインをだいたい決定して、Yahoo! APIのコンテストに応募した。
2007年04月29日
- サービス名を決定してロゴをザックリつくった。APIを利用した情報取得に区切りをつけた。いまはデザインをいじり始めたところ。
2007年04月28日
- Yahoo! 検索APIを利用して、検索エンジンの記事以外からクエリの意味が分かるようにした。
2007年04月27日
- 語の定義を調べるモジュールの基本版をつくった。
2007年04月26日
- 別の出そうとしていたアプリを研究に回したので、新しくアプリを作ることにした。

今後のToDO

- モバイル用のインターフェイス
- 類似判定
- 定義部分を強調
- 「バラワン島」みたいなキーワードが全く引っかからない。問題を解決。

今後の発展

- メールを受信して結果を返す。

謝辞

開発にあたって技術面などでサポートしてくださったり、ビリーズブートキャンプを実演してくださった、たつをさんに感謝いたします。ありがとうございます。開発初期に意見をくださったり、おいしいカレー屋さんを教えてくださった、いしたにさんに感謝いたします。ありがとうございます。デザイン面に助言をくださった奥村研の村山さんと中村さんに感謝いたします。ありがとうございます。
関連書籍