基于 ahocorasick 实现 多模式字符串匹配

pyahocorasick 是一个用于快速、高效地执行精确或近似计算的多模式字符串搜索库。它允许您在输入文本中一次性查找多个关键字。该库支持预先构建字符串索引,并可将其保存到磁盘(例如通过pickle),以便后续重新加载和重复使用。此外,Pyahocorasick提供了一个基于Python的模块,它实现了Aho-Corasick算法,您可以像操作字典一样使用它,或将Trie树转换为自动机,从而实现高效的 Aho-Corasick 搜索。

安装

bash 复制代码
pip install pyahocorasick

使用

python 复制代码
import ahocorasick

# 构建AC自动机
automa = ahocorasick.Automaton()
words = ["你好", "好", "大家", "好吗", "吗"]
for idx, word in enumerate(words):
    automa.add_word(word, (idx, word))
# 必须调用以构建自动机
automa.make_automaton()

# 匹配文本
text = "你好吗"


for end_index, (insert_order, original_value) in automa.iter(text):
    print((end_index, insert_order, original_value))

# 匹配结果解释:
# (1, 0, '你好') 表示从索引1开始,匹配到了单词"你好"
# (1, 1, '好') 表示从索引1开始,匹配到了单词"好"
# (2, 3, '好吗') 表示从索引2开始,匹配到了单词"好吗"
# (2, 4, '吗') 表示从索引2开始,匹配到了单词"吗"

相关链接

https://github.com/WojciechMula/pyahocorasick
https://pyahocorasick.readthedocs.io/en/latest/

相关推荐
从零开始学习人工智能8 小时前
【踩坑实录】WSL2 解决 onnxruntime\-gpu ImportError: libcudart\.so\.13 无 CUDA13 运行库问题
python
卷无止境10 小时前
在 awesome-fastapi 里,哪些库值得一看?
后端·python
zhanghaha131410 小时前
Python进阶教程:6_JSON 数据解析 —— 新手完全指南
开发语言·python·json
Python私教10 小时前
API 输出模型怎么设计:从 model_dump() 到显式展示层
python·fastapi
Python私教11 小时前
本地 AI 工具服务该绑定 127.0.0.1 还是 0.0.0.0?
python·fastapi
卷无止境11 小时前
FastAPI 的Admin面板生态
后端·python
ctlover11 小时前
Streamlit 框架
python
ι:12 小时前
MATLAB 与 Python 搭建无人机地面站:优势、劣势与选型逻辑
python·matlab·无人机
船厂电气自动化ai大模型12 小时前
AI大模型与数学 第32课 函数凹凸性与二阶导数:拐点求解、凹凸区间计算(10道二阶导数计算题)
数据结构·人工智能·python·深度学习·算法
jufeng130712 小时前
【系列:手搓自主 AI Agent:Hermes 架构原理剖析 · 第 7 篇】
python·ai agent·权限系统