def extract_features(file_path, feature_extractors, n=5, numeric=True, feature_list_dir_prefix='.'): features = {} for extractor in feature_extractors: kwargs = feature_extractors[extractor] ''' Special Case: ASM Extract returns two feature dicts - one for opcodes and one for numeric data. When we want the opcode ngrams from ASM extractor, we take e.extract(kwargs=kwargs)[0] and when we want numeric data, e.extract(kwargs=kwargs)[1] ''' if extractor.__name__ == 'ASMExtractor' and numeric == False: e = extractor(file_path, n) features.update(e.extract(kwargs=kwargs)[0]) else: e = extractor(file_path) if extractor.__name__ == 'ASMExtractor' and numeric == True: features.update(e.extract(kwargs=kwargs)[1]) else: features.update(e.extract(kwargs=kwargs)) df = pd.DataFrame(data=[features], columns=get_features_names( feature_list_dir_prefix=feature_list_dir_prefix)) sparse_feature_vector = list(df.iloc[0, :]) return features, sparse_feature_vector
def extractWordFeatures(x): """ Chess Features """ features = {} features = defaultdict(lambda: 0.0, features) features.update(canCatchPawn(x)) if (features['cant catch pawn'] == 1): return features features.update(canBeCaptured(x)) # if (features['black_can_capture'] == 1): # return {'black_can_capture':1} features.update(isWhiteKingAhead(x)) features.update(isOpposition(x)) features.update(move_distances(x)) features.update(wrongSide(x)) features.update(ishPawn(x)) return features
def featureExtractor_3(x): """ Chess Features """ features = {} features = Counter() features.update(canCatchPawn(x)) if (features['cant catch pawn'] == 1): return features features.update(canBeCaptured(x)) # if (features['black_can_capture'] == 1): # return {'black_can_capture':1} features.update(isWhiteKingAhead(x)) features.update(isOpposition(x)) features.update(move_distances(x)) features.update(wrongSide(x)) features.update(ishPawn(x)) return features
def extractFeatures(x): """ Chess Features """ features = {} features = defaultdict(lambda: 0.0, features) features.update(canCatchPawn(x)) if (features['cant catch pawn'] == 1): return features features.update(canBeCaptured(x)) features.update(isWhiteKingAhead(x)) features.update(isOpposition(x)) features.update(move_distances(x)) features.update(wrongSide(x)) features.update(ishPawn(x)) return features
def text2feat_dict(text, extractors): features = {} for ename,extr in extractors.items(): features.update(extr.extract_from(text)) return features
def func_features(): y=update() return y