Skip to main content
MoDeST

MoDeST: a Morphological Decomposition & Segmentation Trove

The point of MoDeST is two-fold:

  1. Provide a general object-oriented Python interface to access morphological decompositions and segmentations;
  2. Host morphological datasets generated by smaller research groups that would otherwise have a hard time being found.

Morphological decomposition is the task of recognising which building blocks a word was originally constructed from. These building blocks are its morphemes. As an example, the Dutch derivation isometrisch ("isometric") can be decomposed into the morphemes iso, meter and isch.

Morphological segmentation is the task of isolating the substrings of a word that correspond to its morphemes. These substrings are called morphs. In the above example, the segmentation would be iso/metr/ic.

pip install modest[all]

Languages and Datasets

The supported languages are simply under modest.languages, so the list will not be reproduced here. The list of datasets roughly coincides with the downloaders under modest.datasets. Currently, the package supports:

  • CELEX
  • MorphyNet
  • MorphoChallenge2010
  • CompoundPiece
  • GreekAnnotatedDictionary

Example

Yes, it really is this easy, with full type checking and autocompletion by your IDE:

from modest.languages.english import English_Celex, English_MorphoChallenge2010, English_MorphyNet_Inflections

for item in English_Celex().generate():
    print(item.word, "should be segmented as", item.segment(), "which derives from", item.decompose())

Repo layout

Currently, the repo looks as follows:

data/                ---> Datasets hosted specifically by MoDeST on GitHub. Will NOT be downloaded when you install the package.
src/modest/          ---> All source code for the Python package that will be installed in your interpreter.
    languages/       ---> Per-language definitions of the dataset classes users will interact with.
    datasets/        ---> Support code for pulling in remote data, and reading raw examples from the resulting files.
    formats/         ---> Support code for turning raw examples into objects. Mainly used for parsing tags, whose format is independent of how they are stored (TSV, XML, JSON, ...).
    interfaces/      ---> Declarations of the interfaces users will interact with.
    transformations/ ---> Operations performed on datasets.

Currently, every language has its own file under languages/. The assumption is that the datasets pertaining to one language are sufficiently encapsulated that this will not clutter the imports from such a file. There are two arguments in favour of going from languages/{language}.py to instead languages/{language}/{dataset}.py:

  1. Autocompletion for the last . of the import suggests exactly the list of available datasets for that language;
  2. You do not have to have all the packages installed required to download/build all the datasets for a language if you only need one. (However, realistically, since MoDeST is for final datasets rather than making datasets, the code for pulling them should not be that complicated.)

Metadata

Release files for modest_bauwenst 2026.10.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for modest_bauwenst 2026.10.1
File Size Uploaded
modest_bauwenst-2026.10.1.tar.gz 48.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for modest_bauwenst 2026.10.1
File Interpreter ABI Platform
modest_bauwenst-2026.10.1-py3-none-any.whl Python 3 none any Details

Total release size: 109.8 kB

Release files / modest_bauwenst-2026.10.1.tar.gz

Download URL modest_bauwenst-2026.10.1.tar.gz
Size 48.0 kB
Tags Source
SHA-256 checksum
How to use checksums
559a7ea21a2451b7be1e0098bc3b70a5b881742ffc65232b171081d92494eccd
BLAKE2b-256 checksum
How to use checksums
3a823dc2431dac47a614cef0a54f352c1fbbcf76acc2a3b046998e5381a9991c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.18.1 {"ci":true,"cpu":"x86_64","distro":{"id":"noble","libc":{"lib":"glibc","version":"2.39"},"name":"Ubuntu","version":"24.04"},"implementation":{"name":"CPython","version":"3.13.15"},"installer":{"name":"hatch","version":"1.18.1"},"openssl_version":"OpenSSL 3.0.13 30 Jan 2024","python":"3.13.15","system":{"name":"Linux","release":"6.17.0-1022-azure"}} HTTPX2/2.13.1

Release files / modest_bauwenst-2026.10.1-py3-none-any.whl

Download URL modest_bauwenst-2026.10.1-py3-none-any.whl
Size 61.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c0cea55e605817fc45dc203099d916a8519164440acd9896fe7d0a4ae46cf001
BLAKE2b-256 checksum
How to use checksums
8a069986016d7d92b4b041aa87873e2375edb795fd96d9302d9374032bbc70c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.18.1 {"ci":true,"cpu":"x86_64","distro":{"id":"noble","libc":{"lib":"glibc","version":"2.39"},"name":"Ubuntu","version":"24.04"},"implementation":{"name":"CPython","version":"3.13.15"},"installer":{"name":"hatch","version":"1.18.1"},"openssl_version":"OpenSSL 3.0.13 30 Jan 2024","python":"3.13.15","system":{"name":"Linux","release":"6.17.0-1022-azure"}} HTTPX2/2.13.1

Release history Release notifications | RSS feed

This release

2026.10.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page