다른 파티션의 공유 노드
추천 시스템 개념을 쌓기 위해, 기초부터 시작해 볼게요. 여기서는 이분 그래프에서 사용자 유사도를 계산하는 데 초점을 맞춥니다.
여러분의 과제는 두 노드를 받아서, 두 사용자 노드가 공유하는 저장소 노드의 집합을 반환하는 함수를 작성하는 것입니다.
이 연습 문제에서는 .neighbors(), set(), .intersection() 메서드와 함수가 유용할 거예요. 물론 여러분이 정의할 shared_partition_nodes 함수도 함께요!
이 연습은 강의의 일부입니다
Python 중급 네트워크 분석
연습 안내
- 그래프
G,node1,node2의 3개 인자를 받아node1과node2사이에 공유되는 노드의 집합을 반환하는shared_partition_nodes()함수를 작성하세요.- assert 문과
'bipartite'키워드를 사용해node1과node2가 같은 파티션에 속하는지 확인하세요. node1의 이웃 노드를 구해nbrs1에 저장하세요.node2의 이웃 노드를 구해nbrs2에 저장하세요.
- assert 문과
- 집합의
.intersection()메서드를 사용해nbrs1과nbrs2의 겹치는 부분을 계산하세요. shared_partition_nodes()함수와len()함수를 함께 사용해 사용자'u7909'와'u2148'사이의 공통 저장소 개수를 출력하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
def ____:
# Check that the nodes belong to the same partition
assert G.nodes[____]['bipartite'] == G.nodes[____]['bipartite']
# Get neighbors of node 1: nbrs1
nbrs1 = ____
# Get neighbors of node 2: nbrs2
nbrs2 = ____
# Compute the overlap using set intersections
overlap = ____(____).____(____)
return overlap
# Print the number of shared repositories between users 'u7909' and 'u2148'
print(____(____))