プロが教える店舗&オフィスのセキュリティ対策術

類似楽曲検索を作ろうと考えています。
ある楽曲の音響信号の特徴量と似た楽曲を検索するシステムです。

検索するにあたって、ある3つの特徴量(A,B,C)を使うとします。
AとBの特徴量はコサイン尺度を用いて類似度を計算、
Cはユークリッド距離で計算し、最終的に一つの類似度を計算したいと考えているのですが
どのような方法がありますか?

例えばすべてをコサイン尺度で計算すれば、
類似度=cos(Ai,Aj)+cos(Bi,Bj)+cos(Ci,Cj)  
(cos(Ai,Aj)は楽曲iとjの特徴量Aにおけるコサイン尺度)
のように和を類似度として使えると思うのですが、

コサイン尺度(-1から1までの値をとる)とユークリッド距離は(0以上の値をとる)を使う場合、単純に加算しただけではうまくいきません。

正規化、無次元化?をすればいいのでしょうが、具体的な方法がわかりません。
どなたかアドバイスお願いします。

A 回答 (1件)

>コサイン尺度(-1から1までの値をとる)とユークリッド距離は(0以上の値をとる)を


>使う場合、単純に加算しただけではうまくいきません。

例えば、コサイン尺度の代わりに、λを正の定数として

x=(コサイン尺度+1)/2
コサイン尺度 → Newコサイン尺度 = -1/λ * log(1-x)

のようにマップすれば[0,∞)区間に収まりますけど。問題は、
・このような和に意味をつけられるのか?
・パラメータλを簡単に決められるのか?
・x=1のときの処理
 =>適当にNewコサイン尺度=10^300とかにする。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
確かに、コサイン尺度を[0,∞)区間に収めたところで、和に意味をつけられないですよね。


どうしても「距離」を考慮したい特徴量なので、コサイン尺度ではダメなんですよね。。
他に良い類似度尺度があればそちらですべて統一するのですが・・・

お礼日時:2011/01/09 22:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!