另一分区中的共享节点
为了帮助您建立对推荐系统的概念,我们将从基础开始。本节重点是在二分图中计算用户相似度。
您的任务是编写一个函数,传入两个节点,返回两位用户节点之间共享的仓库节点集合。
在本练习中,以下方法和函数将对您有所帮助:.neighbors()、set() 和 .intersection(),当然还有您即将定义的 shared_partition_nodes 函数。
本练习是课程的一部分
Python 网络分析中级
练习说明
- 编写名为
shared_partition_nodes()的函数,接收 3 个参数——图G、node1和node2——并返回node1与node2之间共享的节点集合。- 使用 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(____(____))