import inflect def summarize_predictions_natural_language(predictions): summary = {} p = inflect.engine() for prediction in predictions: label = prediction['label'] if label in summary: summary[label] += 1 else: summary[label] = 1 result_string = "In this image, there are " for i, (label, count) in enumerate(summary.items()): count_string = p.number_to_words(count) result_string += f"{count_string} {label}" if count > 1: result_string += "s" result_string += " " if i == len(summary) - 2: result_string += "and " # Remove the trailing comma and space result_string = result_string.rstrip(', ') + "." return result_string