code: def original_lesk(context_sentence: str, ambiguous_word: str, dictionary=None, from_cache=True) -> "wn.Synset":
      
  
      ambiguous_word = lemmatize(ambiguous_word)
      if not dictionary: # If dictionary is not provided, use the WN defintion.
          dictionary = signatures(ambiguous_word, original_lesk=True, from_cache=from_cache)
      best_sense = compare_overlaps_greedy(context_sentence.split(), dictionary)
  
      return best_sense
docs: This function is the implementation of the original Lesk algorithm (1986).
      It requires a dictionary which contains the definition of the different
      sense of each word. See http://dl.acm.org/citation.cfm?id=318728
  
      :param context_sentence: String, sentence or document.
      :param ambiguous_word: String, a single word.
      :return: A Synset for the estimated best sense.