annotate sortCSV.py @ 3:475bddaf580c tip

Add report and Presentation
author Dave Moffat <d.j.moffat@qmul.ac.uk>
date Wed, 25 Feb 2015 16:07:05 +0000
parents 26494c0d9ffd
children
rev   line source
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