17 lines
909 B
Plaintext
17 lines
909 B
Plaintext
|
Foma is a compiler, programming language, and C library for constructing
|
||
|
finite-state automata and transducers for various uses. It has specific
|
||
|
support for many natural language processing applications such as
|
||
|
producing morphological analyzers. Although NLP applications are
|
||
|
probably the main use of foma, it is sufficiently generic to use for a
|
||
|
large number of purposes.
|
||
|
|
||
|
The foma interface is similar to the Xerox xfst interface, and supports
|
||
|
most of the commands and the regular expression syntax in xfst. Many
|
||
|
grammars written for xfst compile out-of-the-box with foma.
|
||
|
|
||
|
The library contains efficient implementations of all classical
|
||
|
automata/transducer algorithms: determinization, minimization,
|
||
|
epsilon-removal, composition, boolean operations. Also, more advanced
|
||
|
construction methods are available: context restriction, quotients,
|
||
|
first-order regular logic, transducers from replacement rules, etc.
|