OjibweMorph
An all-purpose and adaptable FST for Ojibwe
Install / Use
/learn @ELF-Lab/OjibweMorphREADME
OjibweMorph
This repository is for creating a finite-state transducer (FST) in the Ojibwe language. The FST can be used to generate morphological analyses for an inflected form, or vice versa.
Morphological information about Ojibwe words is housed here. Combined with the FST-generating code in FSTmorph and the Ojibwe lexical information stored in OjibweLexicon, the FST can be generated as specified below.
Contents
Test Results
These results reflect the performance of an FST built from the morphology stored in OjibweMorph and the lemmas stored in OjibweLexicon/OPD and OjibweLexicon/HammerlyFieldwork.
Each test form is inputted to the FST, then the corresponding analysis outputted by the FST is checked for correctness.
OPD Tests
These inflected test forms come from the OPD, and are stored in OjibweLexicon/OPD/for_yaml. This is a large test set covering a variety of word forms.
For these and the paradigm tests, the "# of Forms Without Results" counts the test forms for which the FST provides no analysis whatsoever. The "Precision" captures how many outputted analyses were correct, while the "Recall" captures how many of the correct analyses were outputted. Note that some forms have multiple correct analyses.
OPD Verbs
| Date Last Updated | # of Forms Tested | # of Forms Without Results | Precision | Recall | |---|---|---|---|---| | 2026-03-25 | 66801 | 135 | 69.37% | 97.01% |
OPD Nouns
| Date Last Updated | # of Forms Tested | # of Forms Without Results | Precision | Recall | |---|---|---|---|---| | 2026-03-25 | 8565 | 15 | 83.39% | 96.92% |
Paradigm Tests
The inflected forms used in these tests come from the NounSpreadsheets/ and VerbSpreadsheets/ folders here in OjibweMorph. This smaller test set is used largely as a sanity check.
Paradigm Verbs
| Date Last Updated | # of Forms Tested | # of Forms Without Results | Precision | Recall | |---|---|---|---|---| | 2026-03-25 | 9833 | 0 | 88.41% | 100.0% |
Paradigm Nouns
| Date Last Updated | # of Forms Tested | # of Forms Without Results | Precision | Recall | |---|---|---|---|---| | 2026-03-25 | 14330 | 0 | 99.98% | 100.0% |
Corpus Tests
The inflected forms used in these tests come from example sentences in the OPD, stored in OjibweLexicon/OPD/example_sentences.
The overall results are given at the bottom of the table, but a breakdown by the speaker of the example sentence is also provided first. Because the speakers come from a variety of communities, this can give an impression of how well the FST is covering different varieties of Ojibwe. You can learn more about the speakers here.
In the table below, we are simply counting 'failures' -- forms that receive no analysis whatsover from the FST. This is because unlike with the OPD and paradigm tests, we do not have a "gold standard" analysis to check. The "by-token" failure covers every token (word) in the example sentences, whereas the "by-type" failures consider every unique token (i.e., so that each token only counts once towards the score regardless of its frequency). | Speaker | Region | Community | By-Token Failure | By-Type Failure | |---|---|---|---|---| | NJ | Border Lakes | Nigigoonsiminikaaning | 4.87% (324/6651) | 7.07% (303/4285) | | GJ | Border Lakes | Lac La Croix | 12.32% (9/73) | 12.5% (9/72) | | ES | Red Lake | Obaashiing | 5.25% (501/9531) | 9.74% (480/4925) | | RG | Red Lake | Odaawaa-Zaaga'iganiing | 2.5% (55/2197) | 4.36% (54/1237) | | GH | Leech Lake | Jaachaabaaning | 2.71% (7/258) | 3.39% (7/206) | | LW | Leech Lake | Jaachaabaaning | 2.63% (5/190) | 3.24% (5/154) | | LS | Mille Lacs | Aazhomog | 8.19% (5/61) | 9.61% (5/52) | | LSA | Mille Lacs | Lake Lena | 3.22% (1/31) | 3.44% (1/29) | | Unknown | N/A | N/A | 0.0% (0/5) | 0.0% (0/5) | | Overall | | | 4.77% (907/18997) | 8.73% (856/9803) |
Date Last Updated: 2026-03-25
User Instructions
There are a few different ways to install OjibweMorph (in ascending order of effort involved):
- You can download the zipped files included with the most recent release. The FST is already generated there, and you just need to install
fomain order to make use of it. - You can install the relevant files via Docker, and create the FST yourself (within the Docker container).
- You can download the relevant files directly to your system and create the FST yourself.
If you're going for the pre-built FST route, download those files and skip ahead to Preparing to Use the FST. Otherwise, read on for the steps to build the FST yourself.
Preparing to Build the FST
These steps will get all the necessary pieces installed to ultimately generate the FST. Two sets of steps are included below -- via Docker and via installing directly on your local system.
We have included detailed instructions on using Docker so that you shouldn't need to have used it previously to follow the steps. Essentially, using Docker installs everything in a 'container', separated from your general system, so that the installations are isolated and won't affect other programs you run.
Installation via Docker
These instructions will have you create and use a container directly in VSCode, so you can use the Makefile to generate the FST from within the container.
This method includes the installation of foma, so you can skip that installation step later.
- Make sure you have Docker Desktop installed.
- In order to use docker in the command line, we also had to go to the Settings page in Docker Desktop and Choose
Advanced> CheckSystem>Apply.
- Install the
Dev Containersextension in VSCode. - With OjibweMorph open in VSCode, run
docker build -t ojibwemorph:latest -f .devcontainer/Dockerfile .in the command line.
-t ojibwemorph:latestgives the image the nameojibwemorphand taglatest.-f .devcontainer/Dockerfilespecifies the Dockerfile to use to build the image, which has to be manually specified because it is not in the build context, which is specified as.(i.e., the current directory = the root of OjibweMorph).- On Mac, running this may lead to a system prompt saying that VSCode wants to access data from other apps. You can decline; everything will still build fine.
- You'll see the image being built in the terminal in VSCode. It may take a minute or two, and when it's done, you can push any key to close it.
- In Docker Desktop, you should now see your built image.
- Back in VSCode, use
Cmd+Shift+Pto run commands, and chooseDev Containers: Reopen in Container. This will reopen the VSCode window inside the container.
- You may get asked which
devcontainer.jsonto use -- chooseOjibweMorph(OjibweMorph/.devcontainer/devcontainer.json).
- Here, you should see the directories
OjibweLexicon/andOjibweMorph/ready to go. You cancdintoOjibweMorph/and use theMakefileas normal to generate the FST (see Buildling the FST). - When done, you can click the
Dev Container: OjibweMorph @...button in the bottom left of VSCode, then chooseReopen Locallyto close the container. - You can use
docker system prune -a -fto delete all Docker containers and images you've generated (though if you have other containers/images you wish to keep, you can also just manually delete individual ones in Docker Desktop).
Regular Installation
-
Clone OjibweLexicon
In addition to this repository, you'll also need to get OjibweLexicon installed locally. -
Install FSTmorph The FST is created using code in FSTmorph, which makes use of language-specific information stored in both OjibweMorph and OjibweLexicon.
FSTmorph can be installed via pip (along with a couple other python packages), by running the following (while in theOjibweMorph/root directory):pip install -r requirements.txt -
Make edits to the
Makefileas needed
The Makefile in this repo contains variables for various file locations. For the most part the pre-set values should work fine, but you should ensure that the location of OjibweLexicon (i.e., theOJIBWE_LEXICONvar) is correct for your local installation.
Building the FST
Use the Makefile:
make allto simply build the FSTmake checkto run tests on the FSTmake cleanto remove all generated files, if desired
Note: When running these commands, we have sometime
