用于Python的hunspell包装器
项目描述
CyHunspell
Hunspell词典的Cython包装器
描述
此存储库提供Hunspell包装器,可在Python中本地使用。该模块使用Cython在C++和Python代码之间建立链接,并具有一些附加功能。由于所有繁重的工作都在模块接口的C++侧完成,因此几乎没有Python开销,从而提供了最佳性能。
hunspell库将缓存任何更正,您可以通过向Hunspell构造函数添加`use_disk_cache`参数来使用持久缓存。否则,它使用内存缓存。
安装
对于最简单的安装,只需运行
pip install cyhunspell
这将为您所在的平台安装hunspell 1.7.0 C++绑定。
依赖项
cacheman -- 用于(可选异步)持久缓存
非Python依赖项
hunspell
库安装了hunspell版本1.7.0。随着hunspell新版本的可用,此库将提供匹配的新版本。
功能
拼写检查 & 拼写建议
如何使用
以下是一些使用存储库的简单示例。
创建Hunspell对象
from hunspell import Hunspell
h = Hunspell()
现在您有一个可用的hunspell对象,可以为您执行基本查询。
h.spell('test') # True
拼写
询问特定单词是否在字典中是一个简单任务。
h.spell('correct') # True
h.spell('incorect') # False
此函数只返回True或False,不会提供错误原因的建议。它还取决于你选择的词典。
建议
如果你想从Hunspell获取建议,它可以在给定的basestring输入后提供修正的标签。
h.suggest('incorect') # ('incorrect', 'correction', corrector', 'correct', 'injector')
建议按顺序排列,索引越低,越接近输入字符串。
后缀匹配
h.suffix_suggest('do') # ('doing', 'doth', 'doer', 'doings', 'doers', 'doest')
词干提取
该模块还可以提取词干,提供复数和其他变形的词干。
h.stem('testers') # ('tester', 'test')
h.stem('saves') # ('save',)
分析
类似于词干提取,但返回输入的形态分析。
h.analyze('permanently') # (' st:permanent fl:Y',)
生成
由于1.7.0构建版本对任何输入(包括文档中描述的输入)都没有产生任何结果,因此目前没有提供生成方法。如果这个问题得到解决或有人确定了调用模式中的问题,这个功能将在未来添加到库中。
批量请求
您还可以请求对Hunspell进行批量操作。这将触发一个线程请求(没有全局解释器锁)以执行请求的操作。目前,只有'suggest'和'stem'可以进行批量请求。
h.bulk_suggest(['correct', 'incorect'])
# {'incorect': ('incorrect', 'correction', 'corrector', 'correct', 'injector'), 'correct': ('correct',)}
h.bulk_suffix_suggest(['cat', 'do'])
# {'do': ('doing', 'doth', 'doer', 'doings', 'doers', 'doest'), 'cat': ('cater', 'cats', "cat's", 'caters')}
h.bulk_stem(['stems', 'currencies'])
# {'currencies': ('currency',), 'stems': ('stem',)}
h.bulk_analyze(['dog', 'permanently'])
# {'permanently': (' st:permanent fl:Y',), 'dog': (' st:dog',)}
默认情况下,它会启动与CPU数量相同的线程来执行操作。您也可以覆盖并发性。
h.set_concurrency(4) # Four threads will now be used for bulk requests
词典
您还可以指定希望使用的语言或词典。
h = Hunspell('en_CA') # Canadian English
默认情况下,您有以下词典可用
- en_AU
- en_CA
- en_GB
- en_NZ
- en_US
- en_ZA
但是,您可以下载自己的词典并将Hunspell指向您的自定义词典。
h = Hunspell('en_GB-large', hunspell_data_dir='/custom/dicts/dir')
添加词典
您还可以通过调用add_dic方法在运行时添加新的词典。
h.add_dic(os.path.join(PATH_TO, 'special.dic'))
添加单词
您可以在运行时向词典中添加单个单词。
h.add('sillly')
此外,您可以通过提供第二个参数将词缀附加到单词上
h.add('silllies', "is:plural")
删除单词
与添加类似,您也可以删除单词。
h.remove(word)
异步缓存
如果您希望Hunspell缓存建议和词干,您可以传递一个目录来存放此类缓存。
h = Hunspell(disk_cache_dir='/tmp/hunspell/cache/dir')
这将定期和在后台保存所有建议和词干请求。在特定时间范围内的新请求超过一定数量后,缓存将分叉并保存缓存内容,而程序的其他部分继续运行。您无需显式地将缓存保存到磁盘,但如果需要,可以这样做。
h.save_cache()
否则,Hunspell对象将仅在内存中本地缓存此类请求,而不持久化内存。
语言首选项
- 谷歌风格指南
- 面向对象(有一些例外)
已知解决方案
- 在Windows上,非常长的文件路径或以不同于系统编码的方式保存的路径需要Hunspell特殊处理以加载词典文件。要绕过Windows配置中的此问题,可以在Hunspell构造函数中将system_encoding设置为'UTF-8',或将环境变量HUNSPELL_PATH_ENCODING设置为UTF-8。然后,您必须通过传递该参数名称到Hunspell构造函数或设置环境变量HUNSPELL_DATA来以UTF-8重新编码hunspell_data_dir。这是Hunspell / Windows操作的限制。
作者
作者:Tim Rodriguez和Matthew Seal
许可证
MIT
项目详情
cyhunspell-2.0.2-cp39-cp39-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d517d1d4cc0717e94507ae47066ba05034904de2e82a62b007d131d4a8c3a7a6 |
|
MD5 | 8730009fc189154ce521b403ebb62920 |
|
BLAKE2b-256 | 3b05cdbea1ab1543dbec2a0ef1c95a6208376172a133d5d752586ccc8e7d4583 |
cyhunspell-2.0.2-cp39-cp39-win32.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | bb2e1e2512dedb48ccb676751d06275bac2a462491bbd8a4826ad726d8bae81e |
|
MD5 | 6cd4a3c97bb8144dc8ace65b07bc8f8d |
|
BLAKE2b-256 | 431ec39e83c4611672afc5f6527ba20838e04c76ade81944eeeba5d8adbc6aae |
cyhunspell-2.0.2-cp39-cp39-manylinux2010_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1a52e2d49fd51bc0b97db11e95db53e4ae18719998cdb9cd805a0af04de10eab |
|
MD5 | d371c2e9c8024bbf4fa9b1679149415a |
|
BLAKE2b-256 | dd97ad70918a0668e6222ad69a24f6bd65d015018632bed043df11783f8ace84 |
cyhunspell-2.0.2-cp39-cp39-manylinux2010_i686.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 656162d66921991edd3a4116ffbf75ea3cf9571e070a489a593520051f7a66dc |
|
MD5 | d4621abb3afd9eb550a74a5ce935fefd |
|
BLAKE2b-256 | 8a9fac3f82bc7f3e2601f87b0ec306043c66404e9b2ceba549d2ee1fa975d129 |
cyhunspell-2.0.2-cp39-cp39-macosx_10_9_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | bcc4cce42b40c58ad21ce5566421980e927207efaa8f683ab2ab68b6def35435 |
|
MD5 | ee63a120685768bf6253b6377733e2b1 |
|
BLAKE2b-256 | 5a4e54074722e1accbef651495a204d9e3c103ce776f4f99aeb6ad3ef371f4c8 |
cyhunspell-2.0.2-cp38-cp38-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6c7390a072eb7c8674a244f99915606f6fe3485fa5fe71bd590f49b92aefe460 |
|
MD5 | ae3ad08649339760e31252125723008c |
|
BLAKE2b-256 | 2bc2efcbce709fdb7ed215949e9099824e098a61b15e8f9b31ecd1fee72802c6 |
cyhunspell-2.0.2-cp38-cp38-win32.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8e7862cbf170aff8010ebd5ed3e179712a3ab2ea41ba08da5377570a6b693368 |
|
MD5 | b5e390b7a26c04e6ef9b709174d0c5d1 |
|
BLAKE2b-256 | d12fb3471bfb0a50c60cbd46e853806dfecd312f5068c343b6484da2359ff83d |
cyhunspell-2.0.2-cp38-cp38-manylinux2010_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 858226b7c159b398a9a0bcdfa17f8808cb74ed7871b7eff05d1823779dee46c2 |
|
MD5 | 087d0b072ceb88dd6185f6c502354ecb |
|
BLAKE2b-256 | dd3622f3a5452c77f8f8e00ca19cda54700fc80292dae9274c784c36f33873f1 |
cyhunspell-2.0.2-cp38-cp38-manylinux2010_i686.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 04039a880e96cd0c9d8db7dfd21be40bf767560cd35f2bbfb82a3e5c6799c8ae |
|
MD5 | 194019aeda816019dd6e0f16c6cc848c |
|
BLAKE2b-256 | 433873106318fe3d7e5c662018aa4a5b521dc8cfcb3d85a29f6da02b5fe7d744 |
cyhunspell-2.0.2-cp38-cp38-macosx_10_9_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ecabf5c71d7b9e727d306e053b908647c7afae5ee88ec1101b5cb34d99208e93 |
|
MD5 | 86325b5c30f34a244ae9ad2d04fab7bf |
|
BLAKE2b-256 | 1dc585bf8c059f6efcf7eb314fcf345ac25c7d280ebf4def912706e785b12b02 |
cyhunspell-2.0.2-cp37-cp37m-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 892ae561ce3a6b15751536bef95ca6e70fd0a81732e810c460f126b0d6161a8d |
|
MD5 | 8390bb41564f87be4d27c9749b4ac051 |
|
BLAKE2b-256 | d48ba62b720dbc6b463231841fe80e390b6e6f8b3a44ec861eeb3d1a954f70f5 |
cyhunspell-2.0.2-cp37-cp37m-win32.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7489c28db35b288635cc67984a149f1f223401fca287b02c38e56aa9818abe25 |
|
MD5 | de85f820b3c53da82ff59bc7a59696c4 |
|
BLAKE2b-256 | a03d6004f0da6dd3b7c97a596f53be76564d36738b1f70dd754c8c30096baf0f |
cyhunspell-2.0.2-cp37-cp37m-manylinux2010_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7ad13ed8392526fa136007e4f829fc73fa1f7d275b1a9db19832d38b6f3e5aa4 |
|
MD5 | 9c23802bfe9662bee48c599928156d80 |
|
BLAKE2b-256 | eb9a6bbbebb202ca9de90efb66b2470fe4b81d47ca5c6bd6494077f960d664ce |
哈希值 用于 cyhunspell-2.0.2-cp37-cp37m-manylinux2010_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1be7eac0e88949ad877f6855c7a7c004424e2d19537c3874a540930247a6d537 |
|
MD5 | 32c1d3748bdb26c150362a05c576c76e |
|
BLAKE2b-256 | 60d24854d5886fd44fd89ed1bdf2e6354e7efa0299c78074d03d9e8311e94d23 |
哈希值 用于 cyhunspell-2.0.2-cp37-cp37m-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0c197a9075ec14c049c87a8bdcee258456141a2468f17fb94abbff440073b0b3 |
|
MD5 | 7bef8cd5522f5b67e46be87d795d5bb4 |
|
BLAKE2b-256 | 3d98c4f6e3a78e76901e46a9abf63dc3fe3687ba19471136aa7adfdbd301c314 |
哈希值 用于 cyhunspell-2.0.2-cp36-cp36m-manylinux2010_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a9ed4a1acdd97404f6bc0cc7820ab3fe1d506f88e2b0ea2b86b2dc6d99d4e280 |
|
MD5 | e7505ba1cd50ac650afb021f94654c92 |
|
BLAKE2b-256 | 6e4ef6fd66d5a3677482377c1b073578b64201c8b44762af4e90108cf2acb49b |
哈希值 用于 cyhunspell-2.0.2-cp36-cp36m-manylinux2010_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7c64b889c3a07b82efe85da889e3c0d643c3f89ec26ba0f11ab76a479cdab215 |
|
MD5 | 00c946c904e5e080155eda5d2b21e46c |
|
BLAKE2b-256 | 988e1af2d0c2d1ce9990c8529153d801b36739b7bec77c53fb7a12ec7a6a755c |
哈希值 用于 cyhunspell-2.0.2-cp36-cp36m-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ec1a4a648104b3ebf3c36f8bb0f3d17d97607df8f49bdfb987d532c5cfb79712 |
|
MD5 | b0e4c1787b93f32792059a832cb37ada |
|
BLAKE2b-256 | 144823a0638335ee6cd09ccfc2d187644c7b3d24987f327d48f7e1e095d5fee9 |