- ベストアンサー
単語の重要度をふまえた類似度について
あるキーワード群AとBがあり、それぞれいくつか単語が含まれており、単語にはその群の中での重要度の値がついています。 例: [A] 車 30 バイク 10 飛行機 5 [B] 自転車 20 車 15 三輪車 5 この例だと、Aだと車が重要なワードであり、Bでは自転車と車が重要なワードとなります。 ここで、A群とB群の類似度を求めたいのですが、単純に一致する項目数で計算するのではなく、重要度も利用して類似度を求めたいです。 それによって、群の中での重要度が高いもの同士が一致するほど類似度が高くなるようにしたいと思っています。 類似度を計算するのに使えそうな手法もしくは、計算式を教えてください。 各群の単語数は毎回同じではないです。 ちなみに群の中の重要度は足しても100になるわけではないです。 宜しくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
真っ先に思いつくものとしては、一致するものに関しては、重要度同士を掛け算して、それらの総和求めるとか。 提示の例は、AとBで一致しているものが車しかなくて、説明しにくいので、 ちょっと直して、 [A] 車 30 バイク 10 自転車 5 [B] 自転車 20 車 15 三輪車 5 だとすれば、車と自転車が一致しているので、 類似度 = 30×15 + 5×20 = 550 ですね。 もし、「群の中での重要度が高いもの同士が一致するほど類似度が高くなるように」ということなら、重要度をそれぞれ足して1になるように正規化して、 [A] 車 0.67 バイク 0.22 自転車 0.11 [B] 自転車 0.44 車 0.33 三輪車 0.11 として、 類似度 = 0.67×0.33 + 0.11×0.44 = 0.27 とするとか。 さらに、「群の中での重要度が高いもの同士が一致するほど類似度が高くなるようにしたい」を強調するなら、 それぞれの項を2乗して、 類似度 = (0.67×0.33)^2 + (0.11×0.44)^2 = 0.052 とする、とかも考えられますね。 どれがいいのかは、実際の問題が分からないので何ともいえません。まあ、はっきり言えばこんなアンケートものは、つまり自分が出したい結論ってのが最初にあって、その結果になるように定義を後付けでつければ、それで論文になります。 逆に言えば、言葉の定義をちょっと変えれば、結論はどうにでも変えることができたります。メディアリテラシーの基本。
その他の回答 (1)
- phyonco
- ベストアンサー率38% (47/121)
A群のi番目の項目の重要度をA_i とし、Bについても同様の記号を使います。 すぐに思いつくのはべき型 類似度 = [ Sum_i (A_i * B_i)^c ]^d ですね。cとdはベキ乗のパラメータで、dを大きくしてcを小さくすると、大きな重要度を持った項目の一致よりも一致項目の数を増やす方が類似度を上げるのに貢献するようになります。
お礼
ちょっと自分には 類似度 = [ Sum_i (A_i * B_i)^c ]^d の式がわかりにくかったのですが、回答ありがとうございました。
お礼
説明とアドバイスをありがとうございます。 参考になりました。