Skip to content

flammie/omorfi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Jan 22, 2025
ef181da · Jan 22, 2025
Mar 20, 2023
May 19, 2016
Jun 12, 2022
Jan 22, 2025
Dec 29, 2017
May 20, 2019
Jan 22, 2025
Jan 21, 2024
Jul 4, 2023
Dec 31, 2020
Oct 23, 2018
Jun 7, 2022
Dec 21, 2017
Jul 26, 2017
Jul 16, 2021
Mar 24, 2015
Jul 14, 2020
Aug 23, 2021
Dec 20, 2019
May 27, 2020
Mar 29, 2012
Apr 5, 2018
Mar 29, 2012
Mar 29, 2012
May 27, 2020
Jul 28, 2020
Jan 22, 2025
Dec 6, 2020
Aug 8, 2024
Apr 9, 2022
Jul 28, 2020
Sep 4, 2018
Mar 26, 2015
Aug 11, 2018
Jan 22, 2025
Sep 12, 2017
Nov 23, 2023
Sep 13, 2021
Nov 23, 2023

🇫🇮Omorfi–Open morphology of Finnish

This is a free/libre open source morphology of Finnish: a database, tools and APIs. Everything you need to build NLP applications processing Finnish language words and texts.

  • 🇫🇮 high-quality Finnish text analysis and generation
  • 🩸 bleeding edge
  • ⚡ blazing fast

Build Status CI

Documentation

I try to keep this README very condensed for github. For more detailed information, see github pages for omorfi.

Citing and academic works

Citation information is available in github's cite this repository function, backed by the CITATION.cff. For further details, see omorfi articles.

Downloading and further information

Omorfi source packages can be downloaded from github:

or the most current version using git. For more information, see Release policy

Dependencies

  • hfst-3.15 or greater,
  • python-3.5 or greater,
  • hfst-python,
  • C++ compiler and libtool
  • GNU autoconf-2.64, automake-1.12; compatible pkg-config implementation

Optionally:

  • VISL CG 3
  • hfst-ospell-0.2.0 or greater needed for spell-checking
  • Java 7, or greater, for Java bindings

Installation

For detailed instructions and explanations of different options, see Installation instructions on the github pages site. This readme is a quick reference.

Full installation

Requires all dependencies to be installed.

autoreconf -i
./configure
make
make install

Will install binaries and scripts for all users on typical environments

Minimal "installation"

To skip language model building and use some of the scripts locally.

autoreconf -i
./configure
src/bash/omorfi-download.bash

This will download some of the pre-compiled dictionaries into your current working directory.

Python installation

It is possible to install within python via pip or anaconda. The dependencies that are not available in pip or anaconda will not be usable, e.g. syntactic analysis and disambiguation using VISL CG 3.

pip install omorfi

Anaconda

conda install -c flammie omorfi

NB: since conda does not have new version of hfst buildable with recent pythons or something, only older versions are available on conda.

Docker

It is possible to use omorfi with a ready-made docker container, there is a Dockerfile in src/docker/Dockerfile for that.

docker build -t "omorfi:Dockerfile" .
docker run -it "omorfi:Dockerfile" bash

Usage

Omorfi can be used from command line using following commands:

  1. omorfi-disambiguate-text.sh: analyse and disambiguate
  2. omorfi-analyse-text.sh: analyse
  3. omorfi-spell.sh: spell-check and correct
  4. omorfi-segment.sh: morphologically segment
  5. omorfi-conllu.bash: analyse in CONLL-U format
  6. omorfi-freq-evals.bash: analyse coverage and statistics
  7. omorfi-ftb3.bash: analyse in FTB-3 format (CONLL-X)
  8. omorfi-factorise.bash: analyse in Moses-SMT factorised format
  9. omorfi-vislcg.bash: analyse in VISL CG 3 format
  10. omorfi-analyse-tokenised.sh: analyse word per line (faster)
  11. omorfi-generate.sh: generate word-forms from omor descriptions
  12. omorfi-download.bash: download language models from latest release

For further details please refer to:

Programming APIs

Omorfi can be used via very simple programming APIs, the design is detailed in omorfi API design

Using binary models

There are various binaries for language models that can be used with specialised tools like HFST. For further details, see our usage examples.

Troubleshooting

For full descriptions and archived problems, see: Troubleshooting in github pages

hfst-lexc: Unknown option

Update HFST.

ImportError (or other Python problems)

In order for python scripts to work you need to install them to same prefix as python, or define PYTHONPATH, e.g. export PYTHONPATH=/usr/local/lib/python3.11/site-packages/

Processing text gets stuck / takes long

This can easily happen for legit reasons. It can be reduced by filtering overlong tokens out. Or processing texts in smaller pieces.

Make gets killed

Get more RAM or swap space.

Contributing

Omorfi code and data are free and libre open source, and community-driven, to participate, read further information in CONTRIBUTING

Contact

You can always discuss in English or Finnish on any of the channels.

Code of conduct

See our code of conduct.

Donations

A lot of omorfi development has been done on spare time and by volunteers, if you want to support Flammie you can use the github's ❤️Sponsor button, or any of the services below:

Donate using Liberapay

Become a Patron!