本文共 1009 字,大约阅读时间需要 3 分钟。
#coding:utf-8import ahocorasickdef make_AC(AC, word_set): for word in word_set: AC.add_word(word,word) return ACdef test_ahocorasick(): ''' ahocosick:自动机的意思 可实现自动批量匹配字符串的作用,即可一次返回该条字符串中命中的所有关键词 ''' key_list = ["苹果", "香蕉", "梨", "橙子", "柚子", "火龙果", "柿子", "猕猴挑"] AC_KEY = ahocorasick.Automaton() AC_KEY = make_AC(AC_KEY, set(key_list)) AC_KEY.make_automaton() test_str_list = ["我最喜欢吃的水果有:苹果、梨和香蕉", "我也喜欢吃香蕉,但是我不喜欢吃梨"] for content in test_str_list: name_list = set() for item in AC_KEY.iter(content):#将AC_KEY中的每一项与content内容作对比,若匹配则返回 name_list.add(item[1]) name_list = list(name_list) if len(name_list) > 0: print(content, "--->命中的关键词有:", "\t".join(name_list))if __name__ == "__main__": test_ahocorasick()我最喜欢吃的水果有:苹果、梨和香蕉 --->命中的关键词有: 梨 香蕉 苹果我也喜欢吃香蕉,但是我不喜欢吃梨 --->命中的关键词有: 梨 香蕉————————————————版权声明:本文为CSDN博主「追梦杏花天影」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/u010569893/article/details/97136696