OpenGrm Pynini
这是一个用于编译、优化和应用语法规则的Python扩展模块。规则可以被编译成加权有限状态转换器、下推转换器或多下推转换器。它使用OpenFst有限状态转换器(FSTs)和FST存档(FArs)作为输入和输出。
该库主要由Kyle Gorman开发。
如果您在研究中使用Pynini,我们将非常感谢您引用以下论文:
K. Gorman. 2016. Pynini: A Python library for weighted finite-state grammar compilation. 发表于 ACL统计自然语言处理和加权自动机研讨会论文集, 75-80.
(请注意,论文中的一些代码示例现已过时,可能无法正常工作。)
依赖项
- 符合标准的C++17编译器(GCC >= 7或Clang >= 700)
- 兼容的最新版本OpenFst(请参阅
NEWS
),需要使用grm
扩展构建(即使用./configure --enable-grm
构建)及其头文件 - Python 3.6+及其头文件
安装说明
根据您的平台,安装Pynini有多种方式。
Windows
虽然Pynini并非为Windows设计或测试,但可以使用Windows Subsystem for Linux(WSL)进行安装。只需进入WSL环境,然后按照下面的Linux说明操作即可。
MacOS
可以通过conda-forge
安装预编译库,运行conda install -c conda-forge pynini
。
或者,可以从PyPI构建源代码,运行pip install pynini
。
最后,可以使用Bazel从源代码构建,在源代码树的任何位置运行bazel build //:all
。
Linux
可以通过conda-forge
安装预编译库,运行conda install -c conda-forge pynini
。
或者,可以从PyPI安装预编译的manylinux
轮子,运行pip install pynini
。这将安装预编译的manylinux
轮子(如果该版本可用且与您的平台兼容),如果不可用,则从源代码构建并安装。与上述conda-forge
选项不同,后者还安装了OpenFst和Graphviz,这种方式不会安装OpenFst或Graphviz命令行工具。有关构建和部署manylinux
轮子的说明,请参阅随附的Dockerfile
。
最后,可以使用Bazel从源代码构建,在源代码树的任何位置运行bazel build //:all
。
测试
要确认安装成功,请运行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的官方产品。