elif task == '7':
    k = int(input("Enter the number of latent features to consider: "))
    test_dataset_folder_path = os.path.abspath(
        os.path.join(Path(os.getcwd()).parent, test_dataset_path))
    decomposition = Decomposition(feature_extraction_model_name='SIFT',
                                  test_folder_path=test_dataset_folder_path)
    images_list = list(
        misc.get_images_in_directory(test_dataset_folder_path).keys())
    metadata = Metadata(images_list)
    sub_sub_matrix = metadata.subject_matrix()
    nmf = NMFModel(sub_sub_matrix, k, images_list)
    nmf.decompose()
    print('Decomposition Complete')
    nmf.print_term_weight_pairs(k)

elif task == '8':
    test_dataset_folder_path = os.path.abspath(
        os.path.join(Path(os.getcwd()).parent, test_dataset_path))
    images_list = list(
        misc.get_images_in_directory(test_dataset_folder_path).keys())
    metadata = Metadata(images_list)
    binary_image_metadata_matrix = metadata.get_binary_image_metadata()
    k = int(input("Enter the number of latent features to consider: "))
    nmf = NMFModel(binary_image_metadata_matrix, k, images_list)
    nmf.decompose()
    print('Decomposition Complete')
    nmf.print_term_weight_pairs(k)

else:
    print('Please enter the correct task number !')