2015-02-01 6 views
1

온라인 과정의 사례에서 Keanu Reeves는 3 명의 추천 배우를 불러야하지만 그럴 수는 없습니다. 그 예로서 설명된다 :온라인 과정의 집계 사례 수 : Keanu Reeves와 함께 작업해야하는 배우 3 명 추천 (해당하지 않음)

MATCH (keanu:Person {name:"Keanu Reeves"})-[:ACTED_IN]->()<-[:ACTED_IN]-(c), 
     (c)-[:ACTED_IN]->()<-[:ACTED_IN]-(coc) 
WHERE coc <> keanu AND NOT((keanu)-[:ACTED_IN]->()<-[:ACTED_IN]-(coc)) 
RETURN coc.name, count(coc) 
ORDER BY count(coc) DESC 
LIMIT 3; 

상기

그러나
Tom Hanks 4 
Stephen Rea 3 
John Hurt 3 

결과를 톰 행크스 샘플 데이터베이스 (12)에 따른 동영상 재생. 더욱이 Meg Ryan과 같은 상위 등급 영화 배우가 그 목록에 없습니다.

Tom Hanks 12 
Meg Ryan 5 
Jack Nicholson 4 

내가 뭔가를 놓치고 있습니까 :

내 솔루션은 다음과 같은 결과이 사이퍼

match (other:Person)-[:ACTED_IN]->(movie), 
(keanu:Person {name:'Keanu Reeves'}) 
WHERE 
NOT (keanu)-[:ACTED_IN]->(movie) 
return other.name, count(movie) 
order by count(movie) desc 
limit 3; 

입니까? 또는 제공된 예제 솔루션이 정확하지 않습니다.

나는 완전히 로커에서 벗어난 경우 Neo4j의 총 초보자이므로 용서해주십시오.

답변

2

제공되는 솔루션을 공동 필터링이라고합니다. 내가 좋아하는 것을 좋아하는 사람들도 무엇을 좋아 했습니까? 이 접근 방식은 자신에게 "동료 그룹"을 찾는 것에 기반합니다.

당신이 제안하는 것은 대중성 또는 빈도에 근거한 척도입니다.

현실 세계 권장 사항은 요구 사항 및 사용 사례에 따라 다양한 측면을 기반으로합니다.

인트로 소개 : http://de.slideshare.net/bachmanm/recommendations-with-neo4j-fosdem-2015

+0

감사합니다. 말이된다. – denisbetsi