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

相关推荐
金銀銅鐵4 小时前
[Python] 基于欧几里得算法,实现分数约分计算器
python·数学
Lyn_Li6 小时前
Kaggle Top 5 | 198只股票、200条数据的金融预测——BattleFin高分方案从零复现
python·kaggle·比赛复盘·金融预测
小九九的爸爸10 小时前
前端想要入门Agent开发,要具备哪些Python基础?
python·agent·ai编程
阿耶同学11 小时前
手把手教你用 LangGraph 搭建三层嵌套 Agent 架构
python·程序员
花酒锄作田1 天前
Pydantic校验配置文件
python
hboot1 天前
AI工程师第四课 - 深度学习入门
pytorch·python·神经网络
ZhengEnCi2 天前
P2M-Matplotlib折线图完全指南-从数据可视化到趋势分析的Python绘图利器
python·matlab·数据可视化
ZhengEnCi2 天前
P2L-Matplotlib饼图完全指南-从数据可视化到图表定制的Python绘图利器
python·matlab
曲幽2 天前
你的REST接口还在“过度投喂”数据吗?——FastAPI + GraphQL实战避坑指南
python·fastapi·web·graphql·route·cors·rest·strawberry
用户8358086187912 天前
基于 Self-RAG 与列表级重排序的进阶 RAG 系统设计与实现
python