一个用于python的hunstall包装器
CyHunspell的Python项目详细描述
cyhunstally
Hunstall字典上的cython包装器
说明
这个存储库提供了一个hunspell包装器,可以在python中本地使用。这个 模块使用Cython来在C++和Python代码之间进行链接,并附带一些额外的内容。 特征。所有的重担都完成了,头顶上几乎没有巨蟒 在模块接口的C++方面,它提供了最佳性能。
hunstally库将缓存任何更正,您可以通过
将use_disk_cache
参数添加到hunstall构造函数。否则它使用
内存缓存。
安装
对于最简单的安装,只需运行:
pip install cyhunspell
这将尝试以您的名义安装非python依赖项。您可以提前提供libhunspell依赖项来加速这个过程(请参见下面的非python依赖项)。
依赖关系
cacheman—用于(可选异步)持久缓存
非python依赖项
拼音
如果您没有安装Hunspell,库将下载并为您构建。
如果要在ubuntu发行版上使用ubuntu的1.6安装,请在安装之前使用以下命令:
sudo apt-get install libhunspell-1.6-0 libhunspell-dev
这是一个比内置下载和编译更快的installsudo apt get install libhunstall-1.6-0 libhunstall dev。
旧版本的Debian可能只有1.3.0可用,您可以使用
sudo apt-get install libhunspell-1.3-0 libhunspell-dev
功能
拼写检查和拼写建议
- 请参见http://hunspell.sourceforge.net/" rel="nofollow">http://hunspell.sourceforge.net/
如何使用
下面是一些如何使用存储库的简单示例。
创建Hunstally对象
from hunspell import Hunspell
h = Hunspell()
您现在有一个可用的hunstall对象,可以为您进行基本查询。
h.spell('test') # True
拼写
询问字典中是否有某个单词是一项简单的任务。
h.spell('correct') # True
h.spell('incorect') # False
这只会返回正确或错误,并且不会给出为什么返回的建议 可能是错的。这还取决于您对词典的选择。
建议
如果你想从Hunstall那里得到建议,它可以提供一个正确的标签 给定一个基串输入。
h.suggest('incorect') # (u'incorrect', u'correction', u'corrector', u'correct', u'injector')
建议是按顺序排列的,其中索引越低越接近 输入字符串。
堵塞
模块还可以词干,为多元化和其他 屈折变化。
h.stem('testers') # (u'tester', u'test')
h.stem('saves') # (u'save',)
批量请求
你也可以请求对Hunspell的批量操作。这将触发一个线程 (没有gil)执行请求的操作的请求。目前只是"建议" "stem"是批量请求的。
h.bulk_suggest(['correct', 'incorect'])
# {'incorect': (u'incorrect', u'correction', u'corrector', u'correct', u'injector'), 'correct': ['correct']}
h.bulk_stem(['stems', 'currencies'])
# {'currencies': [u'currency'], 'stems': [u'stem']}
默认情况下,它生成执行该操作的CPU线程数。你可以 同时覆盖并发性。
pip install cyhunspell
0
词典
您还可以指定要使用的语言或词典。
pip install cyhunspell
1
默认情况下,您可以使用以下词典
- 英语
- 欧洲大陆
- 英国
- 新西兰
- 我们
- 恩扎
不过,您可以下载您自己的并指向您的自定义词典。
pip install cyhunspell
2
异步缓存
如果你想有hunstall缓存建议和stems,你可以给它一个目录 存放这样的储藏室。
pip install cyhunspell
3
这将定期在后台保存所有建议和STEM请求。 缓存将在特定时间范围内的多个新请求之后分叉,并且 在程序的其余部分继续运行时保存缓存内容。你永远不会 必须显式地将缓存保存到磁盘,但如果您愿意,可以这样做。
pip install cyhunspell
4
否则hunstall对象将在内存中本地缓存此类请求,而不是 保存该内存。
平台
Linux
在ubuntu和fedora上测试,预编译的二进制文件是hunspell,以及 自动建立依赖关系。我真的很难和其他人相处 分配。
窗口
基本库附带msvc构建的hunstall库,并将链接 在运行时。在windows 7、8、10和 一些在旧系统上。有可能python构建的 (或更旧)版本的msvc将无法加载这些预先构建的库。
Mac OSX
到目前为止,该库已经测试了10.9(小牛)及以上版本。那里 不应该是它无法在任何特定版本的 OSX.
构建源库
参见libs/readme
浏览回购协议
拼音
回购的包装纸。
测试
回购的所有单元测试。
语言首选项
- 谷歌风格指南
- 面向对象(少数例外)
待办事项
- 将cacheman依赖项转换为可选
已知的解决方法
- 在windows上,很长的文件路径,或者以不同于系统的编码保存的路径需要hunstall进行特殊处理才能加载字典文件。若要在Windows设置中避免此问题,请在
hunstally
构造函数中设置system\u encoding='utf-8'
,或设置环境变量hunstally\u path\u encoding=utf-8
。然后,您必须在utf-8中通过将参数名传递给hunstally
构造函数或设置hunstally\u data
环境变量来重新编码hunstalle\u data目录。这是hunstall/windows操作的限制。
已知问题
- 不同操作系统上的精确拼写建议在输入相同的情况下略有不同。这似乎是Hunstall1.3的问题,而不是这个库的问题。
- 旧版本的pip和setuptools将使用不正确的windows dll绑定生成,并抱怨"importerror:dll加载失败:%1不是有效的win32应用程序。"
- 有时windows机器找不到合适的构建工具。你可能需要 安装前设置vs100comntools%vsxxxcomntools%。python 3通常希望xxx为"140",python 2为"90"。虽然pip和setuptools的升级常常通过更智能的方式解决这个问题,但是库并不能做很多事情来解决这个问题。
- windows上的ubuntu需要安装autoconf和build工具才能正常工作。安装sudo apt get install autoconf automake libtool build essential pkg-配置python python dev以使生成工具能够工作。
作者
作者:Tim Rodriguez和Matthew Seal
许可证
麻省理工学院< /P>