Skip to main content

Disvortilo

Disvortilo is a simple tool that breaks Esperanto words into roots and affixes.

Getting Started

You can install Disvortilo from PyPI using pip:

pip install disvortilo

Examples

from disvortilo import Disvortilo, rank

disvortilo = Disvortilo()

print(disvortilo.parse("malliberejo"))
# > [('mal', 'liber', 'ej', 'o')]

# some have more than one possible output
print(disvortilo.parse("esperantistino"))
# > [('esper', 'ant', 'ist', 'in', 'o'), ('esperant', 'ist', 'in', 'o')]

# you can also get the morphemes along the their categories
print(disvortilo.parse_detailed("plibonigojn"))
# > [(('pli', WordPart.FULL_WORD), ('bon', WordPart.ROOT), ('ig', WordPart.SUFFIX), ('ojn', WordPart.POS))]

# sort the values from most likely to less likely
print(rank(disvortilo.parse_detailed("envias"), n=2))  # get the 2 most likely options
# > [(('envi', WordPart.ROOT), ('as', WordPart.POS)), (('en', WordPart.FULL_WORD), ('vi', WordPart.FULL_WORD), ('as', WordPart.POS))]

API Reference

Disvortilo

Parser class for splitting Esperanto words into morphemes.

Disvortilo.parse(word: str) -> list[tuple[str, ...]]

Returns all valid analyses of word. Each analysis is a tuple of morpheme strings in order.

Example return value:

[('esper', 'ant', 'ist', 'in', 'o'), ('esperant', 'ist', 'in', 'o')]

Disvortilo.parse_detailed(word: str, n: int = None) -> list[tuple[tuple[str, WordPart], ...]]

Like parse, but each morpheme is returned together with its detected category (WordPart). Each analysis is a tuple of (morpheme, WordPart) pairs. The n options limits the returned options and sorts them based on a heuristic of the most likely option.

Example return value:

[(('pli', WordPart.FULL_WORD), ('bon', WordPart.ROOT), ('ig', WordPart.SUFFIX), ('ojn', WordPart.POS))]

rank(options, n: int | None = None) -> list[tuple[tuple[str, WordPart], ...]]

Sorts options based on a heuristic of the most likely option.

Note, that this will only work with the returned values from parse_detailed.

Example return value:

[(('neĝ', WordPart.ROOT), ('is', WordPart.POS)), (('ne', WordPart.FULL_WORD), ('ĝis', WordPart.FULL_WORD))]

WordPart

Enum values used by parse_detailed:

  • PREFIX
  • ROOT
  • SUFFIX
  • FULL_WORD
  • POS
  • NUMBER
  • NAME
  • CORRELATIVE_START
  • CORRELATIVE_END

split_sentence(sentence: str) -> list[str]

Splits a sentence into Esperanto word-like tokens. Supports Esperanto diacritics, optional trailing apostrophes, and forms like 3 and 3an.

Example:

from disvortilo import split_sentence

split_sentence("Mi vidas 3an domon.")
# > ['Mi', 'vidas', '3an', 'domon']

Metadata

Release files for disvortilo 0.8.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 disvortilo 0.8.1
File Size Uploaded
disvortilo-0.8.1.tar.gz 10.5 kB Details

Built distribution (wheel)

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

Total release size: 21.0 kB

Release files / disvortilo-0.8.1.tar.gz

Download URL disvortilo-0.8.1.tar.gz
Size 10.5 kB
Tags Source
SHA-256 checksum
How to use checksums
fb4d686140dead862534429803a59386eb05850e7e5f14bb50b52b1a0a5c7c03
BLAKE2b-256 checksum
How to use checksums
671e162cad52473eeb02a494fbf6ca9c22a815d4c1ad840ee278871c2643bb4c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 16, 2026.

Transparency log

Release files / disvortilo-0.8.1-py3-none-any.whl

Download URL disvortilo-0.8.1-py3-none-any.whl
Size 10.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e8d7a787bdefd899e849465386198ebf8eb738d829438697405bbcf80ce13399
BLAKE2b-256 checksum
How to use checksums
bcaaf3bea05bc229de3feacbd93a224b68500e8d1e85f48492f7223d6b9dbf29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 16, 2026.

Transparency log

Release history Release notifications | RSS feed

0.9.0

2 release files

0.8.4

2 release files

0.8.3

2 release files

0.8.2

2 release files

This release

0.8.1 This release

2 release files

0.8.0

2 release files

0.7.11

2 release files

0.7.9

2 release files

0.7.8

2 release files

0.7.7

2 release files

0.7.6

2 release files

0.7.4

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.1.0

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