Skip to main content

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:

  • distancefun is 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.
  • maxDictionaryEditDistance is 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:

  • term being the suggested fixed string
  • distance being the distance with the original string
  • count being 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.

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)

Source distribution for sympound 0.6.0
File Size Uploaded
sympound-0.6.0.tar.gz 6.9 kB Details

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

Release history Release notifications | RSS feed

This release

0.6.0 This release

1 release file

0.5.0

1 release file

0.4.0

1 release file

0.3.0

1 release file

0.2.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page