-
Notifications
You must be signed in to change notification settings - Fork 0
/
VectorGenerator.py
59 lines (48 loc) · 2.3 KB
/
VectorGenerator.py
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
48
49
50
51
52
53
54
55
56
57
58
59
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import datetime
class VectorGenerator:
def printWithTime(self, string):
print(str(datetime.datetime.now()) + " - " + string)
def getAllSingleFeatures(self, featureData):
return [featureType for featureType in featureData['singleFeatures']]
def getAllCombinedFeatures(self, featureData):
return [featureType for featureType in featureData['combinedFeatures']]
def generateFeatureVector(self, featureData, numberOfSummaries, i, j):
featureVector = []
for featureType in featureData['singleFeatures']:
featureVector.extend(featureData['singleFeatures'][featureType][i])
featureVector.extend(featureData['singleFeatures'][featureType][j])
for featureType in featureData['combinedFeatures']:
featureVector.extend(featureData['combinedFeatures'][featureType][i * numberOfSummaries + j])
return featureVector
def generateFeatureVectors(self, featureData):
featureVectors = []
singleFeatures = [feature for feature in featureData['singleFeatures']]
numberOfSummaries = len(featureData['singleFeatures'][singleFeatures[0]])
for i in xrange(numberOfSummaries):
for j in xrange(numberOfSummaries):
featureVectors.append(self.generateFeatureVector(featureData, numberOfSummaries, i, j))
return featureVectors
def generateTargetScore(self, scoreA, scoreB):
if scoreA > scoreB:
return 1
elif scoreA < scoreB:
return -1
else:
return 0
def generateTargetVector(self, targetData):
targetVector = []
numberOfSummaries = len(targetData)
for i in xrange(numberOfSummaries):
for j in xrange(numberOfSummaries):
targetVector.append(self.generateTargetScore(targetData[i], targetData[j]))
return targetVector
def filterVectors(self, featureVectors, targetVector):
filteredFeatureVectors = []
filteredTargetVector = []
for i in xrange(len(targetVector)):
if targetVector[i] != 0:
filteredFeatureVectors.append(featureVectors[i])
filteredTargetVector.append(targetVector[i])
return [filteredFeatureVectors, filteredTargetVector]