summaryrefslogtreecommitdiff
path: root/compound-split/lattice-stats.py
blob: 424c2bfe41036e309043717473b592b518e36102 (plain)
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
40
41
42
43
44
45
46
47
#!/usr/bin/python

import sys
import optparse
from heapq import heappush, heappop
import math

lc = 0
maxdepth = -1
total_depth = 0
total_cols = 0
total_paths = 0.0

optparser = optparse.OptionParser()
optparser.add_option("-k", "--k-best", dest="k", type='int', help="number of best paths", default=1)
(opts,args) = optparser.parse_args()
n = opts.k

if len(args)==0: args=(sys.stdin)

for fname in args:
  if (type(fname) == type('')):
    f = open(fname, "r")
  else:
    f = fname
  lc = 0
  nodes   = 0
  for line in f:
    lc+=1
    cn = eval(line)
    if (len(cn[0]) == 0):
      continue

    paths = 1.0
    for col in cn:
      depth=len(col)
      paths*=float(depth)
      nodes += depth
      total_depth += depth
      total_cols += 1
    total_paths+=paths
  avg=float(total_depth)/float(lc)
  print "averagePaths=%g" % (total_paths / float(lc))
  print "averageNodes=%f" % (float(total_depth) / float(lc))
  print "totalPaths=%f" % (float(total_depth))
  print "Nodes/Len=%f" % (float(total_depth)/float(total_cols))
  print "averageLen=%f" % (float(total_cols) / float(lc))