タグ

コサイン類似度に関するmachatakaのブックマーク (4)

  • 文章のコサイン類似度

    文章間の類似度を測るには色々な方法があるが、ここではbag-of-wordsなる単語ベクトル同士のコサイン類似度(cosine similarity)を計算するカンタンな例を記しておく。 まずコサイン類似度であるが、要はベクトル同士のなす角の大きさをコサインで表現し、1に近ければなす角度が小さいので2つのベクトルはお互いに似ているし、0に近ければぜんぜん似てない、ということである。 bag-of-wordsというのは形態素解析された(単語に分割された)文に含まれる単語を要素とするベクトルである。例えば、以下の文章の場合は、 文1:「人生で起こることは、すべて、皿の上でも起こる」 (三谷幸喜) 文ベクトル1 = ("人生", "で", "起こる", "こと", "は", "、", "すべて", "、", "皿", "の", "上", "で", "も", "起こる", "。") といった具合で

  • perlでコサイン類似度を算出 - end0tknr's kipple - web写経開発

    まず、2個のベクトル:a,b の関係:θは、次のように表せます。 ここで、 はaとbの内積なので、2次元のベクトルであれば、 で表せ、また、 はベクトルの大きさなので、 となります。 ※ベクトルの内積や大きさは、更に多次元(n次元)になると、 や これをperlで実装すると、次のように通り。 #!/usr/local/bin/perl use strict; use Data::Dumper; my @VEC_KEYS = qw/hoge fuga foo/; #ベクトルが持つkey main(); sub main { my $vec_1 = {hoge => 1, fuga => 2, foo => 3}; my $vec_2 = {hoge => 3, fuga => 1}; my $cos_similar = cosine_similarity($vec_1,$vec_2); pr

    perlでコサイン類似度を算出 - end0tknr's kipple - web写経開発
  • 集合知プログラミング 2章 - 類似度計算の比較 - たぐってつづる

    id:plasticscafe が「集合知プログラミング」をPythonからScalaに翻訳しながら写経していくというので, 尻馬に乗って自分もやった気になってみよう ちょっとお手伝いがてら自分もやってみました. まとめ Scalaで集合知プログラミング 集合知プログラミング 作者: Toby Segaran,當山仁健,鴨澤眞夫出版社/メーカー: オライリージャパン発売日: 2008/07/25メディア: 大型購入: 91人 クリック: 2,220回この商品を含むブログ (267件) を見る 題 「集合知プログラミング」2章のエクササイズに Tanimoto係数について調査、検討してみる というのがあるそうなので,コサイン類似度と比較してみました*1. 以下,勘に頼る部分が大きいので詳しい人からコメントほしいっ! 数式で比較 比較するデータの組を下のようにn個ずつのベクトル(配列)とし

    集合知プログラミング 2章 - 類似度計算の比較 - たぐってつづる
  • コサイン類似度を求める

    研究でコサイン類似度を求めなくてはならなくなりました。コサイン類似度ってなんだ??どうやるんだ??まったく検討つかない!というレベルから、計算式はわかった!とりあえず値を出す関数まで作ろう!というレベルに達したのでメモしておきます。あんまりコサイン類似度自体の質はわかってないかもしれませんが、遅延評価勉強法というかんじです。 コサイン類似度とは 2つのデータが似ているかどうかを、文字列が似てるのを調べる分野では距離などで換算します。ちょっとよくわからないかもしれませんが、ぴいことぴいたろう君の類似度は、なんらかの測定器を使うと60mくらいの距離です。ぴいこと弟の類似度は、その測定器では30mくらいの距離でした。弟とぴいこは近いので、ぴいたろう君より似ています。 みたいなかんじ。 コサイン類似度ではベクトルというものを使います。ベクトルってなんだ!!わけわかんねーこと言うな!!!と思ってい

  • 1