Text and language processing for Elixir.
This is the library's entry-point module. It exposes two convenience
functions — ngram/2 (delegated to Text.Ngram) for n-gram
generation and pluralize_noun/2 for English pluralisation — while
the bulk of the functionality lives in focused submodules:
Text.Language,Text.Language.Classifier.Fasttext— language identification.Text.Sentiment,Text.POS,Text.NER— sentiment, part-of-speech tagging, and named-entity recognition.Text.Extract,Text.PII,Text.Clean,Text.Slug— extraction, redaction, and normalisation.Text.Distance,Text.Similarity,Text.Phonetic.*— string and phonetic comparison.Text.Ngram,Text.IR,Text.WordCloud,Text.Summarize— statistics, search, and summarisation.
See the README and guides for a capability overview.
Summary
Types
A language as a BCP-47 string
Functions
Pluralize a noun.
Types
@type language() :: String.t()
A language as a BCP-47 string
Functions
See Text.Ngram.ngram/2.
Pluralize a noun.
Arguments
wordis any English noun.optionsis a keyword list of options.
Options
:modeis either:modernor:classical. The default is:modern.:languageis the inflection module to be used. The default and only option isText.Inflect.En.
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.pluralize_noun "Major general"
"Major generals"
iex> Text.pluralize_noun "fish"
"fish"
iex> Text.pluralize_noun "soliloquy"
"soliloquies"
iex> Text.pluralize_noun "genius", mode: :classical
"genii"
iex> Text.pluralize_noun "genius"
"geniuses"
iex> Text.pluralize_noun "platypus", mode: :classical
"platypodes"
iex> Text.pluralize_noun "platypus"
"platypuses"