Exemple #1
0
def buildExamples(input_file, output_file):
    f = open(input_file, 'r+')
    w = open(output_file, 'w')
    draft_list = f.read().split('\n')

    for draft in draft_list:
        attributes = draft.split(',')
        # print len(attributes)
        if len(attributes) != 102:  #getting rid of malformed games
            print len(attributes)
            continue
        w.write("%s.0," % attributes[0])  #winner

        features = list()
        feature_names = list()

        feature_names.append("Who Went First")
        if attributes[5] == 'Radiant':
            features.append(1.0)
        elif attributes[5] == 'Dire':
            features.append(0.0)
        else:
            features.append(-1.0)

        radiant_ban_orders = [1, 3, 9, 11, 18]
        dire_ban_orders = [2, 4, 10, 12, 17]
        radiant_pick_orders = [5, 8, 14, 16, 20]
        dire_pick_orders = [6, 7, 13, 15, 19]

        offset_spaces = 3
        attributes_per_hero = 5
        hero_pick_indexes = [
            offset_spaces + x * attributes_per_hero for x in range(0, 20)
        ]

        radiant_bans = [
            attributes[hero_pick_indexes[x - 1]] for x in radiant_ban_orders
        ]
        radiant_picks = [
            attributes[hero_pick_indexes[x - 1]] for x in radiant_pick_orders
        ]
        dire_bans = [
            attributes[hero_pick_indexes[x - 1]] for x in dire_ban_orders
        ]
        dire_picks = [
            attributes[hero_pick_indexes[x - 1]] for x in dire_pick_orders
        ]

        radiant_team = attributes[4]
        dire_team = attributes[9]

        features = list()
        feature_names = list()

        #		hfe = HeroFeatureExtractor()
        #		for index, hero in enumerate(radiant_bans):
        #			features.extend(hfe.extract(hero))
        #			feature_names.extend(["radiant_ban_%s:%s" % (index, x) for x in hfe.extractFeatureNames()])
        #
        #		for index, hero in enumerate(radiant_picks):
        #			features.extend(hfe.extract(hero))
        #			feature_names.extend(["radiant_pick_%s:%s" % (index, x) for x in hfe.extractFeatureNames()])
        #			names = zip(feature_names,features)
        #			# for name in names:
        #			#  	print str(name[0])+" "+str(name[1])
        #		for index, hero in enumerate(dire_bans):
        #			features.extend(hfe.extract(hero))
        #			feature_names.extend(["dire_ban_%s:%s" % (index, x) for x in hfe.extractFeatureNames()])
        #		for index, hero in enumerate(dire_picks):
        #			features.extend(hfe.extract(hero))
        #			feature_names.extend(["dire_pick_%s:%s" % (index, x) for x in hfe.extractFeatureNames()])
        #
        #		hsfe = HeroSetFeatureExtractor()
        #		features.extend(hsfe.extract(radiant_picks))
        #		feature_names.extend(["radiant_picks_%s" % x for x in hsfe.extractFeatureNames()])
        #		features.extend(hsfe.extract(radiant_bans))
        #		feature_names.extend(["radiant_bans_%s" % x for x in hsfe.extractFeatureNames()])
        #		features.extend(hsfe.extract(dire_picks))
        #		feature_names.extend(["dire_picks_%s" % x for x in hsfe.extractFeatureNames()])
        #		features.extend(hsfe.extract(dire_bans))
        #		feature_names.extend(["dire_bans_%s" % x for x in hsfe.extractFeatureNames()])

        tfe = TeamFeatureExtractor()
        features.extend(tfe.extract(radiant_team))
        feature_names.extend(
            ["radiant_team_%s" % x for x in tfe.extractFeatureNames()])
        features.extend(tfe.extract(dire_team))
        feature_names.extend(
            ["dire_team_%s" % x for x in tfe.extractFeatureNames()])

        w.write(",".join(str(x) for x in features))
        w.write('\n')

    w.close()

    with open("features_" + output_file, 'w') as w:
        w.write(",".join(feature_names))
        w.close()
 def setUp(self):
     self.tfe = TeamFeatureExtractor()
 def __init__(self):
     super(TeamSetFeatureExtractor, self).__init__()
     self.tfe = TeamFeatureExtractor()