跳转到主要内容

有限状态语法编译

项目描述

OpenGrm Pynini

这是一个用于编译、优化和应用语法规则的Python扩展模块。规则可以编译成加权有限状态转换器、推栈转换器或多推栈转换器。它使用OpenFst有限状态转换器(FSTs)和FST存档(FArs)作为输入和输出。

该库主要是由 Kyle Gorman 开发的。

如果您在研究中使用了Pynini,我们将非常感谢您引用以下论文

K. Gorman. 2016. Pynini: A Python library for weighted finite-state grammar compilation. In Proc. ACL Workshop on Statistical NLP and Weighted Automata, 75-80.

(请注意,论文中的一些代码示例现在已过时,可能无法正常工作。)

依赖关系

  • 符合标准的C++17编译器(GCC >= 7或Clang >= 700)
  • 兼容的OpenFst最新版本(有关此版本的信息,请参阅 NEWS),带有grm扩展(即使用./configure --enable-grm构建)和头文件
  • Python 3.6+和头文件

安装说明

根据您的平台,安装Pynini有多种方式。

Windows

虽然Pynini既不是为Windows设计的,也没有在Windows上进行测试,但它可以使用Windows Subsystem for Linux(WSL)进行安装。只需进入WSL环境,然后按照下面的Linux说明进行操作。

MacOS

可以通过运行conda install -c conda-forge pyniniconda-forge安装预编译的库。

或者,可以从PyPI通过运行pip install pynini从源代码构建。

最后,您可以在源代码树的任何位置运行bazel build //:all使用Bazel从源代码构建。

Linux

可以通过运行conda install -c conda-forge pyniniconda-forge安装预编译的库。

或者,您可以通过运行pip install pyniniPyPI安装预编译的manylinux wheel。这将安装预编译的manylinux wheel(如果适用于发布并与您的平台兼容),如果不适用,则从源代码构建和安装。与上面安装的conda-forge选项不同,该选项还安装OpenFstGraphviz,此选项不安装OpenFst或Graphviz命令行工具。有关构建和部署manylinux wheel的说明,请参阅附带的Dockerfile

最后,您可以在源代码树的任何位置运行bazel build //:all使用Bazel从源代码构建。

测试

要确认安装成功,请运行pip install -r requirements,然后运行python tests/pynini_test.py。如果所有测试都通过,最后一条将显示为OK;成功的运行将在STDERR中记录一些错误(这是正常情况)。

Python版本支持

Pynini 2.0.0及以后版本支持Python 3。Pynini 2.1版本(及以后版本)放弃了对Python 2的支持。当前版本支持Python 3.8-3.13。

许可

Pynini采用Apache许可证发布。有关更多信息,请参阅LICENSE

有兴趣贡献吗?

有关更多信息,请参阅CONTRIBUTING

强制免责声明

这不是一个官方的Google产品。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

pynini-2.1.6.post1.tar.gz (790.4 kB 查看哈希值)

上传时间 源代码

构建分发

pynini-2.1.6.post1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl (98.8 MB 查看哈希值)

上传时间 PyPy manylinux: glibc 2.28+ x86-64

pynini-2.1.6.post1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl (98.8 MB 查看哈希值)

上传时间 PyPy manylinux: glibc 2.28+ x86-64

pynini-2.1.6.post1-cp313-cp313-manylinux_2_28_x86_64.whl (154.7 MB 查看哈希值)

上传时间 CPython 3.13 manylinux: glibc 2.28+ x86-64

pynini-2.1.6.post1-cp312-cp312-manylinux_2_28_x86_64.whl (154.7 MB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.28+ x86-64

pynini-2.1.6.post1-cp311-cp311-manylinux_2_28_x86_64.whl (154.8 MB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.28+ x86-64

pynini-2.1.6.post1-cp310-cp310-manylinux_2_28_x86_64.whl (154.5 MB 查看哈希值)

上传时间 CPython 3.10 manylinux: glibc 2.28+ x86-64

pynini-2.1.6.post1-cp39-cp39-manylinux_2_28_x86_64.whl (154.5 MB 查看哈希值)

上传时间 CPython 3.9 manylinux: glibc 2.28+ x86-64

pynini-2.1.6.post1-cp38-cp38-manylinux_2_28_x86_64.whl (154.7 MB 查看哈希值)

上传时间 CPython 3.8 manylinux: glibc 2.28+ x86-64

支持者