def similarity_by_path(sense1: "wn.Synset", sense2: "wn.Synset", option: str = "path") -> float:
    """
    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.
    """
    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)
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.