# Finite-state-tonal-representations-in-Shupamem-possessives
# Shupamem Tones
This repository contains Python code for modeling **tonal patterns in Shupamem nouns and possessive constructions** using finite-state transducers (FSTs) with Pynini.
The script `shupamem_tone_pipeline.py`:
1. Builds a small **lexical corpus** of Shupamem nouns and possessive pronouns.
2. Computes **underlying tonal representations (URs)** for several noun classes.
3. Applies **tone rules** (e.g., H-spreading, L-insertion, multiple linking) using Pynini FSTs.
4. Generates a TSV file with the predicted **surface tones in possessive phrases**.
The code is meant as an executable companion to my research on **finite-state modeling of Shupamem tone** and tonal morphophonology more generally.
---
## Project Structure
- `shupamem_tone_pipeline.py`
Main script. Creates the corpus, derives URs, applies tone rules, and writes the final output file.
- `shupamem_nouns_corpus.tsv`
TSV corpus file generated by `shupamem_tone_pipeline.py` (lexical items, tones, POS tags, and English glosses).
- `shupamem_poss_output.tsv`
TSV output file generated by `shupamem_tone_pipeline.py` with predicted surface tones for noun + possessive pronoun combinations.
> Note: `shupamem_nouns_corpus.tsv` and `shupamem_poss_output.tsv` are created/overwritten each time you run `shupamem_tone_pipeline.py`.
---
## Dependencies
- Python 3.8+ (tested with 3.9/3.10)
- Pynini
- Standard library:
- `csv`
- `string`
### Installing Pynini
Pynini can be installed via `pip` (prebuilt wheels) or from source. A typical installation on Linux / macOS might look like:
```bash
pip install pynini