Pure Python Spell Checking based on
[Peter Norvig's](https://norvig.com/spell-correct.html) blog post on setting up
a simple spell checking algorithm.
It uses a [Levenshtein Distance](https://en.wikipedia.org/wiki/Levenshtein_distance)
algorithm to find permutations within an edit distance of 2 from the
original word. It then compares all permutations (insertions, deletions,
replacements, and transpositions) to known words in a word frequency list.
Those words that are found more often in the frequency list are `more likely`
the correct results.
## Installation
The easiest method to install is using pip:
``` bash
pip install pyspellchecker
```
To install from source:
``` bash
git clone https://github.com/barrust/pyspellchecker.git
cd pyspellchecker
python setup.py install
```
As always, I highly recommend using the [Pipenv](https://github.com/pypa/pipenv)
package to help manage dependencies!
## Quickstart
After installation, using pyspellchecker should be fairly straight forward:
``` python
from spellchecker import SpellChecker
spell = SpellChecker()
# find those words that may be misspelled
misspelled = spell.unknown(['something', 'is', 'hapenning', 'here'])
for word in misspelled:
# Get the one `most likely` answer
print(spell.correction(word))
# Get a list of `likely` options
print(spell.candidates(word))
```
If the Word Frequency list is not to your liking, you can add additional text
to generate a more appropriate list for your use case.
``` python
from spellChecker import SpellChecker
spell = SpellChecker() # loads default word frequency list
spell.word_frequency.load_text_file('./my_free_text_doc.txt')
# if I just want to make sure some words are not flagged as misspelled
spell.word_frequency.load_words(['microsoft', 'apple', 'google'])
spell.known(['microsoft', 'google']) # will return both now!
```
More work in storing and loading word frequency lists is planned; stay tuned.
## Additional Methods
On-line documentation is in the future; until then you can find SpellChecker
here:
`correction(word)`: Returns the most probable result for the misspelled word
`candidates(word)`: Returns a set of possible candidates for the misspelled
word
`known([words])`: Returns those words that are in the word frequency list
`unknown([words])`: Returns those words that are not in the frequency list
`word_probability(word)`: The frequency of the given word out of all words in
the frequency list
#### The following are less likely to be needed by the user but are available:
`edit_distance_1(word)`: Returns a set of all strings at a Levenshtein Distance
of one
`edit_distance_2(word)`: Returns a set of all strings at a Levenshtein Distance
of two
Metadata
Release files for pyspellchecker 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pyspellchecker-0.1.0.tar.gz | 2.4 MB | Without provenance | Details for pyspellchecker-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pyspellchecker-0.1.0-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details for pyspellchecker-0.1.0-py2.py3-none-any.whl |
Total release size: 4.8 MB
Release files / pyspellchecker-0.1.0.tar.gz
| Download URL | pyspellchecker-0.1.0.tar.gz |
|---|---|
| Size | 2.4 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8c572b3ef4aba722741b0663d62367317e49e9474100ddb065bbe97b2d5d4c3e
|
|
BLAKE2b-256 checksum How to use checksums |
d12760963849dc0211576d179f08a0d61819b523b4873fec19aff47eab9b5920
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / pyspellchecker-0.1.0-py2.py3-none-any.whl
| Download URL | pyspellchecker-0.1.0-py2.py3-none-any.whl |
|---|---|
| Size | 2.4 MB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
fd3577dbfd42e46090c10bc7a41a54ad08655d580fb32ff2c77725d1d3fe12a5
|
|
BLAKE2b-256 checksum How to use checksums |
7f1825ae6e5dc6b9a885df9ea646fd607a050f083d595cd949b2083e27e73e8c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for pyspellchecker 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.