Ejemplo n.º 1
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.)
Ejemplo n.º 2
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.)
Ejemplo n.º 3
0
    def __init__(self, answer, i):
        Feature.set_type(self, clas)
        Feature.set_name(self, 'Match score')
        sentence = answer.sources[i].sentence
        regex = re.match('.*?(\d+)[-](\d+).*', sentence)  # (\d+)\W(\d+) only for multiple scores detection
        if regex:
            s1 = regex.group(1)
            s2 = regex.group(2)
            sentence_kw = extract_from_string(sentence)
            q = answer.q.root_verb[0]
            qsubj = get_subj(q)
            if qsubj is None:
                Feature.set_info(self, 'no q subj')
                Feature.set_value(self, 0.)
                return
            qsubj = qsubj.text
            result = 1
            if int(s1) <= int(s2):
                result = -1

            try:
                hs = load(sentence, sentence_kw, s1 + '-' + s2)
                score = patterns_string(sentence, qsubj, s1 + '-' + s2, answer.q.searchwords)
                if score == 0:
                    score = float(patterns(hs, qsubj))
                Feature.set_value(self, score * result)
                Feature.set_info(self, s1 + '-' + s2)
            except Exception:
                Feature.set_value(self, 0.)
        else:
            Feature.set_value(self, 0.)
Ejemplo n.º 4
0
    def __init__(self, answer, i):
        Feature.set_type(self, clas)
        Feature.set_name(self, 'Match score')
        sentence = answer.sources[i].sentence
        regex = re.match(
            '.*?(\d+)[-](\d+).*',
            sentence)  # (\d+)\W(\d+) only for multiple scores detection
        if regex:
            s1 = regex.group(1)
            s2 = regex.group(2)
            sentence_kw = extract_from_string(sentence)
            q = answer.q.root_verb[0]
            qsubj = get_subj(q)
            if qsubj is None:
                Feature.set_info(self, 'no q subj')
                Feature.set_value(self, 0.)
                return
            qsubj = qsubj.text
            result = 1
            if int(s1) <= int(s2):
                result = -1

            try:
                hs = load(sentence, sentence_kw, s1 + '-' + s2)
                score = patterns_string(sentence, qsubj, s1 + '-' + s2,
                                        answer.q.searchwords)
                if score == 0:
                    score = float(patterns(hs, qsubj))
                Feature.set_value(self, score * result)
                Feature.set_info(self, s1 + '-' + s2)
            except Exception:
                Feature.set_value(self, 0.)
        else:
            Feature.set_value(self, 0.)