Package fsa_recognizer :: Module sheep_language
[hide private]
[frames] | no frames]

Source Code for Module fsa_recognizer.sheep_language

 1  """ 
 2  Some nhand built FSTs for transducing sheep language. 
 3   
 4  @var transductions: The TransitionTable for the Sheep Language Transducer 
 5  @type transductions: TransitionTable 
 6  @var transducer_finals: The finals for the Sheep Language Transducer 
 7  @type transducer_finals: tuple 
 8  @var transduced_sheep_language: the Sheep Language Transducer 
 9  @type transduced_sheep_language: Machine 
10  """ 
11   
12  # The following machine transduces surface sheep language into 
13  #  lexical 1's and 2's. 
14  #  (but optionally allows 'b's to correspond to 3's). 
15  # Upper alphabet = ['a','b','!'] 
16  # Lower alphabet = [1,2,3,'!'] 
17  # Feasible pairs = {'a':1,'b':2, 'b':3, '!':'!'} 
18  transductions = [ {'a': {'1':('und',),'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}, 
19                     'b': {'1':('und',),'2':(1,),'3':(1,),'!':('und',),'epsilon':('und',)}, 
20                     '!':{'1':('und',),'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}, 
21                     'epsilon':{'1':('und',),'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}},    # state 0  b:2 => 1 
22                    # 
23                    {'a': {'1':(2,) ,'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}, 
24                     'b': {'1':('und',),'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}, 
25                     '!':{'1':('und',),'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}, 
26                     'epsilon':{'1':('und',),'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}},    # state 1  a:1 => 2 
27                    # 
28                    {'a': {'1':(3,2) ,'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}, 
29                     'b': {'1':('und',),'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}, 
30                     '!':{'1':('und',),'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}, 
31                     'epsilon':{'1':('und',),'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}},    # state 2  a:1 => 3 
32   
33                    # 
34                    {'a': {'1':('und',) ,'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}, 
35                     'b': {'1':('und',),'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}, 
36                     '!':{'1':('und',),'2':('und',),'3':('und',),'!':(4,),'epsilon':('und',)}, 
37                     'epsilon':{'1':('und',),'2':('und',),'!':('und',),'epsilon':('und',)}},    # state 3  a:1 => 3,4 
38                    # 
39                    {'a': {'1':('und',),'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}, 
40                     'b': {'1':('und',),'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}, 
41                     '!':{'1':('und',),'2':('und',),'3':('und',) ,'!':('und',),'epsilon':('und',)}, 
42                     'epsilon':{'1':('und',),'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}},    # state 4 Final und for everything 
43                  ] 
44   
45  transducer_finals = (4,) 
46  transduced_sheep_language = (transductions, transducer_finals) 
47   
48  # The following machine transduces surface sheep language into 
49  #  lexical 1's and 2's. 
50  #  (but optionally allows 'b's to correspond to 3's and optionally 
51  #   allows an underlying initial deleted 1) 
52  transductions2 = [{'a': {'1':('und',),'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}, 
53                     'b': {'1':('und',),'2':('und',),'3':('und',),'!':('und',),'epsilon':(2,)}, 
54                     '!':{'1':('und',),'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}, 
55                     'epsilon':{'1':(1,),'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}},    # state 0  b:eps => 2 eps:1 => 1 
56                     # 
57                     {'a': {'1':('und',),'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}, 
58                     'b': {'1':('und',),'2':(2,),'3':(2,),'!':('und',),'epsilon':('und',)}, 
59                     '!':{'1':('und',),'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}, 
60                     'epsilon':{'1':('und',),'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}},    # state 1 b:2 => 2 
61                    # 
62                    {'a': {'1':(3,) ,'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}, 
63                     'b': {'1':('und',),'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}, 
64                     '!':{'1':('und',),'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}, 
65                     'epsilon':{'1':('und',),'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}},    # state 2  a:1 => 2 
66                    # 
67                    {'a': {'1':(4,3) ,'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}, 
68                     'b': {'1':('und',),'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}, 
69                     '!':{'1':('und',),'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}, 
70                     'epsilon':{'1':('und',),'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}},    # state 3  a:1 => 3 
71    
72                    # 
73                    {'a': {'1':('und',) ,'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}, 
74                     'b': {'1':('und',),'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}, 
75                     '!':{'1':('und',),'2':('und',),'3':('und',),'!':(4,),'epsilon':('und',)}, 
76                     'epsilon':{'1':('und',),'2':('und',),'!':('und',),'epsilon':('und',)}},    # state 4  a:1 => 3,4 
77                    # 
78                    {'a': {'1':('und',),'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}, 
79                     'b': {'1':('und',),'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}, 
80                     '!':{'1':('und',),'2':('und',),'3':('und',) ,'!':('und',),'epsilon':('und',)}, 
81                     'epsilon':{'1':('und',),'2':('und',),'3':('und',),'!':('und',),'epsilon':('und',)}},    # state 5 Final end for everything 
82                  ] 
83   
84  transduced_sheep_language2 = (transductions2, transducer_finals) 
85   
86  # Upper alphabet = ['a','b','!'] 
87  # Lower alphabet = [1,2,3,'!'] 
88  # Feasible pairs = {'a':1,'b':2, 'b':3, '!':'!'} 
89