Skip to main content

Python toolkit for Greek morphological analysis and tag similarity comparison.

Project description

Project Status: Active – The project has reached a stable, usable state and is being actively developed. Docs License: MIT DOI SWH Python PyPI Version

Morphkit is a Python toolkit for Greek morphological analysis and tag similarity comparison. It uses the betacode library, the API of Morpheus (e.g., running in a Docker virtualisation environment) and a porting of the Sandborg-Petersen morphological decoder.

In v1.0.0, Morphkit should be understood first as a research tool. It acts as a semantic translation layer between two incompatible morphological systems: Morpheus output on the one hand, and the SP / N1904-TF conventions used in the Nestle1904 Text-Fabric workflow on the other. The initial release is therefore tightly bound to that project environment and should not be read as a claim that Morphkit is a general-purpose standalone morphology package.

Documentation

The documentation site is versioned. The stable release docs live at tonyjurg.github.io/morphkit/stable, and the site includes a version selector for switching between stable, dev, and tagged releases.

Package

For the actual code see /morphkit.

Installation

The 1.0.0 release is packaged as-is for internal and research use. The pip installation exists primarily so collaborators can recreate the exact software snapshot used in notebooks, scripts, and data processing runs.

Install the reproducible release snapshot with:

pip install morphkit==1.0.0

This pinned installation is the recommended route when you need reproducibility inside the N1904-TF research environment. It does not make the project independent from Morpheus, nor does it remove the project-specific assumptions baked into the translation logic.

For local development from this repository:

pip install -e .

Use the editable install when you are actively modifying the code for the same research workflow or adapting it for closely related internal experiments.

Configuration

Morphkit supports configurable HTTP timeouts and retry behavior for Morpheus API requests.

Default timeout: 30 seconds

Per-request timeout:

response = morphkit.get_word_blocks("tou=", "localhost:1315", timeout=10)

Global configuration:

from morphkit.config import config

config.timeout = 45
config.retry_attempts = 3
config.retry_delay = 2.0

Environment variables:

export MORPHKIT_TIMEOUT=60
export MORPHKIT_RETRY_ATTEMPTS=2
export MORPHKIT_RETRY_DELAY=1.5

Tools used

The standard set of tools (Python documentation, tech sites like stackoverflow, and Python syntax checkers like Pythonium) were used to create this package. Furthermore, for the creation of a subset of features, also the Anaconda Assistant (using OpenAI as backend) and GitHub Copilot in Visual Studio were used to debug and/or optimize parts of the code. Where specified, OpenAI Codex was used to create PRs.

License

Morphkit uses a split licensing model:

This keeps the software package under a standard OSI-approved software license while preserving CC BY attribution terms for research-oriented non-code materials.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

morphkit-1.0.0.tar.gz (47.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

morphkit-1.0.0-py3-none-any.whl (53.5 kB view details)

Uploaded Python 3

File details

Details for the file morphkit-1.0.0.tar.gz.

File metadata

  • Download URL: morphkit-1.0.0.tar.gz
  • Upload date:
  • Size: 47.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for morphkit-1.0.0.tar.gz
Algorithm Hash digest
SHA256 8f30a55ada8124c54c52a493df1458185453490859be5e690288698b7ed644c7
MD5 48e8d5d96cc86506bbc2f0bc9ae3c5ca
BLAKE2b-256 9784d275f362b87acb0e5b96a463046be7e9c062f0b5fd211abac01439b0ac44

See more details on using hashes here.

Provenance

The following attestation bundles were made for morphkit-1.0.0.tar.gz:

Publisher: publish.yml on tonyjurg/morphkit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file morphkit-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: morphkit-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 53.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for morphkit-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 334e231dd8039fdf203b90412b668272fcb004e2f225b934a329a7ff91c8ace9
MD5 e7ae8cd4c9f09af65249ba5df6a61ac0
BLAKE2b-256 eb34a5241e8d78c20789732ddd359008dae5f17b960bda802b75654f3ca8850f

See more details on using hashes here.

Provenance

The following attestation bundles were made for morphkit-1.0.0-py3-none-any.whl:

Publisher: publish.yml on tonyjurg/morphkit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page