Wikipedia Formula Search

http://shinh.skr.jp/wfs/

数式って検索できないから不便だよね…と思って、まぁ既存であるかもしれないんですけど、検索エンジンとか作ってみたかったんで作ってみました。

現段階でもそれなりに遊べる…と思います。主な問題点は以下のようなものだと思います。

  • \sin^2 t + \cos^2 t = 1 と入力したら \sin^2 x + \cos^2 x = 1 の結果も出るようにしたいです。実装するつもりで、方法もだいたい考えてありますが、ちょっとめんどくさそうなのでしてません。
  • ja.wikipedia.org からしか検索できません。とりあえず現状 DB がバカでかくなってるのがまず問題です。すぐ小さくできると思ってますので、小さくしたら en.wikipedia.org とかも取り込んでみたいな、と。あと私個人の目的としては quant-ph をローカルででも取り込みたいなと思ってます。
  • \langle が < でも出る、 \iint が \int でも出る、などがあると良いです。
  • できれば意味的に同じ数式を出したい。単純な移行くらいは処理できるといいですね…
  • Firefox でしか見てないので他のブラウザでどうなるやら。

実装を簡単に紹介。眠いのでコードはまた今度。

  • wikipedia のアーカイブ(xml)から tex 部分を抽出。
  • 数式を簡略化する。空白を削除するとか、 \sum_{n=0}^\infty を \sum にするとか、見た目をいじる系統の命令を無視したりとか。
  • この段階で \frac{1}{n} \sum_n x とかが ["\frac", "1", "n", "\sum", "x"] などという配列になってます。
  • これを三つ以上の組み合わせを作っては QDBM に登録。 "\frac1n", "1n\sum", ... という感じ。(これがいいかげんすぎるから DB がバカでかい)
  • 検索は入力された文字列を同じ方式で簡略化して、 QDBM に問いあわせるだけ。

もし意見などあればいただけると嬉しいです。あれが出ないぞ!なんかもぜひ。ほどほどにマジメに作ろうかなーと思ってます。思ってるだけかもしれませんし、まぁ似たもの見つけたらやめる気がしますが。

あとまぁ、なんか割とすぐ (適当に2日くらい) できたのは QDBM が偉いおかげだと思います。

http://qdbm.sourceforge.net/

なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h