This contrasts with an ordinary finite-state automaton, which has a single tape.
An FST is a type of finite-state automaton (FSA) that maps between two sets of symbols.
An FST can be thought of as a translator or relater between strings in a set.
An automaton can be said to recognize a string if we view the content of its tape as input.
In other words, the automaton computes a function that maps strings into the set {0,1}.
On this view, the automaton generates a formal language, which is a set of strings.
In general, a transducer computes a relation between two formal languages.
Finite-state transducers are often used for phonological and morphological analysis in natural language processing research and applications.
Pioneers in this field include Ronald Kaplan, Lauri Karttunen, Martin Kay and Kimmo Koskenniemi.
Formally, a finite transducer T is a 6-tuple (Q, Σ, Γ, I, F, δ) such that: We can view (Q, δ) as a labeled directed graph, known as the transition graph of T: the set of vertices is Q, and
A Weighted Finite State Transducer (WFST) over a set K of weights can be defined similarly to an unweighted one as an 8-tuple T=(Q, Σ, Γ, I, F, E, λ, ρ), where: In order to make certain operations on WFSTs well-defined, it is convenient to require the set of weights to form a semiring.
[citation needed] The following operations defined on finite automata also apply to finite transducers: FSTs are used in the lexical analysis phase of compilers to associate semantic value with the discovered tokens.
[13] Context-sensitive rewriting rules of the form a → b / c _ d, used in linguistics to model phonological rules and sound change, are computationally equivalent to finite-state transducers, provided that application is nonrecursive, i.e. the rule is not allowed to rewrite the same substring twice.
[15][16] An implementation for part-of-speech tagging can be found as one component of the OpenGrm[17] library.