Current section
Files
Jump to
Current section
Files
spell_checker
README.md
README.md
# SpellChecker
A small Elixir library for checking English word spelling against a bundled
~70k-word dictionary, with suggestions, autocorrect, custom dictionaries, and
whole-text checking.
## Installation
The package can be installed by adding `spell_checker` to your list of
dependencies in `mix.exs`:
```elixir
def deps do
[
{:spell_checker, "~> 0.2.0"}
]
end
```
Documentation can be found at <https://hexdocs.pm/spell_checker>.
## Usage
```elixir
SpellChecker.is_correct("hello")
# {:ok, true}
SpellChecker.is_correct?(["hello", "worlld", "Programming"])
# ["Programming", "hello"]
SpellChecker.is_correct!("worlld")
# ["world", "worldly", "worlds", "wold", "word"]
SpellChecker.correct("Helo")
# {:corrected, "Hello"}
SpellChecker.check_text("hello wrold")
# [{"wrold", ["wold", "world", "worlds", "would", "word"]}]
# Extend the dictionary with your own words (kept for the life of the node)
SpellChecker.add_words(["hexdocs", "genserver"])
SpellChecker.is_correct("GenServer")
# {:ok, true}
SpellChecker.clear_custom_words()
# Or swap the bundled dictionary out entirely, e.g. for another language
SpellChecker.load_dictionary!(["ola", "bawo", "pele"])
```
The dictionary is read from disk once and cached in memory (via
`:persistent_term`) for the life of the running node, so repeated lookups
are cheap.