[DaReCo] [連想計算]
DaReCoというウエブアプリケーションを作ってみました.
作った動機といいますか、作るまでの経緯は以下のとおりです.
趣味(?)で連想計算エンジンをpythonで実装していました.メモリベースのものやNoSQL(MongoDBやCassandra)ベースのもの、ファイルシステムを永続化機構として利用したものなど、です.
メモリベースの連想計算エンジンに対しそのパフォーマンスと計算の結果が(自分の)感覚に合うかということを検証するために、いろいろなポータルサイトから記事を集めそれを連想計算エンジンにぶちこんでいました.
ここで連想計算エンジンに入力したのが、「A:記事のURL」と「B:記事のタイトルを形態素解析しその結果から連想されるワード」です.連想計算エンジン自体の計算の確認では、ワードのリストを与え(B側)、そのワードのリストから計算される記事を表示(A側)するということでした.
結果としてある一定の条件下では、計算スピードは相当速かったです.メモリベースなのでスピードが出なければ困るのですが.また計算結果もそんなに悪くありませんでした(自分の感覚とたいして違わないという程度ですが・・・).
確認は「ビッグデータ」とか「python」とか自分の興味のある言葉でやっていたのですが、出力される結果(記事のリスト)がけっこう自分の興味に刺さるような結果で、「この記事あとで読まなきゃ」と思うことが多かったのです.
ここまではターミナル上での確認ですから、自分の興味のある記事で、今日更新された記事にどういうものがあるかを見るためにはわざわざ自宅のターミナルでパフォーマンス確認用のスクリプトをたたかなければなりません.
それだったら、どこでもチェックできるようにウエブアプリにしてしまおうと、考えたわけです.
Googleで同じようなことができるかと思ったのですが、興味のあるワードで検索しても最新の記事を表示してはくれません.例えば「python」と入力してもpythonの公式サイトとかドキュメントページしか上位には表示してくれませんよね.
Googleアラートなら同じような最新のニュースを教えてくれるかもしれませんが、連想計算ではないのでpythonというワードに引っかかるページは教えてくれますが、pythonという空間に近い空間の記事は表示してくれません.
そんな感じでGoogleだとできないなぁと感じたのも、自分でアプリにしてみようと思った最大の要因でしょうか.
単純にpythonと入力して連想計算させて記事を出力させてもpythonというワードがタイトルに含まれるものだけを出力するということではありません.pythonが属する意味的?な空間に属する記事も出力します.pythonですからLL(Lightweight Language、軽量プログラミング言語)周りの記事も出力してくれるのです.たとえばRubyとかPerlとかjavascriptとかあるいはそういった言語に関する記事を.
連想計算ですのでpythonというワードが含まれる記事が上位に来ますが、pythonというワードがタイトルに含まれない記事でも、pythonという意味空間に属するあるいは近い記事は出力してくれるのです.
そういったLL周りの情報・動向も知っておきたいでしすしね.
この感覚が個人的にとても気に入っています.
とにかく自分がほしいと思った機能をもつアプリケーションを作ってみたら、個人的にとても楽しく活用できるページができてしまった、そんな感じです.