<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def compare_overlaps_greedy(context: list, synsets_signatures: dict) -> "wn.Synset": """ Calculate overlaps between the context sentence and the synset_signatures and returns the synset with the highest overlap. Note: Greedy algorithm only keeps the best sense, see https://en.wikipedia.org/wiki/Greedy_algorithm Only used by original_lesk(). Keeping greedy algorithm for documentary sake, because original_lesks is greedy. :param context: List of strings, tokenized sentence or document. :param synsets_signatures: dict of Synsets and the set of their corresponding signatures. :return: The Synset with the highest number of overlaps with its signatures. """


    max_overlaps = 0; lesk_sense = None
    for ss in synsets_signatures:
        overlaps = set(synsets_signatures[ss]).intersection(context)
        if len(overlaps) > max_overlaps:
            lesk_sense = ss
            max_overlaps = len(overlaps)

    return lesk_sense