- 0

OpenFst is a library for constructing, combining, optimizing, and searching weighted finite-state transducers (FSTs). Weighted finite-state transducers are automata where each transition has an input label, an output label, and a weight. FSTs have key applications in speech recognition and synthesis, machine translation, optical character recognition, pattern matching, string processing, machine learning, information extraction and retrieval among others.

http://www.openfst.org/twiki/bin/view/FST/WebHomeTags | finite-state automata transducers fst state |

Implementation | C++ |

License | Apache |

Platform | Windows Linux |

OpenFst - library for finite state transducers development

Utilities for manipulating finite state transducers with the OpenFst library.

(Weighted) Finite State Transducers for Scala NLP

A library to build and manipulate finite state automata, I/O automata, transducers and rational langagues in Java.

A pure and generic implementation of finite state automata in Haskell.

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.

To build an FST, create a new builder using the New() method. This method takes an io.Writer as an argument. As the FST is being built, data will be streamed to the writer as soon as possible. With this builder you MUST insert keys in lexicographic order. Inserting keys out of order will result in an error. After inserting the last key into the builder, you MUST call Close() on the builder. This will flush all remaining data to the underlying writer.After closing the builder, the data can be used to instantiate an FST. If the data was written to disk, you can use the Open() method to mmap the file. If the data is already in memory, or you wish to load/mmap the data yourself, you can instantiate the FST with the Load() method.

Implementation of a simple finite state automata.

Python Libraries and Samples of Finite State Automata

Tagged non-deterministic finite-state automata

Package mafsa implements Minimal Acyclic Finite State Automata (MA-FSA) with Minimal Perfect Hashing (MPH). Basically, it's a set of strings that lets you test for membership, do spelling correction (fuzzy matching) and autocomplete, but with higher memory efficiency than a regular trie. With MPH, you can associate each entry in the tree with data from your own application.A BuildTree is used to build data from scratch. Once all the elements have been inserted, the BuildTree can be serialized into a byte slice or written to a file directly. It can then be decoded into a MinTree, which uses significantly less memory. MinTrees are read-only, but this greatly improves space efficiency.

map-state, mapcat-state, etc for state transducers in Clojure

StatefulJ is a lightweight, open source Java Event Driven Finite State Machine(FSM) and a complete Spring Data based framework which lets you easily define and integrate State Machines into your Applications. It is simple, dependency free, in memory implementation of an FSM with support for concurrency and non-deterministic transitions.

state-machine finite-state-machine fsmA Finite State Machine Editor, written on QT. It allows to draw Finite State Machine with easy GUI and store it in XML file. There are Finite State Machine Compilers to translate this description to source code (technique like QT's UIC uses).

Finite State Automaton (or finite-state machine) in JavaScript

Minimal Finite State Machine.There are many finite state machine implementations for Ruby, and they all provide a nice DSL for declaring events, exceptions, callbacks, and all kinds of niceties in general.

finite-state-machine lesscodeFLVIZ stands for "Formal Languages Visualizer". It is a Windows GUI program which reads a configuration file, and based on its content creates a visualization of a state machine (graph), and lets you apply a stimulus (vocabulary) and see the state transitions happen dynamically.