Sdílené uzly v druhé části grafu
Abychom si vybudovali pevný základ pro pochopení doporučovacích systémů, začneme od základů. V tomto cvičení se zaměříme na výpočet podobnosti uživatelů v bipartitních grafech.
Tvým úkolem je napsat funkci, která přijme dva uzly a vrátí množinu uzlů repozitářů sdílených mezi těmito dvěma uživatelskými uzly.
Při řešení ti přijdou vhod tyto metody a funkce: .neighbors(), set() a .intersection() – a samozřejmě také funkce shared_partition_nodes, kterou si sám/a definuješ!
Toto cvičení je součástí kurzu
Intermediate Network Analysis in Python
Pokyny k cvičení
- Napiš funkci
shared_partition_nodes(), která přijme 3 argumenty – grafG,node1anode2– a vrátí množinu uzlů sdílených mezinode1anode2.- Pomocí příkazu
asserta klíčového slova'bipartite'ověř, ženode1anode2patří do stejné části grafu. - Získej sousedy uzlu
node1a ulož je jakonbrs1. - Získej sousedy uzlu
node2a ulož je jakonbrs2.
- Pomocí příkazu
- Pomocí metody
.intersection()na množině vypočítej průniknbrs1anbrs2. - Vypiš počet sdílených repozitářů mezi uživateli
'u7909'a'u2148'pomocí funkceshared_partition_nodes()v kombinaci s funkcílen().
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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(____(____))