Hfst documentation
Hfst is a compiler for finite state transducers. The best documentation for writing such transducers is still Beesley and Karttunen (2003): Finite State Morphology. There still are some important differences between Hfst and the compilers described in the B&K book.
The Hfst subprograms
Hfst consists of a large number of smaller programs, with different functions:
- hfst-calculate
- Compiles SFST files into HFST transducers
- hfst-compare
- Compares two transducers, checking for equivalence
- hfst-compose
- Composes two transducers
- hfst-compose-intersect
- Perform intersecting composition on two transducers (typically the morphotactic transducer/lexicon and the morphophonological transducer)
- hfst-concatenate
- Concatenates two transducers
- hfst-conjunct
- Conjuncts two transducers
- hfst-determinize
- Determinize a transducer, i.e. create an equivalent, epsilon-free transducer that has no state with two or more transitions that have the same input and output symbols.
- [ hfst-diff-test]
- hfst-disjunct
- Disjuncts two transducers
- [ hfst-duplicate]
- [ hfst-foma-wrapper.sh]
- hfst-format
- Determine HFST transducer format and print it to output.
- hfst-fst2fst
- Converts between Hfst, OpenFst, SFST and Foma transducers
- [ hfst-fst2pairstrings]
- hfst-fst2strings
- Display the string pairs recognized by a transducer, i.e. paths that lead from the initial state to a final state.
- hfst-fst2txt
- Prints transducers in AT&T tabular format
- hfst-head
- Get N first transducers from an archive.
- hfst-invert
- Turn a transducer upside down.
- hfst-lexc
- Compile a lexc file into a finite-state transducer
- hfst-lexc2fst
- Legacy support for HFST 2 lexc parser, use only if you really need the command-line version of HFST-based lexc parser
- hfst-lookup
- lookup, gives lemma+analysis of wordforms
- [ hfst-lookup-optimize]
- hfst-pmatch2fst
- Compile a pmatch pmscript into an FST (see Beyond Morphology: Pattern Matching with FST by Lauri Karttunen for what pmatch is)
- hfst-minimize
- Minimize a transducer, i.e. create an equivalent, epsilon-free, deterministic transducer that has as few states as possible.
- hfst-name
- Name a transducer or print its name.
- [ hfst-omor-evaluate]
- hfst-pair-test
- Test a twol rule file using correspondences of strings.
- [ hfst-preprocess-for-optimized-lookup-format]
- hfst-proc
- A tool for performing morphological analysis and generation with finite state transducers. This program is intended to clone functionality of apertium's lt-toolbox's lt-proc and vislcg3's cg-proc.
- hfst-project
- Project a transducer towards input or output level.
- hfst-push-weights
- Push weights of a transducer towards initial state or final states.
- hfst-regexp2fst
- hfst-remove-epsilons
- hfst-repeat
- hfst-reverse
- hfst-split
- hfst-strings2fst
- Compiles string-pairs and pair-strings into transducers
- [ hfst-strip-header]
- hfst-substitute
- hfst-subtract
- hfst-summarise
- Calculates the properties of a transducer
- [ hfst-symbols]
- hfst-tail
- hfst-twolc
- Compiles a twol (two-level morphophonology) file into an Hfst transducer
- [ hfst-twolc-loc]
- hfst-txt2fst
- Converts AT&T tabular format into binary transducers
- hfst-xfst
- Compiles xfst files into Hfst transducers