-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinit_weig.py
More file actions
39 lines (30 loc) · 969 Bytes
/
init_weig.py
File metadata and controls
39 lines (30 loc) · 969 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import xml.etree.cElementTree
import math
print "Started parsing..."
e = xml.etree.ElementTree.parse('user.xml').getroot()
e2 = xml.etree.ElementTree.parse('java_posts.xml').getroot()
print "Parsed!"
print "Stage 1"
userss = {}
maxrepu = 0
for x in e.findall('row'):
maxrepu = max(maxrepu, int(x.get('Reputation')))
for x in e.findall('row'):
userss[ int(x.get('Id')) ] = float(int(x.get('Reputation')))/maxrepu
print "Stage 1 over. Stage 2 started"
op = "%.8f" % ( math.exp( -userss[ 78 ] ) )
print op
kk = 0
f = open('init_edges_weight.txt','w')
for x in e2.findall('row'):
if( x.get('ParentId') is None ):
try:
op = "%.8f" % ( math.exp( -userss[ int(x.get('OwnerUserId')) ] ) )
op = 1 - float(op)
op = "%.8f" % op
f.write(str(x.get('Id')) + " " + str(op) + "\n")
except Exception as e:
print x.get('OwnerUserId')
kk += 1
print "Rej: " + str(kk)
f.close()