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
def test_sentence_get_subject_no_subject(self): sentence = Sentence([Verb('do'), BasicWord('it')]) self.assertEqual(sentence.get_subject(), -1)
def test_sentence_get_subject_be_verb(self): sentence = Sentence([BasicWord('big'), BasicWord('guy'), BeVerb.IS]) self.assertEqual(sentence.get_subject(), 1)
def test_sentence_get_subject_no_verb(self): sentence = Sentence([BasicWord('hello'), BasicWord('world')]) self.assertEqual(sentence.get_subject(), -1)
def test_sentence_get_subject_with_verb(self): sentence = Sentence([BasicWord('Bob'), Verb('go').third_person(), BasicWord('home')]) self.assertEqual(sentence.get_subject(), 0)