安装:
pip install pyahocorasick -i https://pypi.tuna.tsinghua.edu.cn/simple/
import ahocorasick
drugs= '''
脑血康胶囊
羧甲司坦片
麻仁丸
氢溴酸东莨菪碱片
苄达赖氨酸滴眼液
pH4
化积口服液
五妙水仙膏
氨茶碱氯化钠注射液
伤科接骨片
六味壮骨颗粒
聚乙二醇滴眼液
复方氨酚烷胺胶囊
阑尾灵颗粒
小儿石蔻散
葡萄糖氯化钠注射液
肿节风注射液
神农镇痛膏
阿胶
二十五味珊瑚丸
小儿乳酸菌素片
罗汉果止咳糖浆
注射用氯化钾
盐酸哌甲酯缓释片
复方甘草酸苷片
维胺酯胶囊
藻酸双酯钠片
吉祥安坤丸
葫芦素片
中风回春胶囊
红金消结胶囊
鼻通宁滴剂
蒲地蓝消炎口服液
冠心生脉丸
盐酸乙胺丁醇片
伤科跌打丸
小儿智力糖浆
复方皂矾丸
氟康唑片
参芪降糖片
维生素C
注射用胸腺肽
硫辛酸注射液
癃闭舒胶囊
护肝宁片
利奈唑胺片
糠甾醇片
参南星口服液
注射用腺苷钴胺
红霉素软膏
黄体酮胶囊
鱼肝油乳
广东凉茶颗粒
来氟米特片
云芝肝泰颗粒
注射用鲑鱼降钙素
潞党参口服液
注射用盐酸尼莫司汀
三黄片'''
drugs_list = drugs.split("\n")
# 往actree中添加数据
actree = ahocorasick.Automaton()
for index, word in enumerate(drugs_list):
actree.add_word(word, (index, word))
actree.make_automaton()
# 使用actree来查询目标语句中出现在actree中的关键词
temp = '感觉消化不好,服用了维生素C,并且还吃了三黄片,饭是吃了羊肉汤,大便有点色浅'
for i in actree.iter(temp):
print(i)
运行结果:
(13, (41, '维生素C'))
# 第一个id是‘维生素C’在temp中的位置
# 第二个id是‘维生素C’在actree中的位置
(22, (59, '三黄片'))
ahocorasick的树结构主要用于构件关键词列表,然后进行匹配的。