1. 학습
  2. /
  3. 강의
  4. /
  5. Python으로 시작하는 네트워크 분석

Connected

연습 문제

아직 함께 편집하지 않은 공동 편집자 추천하기

마지막으로, 열린 삼각형(open triangles) 개념을 활용해 GitHub에서 협업할 사용자를 추천해 볼 거예요!

지침

100 XP
  • 서로 협업을 추천해야 할 GitHub 사용자 쌍 목록을 만들어 보세요. 이를 위해 다음을 수행하세요:
    • 첫 번째 for 루프에서는 data=True를 지정해 메타데이터를 포함하여 G의 모든 노드를 순회하세요.
    • 두 번째 for 루프에서는 size가 2인 combinations() 함수를 사용해 가능한 모든 삼각형 조합을 순회하세요.
    • n1과 n2 사이에 간선이 없다면, 이 두 노드(사용자) 간의 협업을 추천해야 하므로, 이 경우 recommended 딕셔너리의 (n1), (n2) 값을 증가시키세요. n1과 n2 사이에 간선이 있는지는 .has_edge() 메서드로 확인할 수 있어요.
  • 리스트 컴프리헨션을 사용해 협업을 추천해야 할 상위 10개 사용자 쌍을 찾으세요. 반복 가능 객체(iterable) 는 recommended 딕셔너리의 키-값 쌍(.items()로 접근)이고, 조건은 count가 all_counts의 상위 10개보다 큰 경우예요. all_counts는 오름차순으로 정렬되어 있으므로 all_counts[-10]으로 상위 10개 기준을 가져올 수 있어요.