Exemple #1
0
def _needs_third_person(sentence: Sentence):
    verb_index = sentence.get_verb()
    subject_index = sentence.get_subject()
    if verb_index == -1 or subject_index == -1:
        return False

    subject = sentence.get(subject_index)

    first_person = (Pronoun.I, Pronoun.ME, CapitalPronoun.I, CapitalPronoun.ME)
    if isinstance(subject, (Noun, AbstractPronoun)) and subject not in first_person:
        return not subject.has_tags(WordTag.PLURAL)
    return False
Exemple #2
0
 def test_sentence_get_subject_no_subject(self):
     sentence = Sentence([Verb('do'), BasicWord('it')])
     self.assertEqual(sentence.get_subject(), -1)
Exemple #3
0
 def test_sentence_get_subject_be_verb(self):
     sentence = Sentence([BasicWord('big'), BasicWord('guy'), BeVerb.IS])
     self.assertEqual(sentence.get_subject(), 1)
Exemple #4
0
 def test_sentence_get_subject_no_verb(self):
     sentence = Sentence([BasicWord('hello'), BasicWord('world')])
     self.assertEqual(sentence.get_subject(), -1)
Exemple #5
0
 def test_sentence_get_subject_with_verb(self):
     sentence = Sentence([BasicWord('Bob'), Verb('go').third_person(), BasicWord('home')])
     self.assertEqual(sentence.get_subject(), 0)