私は単純な問題を解決しようとしています。ユーザーの類似度を、製品の評価のために計算されたユークリッド距離に基づいて計算します。OrientDB - 類似度を計算する
私は今、各ペア(ユーザU1、ユーザU2)のための共通の製品の評価との間の距離を表す結果を計算することになるようなクエリを
SELECT U1.UserId, U2.UserId
FROM (
MATCH
{class:User, as: U1, where: (UserId=12345) } -rate-> {class:Product, as:P},
{class:User, as: U2, where: (UserId<>12345)} -rate-> {as:OP},
RETURN U1, U2, P, OP
)
を使用しています。
ユーザー
U1,Product,Rating
1, xxx, 5
2, xxx, 2
1, yyy, 10
2, yyy, 8
のための一般的な製品の例だから私はSQRT((5-2)^ 2 +(10-8)^ 2)の距離として
が持つ可能性これはを計算しますOrientDBに対する単一の問合せ。 Neo4Jは、Cypher Queryで連続したインスタンスを操作するためのWITH文を提供します。
私たちにご提供いただけるすべてのご支援に感謝します。私は2人のユーザーや製品の評価の距離を返すためにMATCH文を書き換えたいすべての
Thxを ロベルト
こんにちはルイージ、ありがとう。クエリの最後に新しいエッジを割り当てることは可能ですか?計算された類似度を表すでしょうか? –