一个用于python的hunstall包装器

CyHunspell的Python项目详细描述


生成状态生成状态pypi version shields.iopypi pyversionslicense:mit

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>

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
当使用RequestDispatcher时,servlets Java最终没有被调用   java生成对具有可变参数数的方法的调用   java如何使用select子句中的参数化列映射iBATIS的查询?   java无法创建类型为org的插件。阿帕奇。登录中。log4j。果心阿佩德。元素RollingFile的RollingFileAppender   java当子实体和父实体之间存在OneTONE JPA关系时,是否可以将其与父实体一起持久化?   Android上的java Facebook集成fbconnect断开链接   获取方法调用方的java机制   从列表创建Oracle阵列时出现java问题   添加和检索元素的ArrayList的java ArrayList   在java中从字符串中删除无效的XML字符   java如何构建完整生成的maven模块   java如何准确地改变播放所有分辨率midi文件的速度?   shell javac:无效标志:/src/中位_度。ubuntu中的java   java使用从其他类的方法检索到的信息