基于 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/

相关推荐
默_笙2 天前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
qq_426003962 天前
启动playwright录制codegen生成自动化测试脚本
python·自动化
虎头金猫2 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
长沙三为智能科技3 天前
家政小程序开发从0到上线:五阶段交付流程与验收清单
python
伞伞悦读3 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
只睡四小时3 天前
Canvas 弹道联机实战:700 行 + 固定时间步长
python·websocket·html5·游戏开发·canvas
奇思妙想聪明勤奋的小羊3 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
lpfasd1233 天前
2026年第38周GitHub趋势周报
python·科技·github
IZero073 天前
Jev 与 Laya
python·语言模型