アルゴリズムを売り買いするサービスAlgorithmiaについて
Algorithmiaについて
アルゴリズムを公開して、APIの利用頻度でポイントを交換するサービスをみつけた。
Algorithmia - Open Marketplace for Algorithms
Algorithmia紹介記事
このサイトにアルゴリズムを登録した発明者は、そのアルゴリズムの利用者から料金を受取ることができる。Algorithmiaではアルゴリズムの募集にあたって懸賞金システムを用意している。ソフトウェアのデベロッパーが特定の機能を果たすアルゴリズムを募集すると、その分野に詳しい研究者が、料金を取り決めた上で、スクラッチで開発を始めるという仕組みだ(Algorithmia―研究者とスタートアップをつなぐユニークなアルゴリズムのマーケットプレイス)
現在公開されているアルゴリズム
現時点(2015.03.14)で公開されているアルゴリズムは500ほど。
機械学習やScrayping技術、WebAPI等が見受けられる。
カテゴリ
公開されているアルゴリズムのカテゴリ
カテゴリは以上のようになっていて、最近主流のデータマイニング関連の技術が多いように感じる。
公開アルゴリズムを使ってみる
このAlgorithmiaの特徴として、公開されているアルゴリズムはWeb上のAlgorithmia専用コンソールにて実際に利用して試すことができる。
今回は試しにGetLinksというアルゴリズムを使ってみる。名前からおそらく、インプットしたURL上にあるリンクを一覧表示してくれるのだろう。そして、このAlgorithmiaのとても親切な点として、サンプルコードを動かす際にひつようなインプットは各アルゴリズムごとに必ず例として表示されており、返される結果も隣に表示されている!!
従来、このような独自のアルゴリズムや便利ツールのAPIだと、実際に動かす際にインプットをどうしたらよいやら、どうゆう挙動なのかで、迷ってしまい、時間がかかりそうだと見過ごしてしまうことがよくある。しかしAlgorithmiaでは、すべての公開ページにインプットとアウトプットのサンプルが同じフォーマットで表示されており、とても理解が容易につくられている。(これなら英語が苦手な方でも、プログラムさえできればとても強い味方になるだろう)
Algorithmia専用コンソール画面
こちらがAlgorithmia専用コンソールである。こちらに、サンプルにあったようにURLを入力してみる。
ここで注意しないといけないのは、URL を””で閉じなければエラーになる。きちんとは読んでいないが、Algorithmiaは入出力がJSONとされているようだ。(もし間違いであればご指摘して頂きたい)。通常であれば、アルゴリズムは分野や使い方により、入出力が様々であり、他人が作ったものを利用するには、関数間の入出力の修正が面倒であったが、その点はフォーマットを統一することで、軽減されそうだ。
試しにfififactory.comのリンクを収集してみよう。先ほどのコンソールに”http://fififacotory.com/”と入力する。
APIの使用例
すると、このようなリンクの一覧が返ってくる。
[ “http://cnt.affiliate.fc2.com/cgi-bin/click.cgi?aff_userid=290526&aff_siteid=280992&aff_shopid=1″, “http://fififactory.com/?cat=3″, “http://fififactory.com/?cat=2″, “http://fififactory.com/?page_id=243″, “http://hikaru-sakihama.fififactory.com/hikaru-wp/wp/wp-login.php”, “https://github.com/”, “http://cnt.affiliate.fc2.com/cgi-bin/click.cgi?aff_userid=290526&aff_siteid=280992&aff_shopid=156″, “https://www.tumblr.com/blog/fifi-peacebeat”, “http://fififactory.com/?cat=5″, “http://shinsekai.fififactory.com/”, “http://fififactory.com/?cat=10″, “http://fififactory.com/”, “http://weddingmovie2013.web.fc2.com/”, “http://fififactory.com/?cat=16″, “http://最強じゃんけん.com”, “http://hope-is-dream.hatenablog.com/”, “http://kairaweb.com/”, “http://orangehouse098.com/blog/wp-login.php” ]
このHPのトップに張られているリンクが表示されているのがわかる。これだけ。。なんて簡単なんだ。。
コードを確認する
Algorithmiaでは、ユーザが公開しているAPIに関してはコードが見れる。一度見ておこう。
ページ左下にあるViewSourceで確認できる。
Algrithmia: ソースコード確認画面
このAPIはJAVAで書かれているのがわかります。(僕はJavaはわからないので内容については割愛します)
実際にアルゴリズムを登録する
Algorithmiaにサービス登録すると、アルゴリズムを作って登録できます。こういうのはやってみないとわからない。とりあえずアルゴリズムを登録してみます。
上部ツールバーにある+Add Algorithmから登録できます。こちらを押すと、登録するアルゴリズムの設定を決めるモーダルができてきます。
アルゴリズムの名前と、Algorithmia内で登録したAPIを呼び出すためのURIを決めます。
記述する言語の選択。
今のところ、java、python, scalaの3種類だけしか利用できないみたいです。ここらへんが参入障壁なのでしょうか。
最後にライセンスを設定して終了になります。
アルゴリズムの実装用エディタ
Algorithmiaにはブラウザエディタがついております。これもAlgorithmiaの魅力の一つともいえます。
立ち上げた初めはAlgorithmiaのHelloコードが書かれています。
これはコンソールに入力された文字列にHelloを加えて出力するだけのコードです。
成功すると、”Hello <入力文字列>”が返ってきます。
ここで注意しておく点は二つあります。
1. コンパイルすること
このサンプルコードも、もしなにも変更していない状態であっても、ひとまずコンパイルを押してないと動かないので注意。(ここであきらめないで)
2. 入力を””で囲むこと。
すぐにエラーメッセージが消えてなくなるのですが、””で囲まないと「JSONがなんとか。。。」とエラーがでるので、落ち着いて。
公開する
とりあえず最後まで使ってみたいので、適当にコードを変更して公開までしたいと思います。
HelloコードをFiFiに変更しました。(つまらなくて申し訳がないですが、これで許してください)
ツールバーからPublishを選択します。(事前に保存と、コンパイルは済ましておいてください)
公開設定
すると、公開範囲を選択でき。下では、アルゴリズムの利用料金を設定できます。
こちらを読んでみると、設定したロイヤリティの70%が、作成者にもらえるようです。
まとめ
Algorithmiaを一通り使ってみました。アルゴリズムの登録と利用が、このような整備された環境でできるのはとてもありがたいことです。また、研究等で、個人的に作って利用しているアルゴリズムは研究者の数の何倍もマシンの中に眠っていると思うので、そのようなコードを一般公開して、知識とお金を交換するというのは面白いかもしれませんし、一種のモチベーションにもなるかもしれません。今後の発展に期待です。
[Anaconda] Pythonで数値解析環境構築 | Anacondaでvirtualenv(仮想環境)を使う方法 | FiFiFactory Official Page
[BeautifulSoup] Pythonでスクレイピングする | youtube動画のヒット数を調べる | FiFiFactory Official Page
[Python] テキストデータをPython標準ライブラリでパースする方法 | FiFiFactory Official Page