«前の日記(2003年05月25日) 最新 次の日記(2003年05月27日)» 編集

Matzにっき


2003年05月26日 [長年日記]

_ [本]Amazonおすすめの本

葛藤を感じつつも、利用しているAmazonだが、 やはり機能的には一番充実している。

中でも「おすすめの本」という機能は、なかなか面白い。 自分が買ったり興味を示した本から連想される本を紹介してくれるというものだ。 誰がどの本とどの本を買ったというような売り上げデータベースの一部を見せてくれているようだ。 やはり、実際のデータは強く、なかなか面白い本を紹介してくれる。

しかし、中には変な紹介もある。 先日勧められたのは4797323256。

「ワタシはゲームには興味がないのに」と思い、「おすすめの理由」を見ると,

この商品が購入または評価されていたからです…
0471941484

なんじゃそら。なんでガーベージコレクションの本との関連づけが。 共通点は...マニアックなところ、とか。

_ [Ruby]Block/Proc分離

懸案のBlockとProcの分離をコミットしました。 かなり大きな変更なので非互換が出るかもしれません。当面は要注意。

変更の要旨は以下の通り。

  • ブロックをオブジェクト化したものがBlock
  • そのサブクラスで無名クラスを表現したものがProc
  • Blockはブロック引数またはBlock.newで得られる
  • Procはlambda, proc, Proc.newで得られる
  • Block#callの引数チェックはゆるい
  • Proc#callは厳密に引数の数をチェックする
  • Blockからのbreakは例外
  • Procからのbreakは実行終了

それに伴い、以下の変更も行いました。

  • Blockを得るメソッドはto_block(前はto_proc)
  • Block#arityは{|a|..}の場合、1を返す(以前は-1)
  • Method#to_blockでできたブロックは正しいarityを返す(以前は-1)

使ってみてくださいませ。

これが落ち着いたら、1.8.0のインタプリタ本体には大きな変更は行わないと思います。 ただ、<=>の例外の扱いとか、まだ考えなくてはいけない点もいくつか残ってますが、 まあ、些細な修正で終わるでしょう。

_ [本]Amazonのおすすめ(その2)

その本を買って、さらにゲームの本を買った人がいたのでしょう」というのは まさにその通りなのでしょうけど、

  • 自信たっぷりに理由として述べてしまうAmazonが可笑しい
  • いや、意外と関連が有るかも、ど邪推してしまう自分が可笑しい

という点をことさらに取り上げて、笑い飛ばそうという意図だったわけで。

まあ、説明が必要という時点で外してますな。

とはいえ、こういう現象が出るってことは、まだまだサンプル数が少ないってことなんですかねえ。 日本最大のオンライン書店のはずなのに。

いや、待てよ。

特定の分野の書籍の数には限界があるわけで(たとえばRuby関連書籍は20冊強しかない)、 買った本、興味を示した本と強い相関を持つ本だけを「おすすめの本」とするならば、 そのリストに登場する書籍も非常に限られてくる、偏ってくる可能性がでてきます。

これでは「書店店舗でたまたま目に入り、興味をもって購入した」という購買行動に相当する行為が、 Amazonでは発生しにくくなります。売り上げという点からは、 事前に買おうと思ってなかった本を思わず買ってしまったというパターンはぜひ欲しいでしょう。

そこで、 少ないサンプルを強調して、ときどきこうして全然関係ない書籍を「おすすめリスト」に加えることにより、 思わぬ売り上げを期待しているのではないでしょうか。恐るべしAmazon。

いやいや、考えすぎに違いない(このパターンは3度目か)。


«前の日記(2003年05月25日) 最新 次の日記(2003年05月27日)» 編集