# HFST

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/HFST
> Markdown URL: https://mediated.wiki/source/HFST.md
> Source: https://en.wikipedia.org/wiki/HFST
> Source revision: 1356367359
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

Natural language processing software library

Helsinki Finite-State Technology Developer HFST team Release 2008; 18 years ago (2008) Stable release 3.16.2 / January 18, 2025; 17 months ago (2025-01-18)[1] Written in C++, Python Operating system Cross-platform: Linux, Mac OS X, Windows Platform x86 Available in English Type Finite-state toolkit License GPLv3, part Apache Website hfst.github.io Repository github.com/HFST/HFST

**Helsinki Finite-State Technology** (**HFST**) is a computer programming [library](/source/Library_(computing)) and set of utilities for natural language processing with [finite-state](/source/Finite-state_machine) automata and [finite-state transducers](/source/Finite-state_transducer). It is [free and open-source software](/source/Free_and_open-source_software), released under a mix of the [GNU General Public License](/source/GNU_General_Public_License) version 3 (GPLv3) and the [Apache License](/source/Apache_License).

## Features

The library functions as an interchanging interface to multiple backends, such as OpenFST, [foma](/source/Foma_(software)) 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](/source/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](/source/Recursive_transition_network) (RTNs).

The library and utilities are written in [C++](/source/C%2B%2B), with an interface to the library in [Python](/source/Python_(programming_language)) and a utility for looking up results from transducers ported to [Java](/source/Java_(programming_language)) and Python.

Transducers in HFST may incorporate [weights](/source/Finite-state_transducer#Weighted_automata) 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.

## Uses

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

- [Foma (software)](/source/Foma_(software))

## Notes

1. **[^](#cite_ref-1)** ["Releases · hfst/hfst"](https://github.com/hfst/hfst/releases). *github.com*. Retrieved 2025-02-24.

1. **[^](#cite_ref-2)** ["A Short History of Two-Level Morphology"](https://web.archive.org/web/20161201043523/http://www.ling.helsinki.fi/~koskenni/esslli-2001-karttunen/). Archived from [the original](http://www.ling.helsinki.fi/~koskenni/esslli-2001-karttunen/) on 2016-12-01. Retrieved 2016-09-21.

1. **[^](#cite_ref-3)** ["GitHub - flammie/Omorfi: Open morphology for Finnish"](https://github.com/flammie/omorfi). *[GitHub](/source/GitHub)*. 2019-02-23.

1. **[^](#cite_ref-4)** ["How to Configure and Optimise Spellers"](http://giellatekno.uit.no/doc/infra/infraremake/HowToConfigureAndOptimiseSpellers.html).

1. **[^](#cite_ref-5)** ["Helsinki Finite-State Technology - Browse /Resources at SourceForge.net"](https://sourceforge.net/projects/hfst/files/resources/).

## External links

- [Official website](http://hfst.github.io)

- [https://github.com/hfst/hfst/wiki](https://github.com/hfst/hfst/wiki) - A documentation wiki

## References

Lindén, Krister; Axelson, Erik; Drobac, Senka; Hardwick, Sam; Kuokkala, Juha; Niemi, Jyrki; Pirinen, Tommi; Silfverberg, Miikka (2013). ["HFST - A System for Creating NLP Tools"](https://researchportal.helsinki.fi/en/publications/hfsta-system-for-creating-nlp-tools). In Mahlow, Cerstin; Piotrowski, Michael (eds.). *Systems and Frameworks for Computational Morphology*. [Systems and Frameworks for Computational Morphology](http://sfcm.eu/sfcm2013/). Communications in Computer and Information Science. Vol. 380. Humboldt-Universität in Berlin: Springer. pp. 53–71.

---
Adapted from the Wikipedia article [HFST](https://en.wikipedia.org/wiki/HFST) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/HFST?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
