HFST

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Helsinki Finite-State Technology
DeveloperHFST team
Initial release2008; 18 years ago (2008)
Stable release
3.16.2 / January 18, 2025; 17 months ago (2025-01-18)[1]
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Written inC++, Prolog, Python
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Operating systemCross-platform: Linux, Mac OS X, Windows
    Platformx86
    Available inEnglish
    TypeFinite-state toolkit
    LicenseGPLv3, part Apache
    Websitehfst.github.io

    Helsinki Finite-State Technology (HFST) is a computer programming library and set of utilities for natural language processing with finite-state automata and finite-state transducers. It is free and open-source software, released under a mix of the GNU General Public License version 3 (GPLv3) and the Apache License.

    Features

    [edit | edit source]

    The library functions as an interchanging interface to multiple backends, such as OpenFST, foma and SFST. The utilities comprise various compilers, such as hfst-twolc (a compiler for morphological two-level rules),[2] hfst-lexc (a compiler for lexicon definitions) and hfst-regexp2fst (a regular expression compiler). Functions from Xerox's proprietary scripting language xfst is duplicated in hfst-xfst, and the pattern matching utility pmatch in hfst-pmatch, which goes beyond the finite-state formalism in having recursive transition networks (RTNs).

    The library and utilities are written in C++, with an interface to the library in Python and a utility for looking up results from transducers ported to Java and Python.

    Transducers in HFST may incorporate weights depending on the backend. For performing FST operations, this is currently only possible via the OpenFST backend. HFST provides two native backends, one designed for fast lookup (hfst-optimized-lookup), the other for format interchange. Both of them can be weighted.

    HFST has been used for writing various linguistic tools, such as spell-checkers, hyphenators, and morphologies.[3][4] Morphological dictionaries written in other formalisms have also been converted to HFST's formats.[5]

    See also

    [edit | edit source]

    Notes

    [edit | edit source]
    1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    [edit | edit source]

    References

    [edit | edit source]

    Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).