Esempio n. 1
0
 def __init__(self, answer, i):
     Feature.set_type(self, clas + rel)
     Feature.set_name(self, 'Antonyms')
     q = answer.q
     sentence = answer.sources[i].sentence
     q_verb = q.root_verb[0].lemma_
     doc = nlp(sentence)
     s1 = []
     for s in doc.sents:
         s1.append(s)
     s_verb = s1[0].root.lemma_
     sim = antonym(s_verb, q_verb)
     Feature.set_value(self, sim)
Esempio n. 2
0
 def __init__(self, answer, i):
     Feature.set_type(self, clas + rel)
     Feature.set_name(self, 'Antonyms')
     q = answer.q
     sentence = answer.sources[i].sentence
     q_verb = q.root_verb[0].lemma_
     doc = nlp(sentence)
     s1 = []
     for s in doc.sents:
         s1.append(s)
     s_verb = s1[0].root.lemma_
     sim = antonym(s_verb, q_verb)
     Feature.set_value(self, sim)
Esempio n. 3
0
 def __init__(self, answer, i):
     Feature.set_type(self, clas + rel)
     Feature.set_name(self, 'Verb similarity (WordNet)')
     q = answer.q
     sentence = answer.sources[i].sentence.split(':')[-1]
     q_verb = q.root_verb[0].lemma_
     doc = nlp(sentence)
     s1 = list(doc.sents)
     s_verb = s1[0].root.lemma_
     info = 'Qverb=%s, Sverb=%s' % (q_verb, s_verb)
     Feature.set_info(self, info)
     sim = max_sim(s_verb, q_verb)
     Feature.set_value(self, sim)
Esempio n. 4
0
 def __init__(self, answer, i):
     Feature.set_type(self, clas + rel)
     Feature.set_name(self, 'Verb similarity (WordNet)')
     q = answer.q
     sentence = answer.sources[i].sentence.split(':')[-1]
     q_verb = q.root_verb[0].lemma_
     doc = nlp(sentence)
     s1 = list(doc.sents)
     s_verb = s1[0].root.lemma_
     info = 'Qverb=%s, Sverb=%s' % (q_verb, s_verb)
     Feature.set_info(self, info)
     sim = max_sim(s_verb, q_verb)
     Feature.set_value(self, sim)
Esempio n. 5
0
    def __init__(self, answer, i):
        Feature.set_type(self, clas + rel)
        Feature.set_name(self, 'Verb similarity (spacy)')
        q = answer.q
        sentence = answer.sources[i].sentence.split(':')[-1]
        doc = nlp(sentence)
        s1 = list(doc.sents)
        for j in range(len(s1)):
            if not s1[j].text.isspace():
                s_verbs = verbs(s1[j])
                break

        q_root = q.root_verb[0]
        doc = nlp(q_root.lemma_)
        s1 = list(doc.sents)
        q_root = s1[0][0]

        if len(s_verbs
               ) == 0 or s_verbs[0].lemma_ == 'be' or q_root.lemma_ == 'be':
            Feature.set_value(self, 0.)
            return
        else:
            doc = nlp(s_verbs[0].lemma_)
            s1 = list(doc.sents)
            s_root = s1[0][0]

        q_vec = bow([q_root])
        s_vec = bow([s_root])
        info = ''
        for verb in [q_root]:
            info += 'Qverb=%s   ' % (verb)
        for verb in [s_root]:
            info += 'Sverb=%s   ' % (verb)
        Feature.set_info(self, info)
        sim = np.dot(q_vec,
                     s_vec) / (np.linalg.norm(q_vec) * np.linalg.norm(s_vec))
        if math.isnan(sim):
            sim = 0
        Feature.set_value(self, sim)
Esempio n. 6
0
    def __init__(self, answer, i):
        Feature.set_type(self, clas + rel)
        Feature.set_name(self, 'Verb similarity (spacy)')
        q = answer.q
        sentence = answer.sources[i].sentence.split(':')[-1]
        doc = nlp(sentence)
        s1 = list(doc.sents)
        for j in range(len(s1)):
            if not s1[j].text.isspace():
                s_verbs = verbs(s1[j])
                break

        q_root = q.root_verb[0]
        doc = nlp(q_root.lemma_)
        s1 = list(doc.sents)
        q_root = s1[0][0]

        if len(s_verbs) == 0 or s_verbs[0].lemma_ == 'be' or q_root.lemma_ == 'be':
            Feature.set_value(self, 0.)
            return
        else:
            doc = nlp(s_verbs[0].lemma_)
            s1 = list(doc.sents)
            s_root = s1[0][0]

        q_vec = bow([q_root])
        s_vec = bow([s_root])
        info = ''
        for verb in [q_root]:
            info += 'Qverb=%s   ' % (verb)
        for verb in [s_root]:
            info += 'Sverb=%s   ' % (verb)
        Feature.set_info(self, info)
        sim = np.dot(q_vec, s_vec) / (np.linalg.norm(q_vec) * np.linalg.norm(s_vec))
        if math.isnan(sim):
            sim = 0
        Feature.set_value(self, sim)
Esempio n. 7
0
 def __init__(self, answer, i):
     Feature.set_type(self, clas + rel)
     Feature.set_name(self, 'Subject match')
     sentence = answer.sources[i].sentence.split(':')[-1]
     q = answer.q.root_verb[0]
     qsubj = get_subj(q)
     ssubj = get_subj(list(nlp(sentence).sents)[0].root)
     if qsubj is None or ssubj is None:
         Feature.set_value(self, 0.)
         return
     info = 'Qsubject=%s, Ssubject=%s' % (qsubj.text, ssubj.text)
     Feature.set_info(self, info)
     if qsubj.lower_ in ssubj.lower_ or ssubj.lower_ in qsubj.lower_:
         Feature.set_value(self, 1.)
     else:
         Feature.set_value(self, 0.)
Esempio n. 8
0
 def __init__(self, answer, i):
     Feature.set_type(self, clas + rel)
     Feature.set_name(self, 'Subject match')
     sentence = answer.sources[i].sentence.split(':')[-1]
     q = answer.q.root_verb[0]
     qsubj = get_subj(q)
     ssubj = get_subj(list(nlp(sentence).sents)[0].root)
     if qsubj is None or ssubj is None:
         Feature.set_value(self, 0.)
         return
     info = 'Qsubject=%s, Ssubject=%s' % (qsubj.text, ssubj.text)
     Feature.set_info(self, info)
     if qsubj.lower_ in ssubj.lower_ or ssubj.lower_ in qsubj.lower_:
         Feature.set_value(self, 1.)
     else:
         Feature.set_value(self, 0.)