0
我想计算需要X,Y,Z技能的开放角色与W,T,L专业知识水平(熟练程度)和不同员工之间的相似程度......但并非全部员工将拥有所有的X,Y,Z技能,所以如果技能不存在,我们需要设置一个0 .... 我有什么是不工作的,因为当角色和员工都有技能。任何想法?在此先感谢需要具有相同大小的余弦相似度向量
MATCH (p1:Employee)-[x:HAS_SKILL]->(sk:Personal_Skill)<-[y:REQUIRES_SKILL] -(p2:Role {name:'Role 1-Analytics Manager'})
WITH SUM(x.proficiency * y.proficiency) AS xyDotProduct,
SQRT(REDUCE(xDot = 0.0, a IN COLLECT(x.proficiency) | xDot + a^2)) AS xLength,
SQRT(REDUCE(yDot = 0.0, b IN COLLECT(y.proficiency) | yDot + b^2)) AS yLength,
p1, p2
MERGE (p1)-[s:SIMILARITY]-(p2)
SET s.similarity = xyDotProduct/(xLength * yLength)
RETURN p1.name, s.similarity
非常感谢。我能够解决这个问题,并且还使用了COALESCE来处理我正在尝试的其他事情。 –