'Jiang-Conrath Similarity:
Return a score denoting how similar two word senses are, based on the
Information Content (IC) of the Least Common Subsumer (most specific
ancestor node) and that of the two input Synsets. The relationship is
given by the equation 1 / (IC(s1) + IC(s2) - 2 * IC(lcs)).
:type  other: Synset
:param other: The ``Synset`` that this ``Synset`` is being compared to.
:type  ic: dict
:param ic: an information content object (as returned by
``nltk.corpus.wordnet_ic.ic()``).
:return: A float score denoting the similarity of the two ``Synset``
objects.'

def jcn_similarity(self, other, ic, verbose=False):

    if (self == other):
        return _INF
    (ic1, ic2, lcs_ic) = _lcs_ic(self, other, ic)
    if ((ic1 == 0) or (ic2 == 0)):
        return 0
    ic_difference = ((ic1 + ic2) - (2 * lcs_ic))
    if (ic_difference == 0):
        return _INF
    return (1 / ic_difference)
