sympound-python
This library is an implementation of the SymSpellCompound algorithm in Python. It was initially forked from rcourivaud/symspellcompound although most of the code has been rewritten.
Installation
pip install sympound
Documentation
If you want a quick complete example, see example.py.
Creating the sympound object
The first step is to create an sympound object, the constructor takes two main arguments:
distancefunis a function that will be used to compute the distance between two strings. It takes two arguments (the two strings to compare). You typically want to use a function computing the Damerau-Levenshtein distance, but you can get more creative and use keyboard distances.maxDictionaryEditDistanceis the maximum distance that will be pre-computed. Increasing this parameter will return more suggestions, but also make the memory print much larger
adding dictionaries
Then some dictionaries can be added through the load_dictionary(filename) function, typically taking a file path as argument. The format of the dictionary is typically either a list of words (one per line), or a list of word and frequency (separated by a space). See example-dict.txt for an example.
You can also add entries directly with create_dictionary_entry(key, count) where key is the valid string and count the frequency associated with it. This is the advised method to use if your data is not in a simple format like the previously described dictionary.
A lot of computations happen at this stage and adding a large number of entries can easily take more than one minute, so we provide two functions to save the analyzed ductionaries as a pickle: save_pickle(filename) and load_pickle(filename), both taking a file path as argument. Note that the pickled is gzipped.
Lookup
Once the dictionaries are loaded, you can get suggestions for a string by calling lookup_compound(str, edit_distance_max), where str is the string you want to analyze and edit_distance_max is the maximum distance you want suggestions for.
The function returns a sorted list of SuggestItems, containing three fields:
termbeing the suggested fixed stringdistancebeing the distance with the original stringcountbeing the frequency if given in the dictionary
Maintainance
Upload on pip:
python setup.py sdist
twine upload dist/*
Copyright
The code is Copyright Esukhia, 2018, and is distributed under the MIT License.
Metadata
Release files for sympound 0.6.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 |
|---|---|---|---|---|
| sympound-0.6.0.tar.gz | 6.9 kB | Without provenance | Details for sympound-0.6.0.tar.gz |
Release files / sympound-0.6.0.tar.gz
| Download URL | sympound-0.6.0.tar.gz |
|---|---|
| Size | 6.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
247f59f3c11d5ad6a59911a5a615b5a8aef8c8dd4736d419a29dc01e1ee8ad56
|
|
BLAKE2b-256 checksum How to use checksums |
4c363b463aeec546bf99bb6f74582019fabb710726a1d58342a5e8414515addd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.6.6rc1
|
Security for sympound 0.6.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.