code: def similarity_by_path(sense1: "wn.Synset", sense2: "wn.Synset", option: str = "path") -> float:
      
      if option.lower() in ["path", "path_similarity"]: # Path similarities.
          return max(wn.path_similarity(sense1, sense2, if_none_return=0),
                     wn.path_similarity(sense2, sense1, if_none_return=0))
      elif option.lower() in ["wup", "wupa", "wu-palmer", "wu-palmer"]: # Wu-Palmer
          return max(wn.wup_similarity(sense1, sense2, if_none_return=0),
                     wn.wup_similarity(sense2, sense1, if_none_return=0))
      elif option.lower() in ['lch', "leacock-chordorow"]: # Leacock-Chodorow
          if sense1.pos != sense2.pos: # lch can't do diff POS
              return 0
          return wn.lch_similarity(sense1, sense2, if_none_return=0)
docs: Returns maximum path similarity between two senses.
  
      :param sense1: A synset.
      :param sense2: A synset.
      :param option: String, one of ('path', 'wup', 'lch').
      :return: A float, similarity measurement.