Пример #1
0
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
Пример #2
0
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
Пример #3
0
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
Пример #4
0
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
Пример #5
0
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
Пример #6
0
def text2feat_dict(text, extractors):
    features = {}
    for ename,extr in extractors.items():
        features.update(extr.extract_from(text))
    return features
Пример #7
0
def func_features():
	y=update()
	return y