Pluralisation for the English language based on the paper An Algorithmic Approach to English Pluralization.
Summary
Functions
Pluralize an english noun, pronoun, verb or adjective.
Pluralize an english adjective.
Pluralize an english noun.
Pluralize an english verb.
Singularize an English word.
Singularize an English noun.
Functions
Pluralize an english noun, pronoun, verb or adjective.
Arguments
wordis any English word.modeis:modernor:classical. The default is:modern. This applies to nouns only.
Returns
- a
Stringrepresenting the pluralized word.
Notes
mode when :classical applies pluralization
on latin nouns in english but with latin
suffixes.
Examples
iex> Text.Inflect.En.pluralize "fish"
"fish"
iex> Text.Inflect.En.pluralize "soliloquy"
"soliloquies"
iex> Text.Inflect.En.pluralize "genius", :classical
"genii"
iex> Text.Inflect.En.pluralize "has"
"have"
iex> Text.Inflect.En.pluralize "catches"
"catch"
iex> Text.Inflect.En.pluralize "child's"
"children's"
iex> Text.Inflect.En.pluralize "Mary's"
"Marys'"
Pluralize an english adjective.
Arguments
wordis any English adjective.
Returns
- a
Stringrepresenting the pluralized adjective
Examples
iex> Text.Inflect.En.pluralize_adjective "a"
"some"
iex> Text.Inflect.En.pluralize_adjective "my"
"our"
iex> Text.Inflect.En.pluralize_adjective "child's"
"children's"
iex> Text.Inflect.En.pluralize_adjective "Mary's"
"Marys'"
Pluralize an english noun.
Arguments
wordis any English noun.modeis:modernor:classical. The default is:modern.
Returns
- a
Stringrepresenting the pluralized noun
Notes
mode when :classical applies pluralization
on latin nouns used in english but with latin
suffixes.
Examples
iex> Text.Inflect.En.pluralize_noun "Major general"
"Major generals"
iex> Text.Inflect.En.pluralize_noun "fish"
"fish"
iex> Text.Inflect.En.pluralize_noun "soliloquy"
"soliloquies"
iex> Text.Inflect.En.pluralize_noun "genius", :classical
"genii"
iex> Text.Inflect.En.pluralize_noun "genius"
"geniuses"
iex> Text.Inflect.En.pluralize_noun "platypus", :classical
"platypodes"
iex> Text.Inflect.En.pluralize_noun "platypus"
"platypuses"
Pluralize an english verb.
Arguments
wordis any English verb.
Returns
- a
Stringrepresenting the pluralized verb
Examples
iex> Text.Inflect.En.pluralize_verb "has"
"have"
iex> Text.Inflect.En.pluralize_verb "catches"
"catch"
Singularize an English word.
Inverts pluralize/2: given a plural noun (or pronoun), returns its
singular form. Inputs that are already singular, or that aren't
recognised as a plural, are returned unchanged.
Arguments
wordis the word to singularize.modeis one of:modern(default) or:classical. The classical mode uses Latin/Greek classical singulars where applicable (e.g.octopodes → octopusin classical, vs.octopuses → octopusin modern).
Returns
- The singular form as a string. Words that don't appear plural (or that have no known singular) are returned unchanged.
Examples
iex> Text.Inflect.En.singularize "mice"
"mouse"
iex> Text.Inflect.En.singularize "children"
"child"
iex> Text.Inflect.En.singularize "octopuses"
"octopus"
iex> Text.Inflect.En.singularize "octopodes", :classical
"octopus"
iex> Text.Inflect.En.singularize "cities"
"city"
iex> Text.Inflect.En.singularize "knives"
"knife"
Singularize an English noun.
Lower-level than singularize/2: skips the pronoun and
non-inflecting checks. Useful when callers have already filtered
the input to nouns.
Arguments
wordis the noun to singularize.modeis:modern(default) or:classical.
Returns
- The singular form as a string.
Examples
iex> Text.Inflect.En.singularize_noun "octopuses"
"octopus"
iex> Text.Inflect.En.singularize_noun "platypodes", :classical
"platypus"