Bouwsteen 3 — één pagina bijwerken
Hier bouw je op verder: If en else en De for-loop
Weet je dit niet meer zeker? Lees het terug voordat je verdergaat.
- Python If en else
- Python De for-loop
Leerdoel: je zet de PageRank-formule om in code, voor één pagina en met de ranks die je op dat moment hebt.
De formule
rank(p) = (1 − d)/N + d · Σ rank(i) / aantal_links(i)
i → p
In woorden: een basisdeel (1 − d)/N voor de willekeurige sprong van de
surfer, plus d keer de stemmen van alle pagina's i die naar p
linken. Elke stem is rank(i) gedeeld door het aantal links dat i
uitdeelt.
Welke pagina's naar p linken, zoek je uit zoals in wie_linkt_naar uit
bouwsteen 1: p in web[i]. Nu tel je bij elke treffer meteen
de stem op, dus je hebt de verzameling zelf niet meer nodig.
De test gebruikt de startverdeling (alles 0.25) en d = 0.85. Reken
voor C mee: A, B en D linken naar C. A deelt 2 links uit (0.25/2), B en
D elk 1 (0.25/1). Dat geeft
0.15/4 + 0.85 · (0.125 + 0.25 + 0.25) = 0.56875.
Bouw en test
Antwoord
for i in web:
if p in web[i]:
som += rank[i] / len(web[i])
Naar D linkt niemand, dus som blijft 0 en D houdt alleen het
basisdeel: (1 − 0.85)/4 = 0.0375.
Door naar itereren tot het stabiel is →.