Python bidings for Nuspell - a fast and safe spellcheckingC++ library
Project description
About PyNuspell
PyNuspell is a set of Python 3.x bindings for Nuspell spellchecking C++ library.
About Nuspell
Nuspell is a fast and safe spelling checker software program. It is designed for languages with rich morphology and complex word compounding. Nuspell is written in modern C++ and it supports Hunspell dictionaries.
Main features of Nuspell spelling checker:
- Provides software library and command-line tool.
- Suggests high-quality spelling corrections.
- Backward compatibility with Hunspell dictionary file format.
- Up to 3 times faster than Hunspell.
- Full Unicode support backed by ICU.
- Twofold affix stripping (for agglutinative languages, like Azeri, Basque, Estonian, Finnish, Hungarian, Turkish, etc.).
- Supports complex compounds (for example, Hungarian, German and Dutch).
- Supports advanced features, for example: special casing rules (Turkish dotted i or German sharp s), conditional affixes, circumfixes, fogemorphemes, forbidden words, pseudoroots and homonyms.
- Free and open source software. Licensed under GNU LGPL v3 or later.
See more details at https://nuspell.github.io/ and https://github.com/nuspell/nuspell
Installing using pip
You can install this package using pip:
pip install pynuspell
To download dictionaries, please refer to https://github.com/nuspell/nuspell/wiki/Dictionaries-and-Contacts
Installing from source
Requirements:
- Python 3.6 or later
- Git
- C++ compiler with cmake
Open a terminal and run the following commands:
# Clone repository
git clone --recurse-submodules https://github.com/scherzocrk/pynuspell.git
cd pynuspell
# Install vcpkg (Windows)
.\extern\vcpkg\bootstrap-vcpkg.bat
set VCPKG_ROOT=.\extern\vcpkg
# Install vcpkg (Linux/MacOS)
.\extern\vcpkg\bootstrap-vcpkg.sh
export VCPKG_ROOT=.\extern\vcpkg
# Install nuspell
.\extern\vcpkg\vcpkg install nuspell
# Build and install pynuspell
python setup.py install
# You can generate stub files for IntelliSense using:
pip install pybind11-stubgen
pybind11-stubgen --no-setup-py pynuspell
# You can run somes tests using:
pip install pytest
pytest tests/tests.py
Usage
>>> import pynuspell
>>> nuspell_dict = pynuspell.load_from_path('en-US') # path to where en_US.aff and en_US.dic are found
>>> nuspell_dict.spell('spookie')
False
>>> nuspell_dict.suggest('spookie')
['spookier', 'spook']
>>> nuspell_dict.spell('spookier')
True
Next Steps
- Add more bindings to existing features
- Keep up to date with new releases of Nuspell
- Anyone is more than welcome to contribute to this package
Contact information:
- Author: Renan Santos
- E-mail: renan.engmec@gmail.com
Acknowledgments
Special thanks to Nuspell and PyBind11 developers
License
PyNuspell is licensed under the LGPL version 3 or later, see LICENSE for more information.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Hashes for pynuspell-1.0.0-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5872a3a3bc482c4d8e7fde41a751a2904b40663d0a99ce5e649174f5a3b6afb2 |
|
MD5 | 75960a3efa4fafd18f5b705fdadc15fb |
|
BLAKE2b-256 | a1a17dade250e54ad30262ee9585ec6645b41b9c1f3b99f94a4d26410ba07350 |
Hashes for pynuspell-1.0.0-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b7b6ee6a8226f61a3c9d15aa1ae0adb3d13f67b52445f7e580fe8be681ad44a4 |
|
MD5 | 65b2da0f4764ad2af8c860b6ab112078 |
|
BLAKE2b-256 | 1068a4542beed85dc69acbc70f0a6b175892066da6023691e83dc1885bccace1 |
Hashes for pynuspell-1.0.0-cp39-cp39-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3270b63cb6211b67c1219d56349f1cd5b1204831f7b28c64e50330b4d7b0250a |
|
MD5 | 1d7c38101199cc4de131b5fddd74a460 |
|
BLAKE2b-256 | 63dc6119702e5f804f45fb489cbf40aecf1567c135175da4e73cc566fa2a36b1 |
Hashes for pynuspell-1.0.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | db2ab55d4c7e73f1adf710fefc46b55b011fab805a3290fe153b49b2a1334f2d |
|
MD5 | 1a028e51bd66d8646abdaa4cbaaf5c2e |
|
BLAKE2b-256 | 2904100aa1f4ec696703a594acf034dbad67ec7c93f1b22ca1254aefe975a506 |
Hashes for pynuspell-1.0.0-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 85d69fad13df7376989c7be4ae8786cd36b3aa1a76478ec3b8680ea29bb1fc6b |
|
MD5 | ba11ac0b584bacc36b2cace95010e0a7 |
|
BLAKE2b-256 | e9a4f095be99510313710ddb3b4105ae62a22170245858b0dcbeb32a9bb56ab3 |
Hashes for pynuspell-1.0.0-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11af49a7c2e66acc048cdac6e5f807478b954977be33f277293230fafde13d61 |
|
MD5 | ef1969fc5cdc661315865106939e387d |
|
BLAKE2b-256 | 04857b56a01252269644c1560cd417308f1f08a9bbf15c1b934b8a2ec2706333 |
Hashes for pynuspell-1.0.0-cp38-cp38-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e37169e666e0718f8d8ad060de66c083fcd1868c9913d05a9e7474674f040da |
|
MD5 | 2b5fcb735ead4ce6ac1aa579a7447a32 |
|
BLAKE2b-256 | 600ebb6fa297832c0a0e251dd40e1856bfb70e8ed0a6ad07ffbccc95c1020854 |
Hashes for pynuspell-1.0.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 60fd0026c35a6d5cdd943e47c52b62665a0ed8d099a188e721cc3a42297396d9 |
|
MD5 | 0fa40b39741df7d5872dcd1b32ddacee |
|
BLAKE2b-256 | 9698902fcbe197f6734687c9e046c796bdfb2c4da097ff2ef7c041ba05c1d932 |
Hashes for pynuspell-1.0.0-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd64d53630a8e9ea814fca9f017ad2bcfaf5dfe573c63803705b002476a2565b |
|
MD5 | 9c60c5a47b27ee11c8c5ec9c3c217fd9 |
|
BLAKE2b-256 | 188211f9861c3ee988d80fcf10651983210f960ed7e554f66553271b2ae05d4f |
Hashes for pynuspell-1.0.0-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 467e50e3e0bad9a9bb2520acf8a67b7e852c6ed99d9bf11d5f4b4f006dc90100 |
|
MD5 | d3d524be253e7d7c8b5b76516da43059 |
|
BLAKE2b-256 | ef2d1033d01422ce8acfd038347706f58c12ff0580c1258979aad625e85a7257 |
Hashes for pynuspell-1.0.0-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cefe8b8a9b03982b5af722e2407fb61b2e21ea104e888161f60a3b3db50746fb |
|
MD5 | 620fe5d29051157984f9d305e718cb43 |
|
BLAKE2b-256 | 1caa2596ced89bb6a9559f3c3bc22619c0188d66b4e2353b7d9f94f2e2b8cd89 |
Hashes for pynuspell-1.0.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | db250b8cc062f8dc92ba02f4dd1fb7d7297b89fe309a8b750af6c2dc9691af98 |
|
MD5 | 1b68d131793d9deb4ba98db22b93feca |
|
BLAKE2b-256 | 5c1413305777facce246c58766e9fb0dec86ab45e1d1fdaa21f1d44dc040961f |
Hashes for pynuspell-1.0.0-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ccd5b6799eae91a5cfd7aac76a828bdc8da69479500618e5b10f63d00fd3ea71 |
|
MD5 | 5d5572b6b2035e4b607913fdfa7ba0c0 |
|
BLAKE2b-256 | 6a3e9a11413fd0b8af664445e030c9cde23db03b29e4ec8e7aaf223a5cacc99a |
Hashes for pynuspell-1.0.0-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 987d379cf945c032215af56a345338836c92b893f7a760688c120b9d7f9ba7c7 |
|
MD5 | 92a7073356b28e6a5a4a7d22539f9aa2 |
|
BLAKE2b-256 | 3f0c9a3544a4a6cf83b88ddad4c7849258841bd311816cd5807d388e8921df98 |
Hashes for pynuspell-1.0.0-cp36-cp36m-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d6b6939e77f3ad33b69656d7786246e46ad97c3a1085509acca19ca9a6ed5340 |
|
MD5 | 4c90080d50dc44e9bbc4ff332f5b19bf |
|
BLAKE2b-256 | bcf6260224a5c5d36a6a6dca40f78cce919bd9f7ae315fb06d7767117195f02b |
Hashes for pynuspell-1.0.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 786f7a5adbe442650c46d39ce313bd35e65dacd59eee29245581c8d2629674b7 |
|
MD5 | 8c3547e71e77ae471d988a9adc584810 |
|
BLAKE2b-256 | 8911f1656ec3553657fd20a87c75cae17b102e6ad4aa93194fd9c5b58ebb9faf |