def _obtain_nb_classifiers(model_a_name=None, model_b_name=None,
    model_c_name=None):
    """Obtains the number of different classifiers based on given model names.
        Note that EMOTIC model has already combined body backbone CNN features (which in this case are the  `model_b_name` or `model_c_name`
        features, with `VGG16_Places365` features at training stage, but for simplicity reasons only the body backbone CNN name is adjustable.

    # Arguments
        model_b_name: One of `VGG16`, `VGG19`, `ResNet50` or `None`.
        model_c_name: One of `VGG16`, `VGG19`, `ResNet50` or `None`.

    # Returns
        The number of different classifiers alongside a polished file_name
    """
    if model_b_name is None and model_c_name is not None:
        raise ValueError(
            'The models names must be set in the correct order starting from model_a --> model_b --> model_c. '
            )
    if model_b_name in {None} and model_c_name in {None}:
        nb_classifiers = 1
        file_name = model_a_name
        return nb_classifiers, file_name
    if model_b_name in {'VGG16', 'VGG19', 'ResNet50'} and model_c_name in {None
        }:
        nb_classifiers = 2
        file_name = model_a_name + '_' + model_b_name
        return nb_classifiers, file_name
    if model_b_name in {'VGG16', 'VGG19', 'ResNet50'} and model_c_name in {
        'VGG16', 'VGG19', 'ResNet50'}:
        nb_classifiers = 3
        file_name = model_a_name + '_' + model_b_name + '_' + model_c_name
        return nb_classifiers, file_name
