Morphological analysis using ZulMorph
Project description
ZulMorph Morphological Analyser
A morphological analyser for Zulu
Overview
ZulMorph is a finite state morphological analyser for Zulu, originally developed using the Xerox finite state tools lexc and xfst and compiled here with Foma. This Python package is aimed at facilitating inclusion of ZulMorph in larger NLP pipelines.
Zulu words in their surface form are analysed to their base form. Any meaningful word can be input, and the output will be one or more complete morphological analyses of that word.
Documentation
The tagset and additional documentation can be viewed here.
Installation
pip install zulmorph
Usage
Command line
As a command line tool, ZulMorph can be used as follows.
usage: zulmorph [-h] [-f FST] {t,f} input [input ...]
Uses ZulMorph to morphologically analyse isiZulu tokens.
positional arguments:
{t,f} indicate if input is [t]oken(s) or [f]ilename(s) (token per
line)
input
options:
-h, --help show this help message and exit
-f FST path to FST (.fom) (default: zul.fom)
Example with tokens:
zulmorph t indoda iyahamba > output.json
This will produce a file containing the following.
{
"indoda": [
"i[NPrePre][9]n[BPre][9]doda.9-6[NStem]"
],
"iyahamba": [
"i[SC][9]ya[LongPres]hamb[VRoot]a[VT]",
"i[SC][4]ya[LongPres]hamb[VRoot]a[VT]"
]
}
Example with filenames:
zulmorph f tokens.1.txt tokens.2.txt > output.json
Python library
Usage as part of a Python program is as follows.
from zulmorph import zulmorph as zm
zm.analyse_token("iyahamba")
This produces a list of strings representing the analyses.
['i[SC][9]ya[LongPres]hamb[VRoot]a[VT]',
'i[SC][4]ya[LongPres]hamb[VRoot]a[VT]']
Multiple tokens can be provided. This produces a dictionary where the keys are tokens and their values are lists of analyses. The order of the keys follow the order of the tokens in the list, ignoring any duplications that may occur.
from zulmorph import zulmorph as zm
zm.analyse_tokens(["indoda","iyahamba"])
Output:
{
"indoda": [
"i[NPrePre][9]n[BPre][9]doda.9-6[NStem]"
],
"iyahamba": [
"i[SC][9]ya[LongPres]hamb[VRoot]a[VT]",
"i[SC][4]ya[LongPres]hamb[VRoot]a[VT]"
]
}
Attribution
Please cite the output of ZulMorph as follows:
Pretorius, L. and Bosch, S. (2018). ZulMorph: Finite state morphological analyser for Zulu [Software]. Web demo at https://portal.sadilar.org/FiniteState/demo/zulmorph/
License
See LICENSE distributed with this package.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file zulmorph-1.0.1.tar.gz.
File metadata
- Download URL: zulmorph-1.0.1.tar.gz
- Upload date:
- Size: 13.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c859714e5dbce60295290826159b006c36ff843a65ce555ca1bac234f186d415
|
|
| MD5 |
95bd164374838e3ddd6ee46b8e59e1aa
|
|
| BLAKE2b-256 |
0eeecf20313823447130bd59440b39b2dc89659d963200c9e1bffbedf36b587c
|
File details
Details for the file zulmorph-1.0.1-py3-none-any.whl.
File metadata
- Download URL: zulmorph-1.0.1-py3-none-any.whl
- Upload date:
- Size: 12.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f172c9c5feb5dfeb377400ffc7cae0652dbe82e4ed3930ddd1ed68de9441a718
|
|
| MD5 |
e2e17a392614e6c52850714c162e7624
|
|
| BLAKE2b-256 |
bf7b3b1e40f3811b3cf19b070f2bf4aeaed082f4836da4b4f5f2ac4b98b0a581
|