Wikipedia Formula Search
数式って検索できないから不便だよね…と思って、まぁ既存であるかもしれないんですけど、検索エンジンとか作ってみたかったんで作ってみました。
現段階でもそれなりに遊べる…と思います。主な問題点は以下のようなものだと思います。
- と入力したら の結果も出るようにしたいです。実装するつもりで、方法もだいたい考えてありますが、ちょっとめんどくさそうなのでしてません。
- 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 が偉いおかげだと思います。