def pdfrate_feature(pdf_file_paths, speed_up = True):
    classifier = pdfrate_classifier
    scaler = pdfrate_scaler

    if not isinstance(pdf_file_paths, list):
        pdf_file_paths = [pdf_file_paths]

    if speed_up == True:
        # The Pool has to be moved outside the function. Otherwise, every call of this function will result a new Pool. The processes in old Pool would not terminate.
        args = [(classifier, scaler, file_path) for file_path in pdf_file_paths]
        feats = pool.map(_pdfrate_feat_wrapper, args)
    else:
        feats = []
        for pdf_file_path in pdf_file_paths:
            pdf_feats = pdfrate_feature_once(classifier, scaler, pdf_file_path)
            feats.append(pdf_feats)

    all_feat_np = None
    for feat_np in feats:
        if all_feat_np == None:
            all_feat_np = feat_np
        else:
            all_feat_np = np.append(all_feat_np, feat_np, axis=0)
    return all_feat_np