def execute(self, input_data):
        raw_bytes = input_data['sample']['raw_bytes']
        matches = self.rules.match_data(raw_bytes)

        # The matches data is organized in the following way
        # {'filename1': [match_list], 'filename2': [match_list]}
        # match_list = list of match
        # match = {'meta':{'description':'blah}, tags=[], matches:True,
        #           strings:[string_list]}
        # string = {'flags':blah, 'identifier':'$', 'data': FindWindow, 'offset'}
        # 
        # So we're going to flatten a bit (shrug)
        # {filename_match_meta_description: string_list}
        flat_data = collections.defaultdict(list)
        for filename, match_list in matches.iteritems():
            for match in match_list:
                if 'description' in match['meta']:
                    new_tag = filename+'_'+match['meta']['description']
                else:
                    new_tag = filename+'_'+match['rule']
                for match in match['strings']:
                    flat_data[new_tag].append(match['data'])
                # Remove duplicates
                flat_data[new_tag] = list(set(flat_data[new_tag]))

        return {'matches': flat_data}


# Unit test: Create the class, the proper input and run the execute() method for a test
Test word2vec vocabulary building.
dataset/ETHPy150Open SuperCowPowers/workbench/workbench/workers/timeout_corner/yara_sigs.py/YaraSigs.execute--crossover with--dataset/ETHPy150Open largelymfs/topical_word_embeddings/TWE-1/gensim/test/test_word2vec.py/TestWord2VecModel.testVocab