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

相关推荐
belldeep1 小时前
python:genesis-world, Genesis-Embodied-AI
人工智能·python·ai·genesis
benchmark_cc2 小时前
A 股、港股、美股如何建立统一的标的主数据格式?
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
维克兜率天2 小时前
【维克】趋势型CTA:期货市场的“追涨杀跌“
人工智能·python
取名真是3 小时前
Python 算法知识点从基础到进阶
开发语言·python·算法
梦想不只是梦与想3 小时前
PyTorch、CPU、GPU、CUDA
人工智能·pytorch·python·深度学习·机器学习·cuda
数字融合3 小时前
透明化视频孪生危化安全管控解决方案
人工智能·python·安全
别问!问就是全会5 小时前
Jupyter Notebook 安装包下载|单元格分块运行,图表直接内嵌
ide·python·其他·jupyter
深蓝AI5 小时前
Python 缓存击穿实测:16 个并发请求如何只回源 1 次
python
benchmark_cc5 小时前
用 00700.HK 做港股行情清洗:字段核对、校验与个人量化开发实践
python·数据分析·pandas·量化交易·股票数据·quantdash
zh路西法6 小时前
【PACE】面向永磁同步电机PMSM 执行器的参数辨识与能耗感知强化学习 Sim-to-Real
python·cma-es·pmsm·sim-to-real·issac·pace