sparkのword2vecアルゴリズムを使ってテキストの文書ベクトルを計算しました。word2vecのコサイン類似度1以上
次に、モデルオブジェクトの関数findSynonyms
を使用して、数語の同義語を取得しました。
私はこのような何かを参照してください。(服用0および1またはMAX -1と+1の間でなければなりませんコサイン類似度を超える1コサイン類似度として計算されている理由を私は理解していない
w2vmodel.findSynonyms('science',4).show(5)
+------------+------------------+
| word| similarity|
+------------+------------------+
| physics| 1.714908638833209|
| fiction|1.5189824643358183|
|neuroscience|1.4968051528391833|
| psychology| 1.458865636374223|
+------------+------------------+
を負の角度)。
なぜここで1以上ですか?ここで何がうまくいかないの?
ありがとうございました。しかし、簡単な質問。私がベクトルを正規化してコサインの類似性をとると、ドットプロダクトのみを取ることに似ています。私が正規化してコサインの類似性を取っていない場合、コサイン類似度の公式では、各ベクトルのノルムでドット積を除算します。したがって、コサインの類似性を計算する際に正規化が行われます。だから、なぜそれを正規化する必要があるのかが分かりません。 最終的には同じ数式になりますが、計算は同じにする必要があります – Baktaawar
正規化部分を知っていただきありがとうございます。しかし、私の疑問はなぜコサインの類似性を変えるのだろうか。あなたが正規化するか、しない場合、数式は同じままです – Baktaawar
あなたは完全に正しいです。私はあなたがコサインの類似性をどのように計算しているかを確認する必要があると信じています!ライブラリやパッケージを使用している場合は、期待どおりに類似度が計算されていることを確認する必要があります。それ以外は、私はあなたの理解に何の問題も見ません。 –