Skip to content

Latest commit

 

History

History
58 lines (45 loc) · 2.51 KB

README_ZH.md

File metadata and controls

58 lines (45 loc) · 2.51 KB

PatternPiece

GitHub Documentation Status

English | 简体中文

PatternPiece 是一个扩展的、轻量级的 Aho-Corasick 序列多模式、多元素匹配算法库,作为匹配方法的初步设计。

PatternPiece 使用 Cython 实现,并在 Python 3.8 及更高版本上进行了测试。它适用于 64 位的 Linux、macOS 和 Windows。license为 Apache-2.0。

下载以及源代码位置

您可以从以下位置获取 PatternPiece:

Patternpiece文档 https://patternpiece.readthedocs.io/en/latest/

快速开始

此模块是用Cython编写的。您需要安装C编译器来编译原生扩展。此外,由于需要进行并行计算,您还需要安装OpenMP。安装方法:

pip install patternpiece

或者,您也可以从源代码安装,首先克隆本仓库:

git clone https://github.com/xlxwalex/PatternPiece.git
cd PatternPiece
pip install -e .

首先,我们可以构造一个示例模式字典:

>>> patterns = {(1, 200, 30) : 1} # (键 -> 模式组成的元组, 值 -> 模式索引)

然后实例化一个PatternPiece:

>>> from patternpiece import PatternPiece
>>> matcher = PatternPiece(patterns)

它将自动将模式从字典树转换为Aho-Corasick自动机,以启用 Aho-Corasick 搜索,然后您可以在序列中匹配模式

>>> sequences = [[(1, 10, 100), (2, 20, 200), (3, 30, 300)]]
>>> results = matcher.match(sequences)

注意: 您可以输入多个序列,它们会被并行地进行匹配

最后,你可以得到匹配的结果

results:
[[(1, 0, 3)]]  # (索引, 起始位置索引, 终止位置索引)

License

此库根据 Apache-2.0 许可证进行许可