Package fsa_recognizer :: Module class_nondet_fsa_recognize :: Class nondet_fsa_recognizer
[hide private]
[frames] | no frames]

Class nondet_fsa_recognizer

source code

class_fsa_recognize.fsa_recognizer --+
                                     |
                                    nondet_fsa_recognizer

Class for non_deterministic fsa recognizer. fsa is checked at init time to assure it is non-deterministic.

Agenda is recreated with appropriate starting search state on every call to recognize.

Essentially a class-based version of the algorithm in fsa_recognizer.nondet_fsa_rec. See also Jurafsky and Martin, Speech and Natural Language Processing, Fig 2.21)

Instance Methods [hide private]
 
__init__(self, fsa_inst, trace=False) source code
 
initialize_recognizer(self, string) source code
Boolean
recognize(self, string)
Return True if string is in the language defined by self.fsa, else False.
source code
a list of search_states
generate_new_states(self, current_search_state)
We assume every input alphabet includes ε and therefore generate new states for ε-transitions first.
source code
Boolean
accept_state(self, current_search_state)
Return True iff tape_index for current_search_state is the last index of self.string and machine_state for current search state is a final state.
source code
a list of search_states
simple_generate_new_states(self, current_search_state)
A simplified version of generate_new_states, leaving out message-printing calls to maximize readability.
source code
 
undefined_state(self, machine_state) source code
 
epsilon_transition_message(self, current_search_state, states) source code
 
symbolic_transition_message(self, current_search_state, obs, states) source code
 
backtracking_message(self, current_search_state) source code

Inherited from class_fsa_recognize.fsa_recognizer: __repr__, non_final_state_message, not_in_alphabet_message, state_not_defined_for_message, trace

Method Details [hide private]

__init__(self, fsa_inst, trace=False)
(Constructor)

source code 
Parameters:
  • fsa - The fsa to be used for recognizing
  • trace - If True, gives verbose output on recognizing
Overrides: class_fsa_recognize.fsa_recognizer.__init__
(inherited documentation)

recognize(self, string)

source code 

Return True if string is in the language defined by self.fsa, else False.

initialize_recognizer fires up and initializes a fresh Agenda. While-loop: We check current_search_state to see if it is an accept state and if so return True, and if not, we check to see if we are past the end of string, and if not, we generate new states from the current state. If Agenda is non-empty we pop it and loop again.

Returns: Boolean
Overrides: class_fsa_recognize.fsa_recognizer.recognize

generate_new_states(self, current_search_state)

source code 

We assume every input alphabet includes ε and therefore generate new states for ε-transitions first. obs (for observation) is the symbol at the current string position. We then generate new states for obs.

Keeping track of whether any new states are generated to print backtracking message.

Compare fsa_recognizer.nondet_fsa_rec.generate_new_states.

Parameters:
  • current_search_state (search_state)
Returns: a list of search_states

accept_state(self, current_search_state)

source code 

Return True iff tape_index for current_search_state is the last index of self.string and machine_state for current search state is a final state.

Parameters:
  • current_search_state (search_state)
Returns: Boolean

simple_generate_new_states(self, current_search_state)

source code 

A simplified version of generate_new_states, leaving out message-printing calls to maximize readability.

We assume every input alphabet includes ε and therefore generate new states for ε-transitions first. obs (for observation) is the symbol at the current string position. We then generate new states for obs.

Compare fsa_recognizer.nondet_fsa_rec.generate_new_states.

Parameters:
  • current_search_state (search_state)
Returns: a list of search_states