タグ

ブックマーク / llamerada.hatenadiary.org (14)

  • ニコニコ動画は動画検索におけるGoogleになり得るか? - llameradaの日記

    ニコニコ動画は動画検索におけるGoogleになり得ると思う。GoogleがWebページ検索において革命的であったのは、重要なのはページそのもの内容ではなく、Webページに対するアノテーション、つまり、リンクであることに気が付いた点である。そして、ニコニコ動画のコメントは、Webページのリンクと同じ性質を持っている。 ニコニコ動画のコメントとWebページのリンクで類似している点は次の3点である。 アノテーションの内容は不定形のテキスト(リンクの場合はアンカーテキスト)である。その為、キーワード検索で利用出来る。 人気のあるコンテンツに対してはアノテーションの数が多い。その為、アノテーション数を人気度の指標に出来る。 アノテーションを作成する動機は自分の楽しみ・利益の為である。その為、アノテーションの数はほっておいても自然に増大する。 これらの3つの特徴をリンクが持つため、Web検索ではページ

    ニコニコ動画は動画検索におけるGoogleになり得るか? - llameradaの日記
    lockcole
    lockcole 2007/03/27
    もう流行言葉じゃなくなったからか,この記事内では使われていないけど,間違いなくこの働きはFolksonomyのパワーの体現じゃないかと思う。あとは検索がどんな風に伸びるか。アノテーションマッシュアップという道も。
  • BlogRanger API を使ってページの関連ブログを表示 - llameradaの日記

    BlogRanger APIを使ってページの関連ブログを表示させてみた。 BlogRanger APIではブログ検索結果をJSONP風のAPIで取得できる。そこで、関連ブログを表示させたいページのキーワードを抽出して、そのキーワードでのブログ検索結果を、事前に用意したテンプレートに埋め込んだ。 キーワード抽出には、tf-idf法や、Web APIを利用する方法があるが、今回はMeCabで形態素解析した結果から、ランダムに1つの名詞を選択することにした。 下記のサービスで動いています。 DOMAIN ERROR コードはこんな感じです。 JavaScriptコード var BlogSearch = Class.create(); BlogSearch.prototype = { initialize: function(keyword){ this.keyword = keyword; th

    BlogRanger API を使ってページの関連ブログを表示 - llameradaの日記
    lockcole
    lockcole 2006/12/21
    ページから抽出したキーワードを渡して関連ブログの情報をJSONPライクの形式で受け取り表示するためのサンプル。
  • Amzakeが使っている3つのWebサービス - llameradaの日記

    Amzakeで使っているWebサービスを紹介する。なお、Amzakeは次のようなサービスである。まず、ブログ記事などのテキストを入力すると、そのテキストに関連する商品が一覧表示される。そこで、気に入った商品をクリックすることで、商品を紹介するアフィリエイトが作れる。使っているWebサービスは次の3つである。 はてなダイアリーキーワード自動リンクAPI http://developer.yahoo.co.jp/search/web/V1/webSearch.html http://www.amazon.co.jp/exec/obidos/subst/associates/join/webservices.html/250-3683369-0905838 まず、「はてなダイアリーキーワード自動リンクAPI」を利用して、入力テキストのキーワードを抽出する。キーワード抽出は結構難しいタスクなのだが

    lockcole
    lockcole 2006/08/07
    はてなダイアリーキーワード抽出API + Yahoo 検索(ヤサゾン参照) + クライアントサイドAWS呼び出し(ma.laさんのテクニック,JSONで情報を得る)の組み合わせで実現。既存の手法を上手にマッシュアップしてる。
  • Amzake - ブログ記事などからAmazon.co.jpのアフィリエイトを半自動生成するツール - llameradaの日記

    ブログ記事などから、Amazon.co.jpのアフィリエイトを簡単に作るツールを作っています。名前はAmzakeといいます。amazon + makeから取りました。 静岡県で賢い借金返済方法を教えます! 使い方は簡単で、ブログ記事などのテキストを入力すると、そのテキストに関連する商品が一覧表示されますので、気になった商品をクリックしていくだけで、商品を紹介するアフィリエイトが作れます。 ブログ記事からアフィリエイトを生成するツールとしては、Amazon Search β3 公開 - drk7jpが有名です。Amazon Searchではシステムが自動的に表示する選びますが、Amzakeでは自分で表示する商品を選べる点が異なります。紹介する商品を自分で選びたいけれど、商品を探し出すのが面倒な方にお勧めです。 今後、Amzakeの仕組みや、使ったテクニックをこのブログで紹介していきたいと思い

    lockcole
    lockcole 2006/08/07
    Amazon Searchとの違い,おすすめ商品を自分で選んでアフィリエイトできるツール。手作業と自動の中間を狙ったサービス。
  • イチローのベーコン指数は4次 - Amazon DVD データベースでのスモールワールドネットワーク - llameradaの日記

    ベーコン指数というのをご存知だろうか?まず、俳優ケビン・ベーコンと共演した俳優のベーコン指数を1次とする。そして、ベーコン指数が1次の俳優と共演した俳優のベーコン指数を2次とする。この操作を繰り返して、俳優のベーコン指数を定義する。すると、殆どの俳優(日人やインド人も含めて)が6次以下のベーコン指数を持つ。このような現象をスモール・ワールド現象と呼び、このようなネットワークをスモールワールドネットワークと呼ぶ。いわゆる「世間は狭い」というやつである。 参考:スモール・ワールド現象 - Wikipedia この現象は中々面白いのだが、簡単に体験できるサービスがなかった。ベーコン指数を求めるサービスはあるのだが、ケビン・ベーコンは日人とあまりなじみがない。 そこで、Amazon.co.jpが持つDVDのデータベースを使って、任意の俳優間で、両者をつなげる俳優の共演関係を求めるサービスを作っ

    イチローのベーコン指数は4次 - Amazon DVD データベースでのスモールワールドネットワーク - llameradaの日記
    lockcole
    lockcole 2006/08/07
    AmazonのDVDデータベースを使ってベーコン指数を算出してみた例。これはおもしろい。
  • 使い捨てWebアプリケーションを作る為の道具としてのRuby on Rails - llameradaの日記

    私のとってRuby on Rails(RoR)は、使い捨てWebアプリケーション(WebApp)を作る為の道具である。ちょうど、Rubyが私にとって使い捨てプログラムを作る為の道具であるように。そして、RoRは使い捨てWebAppを作るのにとても向いている道具だと思う。念の為に言っておくと、別にRoRやRuby格的なアプリケーションに向いていないと主張するつもりはない。単にRoRやRuby格的なアプリケーションを作る機会がないだけである。 何故、RoRが使い捨てWebAppに向くのか?その理由は色々とあるが、一番の理由はやはりAgile(素早い)ということだろう。10分でWebAppが作れるのはやはり魅力的である。 私が使い捨てWebAppを作る目的の大部分は、内部DBのメンテナンス・ツールとしてである。内部DBのメンテナンス・ツールのGUIが欲しいが、ちゃんとしたツールを作るのが

    使い捨てWebアプリケーションを作る為の道具としてのRuby on Rails - llameradaの日記
    lockcole
    lockcole 2006/03/25
    より高次なソフトウェアを「使い捨て」で作れるパワー。言語レベルでPerlの歩んだ道を,アプリケーションフレームワークで実現しつつあるのがRails (RoR)だと。そして洗練されてった先には本格運用の道が開けると。
  • RSSリーダ・サービスが更新チェックするフィードを選択するアルゴリズム(修正版) - llameradaの日記

    先日、はてなは理系の会社? - higepon blogのエントリに触発されて、RSSリーダ・サービスが更新チェックするフィードを選択する戦略を考えた。(更新をチェックするRSSフィードの賢い選択方法 - llameradaの日記) 一応の結果を得たものも、先日の計算で求めた式には不満があった。それはフィードの更新頻度が反映されていない点である。計算間違いかと思い、何度か計算をチェックしたが、計算自体は問題ないようであった。 そこで改めて考え直してみると、フィードの更新モデルが不適切であった。フィードが更新される間隔に指数分布を仮定していたが、この仮定は明らかにおかしい。指数分布ではフィードの更新間隔が0である確率が0ではない。指数分布ではなくベータ分布を仮定すべきであった。(指数分布もベータ分布の一種ではあるが。) そこで、フィードの更新間隔にベータ分布を仮定して、再計算しようとしたが、

    RSSリーダ・サービスが更新チェックするフィードを選択するアルゴリズム(修正版) - llameradaの日記
    lockcole
    lockcole 2006/03/04
    詳しい検証結果と数式はDocの方で見た。結果的に,「購読しているユーザ数が多く、更新時刻が古く、更新間隔の短いフィードを優先してチェックすべき」となる。更新停止ブログのチェック停止処理が残された課題。
  • GoogleのMapReduceはとても便利な技術 - llameradaの日記

    GoogleMapReduceはとても便利な技術である(使えないけど)。特に、ある単語(例えばGoogle)が出現した全てのテキスト・ファイル名を抜き出す際に便利だ。 このタスクは、ファイル数が1万ならば簡単に解ける。ワン・ライナーで十分である。例えば、Rubyならばこんな感じだろう。 ruby -rfind -renumerator -e "Find.to_enum(:find, '/tmp/textdir/').each{|fn| \ File.file?(fn) and open(fn).read =~ /google/ and puts fn}" ところがファイル数が10億となった場合、このタスクはとたんに非常に難しいタスクとなる。それは並列処理が要求されるからである。1ファイル10KBとしても、10億のファイルのサイズは10TBとなる。これだけのサイズのデータを取り扱うには並列

    GoogleのMapReduceはとても便利な技術 - llameradaの日記
    lockcole
    lockcole 2006/02/13
    Googleのキーテクノロジの一つ「MapReduce」の利点は,大規模なバッチ処理を分散して処理する手間を一手に引き受けてくれるところにあると。故障ノードの発生を予め考慮した分散処理の利便性。やっぱりこれが核なんだ。
  • MochiKitと日本語は相性が悪い? - llameradaの日記

    brazilさんのMochiKit解説記事(http://d.hatena.ne.jp/brazil/20060122/1137926216)を読んでいて、関数型言語風のプログラムは読みにくいなと思った。読みにくい原因をつらつらと考えてみると、日語の言語構造と前置型が相性が悪いのが原因の一つではないかと思った。 MochiKitJavaScriptのライブラリである。Pythonの影響を受けており、Lispなどの関数型言語風な記述が出来る。brazilさんの記事で取り上げられているサンプル・コードはこちら。 theSum = sum(takewhile( partial(operator.gt, 10), imap( partial(operator.mul, 2), count() ) )); ok( theSum == (0 + 2 + 4 + 6 + 8) ); theSum に

    MochiKitと日本語は相性が悪い? - llameradaの日記
    lockcole
    lockcole 2006/01/25
    Mochikitというか,関数プログラミングの文法が日本語とは相性が悪いという感想。英語的な構文。
  • Googleの技術が凄い理由を考えてみる - llameradaの日記

    Google技術が凄いという話は良く聞く。しかし、何故Google技術力が高いのかについての論考はあまりないように思える。ドクターが多いからという理由がよく挙げられる。では、Google以外の会社は何故そうしなかったのだろう? Google技術力の源泉は、技術者の多くが計算機科学の研究者であることだと思う。話を進める前に、研究者と普通のプログラマの違いを定義する。ここでは、研究者はアルゴリズムの考案に長けている人々、プログラマはアルゴリズムの実装に長けている人々とする。また、アルゴリズムを、コンピュータを望み通り動作させる方法と定義する。もちろんこの分類は乱暴だ。また、優秀な研究者は優秀なプログラマなことが多いし、逆もまたしかりだが、ここでは無視する。また、考慮の対象分野をWebサービスに限定する。 研究者が新たなアルゴリズムを考案するには、それは、彼らが未解決の問題を解く人々だから

    lockcole
    lockcole 2006/01/20
    アルゴリズムに強い研究者を大量雇用したことがGoogleの強みであり,逆に最近のサービスにみられるようなアルゴリズムを重視しないサービスではGoogleはただの競争者になってるとのこと。研究者の能力活用を重視すべき。
  • rchasen: ChaSenの新たなRubyバインディング - llameradaの日記

    SWIGの練習も兼ねて、ChaSenのRubyバインディングを書いてみた。 ChaSenのRubyバインディングは既に公開済みのものがある。しかし、メンテナンスされておらず、コンパイルに修正作業が必要だった。また、ChaSenが提供するAPIの内、一部しか利用できなかった。 今回、公開したバインディングでは、これらの問題を解決した(はずである)。 ダウンロードは下記のプロジェクトページから。 http://sourceforge.jp/projects/rchasen/ SWIGを使ったので、javapythonバインディングも作成可能です。暇ができたらチャレンジしてみます。

    rchasen: ChaSenの新たなRubyバインディング - llameradaの日記
    lockcole
    lockcole 2006/01/13
    ChasenのRubyバインディングを新たに書き起こした。
  • llameradaの日記 - Ruby on Railsによるソーシャル・ブックマーク管理デスクトップ・アプリケーション

    Ruby on Railsで作成したweb アプリケーションは、exe形式の実行ファイルにすることが出来る。詳しくは、Distributing Rails Applications - A Tutorialを参照のこと。 この仕組みを知って、何か面白いことが出来ないかなと考えていた。そこで、前から欲しかったソーシャル・ブックマーク管理デスクトップ・アプリケーションを作った。現在のところ、del.icio.usとはてなブックマークに対応している。 何故、こんなアプリが欲しかったいうかというと、自分のブックマークを迅速に検索したいからだ。私はソーシャル・ブックマークとしてdel.icio.usを使っているが、del.icio.usのサーバはそれなりに重い。そのため、目的のブックマークを探し出すのに時間がかかってイライラすることがある。 デスクトップ・アプリケーションならば、計算資源に余裕がある

    llameradaの日記 - Ruby on Railsによるソーシャル・ブックマーク管理デスクトップ・アプリケーション
    lockcole
    lockcole 2006/01/12
    おおお
  • JavaScriptの学習効率 - llameradaの日記

    Ajaxの登場と共に、JavaScriptに注目が集まっている。それに伴い、JavaScriptを学ぶ人が増えていると思う。私自身もその一人である。JavaScriptを学ぶ中で感じたのは、JavaScriptを効率良く習得するには、他のプログラミング言語での経験が重要だということである。 何故、他の言語での経験が重要かというと、JavaScriptは、それ単独で学習するには効率が悪いからである。主な理由は次の3点である。 主要な実行環境がブラウザである。そのため、プログラムの実行毎にブラウザのリロードやマウスクリックが必要となり、煩雑である。また、デバッグ環境も貧弱である。 標準ライブラリが貧弱である。そのため、一般的な機能を自作したり、公開されているライブラリを利用する必要がある。 まともな書籍が少ない。著名なのは「JavaScript」ぐらいだろうか。 もちろん、JavaScript

    JavaScriptの学習効率 - llameradaの日記
    lockcole
    lockcole 2006/01/11
    Javascriptは学習効率の悪い言語だが,その時役に立ったのはRubyの知識,という話。RubyとJavascriptは非常に似ていて共通性があり,それゆえPrototype.jsはRailsに付属しているということらしい。
  • llameradaの日記 - JavaScript でマルチスレッド・デザインパターン

    JavaScriptでデザインパターンを書いてみる。とはいえ、いまさらFactoryパターンなど書いても面白くないので、マルチスレッド・デザインパターンにする。 もちろん、JavaScriptの言語仕様にスレッドなどない。しかし、ブラウザ環境では実質的にスレッドが存在する。スレッドが発生する場面には2種類ある。1つは、イベントである。例えば、ユーザのクリック動作によってonclickイベントが発生した時、onclickイベントハンドラだけを処理するスレッドが発生するとみなせる。もう1つは、setTimeoutとsetIntervalメソッドである。これらのメソッドでは、一定時間後に、別の処理を実行させるが、この処理は現在の処理と並行的に実行される。つまり、スレッドとみなせる。個人的には、setTimeoutをアニメーションなどの小細工だけに使うのはもったいないと思う。setTimeoutの

    llameradaの日記 - JavaScript でマルチスレッド・デザインパターン
    lockcole
    lockcole 2005/09/19
    イベント処理,setTimeoutをスレッドとみなす。これでまた色々できそう。
  • 1