@@ -247,14 +247,14 @@ def __init__(self, name="", auth=1, hub=1):
247
247
self .authority = auth
248
248
self .hub = hub
249
249
250
- # def __eq__(self, other):
251
- # if isinstance(other, self.__class__):
252
- # return self.__dict__ == other.__dict__
253
- # else:
254
- # return False
250
+ def __eq__ (self , other ):
251
+ if isinstance (other , self .__class__ ):
252
+ return self .name == other .name
253
+ else :
254
+ return False
255
255
256
- # def __ne__(self, other):
257
- # return not self.__eq__(other)
256
+ def __ne__ (self , other ):
257
+ return not self .__eq__ (other )
258
258
259
259
def __hash__ (self ):
260
260
return hash (self .name )
@@ -276,26 +276,25 @@ def __init__(self, data):
276
276
# Then we determine the edges on the nodes
277
277
for page , out_links in data .items ():
278
278
for out_page in out_links :
279
- self .graph .add_edge (Page (p ), Page (out_page ))
279
+ self .graph .add_edge (Page (page ), Page (out_page ))
280
280
281
281
def __iter__ (self ):
282
282
return self .graph
283
283
284
284
def relevant (self , query ):
285
- rel = []
285
+ rel = set ()
286
286
for page in self .graph :
287
287
# We are modeling queries for page names only
288
288
if page .name == query :
289
- rel .append (page )
289
+ rel .add (page )
290
290
return rel
291
291
292
292
def expand (self , pages ):
293
293
expansion = set (pages )
294
294
for p in pages :
295
-
296
- expansion .update (self .graph .predecessors_iter (p ))
297
- expansion .update (self .graph .successors_iter (p ))
298
- return list (expansion )
295
+ expansion .update (self .graph .predecessors (p ))
296
+ expansion .update (self .graph .successors (p ))
297
+ return expansion
299
298
300
299
def inlinks (self , page ):
301
300
return self .graph .predecessors_iter (page )
@@ -316,6 +315,8 @@ def normalize(pages):
316
315
317
316
def HITS (query , dataset , num_iters = 10000 ):
318
317
pages = dataset .expand (dataset .relevant (query ))
318
+ print ([p .name for p in pages ])
319
+
319
320
# This is unnecessary, but following the pseudocode closely.
320
321
for p in pages :
321
322
p .hub = 1
0 commit comments