d@0
|
1
|
d@0
|
2 #!/usr/bin/python
|
d@0
|
3 #
|
d@0
|
4 # processCSV.py: analyse the results and return results breakdown for a given question type
|
d@0
|
5 #
|
d@0
|
6 # Usage: processCSV.py questionType intonationPattern
|
d@0
|
7 # If no intonation pattern or question type is given, then all results are presented.
|
d@0
|
8 #
|
d@0
|
9 # Example: processCSV.py
|
d@0
|
10 # Example: processCSV.py 'Wh'
|
d@0
|
11 # Example: processCSV.py 'Wh' 'F'
|
d@0
|
12 # Possible Questions: 'Echo', 'Wh', 'YN'
|
d@0
|
13 # Possible Intonations: 'RF', 'FR', 'F', 'R', 'H'
|
d@0
|
14
|
d@0
|
15
|
d@0
|
16
|
d@0
|
17 import csv
|
d@0
|
18 import sys
|
d@0
|
19 import matplotlib.pyplot as plt
|
d@0
|
20 import numpy as np
|
d@0
|
21
|
d@0
|
22
|
d@0
|
23 if __name__=="__main__":
|
d@0
|
24 #Load Command Line Parameters
|
d@0
|
25 intPattern = None;
|
d@0
|
26 qType = None;
|
d@0
|
27
|
d@0
|
28 if len(sys.argv) > 2:
|
d@0
|
29 intPattern = [sys.argv[2]]
|
d@0
|
30 else:
|
d@0
|
31 intPattern = ['RF', 'FR', 'F', 'R', 'H']
|
d@0
|
32 if len(sys.argv) > 1:
|
d@0
|
33 qType = [sys.argv[1]]
|
d@0
|
34 else:
|
d@0
|
35 qType = ['Echo', 'Wh', 'YN']
|
d@0
|
36
|
d@0
|
37 #print(intPattern)
|
d@0
|
38 #print(qType)
|
d@0
|
39
|
d@0
|
40
|
d@0
|
41 reader = csv.DictReader(open('DataSetSummary.csv'))
|
d@0
|
42
|
d@0
|
43 result = {}
|
d@0
|
44 for row in reader:
|
d@0
|
45 for column, value in row.iteritems():
|
d@0
|
46 result.setdefault(column, []).append(value)
|
d@0
|
47 #print result['QType']
|
d@0
|
48
|
d@0
|
49 for q in qType:
|
d@0
|
50 qList = [j for j, x in enumerate(result['QType']) if x == q]
|
d@0
|
51 # print "%s count = %d" % (q, len(qList))
|
d@0
|
52 for i in intPattern:
|
d@0
|
53 iList = [j for j, x in enumerate(result['Intonation']) if x == i]
|
d@0
|
54 count = 0
|
d@0
|
55 tracks = []
|
d@0
|
56 if (iList) != None:
|
d@0
|
57 for il in iList:
|
d@0
|
58 if il in qList:
|
d@0
|
59 count +=1
|
d@0
|
60 tracks.append(il)
|
d@0
|
61 # print (i + ' vs. '+q+'=%d', count)
|
d@0
|
62 # if count > 0:
|
d@0
|
63 print "%s vs. %s = %d" % (q, i, count)
|
d@0
|
64 print tracks
|
d@0
|
65 # for t in tracks:
|
d@0
|
66 # trackName = "T%d/01.csv" % (t)
|
d@0
|
67 # trackReader = csv.reader(open(trackName))
|
d@0
|
68 # xList = []
|
d@0
|
69 # yList = []
|
d@0
|
70 # for r in trackReader:
|
d@0
|
71 ## print "In trackReader"
|
d@0
|
72 ## print(r)
|
d@0
|
73 ## print(r[1])
|
d@0
|
74 # xList.append(r[0])
|
d@0
|
75 ## xList = [float(x) for x in xList]
|
d@0
|
76 # yList.append(r[1])
|
d@0
|
77 ## yList = [float(y) for y in yList]
|
d@0
|
78 # # Apply some smoothing and scaling
|
d@0
|
79 # # Vertical
|
d@0
|
80 # print yList
|
d@0
|
81 # print min(yList)
|
d@0
|
82 # yList = np.subtract(yList, min(yList))
|
d@0
|
83 # print yList
|
d@0
|
84 # yList = np.divide(yList, max(yList))
|
d@0
|
85 # print yList
|
d@0
|
86 # # Horizontal
|
d@0
|
87 # xList = np.subtract(xList, min(xList))
|
d@0
|
88 # xList = np.divide(xList, max(xList))
|
d@0
|
89 #
|
d@0
|
90 #
|
d@0
|
91 # plt.plot(xList,yList)
|
d@0
|
92 # plt.show()
|
d@0
|
93
|
d@0
|
94 #result = {}
|
d@0
|
95 #for row in reader:
|
d@0
|
96 # print(row)
|
d@0
|
97 # key = row[1]
|
d@0
|
98 ## if key in result:
|
d@0
|
99 ## # implement your duplicate row handling here
|
d@0
|
100 ## pass
|
d@0
|
101 # result[key] = row[1:]
|
d@0
|
102 #print result
|