コード例 #1
0
ファイル: treetests.py プロジェクト: rgeorgi/intent
    def promote_test(self):
        """
        Ensure that the "promote=" keyword works as expected.

        """
        t = self.t.copy()
        t[0].delete(promote=True)

        tgt = IdTree.fromstring('''(ROOT (DT The) (NP (NN Boy)))''')
        self.assertTrue(t.similar(tgt))

        t2 = self.t.copy()
        t2[0].delete(promote=False)

        tgt = IdTree.fromstring('''(ROOT)''')
        self.assertTrue(t2.similar(tgt))

        t3 = self.t.copy()
        t3[0][1].delete(promote=True)
        tgt=IdTree.fromstring('''(ROOT (NP (DT The) (NN Boy)))''')

        self.assertTrue(t3.similar(tgt))

        t4 = self.t.copy()
        t4[0][1].delete(promote=False)
        tgt=IdTree.fromstring('''(ROOT (NP (DT The)))''')
        self.assertTrue(t4.similar(tgt))
コード例 #2
0
ファイル: treetests.py プロジェクト: rgeorgi/intent
    def ordering_test(self):
        """
        This particular tree structure results in changing a child of a tree while iterating through
        the children and required a fix such that if such a change is detected, we start iterating
        over the children again, so we're not holding onto a stale pointer.

        """
        src_t = IdTree.fromstring('''(ROOT (FRAG
                                            (ADVP (RB Probably))
                                            (SBAR (S
                                                    (NP (PRP you))
                                                    (VP (VBP find)
                                                        (ADJP (JJ something))
                                                    )
                                                  )
                                            )
                                           ))''')

        tgt_t = IdTree.fromstring('''(ROOT (FRAG
                                                (VBP chitt-u-m)
                                                (ADVP (RB hola))
                                                (UNK ni)
                                                (UNK hou)
                                                (VBP chitt-u-m)
                                            ))''')
        tgt_w = create_words_tier_from_string('''chitt-u-m hola ni hou chitt-u-m''')
        aln = Alignment([(1,2),(3,1),(3,5)])

        proj = project_ps(src_t, tgt_w, aln)

        self.assertTrue(tgt_t.similar(proj))
コード例 #3
0
ファイル: treetests.py プロジェクト: rgeorgi/intent
    def test_duplicates(self):
        """
        Test the case where an English word aligns to multiple language words.

        """
        src_t = IdTree.fromstring('(ROOT (SBARQ (WHNP (WP Who)) (SQ (VP (VBZ else?)))))')
        tgt_w = create_words_tier_from_string('sa-lo sa-lo')
        tgt_t = IdTree.fromstring('(ROOT (SBARQ (WHNP (WP sa-lo) (WP sa-lo))))')
        aln = Alignment([(1,1),(1,2)])

        result = project_ps(src_t, tgt_w, aln)

        self.assertTrue(tgt_t.similar(result))
コード例 #4
0
ファイル: treetests.py プロジェクト: rgeorgi/intent
    def ctn_merge_2_test(self):
        src_t = IdTree.fromstring('''(ROOT
                                      (UCP
                                        (S
                                          (NP (PRP They))
                                          (VP
                                            (VBP are)
                                            (RB also)
                                            (ADJP
                                              (RB too)
                                              (JJ lazy)
                                              (S
                                                (VP
                                                  (TO to)
                                                  (VP (VB take) (NP (PRP it)) (ADVP (RB out,))))))))
                                        (CC and)
                                        (SBAR
                                          (IN so)
                                          (S
                                            (NP (PRP they))
                                            (VP (VBP do) (RB not) (VP (VB drink) (NP (NN it.))))))))''')
        tgt_w = create_words_tier_from_string('loĩs-ma yaŋ hunci-suma kat-a-ŋs-e kina u-tus-u-kV-nɨŋ')
        aln = Alignment([(16, 6), (3, 2), (7, 1), (15, 3), (9, 3), (11, 3), (12, 6), (14, 6), (13, 6), (4, 3), (5, 3)])

        proj = project_ps(src_t, tgt_w, aln)
        self.assertEqual(len(proj.leaves()), 6)
コード例 #5
0
ファイル: treetests.py プロジェクト: rgeorgi/intent
 def setUp(self):
     self.t = IdTree.fromstring('''(ROOT
                                       (SBARQ
                                         (WHNP (WP Who))
                                         (SQ (VBP do)
                                             (NP (PRP you))
                                         (VP (VB believe)
                                             (VP (VBN called))))))''')
コード例 #6
0
ファイル: treetests.py プロジェクト: rgeorgi/intent
    def failed_insertion_test(self):
        t = IdTree.fromstring('''(ROOT
  (SBARQ
    (WHNP (WDT What) (NP (NN kind) (PP (IN of) (NP (NNP work,)))))
    (SQ (VP (VBZ then?)))))''')
        tgt_w = create_words_tier_from_string('kam-a na them lis-no-kha hou')
        aln = Alignment([(1, 3), (2, 5), (4, 1), (5, 5)])

        project_ps(t, tgt_w, aln)
コード例 #7
0
ファイル: treetests.py プロジェクト: rgeorgi/intent
    def replace_test(self):
        tgt = IdTree.fromstring('''(ROOT (NP (DT The) (NN Dog)))''')

        self.assertFalse(self.t.similar(tgt))

        # Replace the "NP" in (NP (NN Boy)) with (NN Dog)
        self.t[0,1].replace(IdTree('NN',[Terminal('Dog', index=2)]))

        self.assertTrue(self.t.similar(tgt))
コード例 #8
0
ファイル: treetests.py プロジェクト: rgeorgi/intent
    def propagate_test(self):
        tgt = IdTree.fromstring('''(ROOT (NP (DT The)))''')

        self.assertFalse(self.t.similar(tgt))

        # Delete the "NN" in boy.
        self.t[0,1,0].delete()

        self.assertTrue(self.t.similar(tgt))
コード例 #9
0
ファイル: treetests.py プロジェクト: rgeorgi/intent
 def setUp(self):
     self.t = IdTree.fromstring('''
     (S
         (NP
             (DT The)
             (NN teacher)
         )
         (VP
             (VBD gave)
             (NP
                 (DT a)
                 (NN book)
             )
             (PP
                 (IN to)
                 (NP
                     (DT the)
                     (NN boy)
                 )
             )
             (NP
                 (NN yesterday)
             )
         )
     )''')
     self.proj = IdTree.fromstring(
         '''(S
             (VBD rhoddodd)
             (NP
                 (DT yr)
                 (NN athro)
             )
             (NP
                 (NN lyfr)
             )
             (PP
                 (IN+DT i'r)
                 (NN bachgen)
             )
             (NP
                 (NN ddoe)
             )
         )''')
     self.aln = intent.alignment.Alignment.Alignment([(1,2), (2,3), (3,1), (5,4), (6, 5), (7, 5), (8, 6), (9, 7)])
コード例 #10
0
ファイル: treetests.py プロジェクト: rgeorgi/intent
    def test_swap_preterminals(self):
        t2 = self.t2.copy()
        t2.swap(0,2)

        t3 = IdTree.fromstring('''(NP (NN Fox) (DT quick) (ADJ The))''')
        l = t3.leaves()
        l[0].index = 3
        l[2].index = 1

        self.assertTrue(t2.similar(t3))
コード例 #11
0
ファイル: treetests.py プロジェクト: rgeorgi/intent
    def test_merge_preterminal_nodes_no_unify(self):
        t = IdTree.fromstring('''(NP (DT The) (NN Boy) (VB Ran))''')

        self.assertEqual(t.span(), (1,3))
        self.assertEqual(t[0].span(), (1,1))
        self.assertEqual(t[1].span(), (2,2))
        t.merge(0,1, unify_children=False)
        self.assertEqual(t[0].label(), 'DT+NN')
        self.assertEqual(t[0].span(), (1,2))
        self.assertEqual(t.span(), (1,3))
コード例 #12
0
ファイル: treetests.py プロジェクト: rgeorgi/intent
    def test_swap_nonterminals(self):
        t = self.t.copy()
        t.swap(0, 1)

        # Now, set up the leaves with the correct indices...
        t2 = IdTree.fromstring('''(S (VP (VB Ran)) (NP (DT The) (NN Boy)))''')
        l = t2.leaves()

        l[0].index = 3
        l[1].index = 1
        l[2].index = 2

        self.assertTrue(t.similar(t2))
コード例 #13
0
ファイル: treetests.py プロジェクト: rgeorgi/intent
    def test_merge_preterminal_nodes_unify(self):
        t = IdTree.fromstring('''(NP (DT The) (NN The) (VB Ran))''')

        l = t.leaves()
        l[0].index = 1
        l[1].index = 1
        l[2].index = 2

        self.assertEqual(t.span(), (1,2))
        self.assertEqual(t[0].span(), (1,1))
        self.assertEqual(t[1].span(), (1,1))

        t.merge(0,1, unify_children=True)
        self.assertEqual(t[0].label(), 'DT+NN')
        self.assertEqual(t[0].span(), (1,1))
        self.assertEqual(t.span(), (1,2))
コード例 #14
0
ファイル: treetests.py プロジェクト: rgeorgi/intent
    def test_merge_interior_nodes(self):
        t = self.t.copy()

        t[0].merge(0, 1, unify_children=False)

        self.assertNotEqual(t, self.t)

        t2 = IdTree.fromstring('''(ROOT (SBARQ (WHNP+SQ
                                                (WP Who)
                                                (VBP do)
                                                (NP (PRP you))
                                                (VP (VB believe)
                                                    (VP (VBN called))
                                                ))
                                        ))''')
        self.assertTrue(t2.similar(t))
        self.assertEqual(t2[0,0].label(), 'WHNP+SQ')

        t[(0,0)].merge(0,1, unify_children=False)
        self.assertEquals(t[(0,0,0)].span(), (1,2))
コード例 #15
0
ファイル: treetests.py プロジェクト: rgeorgi/intent
    def internal_merge_test(self):
        t = IdTree.fromstring('''(ROOT
                                  (UCP
                                    (S
                                      (NP (PRP u-tus-u-kV-nɨŋ))
                                      (VP
                                        (RB u-tus-u-kV-nɨŋ)
                                        (ADJP
                                          (RB loĩs-ma)
                                          (JJ loĩs-ma)
                                          (S (VP (VP (VB loĩs-ma) (NP (PRP kat-a-ŋs-e)) (ADVP (RB loĩs-ma))))))))
                                    (SBAR
                                      (IN loĩs-ma)
                                      (S
                                        (NP (PRP u-tus-u-kV-nɨŋ))
                                        (VP (VBP u-tus-u-kV-nɨŋ) (RB u-tus-u-kV-nɨŋ) (VP (VB loĩs-ma) (NP (NN loĩs-ma))))))))''')

        UCP = t[0]
        self.assertEqual(len(UCP), 2)
        UCP.merge(0,1)


        self.assertEqual(len(UCP), 1)
        self.assertEqual(len(UCP[0]), 4)
コード例 #16
0
ファイル: treetests.py プロジェクト: rgeorgi/intent
 def setUp(self):
     self.t = IdTree.fromstring('''(S (NP (DT The) (NN Boy)) (VP (VB Ran) ))''')
     self.t2 = IdTree.fromstring('''(NP (DT The) (ADJ quick) (NN Fox))''')
コード例 #17
0
ファイル: treetests.py プロジェクト: rgeorgi/intent
 def setUp(self):
     self.t = IdTree.fromstring('''(ROOT (NP (DT The) (NP (NN Boy))))''')
コード例 #18
0
ファイル: treetests.py プロジェクト: rgeorgi/intent
 def setUp(self):
     self.t = IdTree.fromstring('(S (NP (DT the) (NN boy)) (VP (VBD ran) (IN away)))')