HFST
{{Infobox software
| name = Helsinki Finite-State Technology
| logo = Helsinki Finite-State Technology logo.png
| developer = HFST team
| released = {{Start date and age|2008}}
| latest release version = 3.16.2
| latest release date = {{Start date and age|2025|01|18}}{{cite web
| url = https://github.com/hfst/hfst/releases
| title = Releases · hfst/hfst
| website = github.com
| access-date = 2025-02-24
}}
| programming language = C++, Prolog, Python
| operating system = Cross-platform: Linux, Mac OS X, Windows
| platform = x86
| size =
| language = English
| genre = Finite-state toolkit
| license = GPLv3, part Apache
| website = {{URL|https://hfst.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
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),{{Cite web | url=http://www.ling.helsinki.fi/~koskenni/esslli-2001-karttunen/ | title=A Short History of Two-Level Morphology}} 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.
Uses
HFST has been used for writing various linguistic tools, such as spell-checkers, hyphenators, and morphologies.{{Cite web | url=https://github.com/flammie/omorfi | title=GitHub - flammie/Omorfi: Open morphology for Finnish.| website=GitHub| date=2019-02-23}}{{Cite web | url=http://giellatekno.uit.no/doc/infra/infraremake/HowToConfigureAndOptimiseSpellers.html | title=How to Configure and Optimise Spellers}} Morphological dictionaries written in other formalisms have also been converted to HFST's formats.{{Cite web | url=https://sourceforge.net/projects/hfst/files/resources/ | title=Helsinki Finite-State Technology - Browse /Resources at SourceForge.net}}
See also
Notes
{{Reflist}}
External links
- {{Official website|hfst.github.io}}
- https://github.com/hfst/hfst/wiki - A documentation wiki
References
{{cite conference
| url= https://researchportal.helsinki.fi/en/publications/hfsta-system-for-creating-nlp-tools
| title= HFST - A System for Creating NLP Tools
| first1= Krister
| last1= Lindén
| first2= Erik
| last2= Axelson
| first3= Senka
| last3= Drobac
| first4= Sam
| last4= Hardwick
| first5= Juha
| last5= Kuokkala
| first6= Jyrki
| last6= Niemi
| first7= Tommi
| last7= Pirinen
| first8= Miikka
| last8= Silfverberg
| date= 2013
| conference= Systems and Frameworks for Computational Morphology
| conference-url= http://sfcm.eu/sfcm2013/
| editor1-first= Cerstin
| editor1-last= Mahlow
| editor2-first= Michael
| editor2-last= Piotrowski
| series= Communications in Computer and Information Science
| volume= 380
| book-title= Systems and Frameworks for Computational Morphology
| publisher= Springer
| location= Humboldt-Universität in Berlin
| pages= 53–71
}}
Category:Finite-state machines
Category:Free software programmed in C++
Category:Free software programmed in Prolog
Category:Free software programmed in Python
Category:Cross-platform free software
Category:Free software for Linux
Category:Free software for Windows