Hfst documentation

From Apertium
Jump to navigation Jump to search

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
  • 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

See also