def get_wordnet_sim(self, m1, m2, all_sim=True): a1, a2 = [], [] for m in m1: a1.append(Word(m).lemmatize("v")) for m in m2: a2.append(Word(m).lemmatize("v")) syn1 = Word("_".join(a1)).synsets syn2 = Word("_".join(a2)).synsets if len(syn1) < 1: for m in m1: syn1.extend(Word(m).synsets) if len(syn2) < 1: for m in m2: syn2.extend(Word(m).synsets) sim_max, max_syn1, max_syn2 = self.get_max_synsets(syn1, syn2) hyper_sim = None verb_convert_sim = None if all_sim: if sim_max != None: hyp1, _ = zip(*max_syn1.hypernym_distances()) hyp2, _ = zip(*max_syn2.hypernym_distances()) hyper_sim, _, _ = self.get_max_synsets(list(hyp1), list(hyp2)) # new similarity measure by converting everything to a verb a1, a2 = self.convert_to_verb(max_syn1, m1), self.convert_to_verb( max_syn2, m2) verb_convert_sim, _, _ = self.get_wordnet_sim(a1, a2, False) return sim_max, hyper_sim, verb_convert_sim