コード例 #1
0
    def test_sentence_particle_preposition(self):
        random.seed(2743)
        nouns = [Noun('dog'), Noun('cat')]
        verbs = [
            VerbGroup(verb=Verb('pick'),
                      objects=2,
                      preposition=BasicWord.preposition('with'),
                      particle=BasicWord.particle('up'))
        ]
        generator = RandomSentences(verbs, nouns)
        subj = HE

        sentence = generator.sentence(subj, p_pronoun=1.0)
        expected = Sentence([
            HE,
            Verb('pick'), THEM,
            BasicWord.particle('up'),
            BasicWord.preposition('with'),
            Noun('cat'), PERIOD
        ])
        self.assertEqual(sentence, expected)

        sentence = generator.sentence(subj, p_pronoun=0.0)
        expected = Sentence([
            HE,
            Verb('pick'),
            BasicWord.particle('up'),
            Noun('cat'),
            BasicWord.preposition('with'),
            Noun('dog'), EXCLAMATION
        ])
        self.assertEqual(sentence, expected)
コード例 #2
0
    def test_sentence_particle(self):
        random.seed(47)
        nouns = [Noun('dog')]
        verbs = [
            VerbGroup(verb=Verb('pick'),
                      objects=1,
                      preposition=None,
                      particle=BasicWord.particle('up'))
        ]
        generator = RandomSentences(verbs, nouns)
        subj = HE

        sentence = generator.sentence(subj, p_pronoun=1.0)
        expected = Sentence(
            [HE, Verb('pick'), US,
             BasicWord.particle('up'), PERIOD])
        self.assertEqual(sentence, expected)

        sentence = generator.sentence(subj, p_pronoun=0.0)
        expected = Sentence(
            [HE,
             Verb('pick'),
             BasicWord.particle('up'),
             Noun('dog'), PERIOD])
        self.assertEqual(sentence, expected)
コード例 #3
0
    def test_assign_objects_one_object_particle(self):
        verb_group = VerbGroup(verb=Verb('pick'),
                               preposition=None,
                               objects=1,
                               particle=BasicWord.particle('up'))
        self.assertEqual(
            assign_objects(verb_group, [IT]),
            [Verb('pick'), IT, BasicWord.particle('up')])

        self.assertEqual(
            assign_objects(verb_group, [Noun('dog')]),
            [Verb('pick'), BasicWord.particle('up'),
             Noun('dog')])
コード例 #4
0
    def test_assign_objects_no_objects_particle_or_preposition(self):
        verb_group = VerbGroup(verb=Verb('chill'),
                               preposition=BasicWord.preposition('out'),
                               objects=0,
                               particle=None)
        self.assertEqual(
            assign_objects(verb_group, []),
            [Verb('chill'), BasicWord.preposition('out')])

        verb_group = VerbGroup(verb=Verb('run'),
                               preposition=None,
                               objects=0,
                               particle=BasicWord.particle('away'))
        self.assertEqual(assign_objects(verb_group, []),
                         [Verb('run'), BasicWord.particle('away')])
コード例 #5
0
    def test_init_verbs(self):
        verbs = [{
            'verb': 'take',
            'irregular_past': 'took',
            'objects': 2,
            'particle': 'away',
            'preposition': 'with'
        }, {
            'verb': 'play',
            'irregular_past': '',
            'objects': 1,
            'particle': '',
            'preposition': ''
        }]

        lists = WordLists(verbs=verbs)

        expected_verbs = [
            VerbGroup(verb=Verb('take', 'took'),
                      preposition=BasicWord.preposition('with'),
                      particle=BasicWord.particle('away'),
                      objects=2),
            VerbGroup(verb=Verb('play'),
                      preposition=None,
                      particle=None,
                      objects=1)
        ]
        self.assert_unordered_lists(lists.verbs, expected_verbs)
        self.assertEqual(lists.nouns, [])
コード例 #6
0
    def test_eq_false(self):
        verb = Verb('go')
        objects = 1
        preposition = None
        particle = BasicWord.particle('x')
        to_test = VerbGroup(verb, preposition, particle, objects)

        new_verb = Verb('z')
        new_objects = 2
        new_preposition = BasicWord.preposition('x')
        new_particle = BasicWord.particle('y')

        self.assertNotEqual(to_test, VerbGroup(new_verb, preposition, particle, objects))
        self.assertNotEqual(to_test, VerbGroup(verb, new_preposition, particle, objects))
        self.assertNotEqual(to_test, VerbGroup(verb, preposition, new_particle, objects))
        self.assertNotEqual(to_test, VerbGroup(verb, preposition, particle, new_objects))
コード例 #7
0
 def test_eq_true(self):
     verb = Verb('go')
     objects = 1
     preposition = None
     particle = BasicWord.particle('x')
     to_test = VerbGroup(verb, preposition, particle, objects)
     self.assertEqual(to_test, VerbGroup(verb, preposition, particle, objects))
コード例 #8
0
    def setUp(self):
        self.config_state = {
            'error_probability': 1.0,
            'noun_errors': True,
            'pronoun_errors': True,
            'verb_errors': True,
            'is_do_errors': True,
            'preposition_transpose_errors': True,
            'punctuation_errors': True,
            'tense': 'simple_present',
            'probability_plural_noun': 1.0,
            'probability_negative_verb': 1.0,
            'probability_pronoun': 1.0,
            'paragraph_type': 'chain',
            'subject_pool': 1,
            'paragraph_size': 1,
        }

        self.verbs = [
            VerbGroup(Verb('go'), BasicWord.preposition('with'),
                      BasicWord.particle('away'), 1),
            VerbGroup(Verb('eat'), None, None, 1)
        ]
        self.countable_nouns = [Noun('dog'), Noun('cat')]
        self.uncountable_nouns = [
            Noun.uncountable_noun('water'),
            Noun.uncountable_noun('air').definite()
        ]
        self.static_nouns = [
            Noun.proper_noun('Joe'),
            Noun.proper_noun('The Dude')
        ]
        self.word_lists = DummyWordLists(nouns=self.countable_nouns,
                                         verbs=self.verbs)
コード例 #9
0
 def test_assign_objects_two_objects_particle_and_preposition(self):
     verb_group = VerbGroup(verb=Verb('throw'),
                            preposition=BasicWord.preposition('for'),
                            objects=2,
                            particle=BasicWord.particle('away'))
     self.assertEqual(assign_objects(verb_group, [HIM, IT]), [
         Verb('throw'), HIM,
         BasicWord.particle('away'),
         BasicWord.preposition('for'), IT
     ])
     self.assertEqual(
         assign_objects(verb_group, [Noun('cat'), Noun('dog')]), [
             Verb('throw'),
             BasicWord.particle('away'),
             Noun('cat'),
             BasicWord.preposition('for'),
             Noun('dog')
         ])
コード例 #10
0
 def test_error_maker_preposition_errors_complex_case(self):
     sentence = Sentence([
         Pronoun.I,
         Verb('pick'), Pronoun.IT,
         BasicWord.particle('up'),
         BasicWord.preposition('with'),
         Noun('toe').indefinite(), Punctuation.PERIOD
     ])
     expected = Sentence([
         Pronoun.I,
         BasicWord.preposition('with'),
         Noun('toe').indefinite(),
         Verb('pick'), Pronoun.IT,
         BasicWord.particle('up'), Punctuation.PERIOD
     ])
     error_paragraph = ErrorMaker(Paragraph(
         [sentence])).preposition_errors(1.0).get_paragraph()
     self.assertEqual(error_paragraph.sentence_list(), [expected])
コード例 #11
0
 def test_init_with_values(self):
     verb = Verb('go')
     preposition = BasicWord.preposition('with')
     particle = BasicWord.particle('away')
     to_test = VerbGroup(
         verb=verb,
         preposition=preposition,
         particle=particle,
         objects=2)
     self.assertEqual(to_test.verb, verb)
     self.assertEqual(to_test.preposition, preposition)
     self.assertEqual(to_test.particle, particle)
     self.assertEqual(to_test.objects, 2)
コード例 #12
0
def _generate_verb_group(verb_json):
    """
    :param verb_json: keys='verb', 'irregular_past', 'objects', 'preposition', 'particle'
    :return: VerbGroup
    """
    verb = Verb(verb_json['verb'], irregular_past=verb_json['irregular_past'])
    objects = verb_json['objects']

    preposition = BasicWord.preposition(verb_json['preposition'])
    particle = BasicWord.particle((verb_json['particle']))

    if preposition.value == '':
        preposition = None
    if particle.value == '':
        particle = None

    return VerbGroup(verb=verb, objects=objects, preposition=preposition, particle=particle)
コード例 #13
0
 def test_class_method_particle(self):
     particle = BasicWord.particle('up')
     self.assertEqual(particle, BasicWord('up', tags=self.particle))