Sindhi is an IndoAryan language spoken by more than 30 million people in the Sindh province of Pakistan and parts of India. Like many SouthAsian languages, it exhibits rich inflectional and derivational morphology: nouns carry gender, number and case; verbs encode tense, aspect, mood, person and politeness; and a variety of affixes produce nouns, adjectives, adverbs and participles. Consequently, automatic processing of Sindhi text requires a robust morphological analyser. A Finite State Morphological Analyzer (FSMA) treats the lexicon and the morphological rules as a finitestate network (FST). The network accepts surface forms as input and yields one or more underlying lexical analyses. Finitestate methods are well suited to Sindhi because they provide a compact, deterministic representation of regular morphological patterns while allowing for fast lookup. Sindhi nouns belong to two genders (masculine, feminine) and two numbers (singular, plural). The language distinguishes three cases: direct, oblique and vocative. Pluralisation typically uses the suffix Verbal morphology is more complex. A verb root combines with a series of affixes to express: For example, the root Affixes can create new lexical categories. The suffix A finitestate machine consists of states and labelled transitions. In morphological analysis the machine reads a surface string character by character, moving through states that represent morpheme boundaries. Two main components are required: Both components are compiled into a single weighted transducer. When a word is fed to the transducer, the output is a set of analyses of the form The analyzer is built around the opensource Foma toolkit, which provides tools for compiling lexical and rule specifications into FSTs. The overall workflow is: Each entry follows the format: Example: Rules are expressed in a notation similar to Xeroxs Compound rules allow stacking of suffixes, for example: Sindhi uses both Arabicderived and Devanagari scripts. The analyzer normalises input to Unicode Arabic script and then applies a mapping table for common alternate spellings (e.g., When multiple analyses are produced, a simple frequencybased ranking is used. The ranking list is derived from a 2millionword Sindhi corpus where each lemmas count is stored. The most frequent analysis is presented first. The analyzer was evaluated on a manually annotated test set of 5,000 words covering diverse domains (news, literature, social media). The results are: Errors were mainly due to: Adding a small unknown word handler that attempts to segment the word heuristically reduced the error rate by an additional 1.2%. Several extensions are planned: Ultimately the goal is to embed the analyzer in higherlevel applications such as machine translation, spell checking and information retrieval for Sindhi.Finite State Morphological Analyzer for Sindhi
Introduction
Sindhi Morphology Overview
1. Nouns
- (-) for masculine and - (-yn) for feminine nouns, but many irregular forms exist.2. Verbs
(lik, write) yields (he writes), (they wrote), (to be written passive). 3. Derivation
- (-o) often turns a verb into a verbal noun, while - (-dr) forms an adjective meaning possessing. Derivational processes are productive but follow regular patterns that can be captured by finitestate rules.FiniteState Approach to Morphology
root+POS+features. Ambiguities (e.g., homographs) are naturally represented as multiple paths. (maqman, places)
Output: +N+Fem+Pl+Oblique System Architecture
.lexc format supported by Foma.foma -x to produce a binary transducer snd.fst.Data Flow Diagram
Component Description Lexicon file (lex.tsv) ~45,000 Sindhi lemmas with morphological features. Rule file (rules.lexc) ~120 handcrafted rules covering inflection and derivation. Foma compiler Generates deterministic FST. Python wrapper Provides API: analyze(word) list of analyses.Implementation Details
Lexicon Representation
surface_form\tlemma\tPOS\tfeatures
N+Masc+Sing+Direct
Rule Syntax
.lexc: Lexicon: Noun_Stem -> "" ; Noun_Suffix -> "" : N+Masc+Pl+Direct ;
Noun_Stem -> Noun_Suffix ; Noun_Suffix -> Noun_Case ; Noun_Case -> "" : Case+Oblique ;
Handling Orthographic Variants
vs ). This preprocessing step reduces spurious ambiguity.Ambiguity Resolution
Evaluation
leaf vs. to turn).Future Work
